Make achievements translatable

This commit is contained in:
Wuzzy 2019-03-16 03:36:32 +01:00
parent 522a2b9a73
commit 550fa39d86
7 changed files with 93 additions and 91 deletions

View File

@ -274,9 +274,9 @@ function awards.unlock(name, award)
elseif awards.show_mode == "chat" then elseif awards.show_mode == "chat" then
local chat_announce local chat_announce
if awdef.secret == true then if awdef.secret == true then
chat_announce = S("Secret achievement gotten: %s") chat_announce = S("Secret achievement gotten: @1")
else else
chat_announce = S("Achievement gotten: %s") chat_announce = S("Achievement gotten: @1")
end end
-- use the chat console to send it -- use the chat console to send it
minetest.chat_send_player(name, string.format(chat_announce, title)) 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 if def and def.title then
title = def.title title = def.title
end end
local status = "%s" local status
if item.got then if item.got then
status = S("%s (got)") status = S("@1 (got)", title)
else
status = title
end end
formspec = formspec .. "label[1,2.75;" .. formspec = formspec .. "label[1,2.75;" ..
string.format(status, minetest.formspec_escape(title)) .. minetest.formspec_escape(status) ..
"]" "]"
if def and def.icon then if def and def.icon then
formspec = formspec .. "image[1,0;3,3;" .. def.icon .. "]" 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.")) minetest.chat_send_player(to, S("You have not gotten any awards."))
return return
end end
minetest.chat_send_player(to, string.format(S("%ss awards:"), name)) minetest.chat_send_player(to, S("@1s awards:"), name)
for _, str in pairs(awards.players[name].unlocked) do for _, str in pairs(awards.players[name].unlocked) do
local def = awards.def[str] local def = awards.def[str]
if def then if def then
if def.title then if def.title then
if def.description 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 else
minetest.chat_send_player(to, def.title) minetest.chat_send_player(to, def.title)
end end

View File

@ -1,13 +1,14 @@
%s: %s=%s: %s # textdomain:awards
%s (got)=%s (erhalten) @1: @2=@1: @2
%ss awards:=Auszeichnungen von %s: @1 (got)=@1 (erhalten)
@1s awards:=Auszeichnungen von @1:
(Secret Award)=(Geheime Auszeichnung) (Secret Award)=(Geheime Auszeichnung)
Achievement gotten!=Auszeichnung erhalten! Achievement gotten!=Auszeichnung erhalten!
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:=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. 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 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. 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. You have enabled your achievements.=Sie haben Ihre Auszeichnungen aktiviert.
[c|clear|disable|enable]=[c|clear|disable|enable] [c|clear|disable|enable]=[c|clear|disable|enable]
Awards=Auszeichnungen Awards=Auszeichnungen
%d/%d crafted=%d/%d gefertigt @1/@2 crafted=@1/@2 gefertigt
%d/%d deaths=%d/%d Tode @1/@2 deaths=@1/@2 Tode
%d/%d dug=%d/%d abgebaut @1/@2 dug=@1/@2 abgebaut
%d/%d game joins=%d/%d Spielen beigetreten @1/@2 game joins=@1/@2 Spielen beigetreten
%d/%d lines of chat=%d/%d Chatzeilen @1/@2 lines of chat=@1/@2 Chatzeilen
%d/%d placed=%d/%d platziert @1/@2 placed=@1/@2 platziert
Die %d times.=Sterben Sie %d mal. Die @1 times.=Sterben Sie @1 mal.
Die.=Sterben Sie. Die.=Sterben Sie.
Craft: %d×%s=Fertigen Sie an: %d×%s Craft: @1×@2=Fertigen Sie an: @1×@2
Craft: %s=Fertigen Sie an: %s Craft: @1=Fertigen Sie an: @1
Mine a block: %s=Bauen Sie einen Block ab: %s Mine a block: @1=Bauen Sie einen Block ab: @1
Mine blocks: %d×%s=Bauen Sie Blöcke ab: %d×%s Mine blocks: @1×@2=Bauen Sie Blöcke ab: @1×@2
Place a block: %s=Platzieren Sie einen Block: %s Place a block: @1=Platzieren Sie einen Block: @1
Place blocks: %d×%s=Platzieren Sie Blöcke: %d×%s Place blocks: @1×@2=Platzieren Sie Blöcke: @1×@2
Join the game.=Treten Sie dem Spiel bei. 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 Show details of an achievement=Details einer Auszeichnung anzeigen
OK=OK OK=OK
Error: No awards available.=Fehler: Keine Auszeichnungen vorhanden. Error: No awards available.=Fehler: Keine Auszeichnungen vorhanden.
Eat: %d×%s=Essen Sie: %d×%s Eat: @1×@2=Essen Sie: @1×@2
Eat: %s=Essen Sie: %s Eat: @1=Essen Sie: @1
%d/%d eaten=%d/%d gegessen @1/@2 eaten=@1/@2 gegessen
Place %d block(s).=Platzieren Sie %d Blöcke. Place @1 block(s).=Platzieren Sie @1 Blöcke.
Dig %d block(s).=Bauen Sie %d Blöcke ab. Dig @1 block(s).=Bauen Sie @1 Blöcke ab.
Eat %d item(s).=Essen Sie %d Dinge. Eat @1 item(s).=Essen Sie @1 Dinge.
Craft %d item(s).=Fertigen Sie %d Gegenstände. Craft @1 item(s).=Fertigen Sie @1 Gegenstände.

