summaryrefslogtreecommitdiff
path: root/moreblocks
diff options
context:
space:
mode:
Diffstat (limited to 'moreblocks')
-rw-r--r--moreblocks/CHANGELOG.md7
-rw-r--r--moreblocks/README.md4
-rw-r--r--moreblocks/circular_saw.lua48
-rw-r--r--moreblocks/config.lua2
-rw-r--r--moreblocks/locale/de.po286
-rw-r--r--moreblocks/locale/de.txt66
-rw-r--r--moreblocks/locale/es.po282
-rw-r--r--moreblocks/locale/es.txt65
-rw-r--r--moreblocks/locale/fr.po287
-rw-r--r--moreblocks/locale/fr.txt72
-rw-r--r--moreblocks/locale/it.po286
-rw-r--r--moreblocks/locale/it.txt70
-rw-r--r--moreblocks/locale/ru.po290
-rw-r--r--moreblocks/locale/template.pot284
-rw-r--r--moreblocks/locale/template.txt64
-rw-r--r--moreblocks/nodes.lua9
-rw-r--r--moreblocks/ownership.lua2
-rw-r--r--moreblocks/stairsplus/common.lua41
18 files changed, 1787 insertions, 378 deletions
diff --git a/moreblocks/CHANGELOG.md b/moreblocks/CHANGELOG.md
index aa9942c..0c94859 100644
--- a/moreblocks/CHANGELOG.md
+++ b/moreblocks/CHANGELOG.md
@@ -7,8 +7,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased]
+## [1.3.0] - 2019-03-23
+
### Changed
+- Stairs+ are now displayed in the creative inventory by default.
+- Localization files now use the gettext `.po` format.
- Updated intllib support to avoid using deprecated functions.
### Fixed
@@ -68,6 +72,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Initial versioned release.
-[Unreleased]: https://github.com/minetest-mods/moreblocks/compare/v1.2.0...HEAD
+[Unreleased]: https://github.com/minetest-mods/moreblocks/compare/v1.3.0...HEAD
+[1.3.0]: https://github.com/minetest-mods/moreblocks/compare/v1.2.0...v1.3.0
[1.2.0]: https://github.com/minetest-mods/moreblocks/compare/v1.1.0...v1.2.0
[1.1.0]: https://github.com/minetest-mods/moreblocks/compare/v1.0.0...v1.1.0
diff --git a/moreblocks/README.md b/moreblocks/README.md
index 4e58814..45b5af6 100644
--- a/moreblocks/README.md
+++ b/moreblocks/README.md
@@ -60,9 +60,9 @@ on that line.
## Version compatibility
-More Blocks is currently primarily tested with Minetest 0.4.16.
+More Blocks is currently primarily tested with Minetest 0.4.17.
It may or may not work with newer or older versions. Issues arising in older
-versions than 0.4.16 will generally not be fixed.
+versions than 0.4.17 will generally not be fixed.
## License
diff --git a/moreblocks/circular_saw.lua b/moreblocks/circular_saw.lua
index 1dce479..9395a2e 100644
--- a/moreblocks/circular_saw.lua
+++ b/moreblocks/circular_saw.lua
@@ -6,6 +6,7 @@ Licensed under the zlib license. See LICENSE.md for more information.
--]]
local S = moreblocks.S
+local F = minetest.formspec_escape
circular_saw = {}
@@ -126,15 +127,20 @@ end
function circular_saw:reset(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
+ local owned_by = meta:get_string("owner")
+
+ if owned_by and owned_by ~= "" then
+ owned_by = (" (%s)"):format(S("owned by @1", meta:get_string("owner")))
+ else
+ owned_by = ""
+ end
inv:set_list("input", {})
inv:set_list("micro", {})
inv:set_list("output", {})
- meta:set_int("anz", 0)
- meta:set_string("infotext",
- S("Circular Saw is empty (owned by %s)")
- :format(meta:get_string("owner") or ""))
+ meta:set_int("anz", 0)
+ meta:set_string("infotext", S("Circular Saw is empty") .. owned_by)
end
@@ -164,9 +170,17 @@ function circular_saw:update_inventory(pos, amount)
end
local node_name = stack:get_name() or ""
+ local node_def = stack:get_definition()
local name_parts = circular_saw.known_nodes[node_name] or ""
local modname = name_parts[1] or ""
local material = name_parts[2] or ""
+ local owned_by = meta:get_string("owner")
+
+ if owned_by and owned_by ~= "" then
+ owned_by = (" (%s)"):format(S("owned by @1", meta:get_string("owner")))
+ else
+ owned_by = ""
+ end
inv:set_list("input", { -- Display as many full blocks as possible:
node_name.. " " .. math.floor(amount / 8)
@@ -191,8 +205,10 @@ function circular_saw:update_inventory(pos, amount)
meta:set_int("anz", amount)
meta:set_string("infotext",
- S("Circular Saw is working on %s (owned by %s)")
- :format(material, meta:get_string("owner") or ""))
+ S("Circular Saw is working on @1",
+ node_def and node_def.description or material
+ ) .. owned_by
+ )
end
@@ -351,14 +367,14 @@ function circular_saw.on_construct(pos)
local fancy_inv = default.gui_bg..default.gui_bg_img..default.gui_slots
meta:set_string(
"formspec", "size[11,10]"..fancy_inv..
- "label[0,0;" ..S("Input\nmaterial").. "]" ..
+ "label[0,0;" ..F(S("Input\nmaterial")).. "]" ..
"list[current_name;input;1.5,0;1,1;]" ..
- "label[0,1;" ..S("Left-over").. "]" ..
+ "label[0,1;" ..F(S("Left-over")).. "]" ..
"list[current_name;micro;1.5,1;1,1;]" ..
- "label[0,2;" ..S("Recycle\noutput").. "]" ..
+ "label[0,2;" ..F(S("Recycle\noutput")).. "]" ..
"list[current_name;recycle;1.5,2;1,1;]" ..
- "field[0.3,3.5;1,1;max_offered;" ..S("Max").. ":;${max_offered}]" ..
- "button[1,3.2;1,1;Set;" ..S("Set").. "]" ..
+ "field[0.3,3.5;1,1;max_offered;" ..F(S("Max")).. ":;${max_offered}]" ..
+ "button[1,3.2;1,1;Set;" ..F(S("Set")).. "]" ..
"list[current_name;output;2.8,0;8,6;]" ..
"list[current_player;main;1.5,6.25;8,4;]" ..
"listring[current_name;output]" ..
@@ -427,10 +443,14 @@ minetest.register_node("moreblocks:circular_saw", {
after_place_node = function(pos, placer)
local meta = minetest.get_meta(pos)
local owner = placer and placer:get_player_name() or ""
+ local owned_by = owner
+
+ if owner ~= "" then
+ owned_by = (" (%s)"):format(S("owned by @1", owner))
+ end
+
meta:set_string("owner", owner)
- meta:set_string("infotext",
- S("Circular Saw is empty (owned by %s)")
- :format(owner))
+ meta:set_string("infotext", S("Circular Saw is empty") .. owned_by)
end,
-- The amount of items offered per shape can be configured:
diff --git a/moreblocks/config.lua b/moreblocks/config.lua
index a855d5c..3a7af49 100644
--- a/moreblocks/config.lua
+++ b/moreblocks/config.lua
@@ -26,4 +26,4 @@ local function setting(settingtype, name, default)
end
-- Show stairs/slabs/panels/microblocks in creative inventory (true or false):
-setting("bool", "stairsplus_in_creative_inventory", false)
+setting("bool", "stairsplus_in_creative_inventory", true)
diff --git a/moreblocks/locale/de.po b/moreblocks/locale/de.po
new file mode 100644
index 0000000..4de81bf
--- /dev/null
+++ b/moreblocks/locale/de.po
@@ -0,0 +1,286 @@
+# German translation for More Blocks.
+# Copyright © 2011-2019 Hugo Locurcio and contributors
+# This file is distributed under the same license as the More Blocks package.
+# Xanthin, 2014.
+# CodeXP <codexp@gmx.net>, 2018.
+msgid ""
+msgstr ""
+"Project-Id-Version: More Blocks\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-07-13 12:37+0200\n"
+"PO-Revision-Date: \n"
+"Last-Translator: CodeXP <codexp@gmx.net>\n"
+"Language-Team: \n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: circular_saw.lua
+msgid "Circular Saw"
+msgstr "Kreissäge"
+
+#: circular_saw.lua
+msgid ""
+"Input\n"
+"material"
+msgstr ""
+"Ausgangs-\n"
+"material"
+
+#: circular_saw.lua
+msgid "Left-over"
+msgstr "Rest"
+
+#: circular_saw.lua
+msgid "Max"
+msgstr "Anzahl"
+
+#: circular_saw.lua
+msgid ""
+"Recycle\n"
+"output"
+msgstr ""
+"Wiederver-\n"
+"werten"
+
+#: circular_saw.lua
+msgid "Set"
+msgstr "Ok"
+
+#: circular_saw.lua
+msgid "owned by @1"
+msgstr "gehört @1"
+
+#: circular_saw.lua
+msgid "Circular Saw is empty"
+msgstr "Kreissäge ist leer"
+
+#: circular_saw.lua
+msgid "Circular Saw is working on @1"
+msgstr "Kreissäge arbeitet mit @1"
+
+#: init.lua
+msgid "[moreblocks] loaded."
+msgstr "[moreblocks] geladen."
+
+#: nodes.lua
+msgid "Deprecated"
+msgstr "veraltet"
+
+#: nodes.lua
+msgid "All-faces Acacia Tree"
+msgstr "allseitiger Akazienbaumstamm"
+
+#: nodes.lua
+msgid "All-faces Aspen Tree"
+msgstr "allseitiger Espenbaumstamm"
+
+#: nodes.lua
+msgid "All-faces Jungle Tree"
+msgstr "allseitiger Tropenbaumstamm"
+
+#: nodes.lua
+msgid "All-faces Pine Tree"
+msgstr "allseitiger Kieferbaumstamm"
+
+#: nodes.lua
+msgid "All-faces Tree"
+msgstr "allseitiger Baumstamm"
+
+#: nodes.lua
+msgid "Cactus Brick"
+msgstr "Kaktusziegel"
+
+#: nodes.lua
+msgid "Cactus Checker"
+msgstr "Kaktus-Mosaik"
+
+#: nodes.lua
+msgid "Centered Wooden Tile"
+msgstr "Holzfliese mittig"
+
+#: nodes.lua
+msgid "Checker Stone Tile"
+msgstr "Stein-Mosaik"
+
+#: nodes.lua
+msgid "Circle Stone Bricks"
+msgstr "Kreissteinziegel"
+
+#: nodes.lua
+msgid "Clean Glass"
+msgstr "Klares Glas"
+
+#: nodes.lua
+msgid "Coal Checker"
+msgstr "Kohlen-Mosaik"
+
+#: nodes.lua
+msgid "Coal Glass"
+msgstr "Kohleglas"
+
+#: nodes.lua
+msgid "Coal Stone"
+msgstr "Kohlestein"
+
+#: nodes.lua
+msgid "Coal Stone Bricks"
+msgstr "Kohlesteinziegel"
+
+#: nodes.lua
+msgid "Compressed Cobblestone"
+msgstr "Gepresster Kopfsteinpflaster"
+
+#: nodes.lua
+msgid "Compressed Dirt"
+msgstr "Gepresste Erde"
+
+#: nodes.lua
+msgid "Copper Patina Block"
+msgstr "Kupfer Edelrostblock"
+
+#: nodes.lua
+msgid "Empty Shelf"
+msgstr "Leeres Regal"
+
+#: nodes.lua
+msgid "Full Wooden Tile"
+msgstr "Vollholzfliese"
+
+#: nodes.lua
+msgid "Glow Glass"
+msgstr "Leuchtglas"
+
+#: nodes.lua
+msgid "Iron Checker"
+msgstr "Metall-Mosaik"
+
+#: nodes.lua
+msgid "Iron Glass"
+msgstr "metallisiertes Glas"
+
+#: nodes.lua
+msgid "Iron Stone"
+msgstr "Eisenstein"
+
+#: nodes.lua
+msgid "Iron Stone Bricks"
+msgstr "Eisensteinziegel"
+
+#: nodes.lua
+msgid "Plankstone"
+msgstr "Brettstein"
+
+#: nodes.lua
+msgid "Rope"
+msgstr "Seil"
+
+#: nodes.lua
+msgid "Split Stone Tile"
+msgstr "Geteilte Steinfliese"
+
+#: nodes.lua
+msgid "Stone Bricks"
+msgstr "Steinziegel"
+
+#: nodes.lua
+msgid "Stone Tile"
+msgstr "Steinfliese"
+
+#: nodes.lua
+msgid "Super Glow Glass"
+msgstr "Superleuchtglas"
+
+#: nodes.lua
+msgid "Sweeper"
+msgstr "Besen"
+
+#: nodes.lua
+msgid "Tar"
+msgstr "Teer"
+
+#: nodes.lua
+msgid "Trap Desert Stone"
+msgstr "Wüstensteinfalle"
+
+#: nodes.lua
+msgid "Trap Glass"
+msgstr "Glasfalle"
+
+#: nodes.lua
+msgid "Trap Glow Glass"
+msgstr "Leuchtglasfalle"
+
+#: nodes.lua
+msgid "Trap Obsidian"
+msgstr "Obsidianfalle"
+
+#: nodes.lua
+msgid "Trap Obsidian Glass"
+msgstr "Obsidianglasfalle"
+
+#: nodes.lua
+msgid "Trap Sandstone"
+msgstr "Sandsteinfalle"
+
+#: nodes.lua
+msgid "Trap Stone"
+msgstr "Steinfalle"
+
+#: nodes.lua
+msgid "Trap Super Glow Glass"
+msgstr "Superleuchtglasfalle"
+
+#: nodes.lua
+msgid "Wooden Tile"
+msgstr "Holzfliese"
+
+#: nodes.lua
+msgid "Offset Wooden Tile"
+msgstr "Holzfliese versetzt"
+
+#: nodes.lua
+msgid "Downwards Wooden Tile"
+msgstr "Holzfliese unten"
+
+#: nodes.lua
+msgid "Leftwards Wooden Tile"
+msgstr "Holzfliese links"
+
+#: nodes.lua
+msgid "Rightwards Wooden Tile"
+msgstr "Holzfliese rechts"
+
+#: ownership.lua
+msgid "Sorry, @1 owns that spot."
+msgstr "Tut mir leid, dieser Bereich gehört @1."
+
+#: ownership.lua
+msgid "someone"
+msgstr "jemand"
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Microblock"
+msgstr "%smikroblock"
+
+#: stairsplus/common.lua stairsplus/slabs.lua
+#, lua-format
+msgid "%s Slab"
+msgstr "%splatte"
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Slope"
+msgstr "%sneigung"
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Panel"
+msgstr "%spaneel"
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Stairs"
+msgstr "%streppe"
diff --git a/moreblocks/locale/de.txt b/moreblocks/locale/de.txt
deleted file mode 100644
index 03b71f6..0000000
--- a/moreblocks/locale/de.txt
+++ /dev/null
@@ -1,66 +0,0 @@
-# Translation by Xanthin
-
-###init.lua###
-[moreblocks] loaded. = [moreblocks] geladen.
-
-###nodes.lua###
-Jungle Wood Fence = Tropenholzzaun
-Empty Bookshelf = Leeres Buecherregal
-Clean Glass = Klares Glas
-Plankstone = Brettstein
-Wooden Tile = Holzfliese
-Full Wooden Tile = Vollholzfliese
-Centered Wooden Tile = Holzfliese mittig
-Up Wooden Tile = Holzfliese oben
-Down Wooden Tile = Holzfliese unten
-Left Wooden Tile = Holzfliese links
-Right Wooden Tile = Holzfliese rechts
-Circle Stone Bricks = Kreissteinziegel
-Stone Tile = Steinfliese
-Split Stone Tile = Geteilte Steinfliese
-Glow Glass = Leuchtglas
-Super Glow Glass = Superleuchtglas
-Coal Glass = Kohleglas
-Iron Glass = Eisenglas
-Coal Checker = Karierte Kohle
-Iron Checker = Kariertes Eisen
-Trap Stone = Steinfalle
-Trap Glass = Glasfalle
-Trap Glow Glass = Leuchtglasfalle
-Trap Super Glow Glass = Superleuchtglasfalle
-Coal Stone = Kohlestein
-Iron Stone = Eisenstein
-Coal Stone Bricks = Kohlesteinziegel
-Iron Stone Bricks = Eisensteinziegel
-Cactus Checker = Karierter Kaktus
-Cactus Brick = Kaktusziegel
-Sweeper = Besen
-Jungle Stick = Tropenholzstock
-Rope = Seil
-All-faces Tree = Baumscheibenstamm
-
-###circular_saw.lua###
-Circular Saw = Kreissaege
-Circular saw, empty (owned by %s) = Kreissaege, leer (gehoert %s)
-Circular saw, working with %s (owned by %s) = Kreissaege, arbeitet mit %s (gehoert %s)
-Circular saw, empty = Kreissaege, leer
-Circular saw is empty (owned by %s) = Kreissaege ist leer (gehoert %s)
-
-Input\nmaterial = Ausgangs-\nmaterial
-Left-over = Rest
-Max = Anzahl
-Set = Ok
-Recycle\noutput = Wiederver-\nwerten
-
-###./stairsplus/*###
-%s Stairs = %streppe
-%s Slab = %sstufe
-%s Panel = %spaneel
-%s Microblock = %smikroblock
-
-%s Pane = %sscheibe
-%s Fence = %szaun
-
-###ownership.lua###
-someone = jemand
-Sorry, %s owns that spot. = Tut mir leid, %s gehoert diese Stelle.
diff --git a/moreblocks/locale/es.po b/moreblocks/locale/es.po
new file mode 100644
index 0000000..0c3fd0e
--- /dev/null
+++ b/moreblocks/locale/es.po
@@ -0,0 +1,282 @@
+# Spanish translation for More Blocks.
+# Copyright © 2011-2019 Hugo Locurcio and contributors
+# This file is distributed under the same license as the More Blocks package.
+# kaeza, 2013.
+# CodeXP <codexp@gmx.net>, 2018.
+msgid ""
+msgstr ""
+"Project-Id-Version: More Blocks\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-07-13 12:37+0200\n"
+"PO-Revision-Date: \n"
+"Last-Translator: CodeXP <codexp@gmx.net>\n"
+"Language-Team: \n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: circular_saw.lua
+msgid "Circular Saw"
+msgstr ""
+
+#: circular_saw.lua
+msgid ""
+"Input\n"
+"material"
+msgstr ""
+
+#: circular_saw.lua
+msgid "Left-over"
+msgstr ""
+
+#: circular_saw.lua
+msgid "Max"
+msgstr ""
+
+#: circular_saw.lua
+msgid ""
+"Recycle\n"
+"output"
+msgstr ""
+
+#: circular_saw.lua
+msgid "Set"
+msgstr ""
+
+#: circular_saw.lua
+msgid "owned by @1"
+msgstr ""
+
+#: circular_saw.lua
+msgid "Circular Saw is empty"
+msgstr ""
+
+#: circular_saw.lua
+msgid "Circular Saw is working on @1"
+msgstr ""
+
+#: init.lua
+msgid "[moreblocks] loaded."
+msgstr "[moreblocks] cargado."
+
+#: nodes.lua
+msgid "Deprecated"
+msgstr ""
+
+#: nodes.lua
+msgid "All-faces Acacia Tree"
+msgstr ""
+
+#: nodes.lua
+msgid "All-faces Aspen Tree"
+msgstr ""
+
+#: nodes.lua
+msgid "All-faces Jungle Tree"
+msgstr ""
+
+#: nodes.lua
+msgid "All-faces Pine Tree"
+msgstr ""
+
+#: nodes.lua
+msgid "All-faces Tree"
+msgstr "Tronco de Árbol"
+
+#: nodes.lua
+msgid "Cactus Brick"
+msgstr "Ladrillos de Cactus"
+
+#: nodes.lua
+msgid "Cactus Checker"
+msgstr "Cuadros de Cactus"
+
+#: nodes.lua
+msgid "Centered Wooden Tile"
+msgstr "Parquet Centrado"
+
+#: nodes.lua
+msgid "Checker Stone Tile"
+msgstr ""
+
+#: nodes.lua
+msgid "Circle Stone Bricks"
+msgstr "Bloques de Piedra Circulares"
+
+#: nodes.lua
+msgid "Clean Glass"
+msgstr "Cristal Limpio"
+
+#: nodes.lua
+msgid "Coal Checker"
+msgstr "Cuadros de Carbón"
+
+#: nodes.lua
+msgid "Coal Glass"
+msgstr "Cristal con Carbón"
+
+#: nodes.lua
+msgid "Coal Stone"
+msgstr "Carbón y Piedra"
+
+#: nodes.lua
+msgid "Coal Stone Bricks"
+msgstr ""
+
+#: nodes.lua
+msgid "Compressed Cobblestone"
+msgstr ""
+
+#: nodes.lua
+msgid "Compressed Dirt"
+msgstr ""
+
+#: nodes.lua
+msgid "Copper Patina Block"
+msgstr ""
+
+#: nodes.lua
+msgid "Empty Shelf"
+msgstr ""
+
+#: nodes.lua
+msgid "Full Wooden Tile"
+msgstr "Parquet Completo"
+
+#: nodes.lua
+msgid "Glow Glass"
+msgstr "Cristal Brillante"
+
+#: nodes.lua
+msgid "Iron Checker"
+msgstr "Cuadros de Hierro"
+
+#: nodes.lua
+msgid "Iron Glass"
+msgstr "Cristal con Hierro"
+
+#: nodes.lua
+msgid "Iron Stone"
+msgstr "Hierro y Piedra"
+
+#: nodes.lua
+msgid "Iron Stone Bricks"
+msgstr ""
+
+#: nodes.lua
+msgid "Plankstone"
+msgstr "Tablones de piedra"
+
+#: nodes.lua
+msgid "Rope"
+msgstr "Soga"
+
+#: nodes.lua
+msgid "Split Stone Tile"
+msgstr "Baldosas de Piedra Partida"
+
+#: nodes.lua
+msgid "Stone Bricks"
+msgstr ""
+
+#: nodes.lua
+msgid "Stone Tile"
+msgstr "Baldosa de Piedra"
+
+#: nodes.lua
+msgid "Super Glow Glass"
+msgstr "Cristal Súper Brillante"
+
+#: nodes.lua
+msgid "Sweeper"
+msgstr "Limpiador"
+
+#: nodes.lua
+msgid "Tar"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Desert Stone"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Glass"
+msgstr "Cristal Trampa"
+
+#: nodes.lua
+msgid "Trap Glow Glass"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Obsidian"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Obsidian Glass"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Sandstone"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Stone"
+msgstr "Piedra Trampa"
+
+#: nodes.lua
+msgid "Trap Super Glow Glass"
+msgstr ""
+
+#: nodes.lua
+msgid "Wooden Tile"
+msgstr "Parquet"
+
+#: nodes.lua
+msgid "Offset Wooden Tile"
+msgstr ""
+
+#: nodes.lua
+msgid "Downwards Wooden Tile"
+msgstr ""
+
+#: nodes.lua
+msgid "Leftwards Wooden Tile"
+msgstr ""
+
+#: nodes.lua
+msgid "Rightwards Wooden Tile"
+msgstr ""
+
+#: ownership.lua
+msgid "Sorry, @1 owns that spot."
+msgstr ""
+
+#: ownership.lua
+msgid "someone"
+msgstr ""
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Microblock"
+msgstr "Microbloque de %s"
+
+#: stairsplus/common.lua stairsplus/slabs.lua
+#, lua-format
+msgid "%s Slab"
+msgstr "Losa de %s"
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Slope"
+msgstr ""
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Panel"
+msgstr "Panel de %s"
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Stairs"
+msgstr "Escalera de %s"
diff --git a/moreblocks/locale/es.txt b/moreblocks/locale/es.txt
deleted file mode 100644
index e3b1eab..0000000
--- a/moreblocks/locale/es.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-###init.lua###
-[moreblocks] loaded. = [moreblocks] cargado.
-
-###nodes.lua###
-Jungle Wood Fence = Valla de madera tropical
-Empty Bookshelf = Librería vacía
-Clean Glass = Cristal límpido
-Plankstone = Piedra en planchas
-Wooden Tile = Caldosa de madera
-Full Wooden Tile = Parquet completo
-Centered Wooden Tile = Parquet centrado
-Up Wooden Tile = Parquet superior
-Down Wooden Tile = Parquet inferior
-Left Wooden Tile = Parquet izquierdo
-Right Wooden Tile = Parquet derecho
-Circle Stone Bricks = Ladrillo de piedra circulares
-Stone Tile = Baldosa de piedra
-Split Stone Tile = Baldosa de piedra partida
-Glow Glass = Cristal brillante
-Super Glow Glass = Cristal súper brillante
-Coal Glass = Cristal armado de carbón
-Iron Glass = Cristal armado de hierro
-Coal Checker = Mosaico de carbón
-Iron Checker = Mosaico de hierro
-Trap Stone = Trampa de piedra
-Trap Glass = Trampa de cristal
-Trap Glow Glass = Trampa de cristal brillante
-Trap Super Glow Glass = Trampa de cristal súper brillante
-Coal Stone = Piedra con carbón
-Iron Stone = Piedra con hierro
-Coal Stone Bricks = Ladrillos de piedra con carbón
-Iron Stone Bricks = Ladrillos de piedra con hierro
-Cactus Checker = Mosaico de cactus
-Cactus Brick = Ladrillo de cactus
-Sweeper = Limpiador
-Jungle Stick = Palo de madera tropical
-Rope = Cuerda
-All-faces Tree = madera
-
-###circular_saw.lua###
-Circular Saw = Sierra circular
-Circular saw, empty (owned by %s) = Sierra circular, vacía (propiedad de %s)
-Circular saw, working with %s (owned by %s) = Sierra circular, trabajando con %s (propiedad de %s)
-Circular saw, empty = Sierra circular, vacía
-Circular saw is empty (owned by %s) = La sierra circular está vacía (propiedad de %s)
-
-Input\nmaterial = Entrada de\nmaterial:
-Left-over = Remanente:
-Max = Máx.
-Set = Guardar
-Recycle\noutput = Salida de\nreciclaje:
-
-###ownership.lua###
-someone = alguien
-Sorry, %s owns that spot. = Lo siento, esto pertenece a %s.
-
-###./stairsplus/*###
-%s Stairs = Escaleras de %s
-%s Slab = Losa de %s
-%s Panel = Panel de %s
-%s Microblock = Microbloque de %s
-%s Slope = Biselado de %s
-
-%s Pane = Panel de %s
-%s Fence = Valla de %s
diff --git a/moreblocks/locale/fr.po b/moreblocks/locale/fr.po
new file mode 100644
index 0000000..3752604
--- /dev/null
+++ b/moreblocks/locale/fr.po
@@ -0,0 +1,287 @@
+# French translation for More Blocks.
+# Copyright © 2011-2019 Hugo Locurcio and contributors
+# This file is distributed under the same license as the More Blocks package.
+# Hugo Locurcio <hugo.locurcio@hugo.pro>, 2013-2019.
+# Jat15, 2013.
+# CodeXP <codexp@gmx.net>, 2018.
+msgid ""
+msgstr ""
+"Project-Id-Version: More Blocks\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-07-13 12:37+0200\n"
+"PO-Revision-Date: 2019-03-20 21:10+0100\n"
+"Last-Translator: Hugo Locurcio <hugo.locurcio@hugo.pro>\n"
+"Language-Team: \n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: circular_saw.lua
+msgid "Circular Saw"
+msgstr "Scie circulaire"
+
+#: circular_saw.lua
+msgid ""
+"Input\n"
+"material"
+msgstr ""
+"Matériau\n"
+"d'entrée"
+
+#: circular_saw.lua
+msgid "Left-over"
+msgstr "Reste"
+
+#: circular_saw.lua
+msgid "Max"
+msgstr "Max"
+
+#: circular_saw.lua
+msgid ""
+"Recycle\n"
+"output"
+msgstr ""
+"Sortie à\n"
+"recycler"
+
+#: circular_saw.lua
+msgid "Set"
+msgstr "Définir"
+
+#: circular_saw.lua
+msgid "owned by @1"
+msgstr "propriété de @1"
+
+#: circular_saw.lua
+msgid "Circular Saw is empty"
+msgstr "Scie circulaire vide"
+
+#: circular_saw.lua
+msgid "Circular Saw is working on @1"
+msgstr "Scie circulaire manipulant @1"
+
+#: init.lua
+msgid "[moreblocks] loaded."
+msgstr "[moreblocks] a été chargé."
+
+#: nodes.lua
+msgid "Deprecated"
+msgstr "déprécié"
+
+#: nodes.lua
+msgid "All-faces Acacia Tree"
+msgstr "Tronc d'arbre d'acacia (toutes faces)"
+
+#: nodes.lua
+msgid "All-faces Aspen Tree"
+msgstr "Tronc d'arbre de peuplier (toutes faces)"
+
+#: nodes.lua
+msgid "All-faces Jungle Tree"
+msgstr "Tronc d'arbre de jungle (toutes faces)"
+
+#: nodes.lua
+msgid "All-faces Pine Tree"
+msgstr "Tronc d'arbre de pin (toutes faces)"
+
+#: nodes.lua
+msgid "All-faces Tree"
+msgstr "Tronc d'arbre (toutes faces)"
+
+#: nodes.lua
+msgid "Cactus Brick"
+msgstr "Briques de cactus"
+
+#: nodes.lua
+msgid "Cactus Checker"
+msgstr "Damier en cactus"
+
+#: nodes.lua
+msgid "Centered Wooden Tile"
+msgstr "Dalle en bois centrée"
+
+#: nodes.lua
+msgid "Checker Stone Tile"
+msgstr "Damier de dalle en pierre"
+
+#: nodes.lua
+msgid "Circle Stone Bricks"
+msgstr "Briques en pierre circulaires"
+
+#: nodes.lua
+msgid "Clean Glass"
+msgstr "Verre propre"
+
+#: nodes.lua
+msgid "Coal Checker"
+msgstr "Damier en charbon"
+
+#: nodes.lua
+msgid "Coal Glass"
+msgstr "Verre de charbon"
+
+#: nodes.lua
+msgid "Coal Stone"
+msgstr "Pierre de charbon"
+
+#: nodes.lua
+msgid "Coal Stone Bricks"
+msgstr "Briques en pierre de charbon"
+
+#: nodes.lua
+msgid "Compressed Cobblestone"
+msgstr "Pierre taillée compressée"
+
+#: nodes.lua
+msgid "Compressed Dirt"
+msgstr "Terre compressée"
+
+#: nodes.lua
+msgid "Copper Patina Block"
+msgstr "Bloc de patine de cuivre"
+
+#: nodes.lua
+msgid "Empty Shelf"
+msgstr "Étagère vide"
+
+#: nodes.lua
+msgid "Full Wooden Tile"
+msgstr "Dalle en bois complète"
+
+#: nodes.lua
+msgid "Glow Glass"
+msgstr "Verre brillant"
+
+#: nodes.lua
+msgid "Iron Checker"
+msgstr "Damier de fer"
+
+#: nodes.lua
+msgid "Iron Glass"
+msgstr "Verre de fer"
+
+#: nodes.lua
+msgid "Iron Stone"
+msgstr "Pierre de fer"
+
+#: nodes.lua
+msgid "Iron Stone Bricks"
+msgstr "Briques en pierre de fer"
+
+#: nodes.lua
+msgid "Plankstone"
+msgstr "Pierre-bois"
+
+#: nodes.lua
+msgid "Rope"
+msgstr "Corde"
+
+#: nodes.lua
+msgid "Split Stone Tile"
+msgstr "Dalle en pierre découpée"
+
+#: nodes.lua
+msgid "Stone Bricks"
+msgstr "Briques en pierre"
+
+#: nodes.lua
+msgid "Stone Tile"
+msgstr "Dalle en pierre"
+
+#: nodes.lua
+msgid "Super Glow Glass"
+msgstr "Verre très brillant"
+
+#: nodes.lua
+msgid "Sweeper"
+msgstr "Balai"
+
+#: nodes.lua
+msgid "Tar"
+msgstr "Bitume"
+
+#: nodes.lua
+msgid "Trap Desert Stone"
+msgstr "Pierre du désert traversable"
+
+#: nodes.lua
+msgid "Trap Glass"
+msgstr "Verre traversable"
+
+#: nodes.lua
+msgid "Trap Glow Glass"
+msgstr "Verre brillant traversable"
+
+#: nodes.lua
+msgid "Trap Obsidian"
+msgstr "Obsidienne traversable"
+
+#: nodes.lua
+msgid "Trap Obsidian Glass"
+msgstr "Verre d'obsidienne traversable"
+
+#: nodes.lua
+msgid "Trap Sandstone"
+msgstr "Grès traversable"
+
+#: nodes.lua
+msgid "Trap Stone"
+msgstr "Pierre traversable"
+
+#: nodes.lua
+msgid "Trap Super Glow Glass"
+msgstr "Verre très brillant traversable"
+
+#: nodes.lua
+msgid "Wooden Tile"
+msgstr "Dalle en bois"
+
+#: nodes.lua
+msgid "Offset Wooden Tile"
+msgstr "Dalle en bois décalée"
+
+#: nodes.lua
+msgid "Downwards Wooden Tile"
+msgstr "Dalle en bois vers le bas"
+
+#: nodes.lua
+msgid "Leftwards Wooden Tile"
+msgstr "Dalle en bois vers la gauche"
+
+#: nodes.lua
+msgid "Rightwards Wooden Tile"
+msgstr "Dalle en bois vers la droite"
+
+#: ownership.lua
+msgid "Sorry, @1 owns that spot."
+msgstr "Désolé, @1 possède cet endroit."
+
+#: ownership.lua
+msgid "someone"
+msgstr "quelqu'un"
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Microblock"
+msgstr "Microbloc en %s"
+
+#: stairsplus/common.lua stairsplus/slabs.lua
+#, lua-format
+msgid "%s Slab"
+msgstr "Demi-dalle en %s"
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Slope"
+msgstr "Pente en %s"
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Panel"
+msgstr "Barre en %s"
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Stairs"
+msgstr "Escaliers en %s"
diff --git a/moreblocks/locale/fr.txt b/moreblocks/locale/fr.txt
deleted file mode 100644
index 72c09f5..0000000
--- a/moreblocks/locale/fr.txt
+++ /dev/null
@@ -1,72 +0,0 @@
-# Translation by Calinou
-
-###init.lua###
-[moreblocks] loaded. = [moreblocks] a t charg.
-
-Jungle Wooden Planks = Planches de bois de jungle
-Empty Bookshelf = tagre vide
-Clean Glass = Verre propre
-Plankstone = Pierre-bois
-Wooden Tile = Dalle en bois
-Full Wooden Tile = Dalle en bois complte
-Centered Wooden Tile = Dalle en bois centre
-Up Wooden Tile = Dalle en bois vers le haut
-Down Wooden Tile = Dalle en bois vers le bas
-Left Wooden Tile = Dalle en bois vers la gauche
-Right Wooden Tile = Dalle en bois vers la droite
-Circle Stone Bricks = Briques en pierre circulaires
-Stone Tile = Dalle en pierre
-Split Stone Tile = Dalle en pierre dcoupe
-Glow Glass = Verre brillant
-Super Glow Glass = Verre trs brillant
-Coal Glass = Verre de charbon
-Iron Glass = Verre de fer
-Coal Checker = Damier en charbon
-Iron Checker = Damier en fer
-Trap Stone = Pierre traversable
-Trap Glass = Verre traversable
-Trap Glow Glass = Verre brillant traversable
-Trap Super Glow Glass = Verre trs brillant traversable
-Coal Stone = Pierre de charbon
-Iron Stone = Pierre de fer
-Coal Stone Bricks = Briques en pierre de charbon
-Iron Stone Bricks = Briques en pierre de fer
-Cactus Checker = Damier en cactus
-Cactus Brick = Briques de cactus
-Sweeper = Balai
-Jungle Stick = Bton en bois de jungle
-Horizontal Tree = Tronc d'arbre horizontal
-Horizontal Jungle Tree = Tronc d'arbre de jungle horizontal
-Rope = Corde
-All-faces Tree = Tronc d'arbre
-
-###redefinition.lua###
-Wooden = bois
-Papyrus = Papyrus
-Dry Shrub = Buisson mort
-Sapling = Pousse d'arbre
-Wooden Planks = Planches de bois
-Ladder = chelle
-Glass = Verre
-
-###circular_saw.lua###
-Circular Saw = Scie circulaire
-Circular saw, empty (owned by %s) = Scie circulaire, vide (proprit de %s)
-Circular saw, working with %s (owned by %s) = Scie circulaire, manipule %s (proprit de %s)
-Circular saw, empty = Scie circulaire, vide
-Circular saw is empty (owned by %s) = Scie circulaire est vide (proprit de %s)
-
-Input material = Entre du matriel
-Rest/microblocks = Reste/microbloc
-Max: = Max:
-Set = Fixer
-Recycle output = Recyclage
-
-###./stairsplus/*###
-%s Stairs = Escaliers en %s
-%s Slab = Demi-dalle en %s
-%s Panel = Barre en %s
-%s Microblock = Microbloc en %s
-
-%s Pane = Panneau en %s
-%s Fence = Barrire en %s
diff --git a/moreblocks/locale/it.po b/moreblocks/locale/it.po
new file mode 100644
index 0000000..04e3c0b
--- /dev/null
+++ b/moreblocks/locale/it.po
@@ -0,0 +1,286 @@
+# Italian translation for More Blocks.
+# Copyright © 2011-2019 Hugo Locurcio and contributors
+# This file is distributed under the same license as the More Blocks package.
+# Emon, 2016.
+# CodeXP <codexp@gmx.net>, 2018.
+msgid ""
+msgstr ""
+"Project-Id-Version: More Blocks\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-07-13 12:37+0200\n"
+"PO-Revision-Date: \n"
+"Last-Translator: CodeXP <codexp@gmx.net>\n"
+"Language-Team: \n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: circular_saw.lua
+msgid "Circular Saw"
+msgstr "Sega circolare"
+
+#: circular_saw.lua
+msgid ""
+"Input\n"
+"material"
+msgstr ""
+"Materiale\n"
+"iniziale"
+
+#: circular_saw.lua
+msgid "Left-over"
+msgstr "Scarto"
+
+#: circular_saw.lua
+msgid "Max"
+msgstr "Max."
+
+#: circular_saw.lua
+msgid ""
+"Recycle\n"
+"output"
+msgstr ""
+"Ricicla\n"
+"finale"
+
+#: circular_saw.lua
+msgid "Set"
+msgstr "Imp."
+
+#: circular_saw.lua
+msgid "owned by @1"
+msgstr ""
+
+#: circular_saw.lua
+msgid "Circular Saw is empty"
+msgstr "Sega circolare, vuota"
+
+#: circular_saw.lua
+msgid "Circular Saw is working on @1"
+msgstr "Sega circolare, in funzione su @1"
+
+#: init.lua
+msgid "[moreblocks] loaded."
+msgstr "[moreblocks] caricato."
+
+#: nodes.lua
+msgid "Deprecated"
+msgstr ""
+
+#: nodes.lua
+msgid "All-faces Acacia Tree"
+msgstr ""
+
+#: nodes.lua
+msgid "All-faces Aspen Tree"
+msgstr ""
+
+#: nodes.lua
+msgid "All-faces Jungle Tree"
+msgstr ""
+
+#: nodes.lua
+msgid "All-faces Pine Tree"
+msgstr ""
+
+#: nodes.lua
+msgid "All-faces Tree"
+msgstr "Albero su ogni lato"
+
+#: nodes.lua
+msgid "Cactus Brick"
+msgstr "Mattoni di cactus"
+
+#: nodes.lua
+msgid "Cactus Checker"
+msgstr "Scacchiera in cactus"
+
+#: nodes.lua
+msgid "Centered Wooden Tile"
+msgstr "Mattonella in legno centrata"
+
+#: nodes.lua
+msgid "Checker Stone Tile"
+msgstr ""
+
+#: nodes.lua
+msgid "Circle Stone Bricks"
+msgstr "Mattoni concentrici in pietra"
+
+#: nodes.lua
+msgid "Clean Glass"
+msgstr "Vetro pulito"
+
+#: nodes.lua
+msgid "Coal Checker"
+msgstr "Scacchiera in carbone"
+
+#: nodes.lua
+msgid "Coal Glass"
+msgstr "Vetro e carbone"
+
+#: nodes.lua
+msgid "Coal Stone"
+msgstr "Pietra in carbone"
+
+#: nodes.lua
+msgid "Coal Stone Bricks"
+msgstr "Mattoni di pietra in carbone"
+
+#: nodes.lua
+msgid "Compressed Cobblestone"
+msgstr ""
+
+#: nodes.lua
+msgid "Compressed Dirt"
+msgstr ""
+
+#: nodes.lua
+msgid "Copper Patina Block"
+msgstr ""
+
+#: nodes.lua
+msgid "Empty Shelf"
+msgstr "Scaffale Vuoto"
+
+#: nodes.lua
+msgid "Full Wooden Tile"
+msgstr "Mattonella in legno pieno"
+
+#: nodes.lua
+msgid "Glow Glass"
+msgstr "Vetro luminoso"
+
+#: nodes.lua
+msgid "Iron Checker"
+msgstr "Scacchiera in ferro"
+
+#: nodes.lua
+msgid "Iron Glass"
+msgstr "Vetro e ferro"
+
+#: nodes.lua
+msgid "Iron Stone"
+msgstr "Pietra in ferro"
+
+#: nodes.lua
+msgid "Iron Stone Bricks"
+msgstr "Mattoni di pietra in ferro"
+
+#: nodes.lua
+msgid "Plankstone"
+msgstr "Pietra e legno"
+
+#: nodes.lua
+msgid "Rope"
+msgstr "Corda"
+
+#: nodes.lua
+msgid "Split Stone Tile"
+msgstr "Mattonella in pietra divisa"
+
+#: nodes.lua
+msgid "Stone Bricks"
+msgstr ""
+
+#: nodes.lua
+msgid "Stone Tile"
+msgstr "Mattonella in pietra"
+
+#: nodes.lua
+msgid "Super Glow Glass"
+msgstr "Super vetro luminoso"
+
+#: nodes.lua
+msgid "Sweeper"
+msgstr "Spazzola"
+
+#: nodes.lua
+msgid "Tar"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Desert Stone"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Glass"
+msgstr "Vetro trappola"
+
+#: nodes.lua
+msgid "Trap Glow Glass"
+msgstr "Vetro luminoso trappola"
+
+#: nodes.lua
+msgid "Trap Obsidian"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Obsidian Glass"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Sandstone"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Stone"
+msgstr "Pietra trappola"
+
+#: nodes.lua
+msgid "Trap Super Glow Glass"
+msgstr "Super vetro luminoso trappola"
+
+#: nodes.lua
+msgid "Wooden Tile"
+msgstr "Mattonella in legno"
+
+#: nodes.lua
+msgid "Offset Wooden Tile"
+msgstr ""
+
+#: nodes.lua
+msgid "Downwards Wooden Tile"
+msgstr ""
+
+#: nodes.lua
+msgid "Leftwards Wooden Tile"
+msgstr ""
+
+#: nodes.lua
+msgid "Rightwards Wooden Tile"
+msgstr ""
+
+#: ownership.lua
+msgid "Sorry, @1 owns that spot."
+msgstr "Spiacente, quel punto è di proprietà di @1"
+
+#: ownership.lua
+msgid "someone"
+msgstr "qualcuno"
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Microblock"
+msgstr "Microblocco %s"
+
+#: stairsplus/common.lua stairsplus/slabs.lua
+#, lua-format
+msgid "%s Slab"
+msgstr "Lastra - %s"
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Slope"
+msgstr ""
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Panel"
+msgstr "Pannello - %s"
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Stairs"
+msgstr "Scale - %s"
diff --git a/moreblocks/locale/it.txt b/moreblocks/locale/it.txt
deleted file mode 100644
index 821ff36..0000000
--- a/moreblocks/locale/it.txt
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# Italian translation
-# Translator: Emon
-#
-
-
-###init.lua###
-[moreblocks] loaded. = [moreblocks] caricato.
-
-###nodes.lua###
-Jungle Wood Fence = Recinzione in legno della giungla
-Empty Bookshelf = Libreria vuota
-Clean Glass = Vetro pulito
-Plankstone = Pietra e legno
-Wooden Tile = Mattonella in legno
-Full Wooden Tile = Mattonella in legno pieno
-Centered Wooden Tile = Mattonella in legno centrata
-Up Wooden Tile = Mattonella in legno verso l'alto
-Down Wooden Tile = Mattonella in legno verso il basso
-Left Wooden Tile = Mattonella in legno verso sinistra
-Right Wooden Tile = Mattonella in legno verso destra
-Circle Stone Bricks = Mattoni concentrici in pietra
-Stone Tile = Mattonella in pietra
-Split Stone Tile = Mattonella in pietra divisa
-Glow Glass = Vetro luminoso
-Super Glow Glass = Super vetro luminoso
-Coal Glass = Vetro e carbone
-Iron Glass = Vetro e ferro
-Coal Checker = Scacchiera in carbone
-Iron Checker = Scacchiera in ferro
-Trap Stone = Pietra trappola
-Trap Glass = Vetro trappola
-Trap Glow Glass = Vetro luminoso trappola
-Trap Super Glow Glass = Super vetro luminoso trappola
-Coal Stone = Pietra in carbone
-Iron Stone = Pietra in ferro
-Coal Stone Bricks = Mattoni di pietra in carbone
-Iron Stone Bricks = Mattoni di pietra in ferro
-Cactus Checker = Scacchiera in cactus
-Cactus Brick = Mattoni di cactus
-Sweeper = Spazzola
-Jungle Stick = Bastone in legno della giungla
-Rope = Corda
-All-faces Tree = Albero su ogni lato
-
-###circular_saw.lua###
-Circular Saw = Sega circolare
-Circular saw, empty (owned by %s) = Sega circolare, vuota (di proprietà di %s)
-Circular saw, working with %s (owned by %s) = Sega circolare, in funzione su %s (di proprietà di %s)
-Circular saw, empty = Sega circolare, vuota
-Circular saw is empty (owned by %s) = La sega circolare è vuota (di proprietà di %s)
-
-Input\nmaterial = Materiale\niniziale
-Left-over = Scarto
-Max = Max.
-Set = Imp.
-Recycle\noutput = Ricicla\nfinale
-
-###ownership.lua###
-someone = qualcuno
-Sorry, %s owns that spot. = Spiacente, quel punto è di proprietà di %s
-
-###./stairsplus/*###
-%s Stairs = Scale - %s
-%s Slab = Lastra - %s
-%s Panel = Pannello - %s
-%s Microblock = Microblocco %s
-
-%s Pane = Pannello - %s
-%s Fence = Recinzione - %s
diff --git a/moreblocks/locale/ru.po b/moreblocks/locale/ru.po
new file mode 100644
index 0000000..9b3b93e
--- /dev/null
+++ b/moreblocks/locale/ru.po
@@ -0,0 +1,290 @@
+# Russian translation for MOREBLOCKS minetest mod.
+# Copyright (C) 2018 Hugo Locurcio and contributors
+# This file is distributed under the same license as the MOREBLOCKS package.
+# CodeXP <codexp@gmx.net>, 2018.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: MOREBLOCKS MOD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-07-13 23:30+0200\n"
+"PO-Revision-Date: \n"
+"Last-Translator: CodeXP <codexp@gmx.net>\n"
+"Language-Team: \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: circular_saw.lua
+msgid "Circular Saw"
+msgstr "циркулярная пила"
+
+#: circular_saw.lua
+msgid ""
+"Input\n"
+"material"
+msgstr ""
+"Входной\n"
+"материал"
+
+#: circular_saw.lua
+msgid "Left-over"
+msgstr "Остатки"
+
+#: circular_saw.lua
+msgid "Max"
+msgstr "Кол."
+
+#: circular_saw.lua
+msgid ""
+"Recycle\n"
+"output"
+msgstr ""
+"Пере-\n"
+"обработка"
+
+#: circular_saw.lua
+msgid "Set"
+msgstr "ОК"
+
+#: circular_saw.lua
+msgid "owned by @1"
+msgstr "принадлежит @1"
+
+#: circular_saw.lua
+msgid "Circular Saw is empty"
+msgstr "циркулярная пила пустая"
+
+#: circular_saw.lua
+msgid "Circular Saw is working on @1"
+msgstr "циркулярная пила, @1 в обработке"
+
+#: init.lua
+msgid "[MOD] moreblocks loaded."
+msgstr "[MOD] moreblocks загружен."
+
+#: nodes.lua
+msgid "Deprecated"
+msgstr "устаревший"
+
+#: nodes.lua
+msgid "All-faces Acacia Tree"
+msgstr "всестороннее бревно акации"
+
+#: nodes.lua
+msgid "All-faces Aspen Tree"
+msgstr "всестороннее бревно осины"
+
+#: nodes.lua
+msgid "All-faces Jungle Tree"
+msgstr "всестороннее бревно дерева джунглей"
+
+#: nodes.lua
+msgid "All-faces Pine Tree"
+msgstr "всестороннее бревно сосновое"
+
+#: nodes.lua
+msgid "All-faces Tree"
+msgstr "всестороннее бревно дерева"
+
+#: nodes.lua
+msgid "Cactus Brick"
+msgstr "кирпич из кактуса"
+
+#: nodes.lua
+msgid "Cactus Checker"
+msgstr "мозаика из кактуса"
+
+#: nodes.lua
+msgid "Centered Wooden Tile"
+msgstr "деревянная мозаика (центр)"
+
+#: nodes.lua
+msgid "Checker Stone Tile"
+msgstr "каменная мозаика"
+
+#: nodes.lua
+msgid "Circle Stone Bricks"
+msgstr "кольцевой камень"
+
+#: nodes.lua
+msgid "Clean Glass"
+msgstr "чистое стекло"
+
+#: nodes.lua
+msgid "Coal Checker"
+msgstr "угольная мозаика"
+
+#: nodes.lua
+msgid "Coal Glass"
+msgstr "угольное стекло"
+
+#: nodes.lua
+msgid "Coal Stone"
+msgstr "угольный камень"
+
+#: nodes.lua
+msgid "Coal Stone Bricks"
+msgstr "угольно-каменный кирпич"
+
+#: nodes.lua
+msgid "Compressed Cobblestone"
+msgstr "прессованный булыжник"
+
+#: nodes.lua
+msgid "Compressed Dirt"
+msgstr "прессованная земля"
+
+#: nodes.lua
+msgid "Copper Patina Block"
+msgstr "медный патинированный блок"
+
+#: nodes.lua
+msgid "Empty Shelf"
+msgstr "пустые полки"
+
+#: nodes.lua
+msgid "Full Wooden Tile"
+msgstr "деревянная мозаика"
+
+#: nodes.lua
+msgid "Glow Glass"
+msgstr "светящееся стекло"
+
+#: nodes.lua
+msgid "Iron Checker"
+msgstr "стальная мозаика"
+
+#: nodes.lua
+msgid "Iron Glass"
+msgstr "металлизированное стекло"
+
+#: nodes.lua
+msgid "Iron Stone"
+msgstr "железный камень"
+
+#: nodes.lua
+msgid "Iron Stone Bricks"
+msgstr "железно-каменный кирпич"
+
+#: nodes.lua
+msgid "Plankstone"
+msgstr "дерево-каменная мозаика"
+
+#: nodes.lua
+msgid "Rope"
+msgstr "верёвка"
+
+#: nodes.lua
+msgid "Split Stone Tile"
+msgstr "каменная мозаика"
+
+#: nodes.lua
+msgid "Stone Bricks"
+msgstr "каменный кирпич"
+
+#: nodes.lua
+msgid "Stone Tile"
+msgstr "каменная плитка"
+
+#: nodes.lua
+msgid "Super Glow Glass"
+msgstr "супер светящееся стекло"
+
+#: nodes.lua
+msgid "Sweeper"
+msgstr "метёлка"
+
+#: nodes.lua
+msgid "Tar"
+msgstr "смола"
+
+#: nodes.lua
+msgid "Trap Desert Stone"
+msgstr "мнимый пустынный камень"
+
+#: nodes.lua
+msgid "Trap Glass"
+msgstr "мнимое стекло"
+
+#: nodes.lua
+msgid "Trap Glow Glass"
+msgstr "мнимое светящееся стекло"
+
+#: nodes.lua
+msgid "Trap Obsidian"
+msgstr "мнимый обсидиан"
+
+#: nodes.lua
+msgid "Trap Obsidian Glass"
+msgstr "мнимое обсидиановое стекло"
+
+#: nodes.lua
+msgid "Trap Sandstone"
+msgstr "мнимый песчаник"
+
+#: nodes.lua
+msgid "Trap Stone"
+msgstr "мнимый камень"
+
+#: nodes.lua
+msgid "Trap Super Glow Glass"
+msgstr "мнимое супер светящееся стекло"
+
+#: nodes.lua
+msgid "Wooden Tile"
+msgstr "деревянная мозаика"
+
+#: nodes.lua
+msgid "Offset Wooden Tile"
+msgstr "деревянная мозаика (сверху)"
+
+# @deprecated
+#: nodes.lua
+msgid "Downwards Wooden Tile"
+msgstr "деревянная мозаика (снизу)"
+
+# @deprecated
+#: nodes.lua
+msgid "Leftwards Wooden Tile"
+msgstr "деревянная мозаика (слева)"
+
+# @deprecated
+#: nodes.lua
+msgid "Rightwards Wooden Tile"
+msgstr "деревянная мозаика (справа)"
+
+#: ownership.lua
+msgid "Sorry, @1 owns that spot."
+msgstr "Извините, это принадлежит @1."
+
+#: ownership.lua
+msgid "someone"
+msgstr "кому-то"
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Microblock"
+msgstr "%s (микроблок)"
+
+#: stairsplus/common.lua stairsplus/slabs.lua
+#, lua-format
+msgid "%s Slab"
+msgstr "%s (плита)"
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Slope"
+msgstr "%s (наклон)"
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Panel"
+msgstr "%s (панель)"
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Stairs"
+msgstr "%s (лестница)"
diff --git a/moreblocks/locale/template.pot b/moreblocks/locale/template.pot
new file mode 100644
index 0000000..929569a
--- /dev/null
+++ b/moreblocks/locale/template.pot
@@ -0,0 +1,284 @@
+# Template translation for More Blocks.
+# Copyright © 2011-2019 Hugo Locurcio and contributors
+# This file is distributed under the same license as the More Blocks package.
+# CodeXP <codexp@gmx.net>, 2018.
+msgid ""
+msgstr ""
+"Project-Id-Version: More Blocks\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-07-13 12:37+0200\n"
+"PO-Revision-Date: \n"
+"Last-Translator: CodeXP <codexp@gmx.net>\n"
+"Language-Team: \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: circular_saw.lua
+msgid "Circular Saw"
+msgstr ""
+
+#: circular_saw.lua
+msgid ""
+"Input\n"
+"material"
+msgstr ""
+
+#: circular_saw.lua
+msgid "Left-over"
+msgstr ""
+
+#: circular_saw.lua
+msgid "Max"
+msgstr ""
+
+#: circular_saw.lua
+msgid ""
+"Recycle\n"
+"output"
+msgstr ""
+
+#: circular_saw.lua
+msgid "Set"
+msgstr ""
+
+#: circular_saw.lua
+msgid "owned by @1"
+msgstr ""
+
+#: circular_saw.lua
+msgid "Circular Saw is empty"
+msgstr ""
+
+#: circular_saw.lua
+msgid "Circular Saw is working on @1"
+msgstr ""
+
+#: init.lua
+msgid "[moreblocks] loaded."
+msgstr ""
+
+#: nodes.lua
+msgid "Deprecated"
+msgstr ""
+
+#: nodes.lua
+msgid "All-faces Acacia Tree"
+msgstr ""
+
+#: nodes.lua
+msgid "All-faces Aspen Tree"
+msgstr ""
+
+#: nodes.lua
+msgid "All-faces Jungle Tree"
+msgstr ""
+
+#: nodes.lua
+msgid "All-faces Pine Tree"
+msgstr ""
+
+#: nodes.lua
+msgid "All-faces Tree"
+msgstr ""
+
+#: nodes.lua
+msgid "Cactus Brick"
+msgstr ""
+
+#: nodes.lua
+msgid "Cactus Checker"
+msgstr ""
+
+#: nodes.lua
+msgid "Centered Wooden Tile"
+msgstr ""
+
+#: nodes.lua
+msgid "Checker Stone Tile"
+msgstr ""
+
+#: nodes.lua
+msgid "Circle Stone Bricks"
+msgstr ""
+
+#: nodes.lua
+msgid "Clean Glass"
+msgstr ""
+
+#: nodes.lua
+msgid "Coal Checker"
+msgstr ""
+
+#: nodes.lua
+msgid "Coal Glass"
+msgstr ""
+
+#: nodes.lua
+msgid "Coal Stone"
+msgstr ""
+
+#: nodes.lua
+msgid "Coal Stone Bricks"
+msgstr ""
+
+#: nodes.lua
+msgid "Compressed Cobblestone"
+msgstr ""
+
+#: nodes.lua
+msgid "Compressed Dirt"
+msgstr ""
+
+#: nodes.lua
+msgid "Copper Patina Block"
+msgstr ""
+
+#: nodes.lua
+msgid "Empty Shelf"
+msgstr ""
+
+#: nodes.lua
+msgid "Full Wooden Tile"
+msgstr ""
+
+#: nodes.lua
+msgid "Glow Glass"
+msgstr ""
+
+#: nodes.lua
+msgid "Iron Checker"
+msgstr ""
+
+#: nodes.lua
+msgid "Iron Glass"
+msgstr ""
+
+#: nodes.lua
+msgid "Iron Stone"
+msgstr ""
+
+#: nodes.lua
+msgid "Iron Stone Bricks"
+msgstr ""
+
+#: nodes.lua
+msgid "Plankstone"
+msgstr ""
+
+#: nodes.lua
+msgid "Rope"
+msgstr ""
+
+#: nodes.lua
+msgid "Split Stone Tile"
+msgstr ""
+
+#: nodes.lua
+msgid "Stone Bricks"
+msgstr ""
+
+#: nodes.lua
+msgid "Stone Tile"
+msgstr ""
+
+#: nodes.lua
+msgid "Super Glow Glass"
+msgstr ""
+
+#: nodes.lua
+msgid "Sweeper"
+msgstr ""
+
+#: nodes.lua
+msgid "Tar"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Desert Stone"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Glass"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Glow Glass"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Obsidian"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Obsidian Glass"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Sandstone"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Stone"
+msgstr ""
+
+#: nodes.lua
+msgid "Trap Super Glow Glass"
+msgstr ""
+
+#: nodes.lua
+msgid "Wooden Tile"
+msgstr ""
+
+#: nodes.lua
+msgid "Offset Wooden Tile"
+msgstr ""
+
+# @deprecated
+#: nodes.lua
+msgid "Downwards Wooden Tile"
+msgstr ""
+
+# @deprecated
+#: nodes.lua
+msgid "Leftwards Wooden Tile"
+msgstr ""
+
+# @deprecated
+#: nodes.lua
+msgid "Rightwards Wooden Tile"
+msgstr ""
+
+#: ownership.lua
+msgid "Sorry, @1 owns that spot."
+msgstr ""
+
+#: ownership.lua
+msgid "someone"
+msgstr ""
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Microblock"
+msgstr ""
+
+#: stairsplus/common.lua stairsplus/slabs.lua
+#, lua-format
+msgid "%s Slab"
+msgstr ""
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Slope"
+msgstr ""
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Panel"
+msgstr ""
+
+#: stairsplus/common.lua
+#, lua-format
+msgid "%s Stairs"
+msgstr ""
diff --git a/moreblocks/locale/template.txt b/moreblocks/locale/template.txt
deleted file mode 100644
index ea6f8ac..0000000
--- a/moreblocks/locale/template.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-###init.lua###
-[moreblocks] loaded. =
-
-###nodes.lua###
-Jungle Wood Fence =
-Empty Bookshelf =
-Clean Glass =
-Plankstone =
-Wooden Tile =
-Full Wooden Tile =
-Centered Wooden Tile =
-Up Wooden Tile =
-Down Wooden Tile =
-Left Wooden Tile =
-Right Wooden Tile =
-Circle Stone Bricks =
-Stone Tile =
-Split Stone Tile =
-Glow Glass =
-Super Glow Glass =
-Coal Glass =
-Iron Glass =
-Coal Checker =
-Iron Checker =
-Trap Stone =
-Trap Glass =
-Trap Glow Glass =
-Trap Super Glow Glass =
-Coal Stone =
-Iron Stone =
-Coal Stone Bricks =
-Iron Stone Bricks =
-Cactus Checker =
-Cactus Brick =
-Sweeper =
-Jungle Stick =
-Rope =
-All-faces Tree =
-
-###circular_saw.lua###
-Circular Saw =
-Circular saw, empty (owned by %s) =
-Circular saw, working with %s (owned by %s) =
-Circular saw, empty =
-Circular saw is empty (owned by %s) =
-
-Input\nmaterial =
-Left-over =
-Max =
-Set =
-Recycle\noutput =
-
-###ownership.lua###
-someone =
-Sorry, %s owns that spot. =
-
-###./stairsplus/*###
-%s Stairs =
-%s Slab =
-%s Panel =
-%s Microblock =
-
-%s Pane =
-%s Fence =
diff --git a/moreblocks/nodes.lua b/moreblocks/nodes.lua
index 047f59e..68edff9 100644
--- a/moreblocks/nodes.lua
+++ b/moreblocks/nodes.lua
@@ -36,6 +36,7 @@ local function wood_tile_replace(itemstack, placer, pointed_thing)
return itemstack
end
+local deprecated = (" (%s)"):format(S('Deprecated'))
local nodes = {
["wood_tile"] = {
description = S("Wooden Tile"),
@@ -52,7 +53,7 @@ local nodes = {
sounds = sound_wood,
},
["wood_tile_flipped"] = {
- description = S("Wooden Tile (Deprecated)"),
+ description = S("Wooden Tile") .. deprecated,
tiles = {"default_wood.png^moreblocks_wood_tile.png^[transformR90",
"default_wood.png^moreblocks_wood_tile.png^[transformR90",
"default_wood.png^moreblocks_wood_tile.png^[transformR90",
@@ -87,19 +88,19 @@ local nodes = {
no_stairs = true,
},
["wood_tile_down"] = {
- description = S("Downwards Wooden Tile (Deprecated)"),
+ description = S("Downwards Wooden Tile") .. deprecated,
tiles = {"default_wood.png^[transformR180^moreblocks_wood_tile_offset.png^[transformR180"},
no_stairs = true,
on_place = wood_tile_replace
},
["wood_tile_left"] = {
- description = S("Leftwards Wooden Tile (Deprecated)"),
+ description = S("Leftwards Wooden Tile") .. deprecated,
tiles = {"default_wood.png^[transformR270^moreblocks_wood_tile_offset.png^[transformR270"},
no_stairs = true,
on_place = wood_tile_replace
},
["wood_tile_right"] = {
- description = S("Rightwards Wooden Tile (Deprecated)"),
+ description = S("Rightwards Wooden Tile") .. deprecated,
tiles = {"default_wood.png^[transformR90^moreblocks_wood_tile_offset.png^[transformR90"},
no_stairs = true,
on_place = wood_tile_replace
diff --git a/moreblocks/ownership.lua b/moreblocks/ownership.lua
index 20f0fe1..8c8b4f1 100644
--- a/moreblocks/ownership.lua
+++ b/moreblocks/ownership.lua
@@ -33,7 +33,7 @@ function moreblocks.node_is_owned(pos, placer)
end
if ownername ~= false then
- minetest.chat_send_player( placer:get_player_name(), S("Sorry, %s owns that spot."):format(ownername) )
+ minetest.chat_send_player( placer:get_player_name(), S("Sorry, @1 owns that spot.", ownername) )
return true
else
return false
diff --git a/moreblocks/stairsplus/common.lua b/moreblocks/stairsplus/common.lua
index 7b86fad..d4cce64 100644
--- a/moreblocks/stairsplus/common.lua
+++ b/moreblocks/stairsplus/common.lua
@@ -7,27 +7,28 @@ Licensed under the zlib license. See LICENSE.md for more information.
local S = moreblocks.S
+local descriptions = {
+ ["micro"] = S("%s Microblock"),
+ ["slab"] = S("%s Slab"),
+ ["slope"] = S("%s Slope"),
+ ["panel"] = S("%s Panel"),
+ ["stair"] = S("%s Stairs"),
+}
stairsplus.register_single = function(category, alternate, info, modname, subname, recipeitem, fields)
- local descriptions = {
- ["micro"] = S("Microblock"),
- ["slab"] = S("Slab"),
- ["slope"] = S("Slope"),
- ["panel"] = S("Panel"),
- ["stair"] = S("Stairs"),
- }
+ local desc_base = descriptions[category]:format(fields.description)
local def = {}
+
if category ~= "slab" then
def = table.copy(info)
end
+ -- copy fields to def
for k, v in pairs(fields) do
def[k] = v
end
+
def.drawtype = "nodebox"
- if category == "slope" then
- def.drawtype = "mesh"
- end
def.paramtype = "light"
def.paramtype2 = def.paramtype2 or "facedir"
@@ -35,10 +36,9 @@ stairsplus.register_single = function(category, alternate, info, modname, subnam
def.place_param2 = nil
def.on_place = minetest.rotate_node
- if category ~= "slab" then
- def.description = S("%s " .. descriptions[category]):format(fields.description)
- else
- local desc_base = S("%s " .. descriptions[category]):format(fields.description)
+ def.groups = stairsplus:prepare_groups(fields.groups)
+
+ if category == "slab" then
if type(info) ~= "table" then
def.node_box = {
type = "fixed",
@@ -52,14 +52,19 @@ stairsplus.register_single = function(category, alternate, info, modname, subnam
}
def.description = desc_base .. alternate:gsub("_", " "):gsub("(%a)(%S*)", function(a, b) return a:upper() .. b end)
end
+ else
+ def.description = desc_base
+ if category == "slope" then
+ def.drawtype = "mesh"
+ elseif category == "stair" and alternate == "" then
+ def.groups.stair = 1
+ end
end
- def.groups = stairsplus:prepare_groups(fields.groups)
- if category == "stair" and alternate == "" then
- def.groups.stair = 1
- end
+
if fields.drop and not (type(fields.drop) == "table") then
def.drop = modname.. ":" .. category .. "_" .. fields.drop .. alternate
end
+
minetest.register_node(":" ..modname.. ":" .. category .. "_" .. subname .. alternate, def)
stairsplus.register_recipes(category, alternate, modname, subname, recipeitem)
end