Tłumaczenie dodatków jest proste.
Dodawanie wiadomości
W pliku addons-l10n/en/
, stwórz nowy plik IDDODATKU.json
, gdzie IDDODATKU to nazwa folderu w którym znajduje się dodatek. Tam napisz swoje wiadomości:
{
"ADDONID/meow": "Meow",
"ADDONID/cats": "{number, plural, one {1 cat} other {# cats}}",
"ADDONID/eat": "I want to eat {food}!",
"ADDONID/salmon": "salmon",
"ADDONID/sardine": "sardine",
"ADDONID/move-steps": {
"string": "move {number} steps",
"developer_comment": "Please translate this to match Scratch's official translation for the block."
}
}
Słowa-wypełniacze
Czasami wiadomości muszą zawierać zawartość automatycznie generowaną. Na przykład liczbę kodów, lub tekst wpisany przez użytkownika. Aby to obsłużyć, musisz używać, możesz używać “słów-wypełniaczy” np {słowoWypełniacz}
. Słowa-wypełniacze powinny zawierać tylko litery (nie liczby).
Liczba mnoga
Co jeśli symbolem zastępczym jest liczba? Możemy użyć liczby mnogiej, takiej jak {nazwa zastępcza, liczba mnoga, liczba pojedyncza {gdy jest jedna rzecz}, inna {gdy jest # rzeczy}}
. Jeśli symbol zastępczy ma wartość 1, pokaże się „Gdy jest jedna rzecz.”, w przeciwnym razie zostanie napisane „Gdy jest (symbol zastępczy) rzeczy”.
Developer comments
Transifex will display the developer comment when a translator has selected the specified string. These comments are usually used to ask for a particular translation of the string or to provide additional information for languages that do not differentiate between uppercase and lowercase characters.
Używanie tłumaczeń
Zmień pierwszą linię swojego kodu z czegoś takiego:
export default async function ({ addon, console }) {
na:
export default async function ({ addon, console, msg }) {
msg
to jest funkcja, którą możesz użyć do tłumaczenia. Na przykład: text = "Meow"
możesz zamienić na text = msg("meow")
. Podając id wiadomości, nie wpisuj slasha i id dodatku.
Słowa-wypełniacze
Możesz podać słowa zastępujące w taki sposób:
cat = msg("cats", {number: 1}) // pokazuje "1 kot"
cats = msg("cats", {number: 3}) // pokazuje "3 koty"
hungry = msg("eat", {food: "cod"}) // pokazuje "Chcę zjeść dorsza!"
Możesz także “zagnieździć” wiadomości:
hungry2 = msg("eat", {food: msg("salmon")}) // pokazuje "Chcę zjeść łososia!"
Bezpieczeństwo
Jeśli piszesz w samym HTML’u powinnieś używać safeMsg
zamiast msg
.
Komentarze
Pamiętaj, aby sprawdzić kodeks postępowania. Możesz sprawdzić komentarze na dyskusji GitHub, oraz edytować lub usuwać swój komentarz.