Localizzare gli addon è semplice.
Aggiungere messaggi
Nella cartella addons-l10n/en/
, crea un file chiamato ADDONID.json
, dove ADDONID è l’ID dell’addon (il nome della cartella). Scrivi lì i messaggi che vuoi tradurre:
{
"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."
}
}
Segnaposto
Alcuni messaggi hanno delle parti che sono generate dinamicamente. Ad esempio, il numero di gatti o di input. In questi casi puoi usare dei segnaposto come {nomeSegnaposto}
. Il nome del segnaposto deve contenere solo lettere (non numeri).
Plurali
E se il segnaposto è un numero? Possiamo definire i plurali come in {nomeSegnaposto, plural, one {quando c'è una cosa} other {quando ci sono # cose}}
. Se il segnaposto vale 1, mostrerà “quando c’è una cosa”, altrimenti dirà “quando ci sono (segnaposto) cose”.
Commenti dello sviluppatore
Transifex mostrerà il commento dello sviluppatore quando un traduttore seleziona la stringa. Questi commenti vengono solitamente usati per richiedere traduzioni specifiche per la stringa o per fornire ulteriori informazioni per le lingue che non fanno differenza tra caratteri maiuscoli e minuscoli.
Usare le traduzioni
Cambia la prima linea del tuo userscript da:
export default async function ({ addon, console }) {
a:
export default async function ({ addon, console, msg }) {
L’argomento msg
aggiunto è la funzione che puoi usare per ottenere la traduzione. Ad esempio, text = "Meow"
diventa ora text = msg("meow")
. L’ID dell’addon e lo slash vengono omessi.
Segnaposto
Puoi assegnare valori ai segnaposto:
cat = msg("cats", {number: 1}) // mostra "1 gatto"
cats = msg("cats", {number: 3}) // mostra "3 gatti"
hungry = msg("eat", {food: "cod"}) // mostra "Voglio mangiare merluzzo!"
Puoi anche “annidare” i messaggi:
hungry2 = msg("eat", {food: msg("salmon")}) // mostra "Voglio mangiare salmone!"
Sicureza
Se stai scrivendo del semplice HTML, msg
dovrebbe essere rimpiazzata con la sua versione più sicura safeMsg
.
Commenti
Assicurati di seguire il codice di comportamento. Puoi vedere questa sezione di commenti su GitHub Discussions e puoi anche modificare o cancellare il tuo commento.