en è la locale di origine da cui traduci e
qualsiasi locale lasciato non tradotto usa quella come fallback.
La tua app ha due tipi di testo traducibile, e entrambi passano attraverso lo stesso
catalogo locales/:
- Etichette del manifest — nomi di oggetti e campi, titoli delle viste, voci di menu e altre stringhe dichiarate nei metadati della tua app.
- String dei front-component — il testo dell’interfaccia utente renderizzato dai tuoi front component React.
Contrassegnare le stringhe dei front-component
Importa gli helper di traduzione datwenty-sdk/front-component:
Quando usare cosa
Trans— testo statico in JSX. Usa le propmessageevaluesper l’interpolazione, come inTrans message="Hi {name}" values={{ name }}; l’interpolazione direttamente nei figli non è estraibile staticamente.useTranslate().t— stringhe dinamiche all’interno di un componente. Esegue il re-render quando l’utente cambia lingua. Preferiscilo all’interno del render.t(...)(importato direttamente) — traduzione eager utilizzabile ovunque, inclusi gestori di eventi, helper e nello scope del modulo — non solo all’interno del render.msg(...)— un descrittore lazy per stringhe dichiarate come dati (costanti, configurazione). Risolvilo in un secondo momento cont(descriptor).
Contesto
Passacontext per distinguere stringhe sorgente identiche che si traducono
in modo diverso:
Estrazione e traduzione
Esegui il comando di estrazione dalla directory della tua app:t()/msg()/Trans
dal tuo sorgente front-component in locales/\<locale>.json, indicizzate per
stringa sorgente. Compila le traduzioni:
{name} vengono sostituiti a runtime — mantienili nella
traduzione. Qualsiasi stringa lasciata vuota fa fallback al testo sorgente.
Come viene eseguito
twenty dev:build compila i cataloghi e serve la lingua corretta per l’utente
corrente: le etichette del manifest vengono risolte lato server e i cataloghi dei
front-component vengono inclusi in ogni bundle di componente. A runtime un componente legge la
locale dal proprio contesto di esecuzione (la lingua corrente dell’host) e risolve
ogni stringa rispetto al proprio catalogo, facendo fallback alla sorgente quando
una traduzione manca. Cambiare lingua nell’host esegue nuovamente il render delle stringhe Trans e
useTranslate().t in tempo reale.
Poiché i cataloghi vengono compilati in fase di build, aggiornare una traduzione significa
eseguire nuovamente twenty dev:build (e ridistribuire), come per qualsiasi altra modifica.
Le traduzioni vengono compilate da
twenty dev:build (e twenty apply). La modalità watch continua di twenty dev mostra le stringhe sorgente, quindi testa l’output localizzato
con una build una tantum.Trans possono estendersi su più righe — gli spazi bianchi vengono compressi
nello stesso modo in cui JSX li comprime, quindi entrambe queste varianti vengono estratte con la chiave Welcome back: