Documenti / Ember
Ember i18n con ember-intl, automatizzato
Localizza un'app Ember: i template Glimmer (.hbs, .gjs, .gts) diventano chiamate ember-intl {{t}}, con plurali, e una route applicativa che sceglie la lingua.
Come funziona
Il testo del modello diventa {{t "key" name=this.user.name}}, gli attributi placeholder={{t "key"}} e {{if (eq n 1) "item" "items"}} in una frase un messaggio plurale.
Prima e dopo
L'output effettivo del motore per questo file. In un'esecuzione reale, il modello ospitato nomina le chiavi dal contesto.
app/templates/cart.hbs · prima
<h1>Your basket</h1>
<p>Hi {{this.user.name}}, you have {{@count}} new messages.</p>
<p>See the <a href="/faq">FAQ</a> before you order.</p>
<input placeholder="Search products" />app/templates/cart.hbs · dopo
<h1>{{t "cart.your_basket"}}</h1>
<p>{{t "cart.hi_you_have_new_messages" name=this.user.name count=@count}}</p>
<p><I18nT @key="cart.see_the_before_you_order" @slots="a" as |is|>{{#if is.a}}<a href="/faq">{{t "cart.faq"}}</a>{{/if}}</I18nT></p>
<input placeholder={{t "cart.search_products"}} />translations/en.json
{
"cart": {
"your_basket": "Your basket",
"hi_you_have_new_messages": "Hi {name}, you have {count} new messages.",
"faq": "FAQ",
"see_the_before_you_order": "See the {a} before you order.",
"search_products": "Search products"
}
}Cosa aggiunge la configurazione
La prima esecuzione imposta ember-intl se il progetto non lo ha ancora:
ember-intl, con messaggi intranslations/<locale>.json- Un percorso dell'applicazione che sceglie la lingua e imposta
<html lang dir>
Eseguilo
La CLI richiede Node.js 22 o versioni successive.
npm install --save-dev localize-dev
npx localize-dev login
# Preview, then write the changes
npx localize-dev run --dry-run -l es,fr,de
npx localize-dev run -l es,fr,de
# Or open a pull request instead
npx localize-dev pr -l es,fr,deOppure aggiungi la GitHub Action e ottieni una pull request a ogni push. Provalo prima sul tuo codice nel playground.