View File

@ -1,39 +1,40 @@
%d/%d chat messages= # textdomain:awards
%d/%d crafted= @1/@2 chat messages=
%d/%d deaths= @1/@2 crafted=
%d/%d dug= @1/@2 deaths=
%d/%d game joins= @1/@2 dug=
%d/%d placed= @1/@2 game joins=
%s (got)= @1/@2 placed=
%s: %s= @1 (got)=
%ss awards:= @1: @1=
@1s awards:=
(Secret Award)= (Secret Award)=
<achievement ID>= <achievement ID>=
<name>= <name>=
A Cat in a Pop-Tart?!= A Cat in a Pop-Tart?!=
Achievement gotten!= Achievement gotten!=
Achievement gotten:= Achievement gotten:=
Achievement gotten: %s= Achievement gotten: @1=
Achievement not found.= Achievement not found.=
All your awards and statistics have been cleared. You can now start again.= All your awards and statistics have been cleared. You can now start again.=
Awards= Awards=
Craft: %d×%s= Craft: @1×@2=
Craft: %s= Craft: @1=
Die %d times.= Die @1 times.=
Die.= Die.=
Get the achievements statistics for the given player or yourself= Get the achievements statistics for the given player or yourself=
Join the game %d times.= Join the game @1 times.=
Join the game.= Join the game.=
List awards in chat (deprecated)= List awards in chat (deprecated)=
Place a block: %s= Place a block: @1=
Place blocks: %d×%s= Place blocks: @1×@2=
Secret Achievement gotten!= Secret Achievement gotten!=
Secret Achievement gotten:= Secret Achievement gotten:=
Secret Achievement gotten: %s= Secret Achievement gotten: @1=
Show details of an achievement= Show details of an achievement=
Show, clear, disable or enable your achievements= Show, clear, disable or enable your achievements=
Get this achievement to find out what it is.= Get this achievement to find out what it is.=
Write %d chat messages.= Write @1 chat messages.=
Write something in chat.= Write something in chat.=
You have disabled your achievements.= You have disabled your achievements.=
You have enabled your achievements.= You have enabled your achievements.=
@ -42,10 +43,10 @@ You've disabled awards. Type /awards enable to reenable.=
[c|clear|disable|enable]= [c|clear|disable|enable]=
OK= OK=
Error: No awards available.= Error: No awards available.=
Eat: %d×%s= Eat: @1×@2=
Eat: %s= Eat: @1=
%d/%d eaten= @1/@2 eaten=
Place %d block(s).= Place @1 block(s).=
Dig %d block(s).= Dig @1 block(s).=
Eat %d item(s).= Eat @1 item(s).=
Craft %d item(s).= Craft @1 item(s).=

View File

