diff --git a/homedecor/bathroom_furniture.lua b/homedecor/bathroom_furniture.lua index b83f8081..0071316f 100644 --- a/homedecor/bathroom_furniture.lua +++ b/homedecor/bathroom_furniture.lua @@ -1,21 +1,20 @@ + local S = homedecor.gettext local bathroom_tile_colors = { - { "1", "white/grey", "#c0c0c0:200" }, - { "2", "white/dark grey", "#404040:150" }, - { "3", "white/black", "#000000:200" }, - { "4", "black/dark grey", "" }, - { "red", "white/red", "#d00000:150" }, - { "green", "white/green", "#00d000:150" }, - { "blue", "white/blue", "#0000d0:150" }, - { "yellow", "white/yellow", "#ffff00:150" }, - { "tan", "white/tan", "#ceaf42:150" } + { "1", S("white/grey"), "#c0c0c0:200" }, + { "2", S("white/dark grey"), "#404040:150" }, + { "3", S("white/black"), "#000000:200" }, + { "4", S("black/dark grey"), "" }, + { "red", S("white/red"), "#d00000:150" }, + { "green", S("white/green"), "#00d000:150" }, + { "blue", S("white/blue"), "#0000d0:150" }, + { "yellow", S("white/yellow"), "#ffff00:150" }, + { "tan", S("white/tan"), "#ceaf42:150" } } -for i in ipairs(bathroom_tile_colors) do - local color = bathroom_tile_colors[i][1] - local shade = bathroom_tile_colors[i][2] - local hue = bathroom_tile_colors[i][3] +for _, c in ipairs(bathroom_tile_colors) do + local color, shade, hue = unpack(c) local coloredtile = "homedecor_bathroom_tiles_bg.png^(homedecor_bathroom_tiles_fg.png^[colorize:"..hue..")" @@ -25,7 +24,7 @@ for i in ipairs(bathroom_tile_colors) do end minetest.register_node("homedecor:tiles_"..color, { - description = "Bathroom/kitchen tiles ("..shade..")", + description = S("Bathroom/kitchen tiles (@1)", shade), tiles = { coloredtile, coloredtile, @@ -46,7 +45,7 @@ local tr_cbox = { } homedecor.register("towel_rod", { - description = "Towel rod with towel", + description = S("Towel rod with towel"), mesh = "homedecor_towel_rod.obj", tiles = { "homedecor_generic_terrycloth.png", @@ -60,7 +59,7 @@ homedecor.register("towel_rod", { }) homedecor.register("medicine_cabinet", { - description = S("Medicine Cabinet"), + description = S("Medicine cabinet"), mesh = "homedecor_medicine_cabinet.obj", tiles = { 'default_wood.png', diff --git a/homedecor/bathroom_sanitation.lua b/homedecor/bathroom_sanitation.lua index ffd4ca29..82dd2823 100644 --- a/homedecor/bathroom_sanitation.lua +++ b/homedecor/bathroom_sanitation.lua @@ -222,7 +222,7 @@ homedecor.register("shower_head", { "homedecor_shower_head.png" }, inventory_image = "homedecor_shower_head_inv.png", - description = "Shower Head", + description = S("Shower Head"), groups = {snappy=3}, selection_box = sh_cbox, walkable = false, @@ -262,7 +262,7 @@ homedecor.register("bathroom_set", { "homedecor_bathroom_set_toothpaste.png", }, inventory_image = "homedecor_bathroom_set_inv.png", - description = "Bathroom sundries set", + description = S("Bathroom sundries set"), groups = {snappy=3}, selection_box = bs_cbox, walkable = false, diff --git a/homedecor/bedroom.lua b/homedecor/bedroom.lua index 439d88c8..90c17f61 100644 --- a/homedecor/bedroom.lua +++ b/homedecor/bedroom.lua @@ -1,21 +1,24 @@ -local S = homedecor.gettext + +local S, NS = homedecor.gettext, homedecor.ngettext + +local function N_(x) return x end local bedcolors = { - { "black", "#000000:200" }, --new cg72 - { "brown", "#603010:175" }, - { "blue", "#0000d0:150" }, - { "cyan", "#009fa7:150" }, --new cg72 - { "darkgrey", "#101010:175" }, - { "dark_green", "#007000:150" }, - { "green", "#00d000:150" }, --new cg72 - { "grey", "#101010:100" }, --new cg72 - { "magenta", "#e0048b:150" }, --new cg72 - { "orange", "#ff3000:150" }, - { "pink", "#ff80b0:150" }, - { "red", "#d00000:150" }, - { "violet", "#7000e0:150" }, - { "white", "#000000:000" }, --new cg72 - { "yellow", "#ffe000:150" } + { S("black"), "black", "#000000:200" }, --new cg72 + { S("brown"), "brown", "#603010:175" }, + { S("blue"), "blue", "#0000d0:150" }, + { S("cyan"), "cyan", "#009fa7:150" }, --new cg72 + { S("dark grey"), "darkgrey", "#101010:175" }, + { S("dark green"), "dark_green", "#007000:150" }, + { S("green"), "green", "#00d000:150" }, --new cg72 + { S("grey"), "grey", "#101010:100" }, --new cg72 + { S("magenta"), "magenta", "#e0048b:150" }, --new cg72 + { S("orange"), "orange", "#ff3000:150" }, + { S("pink"), "pink", "#ff80b0:150" }, + { S("red"), "red", "#d00000:150" }, + { S("violet"), "violet", "#7000e0:150" }, + { S("white"), "white", "#000000:000" }, --new cg72 + { S("yellow"), "yellow", "#ffe000:150" } } local bed_sbox = { @@ -46,10 +49,9 @@ local kbed_cbox = { } } -for i in ipairs(bedcolors) do - local color = bedcolors[i][1] +for _, c in ipairs(bedcolors) do + local colordesc, color, hue = unpack(c) local color2=color - local hue = bedcolors[i][2] if color == "darkgrey" then color2 = "dark_grey" @@ -65,7 +67,7 @@ for i in ipairs(bedcolors) do "wool_"..color2..".png^[brighten", -- pillow }, inventory_image = "homedecor_bed_inv.png^(homedecor_bed_overlay_inv.png^[colorize:"..hue..")", - description = S("Bed (%s)"):format(color), + description = S("Bed (@1)", colordesc), groups = {snappy=3}, selection_box = bed_sbox, collision_box = bed_cbox, @@ -126,7 +128,7 @@ for i in ipairs(bedcolors) do }, inventory_image = "homedecor_bed_kingsize_inv.png^(homedecor_bed_kingsize_overlay_inv.png^[colorize:"..hue..")", groups = {snappy=3, not_in_creative_inventory=1}, - description = S("Bed (%s, king sized)"):format(color), + description = S("Bed (@1, king sized)", colordesc), groups = {snappy=3, not_in_creative_inventory=1}, selection_box = kbed_sbox, collision_box = kbed_cbox, @@ -154,9 +156,9 @@ for i in ipairs(bedcolors) do end -for _, w in pairs({"mahogany", "oak"}) do +for _, w in pairs({ N_("mahogany"), N_("oak") }) do homedecor.register("nightstand_"..w.."_one_drawer", { - description = S("Nightstand with One Drawer ("..w..")"), + description = S("Nightstand with One Drawer (@1)", S(w)), tiles = { 'homedecor_nightstand_'..w..'_tb.png', 'homedecor_nightstand_'..w..'_tb.png^[transformFY', 'homedecor_nightstand_'..w..'_lr.png^[transformFX', @@ -185,7 +187,7 @@ for _, w in pairs({"mahogany", "oak"}) do }) homedecor.register("nightstand_"..w.."_two_drawers", { - description = S("Nightstand with Two Drawers ("..w..")"), + description = S("Nightstand with Two Drawers (@1)", S(w)), tiles = { 'homedecor_nightstand_'..w..'_tb.png', 'homedecor_nightstand_'..w..'_tb.png^[transformFY', 'homedecor_nightstand_'..w..'_lr.png^[transformFX', diff --git a/homedecor/books.lua b/homedecor/books.lua index 67da99e1..b12b4270 100644 --- a/homedecor/books.lua +++ b/homedecor/books.lua @@ -1,22 +1,23 @@ + local S = homedecor.gettext +local function N_(x) return x end + local bookcolors = { - { "red", "#c00000:150" }, - { "green", "#008000:150" }, - { "blue", "#4040c0:150" }, - { "violet", "#600070:150" }, - { "grey", "#202020:150" }, - { "brown", "#603010:175" } + { N_("red"), "#c00000:150" }, + { N_("green"), "#008000:150" }, + { N_("blue"), "#4040c0:150" }, + { N_("violet"), "#600070:150" }, + { N_("grey"), "#202020:150" }, + { N_("brown"), "#603010:175" } } local BOOK_FORMNAME = "homedecor:book_form" local player_current_book = { } -for c in ipairs(bookcolors) do - local color = bookcolors[c][1] - local color_d = S(bookcolors[c][1]) - local hue = bookcolors[c][2] +for _, c in ipairs(bookcolors) do + local color, hue = unpack(c) local function book_dig(pos, node, digger) if minetest.is_protected(pos, digger:get_player_name()) then return end @@ -41,7 +42,7 @@ for c in ipairs(bookcolors) do local inv_img = "homedecor_book_inv.png^[colorize:"..hue.."^homedecor_book_trim_inv.png" homedecor.register("book_"..color, { - description = S("Writable Book (%s)"):format(color_d), + description = S("Writable Book (@1)", S(color)), mesh = "homedecor_book.obj", tiles = { "(homedecor_book_cover.png^[colorize:"..hue..")^homedecor_book_cover_trim.png", @@ -169,6 +170,6 @@ minetest.register_on_player_receive_fields(function(player, form_name, fields) if (fields.title or "") ~= "" then meta:set_string("infotext", fields.title) end - minetest.log("action", player:get_player_name().." has written in a book (title: \""..fields.title.."\"): \""..fields.text.. - "\" at location: "..minetest.pos_to_string(player:getpos())) + minetest.log("action", S("@1 has written in a book (title: \"@2\"): \"@3\" at location @4", + player:get_player_name(), fields.title, fields.text, minetest.pos_to_string(player:getpos()))) end) diff --git a/homedecor/climate-control.lua b/homedecor/climate-control.lua index c7579aa4..b334d173 100644 --- a/homedecor/climate-control.lua +++ b/homedecor/climate-control.lua @@ -41,7 +41,7 @@ local add_mesh_desk_fan_entity = function(pos) end homedecor.register("desk_fan", { - description = "Desk Fan", + description = S("Desk Fan"), groups = {oddly_breakable_by_hand=2}, node_box = { type = "fixed", @@ -136,7 +136,7 @@ homedecor.register("radiator", { "homedecor_radiator_controls.png" }, inventory_image = "homedecor_radiator_inv.png", - description = "Radiator heater", + description = S("Radiator heater"), groups = {snappy=3}, selection_box = r_cbox, collision_box = r_cbox, diff --git a/homedecor/crafts.lua b/homedecor/crafts.lua index 5e029213..8ff4e22d 100644 --- a/homedecor/crafts.lua +++ b/homedecor/crafts.lua @@ -109,23 +109,23 @@ minetest.register_craftitem("homedecor:steel_strip", { }) minetest.register_craftitem(":glooptest:chainlink", { - description = "Steel chainlink", + description = S("Steel chainlink"), inventory_image = "homedecor_chainlink_steel.png" }) minetest.register_craftitem("homedecor:chainlink_brass", { - description = "Brass chainlink", + description = S("Brass chainlink"), inventory_image = "homedecor_chainlink_brass.png" }) minetest.register_craftitem("homedecor:soda_can", { - description = "Soda Can", + description = S("Soda Can"), inventory_image = "homedecor_soda_can.png", on_use = minetest.item_eat(2), }) minetest.register_craftitem("homedecor:coin", { - description = "Gold Coin (for soda vending machine)", + description = S("Gold Coin (for soda vending machine)"), inventory_image = "homedecor_coin.png", }) diff --git a/homedecor/doors_and_gates.lua b/homedecor/doors_and_gates.lua index 2969b3ec..dc9a7584 100644 --- a/homedecor/doors_and_gates.lua +++ b/homedecor/doors_and_gates.lua @@ -2,6 +2,8 @@ local S = homedecor.gettext +local function N_(x) return x end + -- doors local function isSolid(pos, adjust) @@ -119,17 +121,17 @@ end local door_model_list = { { name = "closet_mahogany", - description = S("Mahogany Closet Door"), + description = N_("Mahogany Closet Door (@1 opening)"), mesh = "homedecor_door_closet.obj" }, { name = "closet_oak", - description = S("Oak Closet Door"), + description = N_("Oak Closet Door (@1 opening)"), mesh = "homedecor_door_closet.obj" }, { name = "exterior_fancy", - description = S("Fancy Wood/Glass Door"), + description = N_("Fancy Wood/Glass Door (@1 opening)"), mesh = "homedecor_door_fancy.obj", tiles = { "homedecor_door_exterior_fancy.png", @@ -139,12 +141,12 @@ local door_model_list = { }, { name = "glass", - description = S("Glass Office Door"), + description = N_("Glass Office Door (@1 opening)"), mesh = "homedecor_door_plain.obj" }, { name = "wood_glass_oak", - description = S("Glass and Wood, Oak-colored"), + description = N_("Glass and Wood, Oak-colored (@1 opening)"), mesh = "homedecor_door_wood_glass.obj", tiles = { "homedecor_door_wood_glass_oak.png", @@ -153,7 +155,7 @@ local door_model_list = { }, { name = "wood_glass_mahogany", - description = S("Glass and Wood, Mahogany-colored"), + description = N_("Glass and Wood, Mahogany-colored (@1 opening)"), mesh = "homedecor_door_wood_glass.obj", tiles = { "homedecor_door_wood_glass_mahogany.png", @@ -162,7 +164,7 @@ local door_model_list = { }, { name = "wood_glass_white", - description = S("Glass and Wood, White"), + description = N_("Glass and Wood, White (@1 opening)"), mesh = "homedecor_door_wood_glass.obj", tiles = { "homedecor_door_wood_glass_white.png", @@ -171,22 +173,22 @@ local door_model_list = { }, { name = "wood_plain", - description = S("Plain Wooden Door"), + description = N_("Plain Wooden Door (@1 opening)"), mesh = "homedecor_door_plain.obj" }, { name = "bedroom", - description = S("White Bedroom Door"), + description = N_("White Bedroom Door (@1 opening)"), mesh = "homedecor_door_plain.obj" }, { name = "wrought_iron", - description = S("Wrought Iron Gate/Door"), + description = N_("Wrought Iron Gate/Door (@1 opening)"), mesh = "homedecor_door_wrought_iron.obj" }, { name = "woodglass", - description = S("Wooden door with glass insert"), + description = N_("Wooden door with glass insert (@1 opening)"), mesh = "homedecor_door_woodglass_typea.obj", tiles = { "homedecor_door_woodglass_typea.png", @@ -196,7 +198,7 @@ local door_model_list = { }, { name = "woodglass2", - description = S("Wooden door with glass insert, type 2"), + description = N_("Wooden door with glass insert, type 2 (@1 opening)"), mesh = "homedecor_door_plain.obj", usealpha = true }, @@ -207,10 +209,9 @@ local def_selbox = { fixed = { -0.5, -0.5, 0.375, 0.5, 1.5, 0.5 } } -local sides = {"left", "right"} +local sides = { N_("left"), N_("right") } -for i in ipairs(sides) do - local side = sides[i] +for i, side in ipairs(sides) do for _, door_model in ipairs(door_model_list) do @@ -227,7 +228,7 @@ for i in ipairs(sides) do end minetest.register_node("homedecor:door_"..doorname.."_"..side, { - description = door_model.description.." "..S("(%s-opening)"):format(side), + description = S(door_model.description, S(side)), drawtype = "mesh", mesh = mesh, tiles = door_model.tiles or { "homedecor_door_"..doorname..".png" }, @@ -291,8 +292,12 @@ end -- Gates -local gates_list = { "picket", "picket_white", "barbed_wire", "chainlink" } -local gate_names = { "Unpainted Picket", "White Picket", "Barbed Wire", "Chainlink" } +local gate_list = { + { "picket", S("Unpainted Picket Fence Gate") }, + { "picket_white", S("White Picket Fence Gate") }, + { "barbed_wire", S("Barbed Wire Fence Gate") }, + { "chainlink", S("Chainlink Fence Gate") }, +} local gate_models_closed = { {{ -0.5, -0.5, 0.498, 0.5, 0.5, 0.498 }}, @@ -332,9 +337,9 @@ local gate_models_open = { { 6/16, -3/16, -8/16, 8/16, 3/16, -6/16 }} -- the lump representing the lock } -for i in ipairs(gates_list) do +for i, g in ipairs(gate_list) do - local gate=gates_list[i] + local gate, gatedesc = unpack(g) local tiles = { "homedecor_gate_"..gate.."_tb.png", @@ -369,7 +374,7 @@ for i in ipairs(gates_list) do local def = { drawtype = "nodebox", - description = S(gate_names[i].." Fence Gate"), + description = gatedesc, tiles = tiles, paramtype = "light", groups = {snappy=3}, @@ -518,7 +523,7 @@ local jp_cbox = { } minetest.register_node("homedecor:japanese_wall_top", { - description = "Japanese wall (top)", + description = S("Japanese wall (top)"), drawtype = "mesh", mesh = "homedecor_wall_japanese_top.obj", tiles = { @@ -534,7 +539,7 @@ minetest.register_node("homedecor:japanese_wall_top", { }) minetest.register_node("homedecor:japanese_wall_middle", { - description = "Japanese wall", + description = S("Japanese wall"), drawtype = "mesh", mesh = "homedecor_wall_japanese_middle.obj", tiles = { @@ -550,7 +555,7 @@ minetest.register_node("homedecor:japanese_wall_middle", { }) minetest.register_node("homedecor:japanese_wall_bottom", { - description = "Japanese wall (bottom)", + description = S("Japanese wall (bottom)"), drawtype = "mesh", mesh = "homedecor_wall_japanese_bottom.obj", tiles = { @@ -574,7 +579,7 @@ minetest.register_node("homedecor:tatami_mat", { "homedecor_tatami.png", "homedecor_tatami.png" }, - description = "Japanese tatami", + description = S("Japanese tatami"), drawtype = "nodebox", paramtype = "light", groups = {snappy=3}, @@ -587,7 +592,7 @@ minetest.register_node("homedecor:tatami_mat", { }) homedecor.register("door_japanese_closed", { - description = "Japanese-style door", + description = S("Japanese-style door"), inventory_image = "homedecor_door_japanese_inv.png", tiles = { "homedecor_generic_wood_luxury.png", diff --git a/homedecor/electronics.lua b/homedecor/electronics.lua index 9a59a962..5883b35b 100644 --- a/homedecor/electronics.lua +++ b/homedecor/electronics.lua @@ -135,7 +135,7 @@ homedecor.register("telephone", { "homedecor_telephone_cord.png", }, inventory_image = "homedecor_telephone_inv.png", - description = "Telephone", + description = S("Telephone"), groups = {snappy=3}, selection_box = tel_cbox, walkable = false, @@ -149,9 +149,9 @@ minetest.register_abm({ chance = 15, action = function(pos, node) minetest.sound_play("homedecor_telephone_ringing", { - pos = pos, - gain = 1.0, - max_hear_distance = 5 - }) + pos = pos, + gain = 1.0, + max_hear_distance = 5 + }) end }) diff --git a/homedecor/exterior.lua b/homedecor/exterior.lua index 69029ed5..8e2b028f 100644 --- a/homedecor/exterior.lua +++ b/homedecor/exterior.lua @@ -1,12 +1,15 @@ + local S = homedecor.gettext +local function N_(x) return x end + local bbq_cbox = { type = "fixed", fixed = { -0.5, -0.5, -0.3125, 0.5, 0.53125, 0.3125 } } homedecor.register("barbecue", { - description = "Barbecue", + description = S("Barbecue"), mesh = "homedecor_barbecue.obj", tiles = { "homedecor_generic_metal_black.png", @@ -50,7 +53,7 @@ homedecor.register("bench_large_1", { "homedecor_generic_wood_old.png", "homedecor_generic_metal_wrought_iron.png" }, - description = "Garden Bench (style 1)", + description = S("Garden Bench (style 1)"), inventory_image = "homedecor_bench_large_1_inv.png", groups = { snappy = 3 }, expand = { right="placeholder" }, @@ -77,7 +80,7 @@ local bl2_cbox = { } homedecor.register("bench_large_2", { - description = "Garden Bench (style 2)", + description = S("Garden Bench (style 2)"), mesh = "homedecor_bench_large_2.obj", tiles = { "homedecor_generic_wood_old.png" }, inventory_image = "homedecor_bench_large_2_inv.png", @@ -100,7 +103,7 @@ local dc_cbox = { homedecor.register("deckchair", { mesh = "homedecor_deckchair.obj", tiles = {"homedecor_deckchair.png"}, - description = "Deck Chair", + description = S("Deck Chair"), groups = { snappy = 3 }, expand = { forward="placeholder" }, sounds = default.node_sound_wood_defaults(), @@ -115,7 +118,7 @@ minetest.register_alias("homedecor:deckchair_head", "air") homedecor.register("deckchair_striped_blue", { mesh = "homedecor_deckchair.obj", tiles = {"homedecor_deckchair_striped_blue.png"}, - description = "Deck Chair", + description = S("Deck Chair"), groups = { snappy = 3 }, expand = { forward="placeholder" }, sounds = default.node_sound_wood_defaults(), @@ -131,7 +134,7 @@ homedecor.register("doghouse", { "default_wood.png", "building_blocks_towel.png" }, - description = "Doghouse", + description = S("Doghouse"), inventory_image = "homedecor_doghouse_inv.png", selection_box = homedecor.nodebox.slab_y(1.5), collision_box = homedecor.nodebox.slab_y(1.5), @@ -146,7 +149,7 @@ minetest.register_alias("homedecor:doghouse_base", "homedecor:doghouse") homedecor.register("simple_bench", { tiles = { "homedecor_generic_wood_old.png" }, - description = "Simple Bench", + description = S("Simple Bench"), groups = {snappy=3}, node_box = { type = "fixed", @@ -160,7 +163,7 @@ homedecor.register("simple_bench", { }) homedecor.register("stonepath", { - description = "Garden stone path", + description = S("Garden stone path"), tiles = { "default_stone.png" }, @@ -187,17 +190,20 @@ homedecor.register("stonepath", { }) local lattice_colors = { - {"wood", ".png^[colorize:#704214:180"}, - {"white_wood", ".png"}, - {"wood_vegetal", ".png^[colorize:#704214:180^homedecor_lattice_vegetal.png"}, - {"white_wood_vegetal", ".png^homedecor_lattice_vegetal.png"}, + { "wood", S("wood"), ".png^[colorize:#704214:180" }, + { "white_wood", S("white wood"), ".png" }, + { "wood_vegetal", S("wood, with vegetation"), + ".png^[colorize:#704214:180^homedecor_lattice_vegetal.png" }, + { "white_wood_vegetal", S("white wood, with vegetation"), + ".png^homedecor_lattice_vegetal.png" }, } -for _, m in ipairs(lattice_colors) do -homedecor.register("lattice_"..m[1], { - description = "Garden Lattice ("..m[1]..")", - tiles = {"homedecor_lattice"..m[2]}, - inventory_image = "homedecor_lattice"..m[2], +for _, c in ipairs(lattice_colors) do +local name, desc, texture = unpack(c) +homedecor.register("lattice_"..name, { + description = S("Garden Lattice (@1)", desc), + tiles = {"homedecor_lattice"..texture}, + inventory_image = "homedecor_lattice"..texture, groups = { snappy=3 }, node_box = { type = "fixed", @@ -218,7 +224,7 @@ homedecor.register("lattice_"..m[1], { end homedecor.register("swing", { - description = "Tree's swing", + description = S("Tree's swing"), tiles = { "homedecor_swing_top.png", "homedecor_swing_top.png^[transformR180", @@ -320,7 +326,7 @@ homedecor.register("well", { "homedecor_shingles_wood.png" }, inventory_image = "homedecor_well_inv.png", - description = "Water well", + description = S("Water well"), groups = { snappy = 3 }, selection_box = homedecor.nodebox.slab_y(2), collision_box = homedecor.nodebox.slab_y(2), @@ -352,16 +358,16 @@ if minetest.get_modpath("bucket") then end homedecor.shrub_colors = { - "green", - "red", - "yellow" + N_("green"), + N_("red"), + N_("yellow"), } local shrub_cbox = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 } for _, color in ipairs(homedecor.shrub_colors) do minetest.register_node("homedecor:shrubbery_large_"..color, { - description = S("Shrubbery ("..color..")"), + description = S("Shrubbery (@1)", S(color)), drawtype = "mesh", mesh = "homedecor_cube.obj", tiles = {"homedecor_shrubbery_"..color..".png"}, @@ -372,7 +378,7 @@ for _, color in ipairs(homedecor.shrub_colors) do }) minetest.register_node("homedecor:shrubbery_"..color, { - description = S("Shrubbery ("..color..")"), + description = S("Shrubbery (@1)", S(color)), drawtype = "mesh", mesh = "homedecor_shrubbery.obj", tiles = { diff --git a/homedecor/fences.lua b/homedecor/fences.lua index 95712280..dcb32f14 100644 --- a/homedecor/fences.lua +++ b/homedecor/fences.lua @@ -15,15 +15,23 @@ if signs_modpath then end local S = homedecor.gettext -local materials = {"brass", "wrought_iron"} + +local function N_(x) return x end + +local materials = { + { S("brass"), "brass" }, + { S("wrought iron"), "wrought_iron" }, +} for _, m in ipairs(materials) do -homedecor.register("fence_"..m, { - description = S("Fence/railing ("..m..")"), +local desc, name = unpack(m) + +homedecor.register("fence_"..name, { + description = S("Fence/railing (@1)", desc), drawtype = "fencelike", - tiles = {"homedecor_generic_metal_"..m..".png"}, - inventory_image = "homedecor_fence_"..m..".png", + tiles = {"homedecor_generic_metal_"..name..".png"}, + inventory_image = "homedecor_fence_"..name..".png", selection_box = homedecor.nodebox.bar_y(1/7), groups = {snappy=3}, sounds = default.node_sound_wood_defaults(), @@ -31,17 +39,17 @@ homedecor.register("fence_"..m, { -- brass/wrought iron with signs: -homedecor.register("fence_"..m.."_with_sign", { - description = S("Fence/railing with sign ("..m..")"), +homedecor.register("fence_"..name.."_with_sign", { + description = S("Fence/railing with sign (@1)", desc), tiles = { - "homedecor_sign_"..m.."_post_top.png", - "homedecor_sign_"..m.."_post_bottom.png", - "homedecor_sign_"..m.."_post_side.png", - "homedecor_sign_"..m.."_post_side.png", - "homedecor_sign_"..m.."_post_back.png", - "homedecor_sign_"..m.."_post_front.png", + "homedecor_sign_"..name.."_post_top.png", + "homedecor_sign_"..name.."_post_bottom.png", + "homedecor_sign_"..name.."_post_side.png", + "homedecor_sign_"..name.."_post_side.png", + "homedecor_sign_"..name.."_post_back.png", + "homedecor_sign_"..name.."_post_front.png", }, - wield_image = "homedecor_sign_"..m.."_post.png", + wield_image = "homedecor_sign_"..name.."_post.png", node_box = sign_post_model, groups = {snappy=3,not_in_creative_inventory=1}, sounds = default.node_sound_wood_defaults(), @@ -50,7 +58,7 @@ homedecor.register("fence_"..m.."_with_sign", { max_items = 2, items = { { items = { "default:sign_wall" }}, - { items = { "homedecor:fence_"..m }}, + { items = { "homedecor:fence_"..name }}, }, }, }) diff --git a/homedecor/furniture.lua b/homedecor/furniture.lua index ca96129f..1b2a17d2 100644 --- a/homedecor/furniture.lua +++ b/homedecor/furniture.lua @@ -1,21 +1,17 @@ local S = homedecor.gettext local table_colors = { - { "", homedecor.plain_wood }, - { "_mahogany", homedecor.mahogany_wood }, - { "_white", homedecor.white_wood } + { "", S("Table"), homedecor.plain_wood }, + { "_mahogany", S("Mahogany Table"), homedecor.mahogany_wood }, + { "_white", S("White Table"), homedecor.white_wood } } -for i in ipairs(table_colors) do - local desc = S("Table ("..i..")") +for _, t in ipairs(table_colors) do + local suffix, desc, texture = unpack(t) - if i == 1 then - desc = S("Table") - end - - homedecor.register("table"..table_colors[i][1], { + homedecor.register("table"..suffix, { description = desc, - tiles = { table_colors[i][2] }, + tiles = { texture }, node_box = { type = "fixed", fixed = { @@ -36,13 +32,13 @@ for i in ipairs(table_colors) do end local chaircolors = { - { "", "plain" }, - { "black", "Black" }, - { "red", "Red" }, - { "pink", "Pink" }, - { "violet", "Violet" }, - { "blue", "Blue" }, - { "dark_green", "Dark Green" }, + { "", S("plain") }, + { "black", S("black") }, + { "red", S("red") }, + { "pink", S("pink") }, + { "violet", S("violet") }, + { "blue", S("blue") }, + { "dark_green", S("dark green") }, } local kc_cbox = { @@ -58,26 +54,27 @@ local ac_cbox = { } } -for i in ipairs(chaircolors) do +for _, t in ipairs(chaircolors) do - local color = "_"..chaircolors[i][1] - local color2 = chaircolors[i][1] - local name = S(chaircolors[i][2]) - local chairtiles = { - homedecor.plain_wood, - "wool"..color..".png", - } + local woolcolor, colordesc = unpack(t) + local color = woolcolor + local chairtiles - if chaircolors[i][1] == "" then - color = "" + if woolcolor == "" then chairtiles = { homedecor.plain_wood, homedecor.plain_wood } + else + color = "_"..woolcolor + chairtiles = { + homedecor.plain_wood, + "wool"..color..".png", + } end homedecor.register("chair"..color, { - description = S("Kitchen chair (%s)"):format(name), + description = S("Kitchen chair (@1)", colordesc), mesh = "homedecor_kitchen_chair.obj", tiles = chairtiles, selection_box = kc_cbox, @@ -93,7 +90,7 @@ for i in ipairs(chaircolors) do if color ~= "" then homedecor.register("armchair"..color, { - description = S("Armchair (%s)"):format(name), + description = S("Armchair (@1)", colordesc), mesh = "forniture_armchair.obj", tiles = { "wool"..color..".png", @@ -108,9 +105,9 @@ for i in ipairs(chaircolors) do minetest.register_craft({ output = "homedecor:armchair"..color.." 2", recipe = { - { "wool:"..color2,""}, + { "wool:"..woolcolor,""}, { "group:wood","group:wood" }, - { "wool:"..color2,"wool:"..color2 }, + { "wool:"..woolcolor,"wool:"..woolcolor }, }, }) end @@ -122,7 +119,7 @@ local ob_cbox = { } minetest.register_node(":homedecor:openframe_bookshelf", { - description = "Bookshelf (open-frame)", + description = S("Bookshelf (open-frame)"), drawtype = "mesh", mesh = "homedecor_openframe_bookshelf.obj", tiles = { @@ -138,7 +135,7 @@ minetest.register_node(":homedecor:openframe_bookshelf", { }) homedecor.register("wall_shelf", { - description = "Wall Shelf", + description = S("Wall Shelf"), tiles = { "homedecor_wood_table_large_edges.png", }, diff --git a/homedecor/handlers/furnaces.lua b/homedecor/handlers/furnaces.lua index 9f4bf76c..d628273a 100644 --- a/homedecor/handlers/furnaces.lua +++ b/homedecor/handlers/furnaces.lua @@ -88,7 +88,7 @@ function homedecor.register_furnace(name, furnacedef) furnacedef.cook_speed = furnacedef.cook_speed or 1 - local description = furnacedef.description or "Furnace" + local description = furnacedef.description or S("Furnace") local furnace_construct = function(pos) local meta = minetest.get_meta(pos) @@ -106,7 +106,7 @@ function homedecor.register_furnace(name, furnacedef) if listname == "fuel" then if minetest.get_craft_result({method="fuel",width=1,items={stack}}).time ~= 0 then if inv:is_empty("src") then - meta:set_string("infotext", S("%s is empty"):format(description)) + meta:set_string("infotext", S("@1 (empty)", description)) end return stack:get_count() else @@ -125,7 +125,7 @@ function homedecor.register_furnace(name, furnacedef) if to_list == "fuel" then if minetest.get_craft_result({method="fuel",width=1,items={stack}}).time ~= 0 then if inv:is_empty("src") then - meta:set_string("infotext", S("%s is empty"):format(description)) + meta:set_string("infotext", S("@1 (empty)", description)) end return count else @@ -151,7 +151,7 @@ function homedecor.register_furnace(name, furnacedef) } local def_active = { - description = description .. " (active)", + description = S("@1 (active)", description), tiles = make_tiles(furnacedef.tiles_active, furnacedef.tile_format, true), light_source = 8, drop = "homedecor:" .. name, @@ -231,7 +231,7 @@ function homedecor.register_furnace(name, furnacedef) if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then local percent = math.floor(meta:get_float("fuel_time") / meta:get_float("fuel_totaltime") * 100) - meta:set_string("infotext",S("%s active: %d%%"):format(desc,percent)) + meta:set_string("infotext", S("@1 (active: @2%)", desc, percent)) swap_node(pos,name_active..locked) meta:set_string("formspec", make_formspec(furnacedef, percent)) return @@ -251,7 +251,7 @@ function homedecor.register_furnace(name, furnacedef) end if (not fuel) or (fuel.time <= 0) then - meta:set_string("infotext",desc..S(": Out of fuel")) + meta:set_string("infotext", S("@1 (out of fuel)", desc)) swap_node(pos, nname..locked) meta:set_string("formspec", make_formspec(furnacedef, 0)) return @@ -259,7 +259,7 @@ function homedecor.register_furnace(name, furnacedef) if cooked.item:is_empty() then if was_active then - meta:set_string("infotext",S("%s is empty"):format(desc)) + meta:set_string("infotext", S("@1 (empty)", desc)) swap_node(pos, nname..locked) meta:set_string("formspec", make_formspec(furnacedef, 0)) end @@ -267,7 +267,7 @@ function homedecor.register_furnace(name, furnacedef) end if not inv:room_for_item("dst", cooked.item) then - meta:set_string("infotext", desc..S(": output bins are full")) + meta:set_string("infotext", S("@1 (output bins are full)", desc)) swap_node(pos, nname..locked) meta:set_string("formspec", make_formspec(furnacedef, 0)) return diff --git a/homedecor/handlers/inventory.lua b/homedecor/handlers/inventory.lua index 7ba81c54..97041866 100644 --- a/homedecor/handlers/inventory.lua +++ b/homedecor/handlers/inventory.lua @@ -84,17 +84,17 @@ function homedecor.handle_inventory(name, def, original_def) def.can_dig = def.can_dig or default_can_dig def.on_metadata_inventory_move = def.on_metadata_inventory_move or function(pos, from_list, from_index, to_list, to_index, count, player) - minetest.log("action", S("%s moves stuff in %s at %s"):format( + minetest.log("action", S("@1 moves stuff in @2 at @3", player:get_player_name(), name, minetest.pos_to_string(pos) )) end def.on_metadata_inventory_put = def.on_metadata_inventory_put or function(pos, listname, index, stack, player) - minetest.log("action", S("%s moves %s to %s at %s"):format( + minetest.log("action", S("@1 moves @2 to @3 at @4", player:get_player_name(), stack:get_name(), name, minetest.pos_to_string(pos) )) end def.on_metadata_inventory_take = def.on_metadata_inventory_take or function(pos, listname, index, stack, player) - minetest.log("action", S("%s takes %s from %s at %s"):format( + minetest.log("action", S("@1 takes @2 from @3 at @4", player:get_player_name(), stack:get_name(), name, minetest.pos_to_string(pos) )) end @@ -107,7 +107,7 @@ function homedecor.handle_inventory(name, def, original_def) local owner = placer:get_player_name() or "" meta:set_string("owner", owner) - meta:set_string("infotext", S("%s (owned by %s)"):format(def.infotext or def.description, owner)) + meta:set_string("infotext", S("@1 (owned by @2)", def.infotext or def.description, owner)) return after_place_node and after_place_node(pos, placer) end @@ -124,7 +124,7 @@ function homedecor.handle_inventory(name, def, original_def) count end - minetest.log("action", string.format("%s tried to access a %s belonging to %s at %s", + minetest.log("action", S("@1 tried to access a @2 belonging to @3 at @4", playername, name, owner, minetest.pos_to_string(pos) )) return 0 @@ -142,7 +142,7 @@ function homedecor.handle_inventory(name, def, original_def) stack:get_count() end - minetest.log("action", string.format("%s tried to access a %s belonging to %s at %s", + minetest.log("action", S("@1 tried to access a @2 belonging to @3 at @4", playername, name, owner, minetest.pos_to_string(pos) )) return 0 @@ -160,7 +160,7 @@ function homedecor.handle_inventory(name, def, original_def) stack:get_count() end - minetest.log("action", string.format("%s tried to access a %s belonging to %s at %s", + minetest.log("action", S("@1 tried to access a @2 belonging to @3 at @4", playername, name, owner, minetest.pos_to_string(pos) )) return 0 @@ -170,7 +170,7 @@ function homedecor.handle_inventory(name, def, original_def) local lockable = inventory.lockable if lockable then local locked_def = table.copy(original_def) - locked_def.description = S("Locked %s"):format(def.description or name) + locked_def.description = S("@1 (Locked)", def.description or name) local locked_inventory = locked_def.inventory locked_inventory.locked = true diff --git a/homedecor/init.lua b/homedecor/init.lua index c52d30c7..7f307694 100644 --- a/homedecor/init.lua +++ b/homedecor/init.lua @@ -9,11 +9,14 @@ local modpath = minetest.get_modpath("homedecor") +-- Load support for intllib. +local S, NS = dofile(modpath.."/intllib.lua") + homedecor = { modpath = modpath, - -- Boilerplate to support localized strings if intllib mod is installed. - gettext = rawget(_G, "intllib") and intllib.Getter() or function(s) return s end, + gettext = S, + ngettext = NS, -- infinite stacks expect_infinite_stacks = minetest.setting_getbool("creative_mode") and not minetest.get_modpath("unified_inventory") @@ -127,4 +130,4 @@ dofile(modpath.."/wardrobe.lua") dofile(modpath.."/crafts.lua") -print("[HomeDecor] " .. homedecor.gettext("Loaded!")) +print("[HomeDecor] " .. S("Loaded!")) diff --git a/homedecor/intllib.lua b/homedecor/intllib.lua new file mode 100644 index 00000000..6669d720 --- /dev/null +++ b/homedecor/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/homedecor/kitchen_appliances.lua b/homedecor/kitchen_appliances.lua index 70d07032..1f44c9f0 100644 --- a/homedecor/kitchen_appliances.lua +++ b/homedecor/kitchen_appliances.lua @@ -2,6 +2,8 @@ local S = homedecor.gettext +local function N_(x) return x end + -- steel-textured fridge homedecor.register("refrigerator_steel", { mesh = "homedecor_refrigerator.obj", @@ -112,7 +114,7 @@ homedecor.register("coffee_maker", { "homedecor_coffeemaker_cup.png", "homedecor_coffeemaker_case.png", }, - description = "Coffee Maker", + description = S("Coffee Maker"), inventory_image = "homedecor_coffeemaker_inv.png", walkable = false, groups = {snappy=3}, @@ -159,7 +161,7 @@ minetest.register_abm({ }) homedecor.register("toaster", { - description = "Toaster", + description = S("Toaster"), tiles = { "homedecor_toaster_sides.png" }, inventory_image = "homedecor_toaster_inv.png", walkable = false, @@ -211,7 +213,7 @@ homedecor.register("toaster_loaf", { homedecor.register("dishwasher", { - description = "Dishwasher", + description = S("Dishwasher"), drawtype = "nodebox", tiles = { "homedecor_dishwasher_top.png", @@ -235,11 +237,11 @@ homedecor.register("dishwasher", { groups = { snappy = 3 }, }) -local materials = {"granite", "marble", "steel", "wood"} +local materials = { N_("granite"), N_("marble"), N_("steel"), N_("wood") } for _, m in ipairs(materials) do homedecor.register("dishwasher_"..m, { - description = "Dishwasher ("..m..")", + description = S("Dishwasher (@1)", S(m)), tiles = { "homedecor_kitchen_cabinet_top_"..m..".png", "homedecor_dishwasher_bottom.png", diff --git a/homedecor/kitchen_furniture.lua b/homedecor/kitchen_furniture.lua index 787cf20a..6b22af7d 100644 --- a/homedecor/kitchen_furniture.lua +++ b/homedecor/kitchen_furniture.lua @@ -2,17 +2,20 @@ local S = homedecor.gettext -local counter_materials = { "", "granite", "marble", "steel" } local cabinet_sides = "(default_wood.png^[transformR90)^homedecor_kitchen_cabinet_bevel.png" local cabinet_bottom = "(default_wood.png^[colorize:#000000:100)^(homedecor_kitchen_cabinet_bevel.png^[colorize:#46321580)" +local function N_(x) return x end + +local counter_materials = { "", N_("granite"), N_("marble"), N_("steel") } + for _, mat in ipairs(counter_materials) do local desc = S("Kitchen Cabinet") local material = "" if mat ~= "" then - desc = S("Kitchen Cabinet ("..mat.." top)") + desc = S("Kitchen Cabinet (@1 top)", S(mat)) material = "_"..mat end @@ -144,7 +147,7 @@ homedecor.register("paper_towel", { "default_wood.png" }, inventory_image = "homedecor_paper_towel_inv.png", - description = "Paper towels", + description = S("Paper towels"), groups = { snappy=3 }, walkable = false, selection_box = { diff --git a/homedecor/lighting.lua b/homedecor/lighting.lua index 1d2a3cbc..f7031df2 100644 --- a/homedecor/lighting.lua +++ b/homedecor/lighting.lua @@ -4,7 +4,9 @@ local dirs2 = { 9, 18, 7, 12 } local S = homedecor.gettext -local colors = {"yellow","white"} +local function N_(x) return x end + +local colors = { N_("yellow"), N_("white") } for i in ipairs(colors) do local color = colors[i] @@ -68,7 +70,7 @@ local glowlight_nodebox = { } homedecor.register("glowlight_half_"..color, { - description = S("Thick Glowlight ("..color..")"), + description = S("Thick Glowlight (@1)", S(color)), tiles = { "homedecor_glowlight_"..color.."_top.png", "homedecor_glowlight_"..color.."_bottom.png", @@ -86,7 +88,7 @@ homedecor.register("glowlight_half_"..color, { }) homedecor.register("glowlight_quarter_"..color, { - description = S("Thin Glowlight ("..color..")"), + description = S("Thin Glowlight (@1)", S(color)), tiles = { "homedecor_glowlight_"..color.."_top.png", "homedecor_glowlight_"..color.."_bottom.png", @@ -106,7 +108,7 @@ homedecor.register("glowlight_quarter_"..color, { -- Glowlight "cubes" homedecor.register("glowlight_small_cube_"..color, { - description = S("Small Glowlight Cube ("..color..")"), + description = S("Small Glowlight Cube (@1)", S(color)), tiles = { "homedecor_glowlight_cube_"..color.."_tb.png", "homedecor_glowlight_cube_"..color.."_tb.png", @@ -126,7 +128,7 @@ homedecor.register("glowlight_small_cube_"..color, { end homedecor.register("plasma_lamp", { - description = "Plasma Lamp", + description = S("Plasma Lamp"), drawtype = "glasslike_framed", tiles = {"default_gold_block.png","homedecor_glass_face_clean.png"}, special_tiles = { @@ -146,7 +148,7 @@ homedecor.register("plasma_lamp", { }) homedecor.register("plasma_ball", { - description = "Plasma Ball", + description = S("Plasma Ball"), mesh = "homedecor_plasma_ball.obj", tiles = { "homedecor_generic_plastic_black.png", @@ -394,12 +396,12 @@ homedecor.register("lattice_lantern_small", { local repl = { off="low", low="med", med="hi", hi="max", max="off", } local lamp_colors = { - {"white", "#ffffffe0:175"}, - {"blue", "#2626c6e0:200"}, - {"green", "#27a927e0:200"}, - {"pink", "#ff8fb7e0:200"}, - {"red", "#ad2323e0:200"}, - {"violet", "#7f29d7e0:200"} + { N_("white"), "#ffffffe0:175" }, + { N_("blue"), "#2626c6e0:200" }, + { N_("green"), "#27a927e0:200" }, + { N_("pink"), "#ff8fb7e0:200" }, + { N_("red"), "#ad2323e0:200" }, + { N_("violet"), "#7f29d7e0:200" }, } local tlamp_cbox = { @@ -414,20 +416,14 @@ local slamp_cbox = { local function reg_lamp(suffix, nxt, tilesuffix, light, color) local lampcolor = "_"..color[1] - local colordesc = " ("..color[1]..")" + local colordesc = S(color[1]) local woolcolor = color[1] local invcolor = color[2] local wool_brighten = (light or 0) * 7 local bulb_brighten = (light or 0) * 14 - if color == "" then - lampcolor = "" - colordesc = " (white)" - woolcolor = "white" - end - homedecor.register("table_lamp"..lampcolor.."_"..suffix, { - description = S("Table Lamp "..colordesc), + description = S("Table Lamp (@1)", colordesc), mesh = "homedecor_table_lamp.obj", tiles = { "wool_"..woolcolor..".png^[colorize:#ffffff:"..wool_brighten, @@ -453,7 +449,7 @@ local function reg_lamp(suffix, nxt, tilesuffix, light, color) -- standing lamps homedecor.register("standing_lamp"..lampcolor.."_"..suffix, { - description = S("Standing Lamp"..colordesc), + description = S("Standing Lamp (@1)", colordesc), mesh = "homedecor_standing_lamp.obj", tiles = { "wool_"..woolcolor..".png^[colorize:#ffffff:"..wool_brighten, @@ -499,11 +495,11 @@ local dlamp_cbox = { fixed = { -0.2, -0.5, -0.15, 0.32, 0.12, 0.15 }, } -local dlamp_colors = { "red","blue","green","violet" } +local dlamp_colors = { N_("red"), N_("blue"), N_("green"), N_("violet") } for _, color in ipairs(dlamp_colors) do homedecor.register("desk_lamp_"..color, { - description = S("Desk Lamp ("..color..")"), + description = S("Desk Lamp (@1)", S(color)), mesh = "homedecor_desk_lamp.obj", tiles = { "homedecor_table_standing_lamp_lightbulb.png^[colorize:#ffffff:200", diff --git a/homedecor/misc-nodes.lua b/homedecor/misc-nodes.lua index f16aa69f..66b7ac30 100644 --- a/homedecor/misc-nodes.lua +++ b/homedecor/misc-nodes.lua @@ -1,5 +1,8 @@ + local S = homedecor.gettext +local function N_(x) return x end + homedecor.register("ceiling_paint", { description = S("Textured Ceiling Paint"), drawtype = 'signlike', @@ -25,14 +28,13 @@ homedecor.register("ceiling_tile", { }) local rug_types = { - { "small", "homedecor_small_rug.obj" }, - { "large", homedecor.box.slab_y(0.0625)}, - { "persian", homedecor.box.slab_y(0.0625)} + { N_("small"), "homedecor_small_rug.obj" }, + { N_("large"), homedecor.box.slab_y(0.0625) }, + { N_("persian"), homedecor.box.slab_y(0.0625) }, } -for i in ipairs(rug_types) do - s = rug_types[i][1] - m = rug_types[i][2] +for _, rt in ipairs(rug_types) do + local s, m = unpack(rt) local mesh = m local nodebox = nil @@ -52,7 +54,7 @@ for i in ipairs(rug_types) do end homedecor.register("rug_"..s, { - description = S("Rug ("..s..")"), + description = S("Rug (@1)", S(s)), mesh = mesh, tiles = tiles, node_box = nodebox, @@ -64,11 +66,11 @@ for i in ipairs(rug_types) do }) end -local pot_colors = {"black", "green", "terracotta"} +local pot_colors = { N_("black"), N_("green"), N_("terracotta") } for _, p in ipairs(pot_colors) do homedecor.register("flower_pot_"..p, { - description = S("Flower Pot ("..p..")"), + description = S("Flower Pot (@1)", S(p)), mesh = "homedecor_flowerpot.obj", tiles = { "homedecor_flower_pot_"..p..".png", @@ -80,23 +82,21 @@ homedecor.register("flower_pot_"..p, { end local flowers_list = { - { "Rose", "rose", "flowers:rose" }, - { "Tulip", "tulip", "flowers:tulip" }, - { "Yellow Dandelion", "dandelion_yellow", "flowers:dandelion_yellow" }, - { "White Dandelion", "dandelion_white", "flowers:dandelion_white" }, - { "Blue Geranium", "geranium", "flowers:geranium" }, - { "Viola", "viola", "flowers:viola" }, - { "Cactus", "cactus", "default:cactus" }, - { "Bonsai", "bonsai", "default:sapling" } + { S("Rose"), "rose", "flowers:rose" }, + { S("Tulip"), "tulip", "flowers:tulip" }, + { S("Yellow Dandelion"), "dandelion_yellow", "flowers:dandelion_yellow" }, + { S("White Dandelion"), "dandelion_white", "flowers:dandelion_white" }, + { S("Blue Geranium"), "geranium", "flowers:geranium" }, + { S("Viola"), "viola", "flowers:viola" }, + { S("Cactus"), "cactus", "default:cactus" }, + { S("Bonsai"), "bonsai", "default:sapling" } } -for i in ipairs(flowers_list) do - local flowerdesc = flowers_list[i][1] - local flower = flowers_list[i][2] - local craftwith = flowers_list[i][3] +for _, f in ipairs(flowers_list) do + local flowerdesc, flower, craftwith = unpack(f) homedecor.register("potted_"..flower, { - description = S("Potted flower ("..flowerdesc..")"), + description = S("Potted flower (@1)", flowerdesc), mesh = "homedecor_potted_plant.obj", tiles = { "homedecor_flower_pot_terracotta.png", @@ -164,7 +164,7 @@ local ft_cbox = { } homedecor.register("fishtank", { - description = "Fishtank", + description = S("Fishtank"), mesh = "homedecor_fishtank.obj", tiles = { "homedecor_generic_plastic_black.png", @@ -186,7 +186,7 @@ homedecor.register("fishtank", { }) homedecor.register("fishtank_lighted", { - description = "Fishtank (lighted)", + description = S("Fishtank (lighted)"), mesh = "homedecor_fishtank.obj", tiles = { "homedecor_generic_plastic_black.png", @@ -244,7 +244,7 @@ homedecor.register("cardboard_box", { }) homedecor.register("dvd_cd_cabinet", { - description = "DVD/CD cabinet", + description = S("DVD/CD cabinet"), mesh = "homedecor_dvd_cabinet.obj", tiles = { "default_wood.png", @@ -270,7 +270,7 @@ homedecor.register("pool_table", { "homedecor_pool_table_balls.png", "homedecor_generic_wood_luxury.png^[colorize:#000000:90" }, - description = "Pool Table", + description = S("Pool Table"), inventory_image = "homedecor_pool_table_inv.png", groups = {snappy=3}, selection_box = pooltable_cbox, @@ -295,7 +295,7 @@ homedecor.register("piano", { "homedecor_generic_metal_brass.png", }, inventory_image = "homedecor_piano_inv.png", - description = "Piano", + description = S("Piano"), groups = { snappy = 3 }, selection_box = piano_cbox, collision_box = piano_cbox, @@ -313,7 +313,7 @@ local tr_cbox = { } homedecor.register("trophy", { - description = "Trophy", + description = S("Trophy"), mesh = "homedecor_trophy.obj", tiles = { "default_wood.png", @@ -331,7 +331,7 @@ local sb_cbox = { } homedecor.register("sportbench", { - description = "Sport bench", + description = S("Sport bench"), mesh = "homedecor_sport_bench.obj", tiles = { "homedecor_generic_metal_wrought_iron.png", @@ -356,7 +356,7 @@ homedecor.register("skateboard", { mesh = "homedecor_skateboard.obj", tiles = { "homedecor_skateboard.png" }, inventory_image = "homedecor_skateboard_inv.png", - description = "Skateboard", + description = S("Skateboard"), groups = {snappy=3}, selection_box = skate_cbox, walkable = false, @@ -365,7 +365,7 @@ homedecor.register("skateboard", { }) homedecor.register("tool_cabinet", { - description = "Metal tool cabinet and work table", + description = S("Metal tool cabinet and work table"), mesh = "homedecor_tool_cabinet.obj", tiles = { "homedecor_generic_metal_black.png^[colorize:#ff0000:150", @@ -421,7 +421,7 @@ local p_cbox = { for i = 1,20 do homedecor.register("painting_"..i, { - description = "Decorative painting #"..i, + description = S("Decorative painting #@1", i), mesh = "homedecor_painting.obj", tiles = { "default_wood.png", @@ -437,7 +437,7 @@ end homedecor.banister_materials = { { "wood", - "wood", + S("wood"), "default_wood.png", "default_wood.png", "group:wood", @@ -446,7 +446,7 @@ homedecor.banister_materials = { "" }, { "white_dark", - "dark topped", + S("dark topped"), homedecor.white_wood, homedecor.dark_wood, "group:wood", @@ -455,7 +455,7 @@ homedecor.banister_materials = { "dye:white" }, { "brass", - "brass", + S("brass"), homedecor.white_wood, "homedecor_generic_metal_brass.png", "technic:brass_ingot", @@ -464,7 +464,7 @@ homedecor.banister_materials = { "dye:white" }, { "wrought_iron", - "wrought iron", + S("wrought iron"), "homedecor_generic_metal_wrought_iron.png", "homedecor_generic_metal_wrought_iron.png", "homedecor:pole_wrought_iron", @@ -476,9 +476,11 @@ homedecor.banister_materials = { for _, side in ipairs({"diagonal_left", "diagonal_right", "horizontal"}) do - for i in ipairs(homedecor.banister_materials) do + local sidedesc = side:match("^diagonal") and S("diagonal") or S("horizontal") - local name = homedecor.banister_materials[i][1] + for _, mat in ipairs(homedecor.banister_materials) do + + local name, matdesc, tile1, tile2 = unpack(mat) local nodename = "banister_"..name.."_"..side local groups = { snappy = 3, not_in_creative_inventory = 1 } @@ -498,11 +500,11 @@ for _, side in ipairs({"diagonal_left", "diagonal_right", "horizontal"}) do end homedecor.register(nodename, { - description = S("Banister for Stairs ("..homedecor.banister_materials[i][2]..", "..side..")"), + description = S("Banister for Stairs (@1, @2)", matdesc, sidedesc), mesh = "homedecor_banister_"..side..".obj", tiles = { - homedecor.banister_materials[i][3], - homedecor.banister_materials[i][4] + tile1, + tile2, }, inventory_image = "homedecor_banister_"..name.."_inv.png", groups = groups, @@ -571,7 +573,7 @@ homedecor.register("spiral_staircase", { if #minetest.find_nodes_in_area(minp, maxp, "air") < 11 then minetest.set_node(pos, {name = "air"}) - minetest.chat_send_player(placer:get_player_name(), "This object takes up a 2x3x2 block of space (the bottom step goes in the forward-right corner), and some of it is occupied!" ) + minetest.chat_send_player(placer:get_player_name(), S("not enough space")) return true end diff --git a/homedecor/office.lua b/homedecor/office.lua index f0229e13..aa8d5537 100644 --- a/homedecor/office.lua +++ b/homedecor/office.lua @@ -1,7 +1,7 @@ local S = homedecor.gettext homedecor.register("filing_cabinet", { - description = S("Filing Cabinet"), + description = S("Filing cabinet"), mesh = "homedecor_filing_cabinet.obj", tiles = { homedecor.plain_wood, diff --git a/homedecor/roofing.lua b/homedecor/roofing.lua index df06bd9b..eca1a10e 100644 --- a/homedecor/roofing.lua +++ b/homedecor/roofing.lua @@ -1,5 +1,8 @@ + local S = homedecor.gettext +local function N_(x) return x end + minetest.register_node("homedecor:skylight", { description = S("Glass Skylight"), drawtype = "raillike", @@ -25,9 +28,9 @@ minetest.register_node("homedecor:skylight_frosted", { selection_box = homedecor.nodebox.slab_y(0.1), }) -for _, s in pairs({"asphalt", "terracotta", "wood"}) do +for _, s in pairs({ N_("asphalt"), N_("terracotta"), N_("wood") }) do minetest.register_node("homedecor:shingles_"..s, { - description = S("Shingles ("..s..")"), + description = S("Shingles (@1)", S(s)), drawtype = "raillike", tiles = { "homedecor_shingles_"..s..".png" }, wield_image = "homedecor_shingles_"..s..".png", @@ -81,7 +84,7 @@ homedecor.register_outer_corner = function(modname, subname, groups, slope_image end minetest.register_node(modname..":shingle_outer_corner_" .. subname, { - description = S(description.. " (outer corner)"), + description = S("@1 (outer corner)", description), drawtype = "mesh", mesh = "homedecor_slope_outer_corner.obj", tiles = tiles, @@ -103,7 +106,7 @@ homedecor.register_inner_corner = function(modname, subname, groups, slope_image end minetest.register_node(modname..":shingle_inner_corner_" .. subname, { - description = S(description.. " (inner corner)"), + description = S("@1 (inner corner)", description), drawtype = "mesh", mesh = "homedecor_slope_inner_corner.obj", tiles = tiles, @@ -124,7 +127,7 @@ homedecor.register_slope = function(modname, subname, recipeitem, groups, slope_ end minetest.register_node(modname..":shingle_side_" .. subname, { - description = S(description), + description = description, drawtype = "mesh", mesh = "homedecor_slope.obj", tiles = tiles, @@ -259,19 +262,19 @@ end homedecor.register_roof("homedecor", "wood", { snappy = 3 }, { "homedecor_shingles_wood.png" }, - "Wood Shingles" + S("Wood Shingles") ) homedecor.register_roof("homedecor", "asphalt", { snappy = 3 }, { "homedecor_shingles_asphalt.png" }, - "Asphalt Shingles" + S("Asphalt Shingles") ) homedecor.register_roof("homedecor", "terracotta", { snappy = 3 }, { "homedecor_shingles_terracotta.png" }, - "Terracotta Shingles" + S("Terracotta Shingles") ) -- register just the slopes @@ -280,33 +283,33 @@ homedecor.register_slope("homedecor", "wood", "homedecor:shingles_wood", { snappy = 3 }, { "homedecor_shingles_wood.png" }, - "Wood Shingles" + S("Wood Shingles") ) homedecor.register_slope("homedecor", "asphalt", "homedecor:shingles_asphalt", { snappy = 3 }, { "homedecor_shingles_asphalt.png" }, - "Asphalt Shingles" + S("Asphalt Shingles") ) homedecor.register_slope("homedecor", "terracotta", "homedecor:shingles_terracotta", { snappy = 3 }, { "homedecor_shingles_terracotta.png" }, - "Terracotta Shingles" + S("Terracotta Shingles") ) homedecor.register_slope("homedecor", "glass", "homedecor:shingles_glass", { snappy = 3 }, { "homedecor_shingles_glass.png", "homedecor_shingles_wood.png" }, - "Glass Shingles" + S("Glass Shingles") ) homedecor.register("chimney", { - description = "Chimney", + description = S("Chimney"), mesh = "homedecor_chimney.obj", tiles = { "homedecor_chimney_tb.png", diff --git a/homedecor/shutters.lua b/homedecor/shutters.lua index c904d697..a16a02b9 100644 --- a/homedecor/shutters.lua +++ b/homedecor/shutters.lua @@ -3,17 +3,17 @@ local S = homedecor.gettext local shutters = { - {"oak", "Unpainted oak", "#bf8a51:200" }, - {"mahogany", "Mahogany", "#822606:200" }, - {"red", "Red", "#d00000:150" }, - {"yellow", "Yellow", "#ffff00:150" }, - {"forest_green", "Forest green", "#006000:150" }, - {"light_blue", "Light blue", "#1963c7:150" }, - {"violet", "Violet", "#6000ff:150" }, - {"black", "Black", "#000000:200" }, - {"dark_grey", "Dark grey", "#202020:200" }, - {"grey", "Grey", "#c0c0c0:150" }, - {"white", "White", "#ffffff:150" }, + {"oak", S("unpainted oak"), "#bf8a51:200" }, + {"mahogany", S("mahogany"), "#822606:200" }, + {"red", S("red"), "#d00000:150" }, + {"yellow", S("yellow"), "#ffff00:150" }, + {"forest_green", S("forest green"), "#006000:150" }, + {"light_blue", S("light blue"), "#1963c7:150" }, + {"violet", S("violet"), "#6000ff:150" }, + {"black", S("black"), "#000000:200" }, + {"dark_grey", S("dark grey"), "#202020:200" }, + {"grey", S("grey"), "#c0c0c0:150" }, + {"white", S("white"), "#ffffff:150" }, } local shutter_cbox = { @@ -23,10 +23,8 @@ local shutter_cbox = { wall_side = { -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 } } -for i in ipairs(shutters) do - local name = shutters[i][1] - local desc = shutters[i][2] - local hue = shutters[i][3] +for _, s in ipairs(shutters) do + local name, desc, hue = unpack(s) local tile = "homedecor_window_shutter.png^[colorize:"..hue local inv = "homedecor_window_shutter_inv.png^[colorize:"..hue @@ -34,7 +32,7 @@ for i in ipairs(shutters) do homedecor.register("shutter_"..name, { mesh = "homedecor_window_shutter.obj", tiles = { tile }, - description = S("Wooden Shutter ("..desc..")"), + description = S("Wooden Shutter (@1)", desc), inventory_image = inv, wield_image = inv, paramtype2 = "wallmounted", diff --git a/homedecor/tables.lua b/homedecor/tables.lua index 481221c9..0fbb1e9e 100644 --- a/homedecor/tables.lua +++ b/homedecor/tables.lua @@ -3,8 +3,16 @@ local S = homedecor.gettext -- Various kinds of tables local materials = { - {"glass","Glass"}, - {"wood","Wood"} + { "glass", + S("Small square glass table"), + S("Small round glass table"), + S("Large glass table piece"), + }, + { "wood", + S("Small square wooden table"), + S("Small round wooden table"), + S("Large wooden table piece"), + } } local tables_cbox = { @@ -12,9 +20,8 @@ local tables_cbox = { fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 }, } -for i in ipairs(materials) do - local m = materials[i][1] - local d = materials[i][2] +for i, mat in ipairs(materials) do + local m, small_s, small_r, large = unpack(mat) local s if m == "glass" then @@ -26,7 +33,7 @@ for i in ipairs(materials) do -- small square tables homedecor.register(m.."_table_small_square", { - description = S(d.." Table (Small, Square)"), + description = small_s, mesh = "homedecor_table_small_square.obj", tiles = { 'homedecor_'..m..'_table_small_square.png' }, wield_image = 'homedecor_'..m..'_table_small_square_inv.png', @@ -41,7 +48,7 @@ for i in ipairs(materials) do -- small round tables homedecor.register(m..'_table_small_round', { - description = S(d.." Table (Small, Round)"), + description = small_r, mesh = "homedecor_table_small_round.obj", tiles = { "homedecor_"..m.."_table_small_round.png" }, wield_image = 'homedecor_'..m..'_table_small_round_inv.png', @@ -56,7 +63,7 @@ for i in ipairs(materials) do -- Large square table pieces homedecor.register(m..'_table_large', { - description = S(d.." Table Piece (large)"), + description = large, tiles = { 'homedecor_'..m..'_table_large_tb.png', 'homedecor_'..m..'_table_large_tb.png', @@ -154,15 +161,20 @@ homedecor.register("utility_table_top", { -- Various kinds of table legs -materials = {"brass", "wrought_iron"} +-- local above +materials = { + { "brass", S("brass") }, + { "wrought_iron", S("wrought iron") }, +} for _, t in ipairs(materials) do -homedecor.register("table_legs_"..t, { - description = S("Table Legs ("..t..")"), +local name, desc = unpack(t) +homedecor.register("table_legs_"..name, { + description = S("Table Legs (@1)", desc), drawtype = "plantlike", - tiles = {"homedecor_table_legs_"..t..".png"}, - inventory_image = "homedecor_table_legs_"..t..".png", - wield_image = "homedecor_table_legs_"..t..".png", + tiles = {"homedecor_table_legs_"..name..".png"}, + inventory_image = "homedecor_table_legs_"..name..".png", + wield_image = "homedecor_table_legs_"..name..".png", walkable = false, groups = {snappy=3}, sounds = default.node_sound_wood_defaults(), diff --git a/homedecor/window_treatments.lua b/homedecor/window_treatments.lua index 1b7f9157..cefd42ad 100644 --- a/homedecor/window_treatments.lua +++ b/homedecor/window_treatments.lua @@ -1,7 +1,10 @@ + local S = homedecor.gettext +local function N_(x) return x end + homedecor.register("window_quartered", { - description = "Window (quartered)", + description = S("Window (quartered)"), tiles = { "homedecor_window_sides.png", "homedecor_window_sides.png", @@ -32,7 +35,7 @@ homedecor.register("window_quartered", { }) homedecor.register("window_plain", { - description = "Window (plain)", + description = S("Window (plain)"), tiles = { "homedecor_window_sides.png", "homedecor_window_sides.png", @@ -66,7 +69,7 @@ local wb1_cbox = { } homedecor.register("blinds_thick", { - description = "Window Blinds (thick)", + description = S("Window Blinds (thick)"), mesh = "homedecor_windowblind_thick.obj", inventory_image = "homedecor_windowblind_thick_inv.png", tiles = { @@ -85,7 +88,7 @@ local wb2_cbox = { } homedecor.register("blinds_thin", { - description = "Window Blinds (thin)", + description = S("Window Blinds (thin)"), mesh = "homedecor_windowblind_thin.obj", inventory_image = "homedecor_windowblind_thin_inv.png", tiles = { @@ -99,21 +102,19 @@ homedecor.register("blinds_thin", { }) local curtaincolors = { - { "red", "#ad2323e0:175" }, - { "green", "#27a927e0:175" }, - { "blue", "#2626c6e0:175" }, - { "white", "#ffffffe0:175" }, - { "pink", "#ff8fb7e0:175" }, - { "violet", "#7f29d7e0:175" }, + { N_("red"), "#ad2323e0:175" }, + { N_("green"), "#27a927e0:175" }, + { N_("blue"), "#2626c6e0:175" }, + { N_("white"), "#ffffffe0:175" }, + { N_("pink"), "#ff8fb7e0:175" }, + { N_("violet"), "#7f29d7e0:175" }, } -for c in ipairs(curtaincolors) do - local color = curtaincolors[c][1] - local hue = curtaincolors[c][2] - local color_d = S(curtaincolors[c][1]) +for _, c in ipairs(curtaincolors) do + local color, hue = unpack(c) homedecor.register("curtain_"..color, { - description = S("Curtains (%s)"):format(color_d), + description = S("Curtains (@1)", S(color)), tiles = { "homedecor_curtain.png^[colorize:"..hue }, inventory_image = "homedecor_curtain.png^[colorize:"..hue, wield_image = "homedecor_curtain.png^[colorize:"..hue, @@ -124,10 +125,10 @@ for c in ipairs(curtaincolors) do sounds = default.node_sound_leaves_defaults(), paramtype2 = 'wallmounted', selection_box = { type = "wallmounted" }, - -- Open the curtains on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) local topnode = minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z}) if string.find(topnode.name, "homedecor:curtainrod") then + -- Open the curtains local fdir = node.param2 minetest.set_node(pos, { name = "homedecor:curtain_open_"..color, param2 = fdir }) end @@ -136,7 +137,7 @@ for c in ipairs(curtaincolors) do }) homedecor.register("curtain_open_"..color, { - description = S("Curtains (%s)"):format(color_d), + description = S("Curtains (@1)", S(color)), tiles = { "homedecor_curtain_open.png^[colorize:"..hue }, inventory_image = "homedecor_curtain_open.png^[colorize:"..hue, wield_image = "homedecor_curtain_open.png^[colorize:"..hue, @@ -147,10 +148,10 @@ for c in ipairs(curtaincolors) do sounds = default.node_sound_leaves_defaults(), paramtype2 = 'wallmounted', selection_box = { type = "wallmounted" }, - -- Close the curtains on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) local topnode = minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z}) if string.find(topnode.name, "homedecor:curtainrod") then + -- Close the curtains local fdir = node.param2 minetest.set_node(pos, { name = "homedecor:curtain_"..color, param2 = fdir }) end @@ -161,19 +162,17 @@ for c in ipairs(curtaincolors) do end local mats = { - { "brass", "Brass", "homedecor_generic_metal_brass.png" }, - { "wrought_iron", "Wrought iron", "homedecor_generic_metal_wrought_iron.png" }, - { "wood", "Wooden", "default_wood.png" } + { "brass", S("brass"), "homedecor_generic_metal_brass.png" }, + { "wrought_iron", S("wrought iron"), "homedecor_generic_metal_wrought_iron.png" }, + { "wood", S("wood"), "default_wood.png" } } -for i in ipairs(mats) do - local material = mats[i][1] - local mat_name = mats[i][2] - local texture = mats[i][3] +for _, m in ipairs(mats) do + local material, mat_name, texture = unpack(m) homedecor.register("curtainrod_"..material, { tiles = { texture }, inventory_image = "homedecor_curtainrod_"..material.."_inv.png", - description = "Curtain Rod ("..mat_name..")", + description = S("Curtain Rod (@1)", mat_name), groups = { snappy = 3 }, node_box = { type = "fixed", @@ -187,7 +186,7 @@ for i in ipairs(mats) do end homedecor.register("window_flowerbox", { - description = "Window flowerbow", + description = S("Window flowerbox"), tiles = { "homedecor_flowerbox_top.png", "homedecor_flowerbox_bottom.png", @@ -207,7 +206,7 @@ homedecor.register("window_flowerbox", { }) homedecor.register("stained_glass", { - description = "Stained Glass", + description = S("Stained Glass"), tiles = {"homedecor_stained_glass.png"}, inventory_image = "homedecor_stained_glass.png", groups = {snappy=3},