Idiomas
Cómo funciona el sitio en inglés y árabe, cómo cambiar cualquier texto y cómo añadir un idioma.
Los idiomas incluidos
Inglés y árabe. El inglés es el idioma predeterminado. El árabe muestra toda la página de derecha a izquierda, con la fuente Noto Sans Arabic.
| Idioma | Dirección | Dirección |
|---|---|---|
| Inglés | /en | De izquierda a derecha |
| Árabe | /ar | De derecha a izquierda |
Cómo se elige el idioma
- El idioma es la primera parte de la dirección,
/eno/ar. - La dirección
/lleva a los visitantes al idioma que prefiere su navegador, inglés o árabe, y al inglés en los demás casos. - El selector de la cabecera tiene un enlace para cada uno de los demás idiomas. Cambia esa parte de la dirección y mantiene al visitante en la misma página.
- Cada página define su idioma y su dirección de escritura, e indica el otro idioma a los buscadores.
Cambia un texto
Cada palabra visible está en messages/en.json y messages/ar.json. Los dos archivos tienen las mismas claves: cambia el valor en cada uno, nunca la clave. Una clave que falta en un archivo aparece con su nombre en la página de ese idioma.
De derecha a izquierda
src/i18n/direction.ts enumera los idiomas de derecha a izquierda, y el diseño define a partir de él la dirección de la página. Los componentes usan clases lógicas de Tailwind como ms-*, pe-*, start-* y text-start, así que los espaciados y las alineaciones se invierten solos. Las flechas que apuntan en el sentido de lectura llevan rtl:rotate-180.
En el marcado que añadas, usa las mismas clases lógicas en lugar de ml-*, pr-*, left-* o text-left. Si no, se verá bien en inglés y mal en árabe.
Añade un idioma
Añade su código
Añade el código del idioma a
localesensrc/i18n/routing.ts, por ejemplofr.src/i18n/routing.tslocales: ["en", "ar", "fr"],Añade sus mensajes
Copia
messages/en.jsonamessages/fr.jsony traduce los valores. Añade el nombre del idioma bajolocaleSwitcher.namesen todos los archivos de mensajes.¿De derecha a izquierda?
Si el idioma se escribe de derecha a izquierda, añade su código a
RTL_LOCALESensrc/i18n/direction.ts.Revisa la fuente
src/app/[locale]/layout.tsxusa Noto Sans Arabic paraare Inter, solo con letras latinas, para cualquier otro idioma. Un idioma con otro alfabeto necesita ahí su propia fuente.Resultado esperado: Tras reiniciar o construir de nuevo, el nuevo idioma se abre en su propia dirección, como
/fr, y el selector de la cabecera enlaza con él.