@ -32,7 +32,7 @@ awards.register_trigger("dig", function(def)
end end
return { return {
perc = itemcount / tmp.target, perc = itemcount / tmp.target,
label = string.format(S("%d/%d dug"), itemcount, tmp.target) label = S("@1/@2 dug", itemcount, tmp.target)
} }
end end
def.getDefaultDescription = function(self) def.getDefaultDescription = function(self)
@ -42,12 +42,12 @@ awards.register_trigger("dig", function(def)
nname = self.trigger.node nname = self.trigger.node
end end
if self.trigger.target ~= 1 then 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 else
return string.format(S("Mine a block: %s"), nname) return S("Mine a block: @1", nname)
end end
else else
return string.format(S("Mine %d block(s)."), self.trigger.target) return S("Mine @1 block(s).", self.trigger.target)
end end
end end
end) end)
@ -68,7 +68,7 @@ awards.register_trigger("place", function(def)
end end
return { return {
perc = itemcount / tmp.target, perc = itemcount / tmp.target,
label = string.format(S("%d/%d placed"), itemcount, tmp.target) label = S("@1/@2 placed"), itemcount, tmp.target
} }
end end
def.getDefaultDescription = function(self) def.getDefaultDescription = function(self)
@ -78,12 +78,12 @@ awards.register_trigger("place", function(def)
nname = self.trigger.node nname = self.trigger.node
end end
if self.trigger.target ~= 1 then 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 else
return string.format(S("Place a block: %s"), nname) return S("Place a block: @1", nname)
end end
else else
return string.format(S("Place %d block(s)."), self.trigger.target) return S("Place @1 block(s).", self.trigger.target)
end end
end end
end) end)
@ -104,7 +104,7 @@ awards.register_trigger("eat", function(def)
end end
return { return {
perc = itemcount / tmp.target, perc = itemcount / tmp.target,
label = string.format(S("%d/%d eaten"), itemcount, tmp.target) label = S("@1/@2 eaten", itemcount, tmp.target)
} }
end end
def.getDefaultDescription = function(self) def.getDefaultDescription = function(self)
@ -114,12 +114,12 @@ awards.register_trigger("eat", function(def)
iname = self.trigger.iode iname = self.trigger.iode
end end
if self.trigger.target ~= 1 then 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 else
return string.format(S("Eat: %s"), iname) return S("Eat: @1", iname)
end end
else else
return string.format(S("Eat %d item(s)."), self.trigger.target) return S("Eat @1 item(s).", self.trigger.target)
end end
end end
end) end)
@ -134,12 +134,12 @@ awards.register_trigger("death", function(def)
local itemcount = data.deaths or 0 local itemcount = data.deaths or 0
return { return {
perc = itemcount / tmp.target, perc = itemcount / tmp.target,
label = string.format(S("%d/%d deaths"), itemcount, tmp.target) label = S("@1/@2 deaths", itemcount, tmp.target)
} }
end end
def.getDefaultDescription = function(self) def.getDefaultDescription = function(self)
if self.trigger.target ~= 1 then 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 else
return S("Die.") return S("Die.")
end end
@ -156,12 +156,12 @@ awards.register_trigger("chat", function(def)
local itemcount = data.chats or 0 local itemcount = data.chats or 0
return { return {
perc = itemcount / tmp.target, 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 end
def.getDefaultDescription = function(self) def.getDefaultDescription = function(self)
if self.trigger.target ~= 1 then 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 else
return S("Write something in chat.") return S("Write something in chat.")
end end
@ -178,12 +178,12 @@ awards.register_trigger("join", function(def)
local itemcount = data.joins or 0 local itemcount = data.joins or 0
return { return {
perc = itemcount / tmp.target, 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 end
def.getDefaultDescription = function(self) def.getDefaultDescription = function(self)
if self.trigger.target ~= 1 then 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 else
return S("Join the game.") return S("Join the game.")
end end
@ -206,7 +206,7 @@ awards.register_trigger("craft", function(def)
end end
return { return {
perc = itemcount / tmp.target, perc = itemcount / tmp.target,
label = string.format(S("%d/%d crafted"), itemcount, tmp.target) label = S("@1/@2 crafted", itemcount, tmp.target)
} }
end end
def.getDefaultDescription = function(self) def.getDefaultDescription = function(self)
@ -216,12 +216,12 @@ awards.register_trigger("craft", function(def)
iname = self.trigger.item iname = self.trigger.item
end end
if self.trigger.target ~= 1 then 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 else
return string.format(S("Craft: %s"), iname) return S("Craft: @1", iname)
end end
else else
return string.format(S("Craft %d item(s)."), self.trigger.target) return S("Craft @1 item(s).", self.trigger.target)
end end
end end
end) end)

View File

@ -3,9 +3,7 @@
-- If true, activates achievements from other Minecraft editions (XBox, PS, etc.) -- If true, activates achievements from other Minecraft editions (XBox, PS, etc.)
local non_pc_achievements = false local non_pc_achievements = false
-- TODO: Enable translator when there's a translation local S = minetest.get_translator("mcl_achievements")
-- local S = minetest.get_translator("mcl_achievements")
local S = function(s) return s end
-- Achievements from PC Edition -- Achievements from PC Edition

View File

@ -1,13 +1,13 @@
# textdomain: mcl_achievements # textdomain:mcl_achievements
Aquire Hardware=Schmied Aquire Hardware=Schmied
Bake Bread=Brot backen Bake Bread=Brot backen
Benchmarking=Tischler Benchmarking=Tischler
Cow Tipper=Kuhschubser Cow Tipper=Kuhschubser
Craft a bookshelf.=Fertigen Sie ein Bücherregal 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 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 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 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 mit Holzplanken und Stöcken an einer Werkbank. 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! DIAMONDS!=DIAMANTEN!
Delicious Fish=Leckerer Fisch Delicious Fish=Leckerer Fisch
Dispense With This=Ein Auge darauf werfen Dispense With This=Ein Auge darauf werfen
@ -26,7 +26,7 @@ Mine emerald ore.=Bauen Sie Smaragderz ab.
On A Rail=Auf der Schiene On A Rail=Auf der Schiene
Pick up a blaze rod from the floor.=Sammeln Sie eine Lohenrute vom Boden auf. 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 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. 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 dispenser.=Platzieren Sie einen Werfer
Place a flower pot.=Platzieren Sie einen Blumentopf Place a flower pot.=Platzieren Sie einen Blumentopf
@ -41,7 +41,7 @@ The Lie=Die Lüge
Time to Farm!=Bauernzeit Time to Farm!=Bauernzeit
Time to Mine!=Zeit zum Graben! Time to Mine!=Zeit zum Graben!
Time to Strike!=Zuschlagen! 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 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 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. 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.

View File

@ -1,4 +1,4 @@
# textdomain: mcl_achievements # textdomain:mcl_achievements
Aquire Hardware= Aquire Hardware=
Bake Bread= Bake Bread=
Benchmarking= Benchmarking=