en es la configuración regional de origen desde la que traduces y cualquier configuración regional que quede sin traducir volverá a esa configuración.
Tu aplicación tiene dos tipos de texto traducible, y ambos pasan por el mismo catálogo locales/:
- Etiquetas del manifiesto: nombres de objetos y campos, títulos de vistas, elementos de menú y otras cadenas declaradas en los metadatos de tu aplicación.
- Cadenas de componentes delanteros — la interfaz de texto de tus componentes frontales de React.
Marcando cadenas de componentes frontales
Importar los ayudantes de traducción detwenty-sdk/front-component:
Cuándo usar qué
Trans— texto estático en JSX. Usa las propsmessageyvaluespara la interpolación, como enTrans message="Hi {name}" values={{ name }}; la interpolación directamente en los children no se puede extraer de forma estática.useTranslate().t— cadenas dinámicas dentro de un componente. Se vuelve a procesar cuando el usuario cambia de idioma. Preferir esto dentro del render.t(...)(importado directamente) — una traducción entera utilizable en cualquier lugar, incluyendo controladores de eventos, ayudantes y ámbito del módulo — no solo dentro del render.msg(...)— un descriptor perezoso para cadenas declaradas como datos (constantes, configuración ). Resuelva más tarde cont(descriptor).
Contexto
Pasecontext para desambiguar cadenas de origen idénticas que traduzcan
de forma diferente:
Extrayendo y traduciendo
Ejecutar el comando de extracción desde el directorio de la aplicación:t()/msg()/Trans de tu código fuente de front-component en locales/\<locale>.json, indexadas por la cadena de origen. Rellena las traducciones:
{name} se sustituyen en tiempo de ejecución — manténgalos en la traducción
. Cualquier cadena que quede vacía regresa al texto original.
Cómo funciona
twenty dev:build compila los catálogos y sirve el idioma correcto para el
usuario actual: las etiquetas del manifiesto se resuelven del lado del servidor y los catálogos de front-component se incluyen en cada paquete de componente. En tiempo de ejecución, un componente lee la configuración regional
desde su contexto de ejecución (el idioma actual del host) y resuelve
cada cadena contra su catálogo, volviendo a la fuente cuando falta una traducción
. Cambiar el idioma en el host vuelve a renderizar en tiempo real las cadenas de Trans y useTranslate().t.
Debido a que los catálogos se compilan en tiempo de construcción, actualizar una traducción significa
volver a ejecutar twenty dev:build (y redesplegar), lo mismo que cualquier otro cambio.
Las traducciones son compiladas por
twenty dev:build (y veinte aplicaciones). El reloj
continuo veinte dev muestra las cadenas de origen, así que prueba la salida localizada
con una compilación única.Trans pueden abarcar varias líneas; los espacios en blanco se colapsan de la misma manera en que JSX los colapsa, por lo que ambos se extraen a la clave Welcome back: