From 550fa39d8633349b5a8efcfb5ff8a59530e74d28 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Sat, 16 Mar 2019 03:36:32 +0100 Subject: [PATCH] Make achievements translatable --- mods/HUD/awards/api.lua | 16 +++--- mods/HUD/awards/locale/awards.de.tr | 53 ++++++++++--------- mods/HUD/awards/locale/template.txt | 51 +++++++++--------- mods/HUD/awards/triggers.lua | 44 +++++++-------- mods/HUD/mcl_achievements/init.lua | 4 +- .../locale/mcl_achievements.de.tr | 14 ++--- mods/HUD/mcl_achievements/locale/template.txt | 2 +- 7 files changed, 93 insertions(+), 91 deletions(-) diff --git a/mods/HUD/awards/api.lua b/mods/HUD/awards/api.lua index d377f37c..b25a2aaa 100644 --- a/mods/HUD/awards/api.lua +++ b/mods/HUD/awards/api.lua @@ -274,9 +274,9 @@ function awards.unlock(name, award) elseif awards.show_mode == "chat" then local chat_announce if awdef.secret == true then - chat_announce = S("Secret achievement gotten: %s") + chat_announce = S("Secret achievement gotten: @1") else - chat_announce = S("Achievement gotten: %s") + chat_announce = S("Achievement gotten: @1") end -- use the chat console to send it minetest.chat_send_player(name, string.format(chat_announce, title)) @@ -386,12 +386,14 @@ function awards.getFormspec(name, to, sid) if def and def.title then title = def.title end - local status = "%s" + local status if item.got then - status = S("%s (got)") + status = S("@1 (got)", title) + else + status = title end formspec = formspec .. "label[1,2.75;" .. - string.format(status, minetest.formspec_escape(title)) .. + minetest.formspec_escape(status) .. "]" if def and def.icon then formspec = formspec .. "image[1,0;3,3;" .. def.icon .. "]" @@ -466,14 +468,14 @@ function awards.show_to(name, to, sid, text) minetest.chat_send_player(to, S("You have not gotten any awards.")) return end - minetest.chat_send_player(to, string.format(S("%s’s awards:"), name)) + minetest.chat_send_player(to, S("@1’s awards:"), name) for _, str in pairs(awards.players[name].unlocked) do local def = awards.def[str] if def then if def.title then if def.description then - minetest.chat_send_player(to, string.format(S("%s: %s"), def.title, def.description)) + minetest.chat_send_player(to, S("@1: @2", def.title, def.description)) else minetest.chat_send_player(to, def.title) end diff --git a/mods/HUD/awards/locale/awards.de.tr b/mods/HUD/awards/locale/awards.de.tr index 6fd3661a..49663d11 100644 --- a/mods/HUD/awards/locale/awards.de.tr +++ b/mods/HUD/awards/locale/awards.de.tr @@ -1,13 +1,14 @@ -%s: %s=%s: %s -%s (got)=%s (erhalten) -%s’s awards:=Auszeichnungen von %s: +# textdomain:awards +@1: @2=@1: @2 +@1 (got)=@1 (erhalten) +@1’s awards:=Auszeichnungen von @1: (Secret Award)=(Geheime Auszeichnung) Achievement gotten!=Auszeichnung erhalten! Achievement gotten:=Auszeichnung erhalten: -Achievement gotten: %s=Auszeichnung erhalten: %s +Achievement gotten: @1=Auszeichnung erhalten: @1 Secret achievement gotten!=Geheime Auszeichnung erhalten! Secret achievement gotten:=Geheime Auszeichnung erhalten: -Secret achievement gotten: %s=Geheime Auszeichnung erhalten: %s +Secret achievement gotten: @1=Geheime Auszeichnung erhalten: @1 Get this achievement to find out what it is.=Verdienen Sie sich diese Auszeichnung, um herauszufinden, was sie ist. You have not gotten any awards.=Sie haben noch keine Auszeichnungen. You've disabled awards. Type /awards enable to reenable.=Sie haben die Auszeichnungen deaktiviert. Geben Sie »/awards enable« ein, um sie wieder zu aktivieren. @@ -22,29 +23,29 @@ You have disabled your achievements.=Sie haben Ihre Auszeichnungen deaktiviert. You have enabled your achievements.=Sie haben Ihre Auszeichnungen aktiviert. [c|clear|disable|enable]=[c|clear|disable|enable] Awards=Auszeichnungen -%d/%d crafted=%d/%d gefertigt -%d/%d deaths=%d/%d Tode -%d/%d dug=%d/%d abgebaut -%d/%d game joins=%d/%d Spielen beigetreten -%d/%d lines of chat=%d/%d Chatzeilen -%d/%d placed=%d/%d platziert -Die %d times.=Sterben Sie %d mal. +@1/@2 crafted=@1/@2 gefertigt +@1/@2 deaths=@1/@2 Tode +@1/@2 dug=@1/@2 abgebaut +@1/@2 game joins=@1/@2 Spielen beigetreten +@1/@2 lines of chat=@1/@2 Chatzeilen +@1/@2 placed=@1/@2 platziert +Die @1 times.=Sterben Sie @1 mal. Die.=Sterben Sie. -Craft: %d×%s=Fertigen Sie an: %d×%s -Craft: %s=Fertigen Sie an: %s -Mine a block: %s=Bauen Sie einen Block ab: %s -Mine blocks: %d×%s=Bauen Sie Blöcke ab: %d×%s -Place a block: %s=Platzieren Sie einen Block: %s -Place blocks: %d×%s=Platzieren Sie Blöcke: %d×%s +Craft: @1×@2=Fertigen Sie an: @1×@2 +Craft: @1=Fertigen Sie an: @1 +Mine a block: @1=Bauen Sie einen Block ab: @1 +Mine blocks: @1×@2=Bauen Sie Blöcke ab: @1×@2 +Place a block: @1=Platzieren Sie einen Block: @1 +Place blocks: @1×@2=Platzieren Sie Blöcke: @1×@2 Join the game.=Treten Sie dem Spiel bei. -Join the game %d times.=Treten Sie dem Spiel %d mal bei. +Join the game @1 times.=Treten Sie dem Spiel @1 mal bei. Show details of an achievement=Details einer Auszeichnung anzeigen OK=OK Error: No awards available.=Fehler: Keine Auszeichnungen vorhanden. -Eat: %d×%s=Essen Sie: %d×%s -Eat: %s=Essen Sie: %s -%d/%d eaten=%d/%d gegessen -Place %d block(s).=Platzieren Sie %d Blöcke. -Dig %d block(s).=Bauen Sie %d Blöcke ab. -Eat %d item(s).=Essen Sie %d Dinge. -Craft %d item(s).=Fertigen Sie %d Gegenstände. +Eat: @1×@2=Essen Sie: @1×@2 +Eat: @1=Essen Sie: @1 +@1/@2 eaten=@1/@2 gegessen +Place @1 block(s).=Platzieren Sie @1 Blöcke. +Dig @1 block(s).=Bauen Sie @1 Blöcke ab. +Eat @1 item(s).=Essen Sie @1 Dinge. +Craft @1 item(s).=Fertigen Sie @1 Gegenstände. diff --git a/mods/HUD/awards/locale/template.txt b/mods/HUD/awards/locale/template.txt index c5ca6ab6..bcfb67ac 100644 --- a/mods/HUD/awards/locale/template.txt +++ b/mods/HUD/awards/locale/template.txt @@ -1,39 +1,40 @@ -%d/%d chat messages= -%d/%d crafted= -%d/%d deaths= -%d/%d dug= -%d/%d game joins= -%d/%d placed= -%s (got)= -%s: %s= -%s’s awards:= +# textdomain:awards +@1/@2 chat messages= +@1/@2 crafted= +@1/@2 deaths= +@1/@2 dug= +@1/@2 game joins= +@1/@2 placed= +@1 (got)= +@1: @1= +@1’s awards:= (Secret Award)= = = A Cat in a Pop-Tart?!= Achievement gotten!= Achievement gotten:= -Achievement gotten: %s= +Achievement gotten: @1= Achievement not found.= All your awards and statistics have been cleared. You can now start again.= Awards= -Craft: %d×%s= -Craft: %s= -Die %d times.= +Craft: @1×@2= +Craft: @1= +Die @1 times.= Die.= Get the achievements statistics for the given player or yourself= -Join the game %d times.= +Join the game @1 times.= Join the game.= List awards in chat (deprecated)= -Place a block: %s= -Place blocks: %d×%s= +Place a block: @1= +Place blocks: @1×@2= Secret Achievement gotten!= Secret Achievement gotten:= -Secret Achievement gotten: %s= +Secret Achievement gotten: @1= Show details of an achievement= Show, clear, disable or enable your achievements= Get this achievement to find out what it is.= -Write %d chat messages.= +Write @1 chat messages.= Write something in chat.= You have disabled your achievements.= You have enabled your achievements.= @@ -42,10 +43,10 @@ You've disabled awards. Type /awards enable to reenable.= [c|clear|disable|enable]= OK= Error: No awards available.= -Eat: %d×%s= -Eat: %s= -%d/%d eaten= -Place %d block(s).= -Dig %d block(s).= -Eat %d item(s).= -Craft %d item(s).= +Eat: @1×@2= +Eat: @1= +@1/@2 eaten= +Place @1 block(s).= +Dig @1 block(s).= +Eat @1 item(s).= +Craft @1 item(s).= diff --git a/mods/HUD/awards/triggers.lua b/mods/HUD/awards/triggers.lua index 42e126bd..318a4b28 100644 --- a/mods/HUD/awards/triggers.lua +++ b/mods/HUD/awards/triggers.lua @@ -32,7 +32,7 @@ awards.register_trigger("dig", function(def) end return { perc = itemcount / tmp.target, - label = string.format(S("%d/%d dug"), itemcount, tmp.target) + label = S("@1/@2 dug", itemcount, tmp.target) } end def.getDefaultDescription = function(self) @@ -42,12 +42,12 @@ awards.register_trigger("dig", function(def) nname = self.trigger.node end if self.trigger.target ~= 1 then - return string.format(S("Mine blocks: %d×%s"), self.trigger.target, nname) + return S("Mine blocks: @1×@2", self.trigger.target, nname) else - return string.format(S("Mine a block: %s"), nname) + return S("Mine a block: @1", nname) end else - return string.format(S("Mine %d block(s)."), self.trigger.target) + return S("Mine @1 block(s).", self.trigger.target) end end end) @@ -68,7 +68,7 @@ awards.register_trigger("place", function(def) end return { perc = itemcount / tmp.target, - label = string.format(S("%d/%d placed"), itemcount, tmp.target) + label = S("@1/@2 placed"), itemcount, tmp.target } end def.getDefaultDescription = function(self) @@ -78,12 +78,12 @@ awards.register_trigger("place", function(def) nname = self.trigger.node end if self.trigger.target ~= 1 then - return string.format(S("Place blocks: %d×%s"), self.trigger.target, nname) + return S("Place blocks: @1×@2", self.trigger.target, nname) else - return string.format(S("Place a block: %s"), nname) + return S("Place a block: @1", nname) end else - return string.format(S("Place %d block(s)."), self.trigger.target) + return S("Place @1 block(s).", self.trigger.target) end end end) @@ -104,7 +104,7 @@ awards.register_trigger("eat", function(def) end return { perc = itemcount / tmp.target, - label = string.format(S("%d/%d eaten"), itemcount, tmp.target) + label = S("@1/@2 eaten", itemcount, tmp.target) } end def.getDefaultDescription = function(self) @@ -114,12 +114,12 @@ awards.register_trigger("eat", function(def) iname = self.trigger.iode end if self.trigger.target ~= 1 then - return string.format(S("Eat: %d×%s"), self.trigger.target, iname) + return S("Eat: @1×@2", self.trigger.target, iname) else - return string.format(S("Eat: %s"), iname) + return S("Eat: @1", iname) end else - return string.format(S("Eat %d item(s)."), self.trigger.target) + return S("Eat @1 item(s).", self.trigger.target) end end end) @@ -134,12 +134,12 @@ awards.register_trigger("death", function(def) local itemcount = data.deaths or 0 return { perc = itemcount / tmp.target, - label = string.format(S("%d/%d deaths"), itemcount, tmp.target) + label = S("@1/@2 deaths", itemcount, tmp.target) } end def.getDefaultDescription = function(self) if self.trigger.target ~= 1 then - return string.format(S("Die %d times."), self.trigger.target) + return S("Die @1 times.", self.trigger.target) else return S("Die.") end @@ -156,12 +156,12 @@ awards.register_trigger("chat", function(def) local itemcount = data.chats or 0 return { perc = itemcount / tmp.target, - label = string.format(S("%d/%d chat messages"), itemcount, tmp.target) + label = S("@1/@2 chat messages", itemcount, tmp.target) } end def.getDefaultDescription = function(self) if self.trigger.target ~= 1 then - return string.format(S("Write %d chat messages."), self.trigger.target) + return S("Write @1 chat messages.", self.trigger.target) else return S("Write something in chat.") end @@ -178,12 +178,12 @@ awards.register_trigger("join", function(def) local itemcount = data.joins or 0 return { perc = itemcount / tmp.target, - label = string.format(S("%d/%d game joins"), itemcount, tmp.target) + label = S("@1/@2 game joins", itemcount, tmp.target) } end def.getDefaultDescription = function(self) if self.trigger.target ~= 1 then - return string.format(S("Join the game %d times."), self.trigger.target) + return S("Join the game @1 times.", self.trigger.target) else return S("Join the game.") end @@ -206,7 +206,7 @@ awards.register_trigger("craft", function(def) end return { perc = itemcount / tmp.target, - label = string.format(S("%d/%d crafted"), itemcount, tmp.target) + label = S("@1/@2 crafted", itemcount, tmp.target) } end def.getDefaultDescription = function(self) @@ -216,12 +216,12 @@ awards.register_trigger("craft", function(def) iname = self.trigger.item end if self.trigger.target ~= 1 then - return string.format(S("Craft: %d×%s"), self.trigger.target, iname) + return S("Craft: @1×@2", self.trigger.target, iname) else - return string.format(S("Craft: %s"), iname) + return S("Craft: @1", iname) end else - return string.format(S("Craft %d item(s)."), self.trigger.target) + return S("Craft @1 item(s).", self.trigger.target) end end end) diff --git a/mods/HUD/mcl_achievements/init.lua b/mods/HUD/mcl_achievements/init.lua index 8b4e1c48..cfeea18b 100644 --- a/mods/HUD/mcl_achievements/init.lua +++ b/mods/HUD/mcl_achievements/init.lua @@ -3,9 +3,7 @@ -- If true, activates achievements from other Minecraft editions (XBox, PS, etc.) local non_pc_achievements = false --- TODO: Enable translator when there's a translation --- local S = minetest.get_translator("mcl_achievements") -local S = function(s) return s end +local S = minetest.get_translator("mcl_achievements") -- Achievements from PC Edition diff --git a/mods/HUD/mcl_achievements/locale/mcl_achievements.de.tr b/mods/HUD/mcl_achievements/locale/mcl_achievements.de.tr index 28f98272..49c486e4 100644 --- a/mods/HUD/mcl_achievements/locale/mcl_achievements.de.tr +++ b/mods/HUD/mcl_achievements/locale/mcl_achievements.de.tr @@ -1,13 +1,13 @@ -# textdomain: mcl_achievements +# textdomain:mcl_achievements Aquire Hardware=Schmied Bake Bread=Brot backen Benchmarking=Tischler Cow Tipper=Kuhschubser -Craft a bookshelf.=Fertigen Sie ein Bücherregal -Craft a cake using wheat, sugar, milk and an egg.=Fertigen Sie einen Kuchen mit Weizen, Zucker, Milch und einem Ei. +Craft a bookshelf.=Fertigen Sie ein Bücherregal. +Craft a cake using wheat, sugar, milk and an egg.=Fertigen Sie einen Kuchen aus Weizen, Zucker, Milch und einem Ei. Craft a crafting table from 4 wooden planks.=Fertigen Sie eine Werkbank aus 4 Holzplanken. -Craft a stone pickaxe using sticks and cobblestone.=Fertigen Sie eine Steinspitzhacke mit Stöcken und Kopfsteinpflaster. -Craft a wooden sword using wooden planks and sticks on a crafting table.=Fertigen Sie ein Holzschwert mit Holzplanken und Stöcken an einer Werkbank. +Craft a stone pickaxe using sticks and cobblestone.=Fertigen Sie eine Steinspitzhacke aus Stöcken und Kopfsteinpflaster. +Craft a wooden sword using wooden planks and sticks on a crafting table.=Fertigen Sie ein Holzschwert aus Holzplanken und Stöcken an einer Werkbank. DIAMONDS!=DIAMANTEN! Delicious Fish=Leckerer Fisch Dispense With This=Ein Auge darauf werfen @@ -26,7 +26,7 @@ Mine emerald ore.=Bauen Sie Smaragderz ab. On A Rail=Auf der Schiene Pick up a blaze rod from the floor.=Sammeln Sie eine Lohenrute vom Boden auf. Pick up a diamond from the floor.=Sammeln Sie einen Diamanten vom Boden auf. -Pick up a wood item from the ground.@nHint: Punch a tree trunk until it pops out as an item.=Sammeln Sie ein Holz vom Boden auf.@nTipp: Hauen Sie einen Baumstamm, bis er als Gegenstand herausploppt. +Pick up a wood item from the ground.@nHint: Punch a tree trunk until it pops out as an item.=Sammeln Sie ein Stück Holz vom Boden auf.@nTipp: Hauen Sie einen Baumstamm, bis er als Gegenstand herausploppt. Pick up leather from the floor.@nHint: Cows and some other animals have a chance to drop leather, when killed.=Sammeln Sie Leder vom Boden auf.@nTipp: Kühe und einige andere Tiere werfen vielleicht Leder ab, wenn sie sterben. Place a dispenser.=Platzieren Sie einen Werfer Place a flower pot.=Platzieren Sie einen Blumentopf @@ -41,7 +41,7 @@ The Lie=Die Lüge Time to Farm!=Bauernzeit Time to Mine!=Zeit zum Graben! Time to Strike!=Zuschlagen! -Travel by minecart for at least 1000 meters from your starting point in a single ride.=Reisen Sie mit einer Lore für mindestens 1000 Meter vom Startpunkt in einer einzigen Fahrt. +Travel by minecart for at least 1000 meters from your starting point in a single ride.=Reisen Sie mit einer Lore für mindestens 1000 Meter vom Startpunkt aus in einer einzigen Fahrt. Use 8 cobblestones to craft a furnace.=Benutzen Sie 8 Kopfsteinpflaster, um einen Ofen zu fertigen. Use a crafting table to craft a wooden hoe from wooden planks and sticks.=Benutzen Sie eine Werkbank, um eine Holzhacke aus Holzplanken und Stöcken zu fertigen. Use a crafting table to craft a wooden pickaxe from wooden planks and sticks.=Benutzen Sie eine Werkbank, um eine Holzspitzhacke aus Holzplanken und Stöcken zu fertigen. diff --git a/mods/HUD/mcl_achievements/locale/template.txt b/mods/HUD/mcl_achievements/locale/template.txt index 3b630162..ecdba267 100644 --- a/mods/HUD/mcl_achievements/locale/template.txt +++ b/mods/HUD/mcl_achievements/locale/template.txt @@ -1,4 +1,4 @@ -# textdomain: mcl_achievements +# textdomain:mcl_achievements Aquire Hardware= Bake Bread= Benchmarking=