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:
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.
Deoarece cataloagele sunt compilate la ora de construcție, actualizarea unei traduceri înseamnă
repornirea douăzeci dev:build (și redistribuirea), la fel ca orice altă schimbare.
Traducerile sunt compilate de
douăzeci dev:build (și douăzeci apply).
ceasul continuu douăzeci de dev arată șirurile sursă, așa că testează rezultatul localizat
cu o singură construcție.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: