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
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("%ss awards:"), name))
minetest.chat_send_player(to, S("@1s 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

View file

@ -1,13 +1,14 @@
%s: %s=%s: %s
%s (got)=%s (erhalten)
%ss awards:=Auszeichnungen von %s:
# textdomain:awards
@1: @2=@1: @2
@1 (got)=@1 (erhalten)
@1s 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.

View file

@ -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=
%ss 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=
@1s awards:=
(Secret Award)=
<achievement ID>=
<name>=
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).=

View file

@ -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)

View file

@ -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

View file

@ -3,11 +3,11 @@ 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.