Idiomas
Cómo funciona el sitio en inglés y árabe, cómo se elige el idioma y qué cambiar para añadir un idioma.
Los idiomas incluidos
| Idioma | Dirección | Dirección del texto | Fuente |
|---|---|---|---|
| Inglés, por defecto | /en | De izquierda a derecha | Inter |
| Árabe | /ar | De derecha a izquierda | Noto Sans Arabic |
Todos los textos visibles vienen de messages/en.json o messages/ar.json, incluidos los textos alternativos, las etiquetas de los botones para lectores de pantalla y el título y la descripción de la página.
Cómo se elige el idioma
- El idioma es la primera parte de la dirección:
/eno/ar. - Una dirección sin idioma, como
/, redirige al idioma del visitante: árabe para un navegador configurado en árabe, inglés para cualquier otro. Durante el resto de la sesión del navegador recuerda el último idioma abierto, en una cookieNEXT_LOCALE. /eny/arsiempre abren su propio idioma.- El selector de idioma de la barra de navegación y del menú móvil muestra el nombre del otro idioma y mantiene al visitante en la página.
- Los atributos
langydirde la página siguen el idioma, igual que el enlace canónico y los enlaces de idioma para los buscadores.
Cambia un texto
Cambia el valor en los dos archivos de mensajes y conserva la clave. Una clave que falte en un archivo aparece como un error de mensaje ausente en la página de ese idioma, así que mantén los dos archivos sincronizados.
De derecha a izquierda
El layout usa clases lógicas de Tailwind como ms-*, pe-*, start-* y end-*, así que los márgenes, rellenos y posiciones se invierten solos en árabe. Úsalas, y no ml-* o left-*, cuando añadas marcado. Los iconos de flecha se giran con rtl:-scale-x-100.
Las etiquetas en árabe del propio sitio
Cuando escribas sobre el sitio en árabe, usa las etiquetas que muestra su página:
| Inglés | Árabe | Dónde |
|---|---|---|
Features | المميزات | Barra de navegación |
Work | الأعمال | Barra de navegación |
Process | المنهجية | Barra de navegación |
Pricing | الأسعار | Barra de navegación |
Contact | تواصل معنا | Botón de la barra de navegación |
Monthly | شهري | Precios |
Annual | سنوي | Precios |
Send Message | إرسال الرسالة | Formulario de contacto |
Añade un idioma
Con el francés como ejemplo, con el código fr:
Añádelo al enrutamiento
En
src/i18n/routing.ts, añade el código alocales:src/i18n/routing.tslocales: ["en", "ar", "fr"],Crea su archivo de mensajes
Copia el archivo en inglés y traduce sus valores. Conserva todas las claves.
Terminalenlanding-page-template-1cp messages/en.json messages/fr.jsonPonle nombre en el selector de idioma
Añade
"fr": "Français"dentro delocaleSwitcher.namesen todos los archivos de mensajes.Dale una configuración regional para las tarjetas sociales
En
src/i18n/openGraphLocales.ts, añadefr: "fr_FR". La comprobación de tipos de la compilación falla hasta que cada idioma tenga ahí una entrada.Solo para un idioma de derecha a izquierda
Añade su código a
RTL_LOCALESensrc/i18n/getDirection.ts. El layout carga Noto Sans Arabic solo paraar: para otro alfabeto, carga una fuente adecuada ensrc/app/[locale]/layout.tsx.
El selector alterna entre dos idiomas
Muestra el primer idioma que no es el actual. Con tres o más, sustitúyelo por un menú en src/components/LocaleSwitcher/.