Idiomas
Cómo funciona la página en inglés y en á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, el idioma por defecto | /en | De izquierda a derecha | Inter |
| Árabe | /ar | De derecha a izquierda | Noto Sans Arabic |
Cada texto, descripción de imagen y etiqueta de botón, y el título y la descripción de la página, existen en ambos idiomas, en messages/en.json y messages/ar.json.
Cómo se elige el idioma
- El idioma es la primera parte de la dirección,
/eno/ar. - Un visitante que abre
/va a/arcuando el navegador prefiere el árabe, y a/enen los demás casos. De esto se encargasrc/middleware.ts. - El botón de idioma del encabezado cambia al otro idioma y mantiene al visitante en la misma página. Sus etiquetas son
LocaleSwitcher.namesen los archivos de mensajes. - Cada idioma tiene su propio título, descripción y dirección canonical, y cada página indica a los buscadores dónde está el otro idioma.
De derecha a izquierda
En /ar, src/app/[locale]/layout.tsx pone lang="ar" y dir="rtl" en la página, así que todo el diseño se invierte: el menú, las tarjetas, las flechas y la tabla se leen de derecha a izquierda.
Los componentes usan clases lógicas de Tailwind que siguen la dirección, como ms-2, pe-4, start-0 y text-start. Cuando añadas marcado, usa estas en lugar de ml-*, pr-*, left-* o text-left, o la página en árabe saldrá mal. Una flecha que debe apuntar al otro lado en árabe lleva rtl:rotate-180.
src/hooks/usePriceFormatter.ts escribe los precios en el idioma de la página.
Cambia un texto
Cambia el valor en messages/en.json y el correspondiente en messages/ar.json. Mantén las mismas claves en ambos archivos y conserva tal cual las palabras entre llaves, como {brand}.
Las etiquetas en árabe de la propia página
Cuando escribas sobre la página en árabe, usa las etiquetas que muestra:
| Inglés | Árabe |
|---|---|
Products | المنتجات |
Resources | الموارد |
Features | المزايا |
Pricing | الأسعار |
Testimonials | آراء العملاء |
Log in | تسجيل الدخول |
Get Started | ابدأ الآن |
Start Free Trial | ابدأ تجربة مجانية |
Most Popular | الأكثر شعبية |
Frequently Asked Questions | الأسئلة الشائعة |
Añade un idioma
Añade su código al enrutamiento
Añade el código del idioma a
localesensrc/i18n/routing.ts, por ejemplo el francés:src/i18n/routing.tslocales: ["en", "ar", "fr"],Añade su archivo de mensajes
Copia el archivo en inglés con el nuevo código como nombre y traduce cada valor. Conserva cada clave y cada palabra entre llaves.
Terminalenlanding-page-template-2cp messages/en.json messages/fr.jsonPonle nombre en el selector de idioma
Añade el nombre del idioma en
LocaleSwitcher.namesen cada archivo de mensajes, como"fr": "Français". El encabezado muestra entonces un botón para cada idioma distinto del actual.Configura su dirección y su fuente, si las necesita
Un idioma de derecha a izquierda va en
RTL_LOCALESensrc/i18n/direction.ts. Todos los idiomas salvo el árabe usan Inter con caracteres latinos; para otra escritura, añade una fuente ensrc/lib/fonts.tsy elígela para ese idioma ensrc/app/[locale]/layout.tsx.
Reinicia yarn dev, o vuelve a construir, y el nuevo idioma responde en su propia dirección, aquí /fr.