en este localizarea sursă din care traduci, iar
orice localizare lăsată netradusă revine implicit la aceasta.
Aplicația ta are două tipuri de text traducibil și ambele trec prin același
catalog locales/:
- Etichete de manifest — nume de obiecte și câmpuri, titluri de vizualizări, elemente de meniu și alte șiruri declarate în metadatele aplicației tale.
- Șiruri componentă-față - textul UI al componentelor dvs. React din față.
Marcarea sirurilor componentei frontale
Importă ajutătoarele de traducere dindouăzeci de aplicații/front-componente:
Când să utilizaţi care
Trans— text static în JSX. Folosește proprietățilemessageșivaluespentru interpolare, ca înTrans message="Hi {name}" values={{ name }}; interpolarea direct în elementele copil nu poate fi extrasă static.useTranslate().t- șiruri dinamice în interiorul unei componente. Re-randează atunci când utilizatorul schimbă limba. Preferă acest lucru în redare.t(...)(importat direct) - traducerea mai ușoară oriunde, inclusiv manipulatorii de evenimente, ajutoarele și domeniul de aplicare al modulului - nu numai în randare.msg(...)— un descriptor leneș pentru șiruri declarate ca date (constante, config). Rezolvați-l mai târziu cut(descriptor).
Context
Trecețicontext pentru a disambigua șirurile sursă identice care traduc
în mod diferit:
"\<context>": { "\<message>": "\<translation>" }. Etichetele din manifest sunt
contextuale prin construcție — fiecare poartă rolul de metadată pe care îl joacă
(objectMetadata.labelSingular, fieldMetadata.label, view.name, …), astfel încât
același cuvânt poate fi tradus diferit ca nume de obiect și ca nume de vizualizare.
Extragerea și traducerea
Rulează comanda de extragere din directorul aplicației:t()/msg()/Trans
din sursa front-component în locales/\<locale>.json, indexate după
șirul sursă. Completează traducerile:
{name} sunt substituiți la timp - țineți-le în traducerea
. Orice şir rămas gol se întoarce la textul sursă.
Cum rulează
douăzeci de dev:build compilează cataloagele şi serveşte limba corectă pentru utilizatorul curent
: etichetele manifest sunt rezolvate pe server, iar cataloagele de tip front-component
sunt copite în fiecare pachet de componente. La runtime, o componentă citește localizarea
din contextul de execuție (limba curentă a gazdei) și rezolvă
fiecare șir din catalog, revenind la sursă atunci când lipsește o traducere
. Schimbarea limbii în gazdă reafișează în timp real șirurile Trans și
useTranslate().t.
Etichetele manifestului sunt compilate la fiecare sincronizare — twenty dev:build, twenty apply
și monitorizarea continuă twenty dev — astfel că editarea unui fișier de localizare și
sincronizarea sunt suficiente pentru a vedea textul nou. Cataloagele componentelor Front sunt integrate în
fiecare pachet de componente la momentul compilării, astfel că modificarea unuia dintre ele înseamnă totuși
rularea din nou a twenty dev:build (și redistribuirea).
Elementele text copil ale Trans pot acoperi mai multe linii — spațiile albe sunt comprimate în
același mod în care JSX le comprimă, astfel încât ambele variante sunt extrase cu cheia Welcome back: