Idiomas
Cómo funciona el sitio en inglés y árabe, dónde está cada texto y qué cambiar para añadir un idioma.
Los idiomas incluidos
| Idioma | Dirección | Dirección del texto |
|---|---|---|
| Inglés, el idioma por defecto | Sin prefijo: /, /pricing, /contact | De izquierda a derecha |
| Árabe | /ar, /ar/pricing, /ar/contact | De derecha a izquierda |
Cada texto, etiqueta de botón, descripción de imagen, mensaje de formulario y título de página existe en los dos idiomas.
Cómo se elige el idioma
- Las páginas en inglés no llevan idioma en la dirección; las páginas en árabe empiezan por
/ar. - Un visitante que abre
/con un navegador que prefiere el árabe es enviado a/ar. Lo hacesrc/proxy.ts. - El menú de idioma del encabezado, y del menú en el teléfono, cambia de idioma y mantiene al visitante en la misma página. El sitio recuerda la elección para la próxima visita.
- 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 las páginas en árabe, src/app/[locale]/layout.tsx pone lang="ar" y dir="rtl" en la página, así que todo el diseño se refleja: el encabezado, las tarjetas, la maqueta del panel y su inclinación 3D, y los formularios 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 código, usa estas en lugar de ml-*, pr-*, left-* o text-left, o la página en árabe se verá mal.
Algunas piezas se mantienen de izquierda a derecha en los dos idiomas a propósito: la terminal y el árbol de archivos de las tarjetas de características, los gráficos y los teléfonos de la página de contacto.
Dónde están los textos
Los textos están divididos en cuatro carpetas dentro de messages/, cada una con un en.json y un ar.json:
| Carpeta | Qué contiene |
|---|---|
messages/common/ | El nombre, el título y la descripción del sitio, el encabezado, el menú de idioma, la línea de derechos de autor y la franja de compra |
messages/home/ | Cada sección de la página de inicio, la maqueta del panel y las tarjetas de características |
messages/pricing/ | La página de precios |
messages/contact/ | La página de contacto |
Cambia un texto
- Cambia el valor en el archivo en inglés y el correspondiente en el archivo en árabe. Mantén las mismas claves en ambos.
- Si falta una clave en un archivo, la página de ese idioma muestra su nombre en lugar del texto.
- Las palabras entre llaves, como
{year},{count}y{name}, las rellena el sitio. Déjalas tal como están.
Las etiquetas propias del sitio en árabe
Cuando escribas sobre el sitio en árabe, usa las etiquetas que muestra:
| Inglés | Árabe |
|---|---|
Features | المميزات |
Pricing | الأسعار |
Contact | تواصل معنا |
Login | تسجيل الدخول |
Book a call | احجز مكالمة |
Get Started | ابدأ الآن |
Learn More | اعرف المزيد |
Monthly | شهري |
Annual | سنوي |
Send Message | إرسال الرسالة |
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, francés:src/i18n/routing.tslocales: ["en", "ar", "fr"],Añade sus archivos de mensajes
En cada una de las cuatro carpetas de
messages/, copiaen.jsoncon el nuevo código como nombre y traduce los valores. Conserva todas las claves y todas las palabras entre llaves, y definemetadata.ogLocaleenmessages/common/fr.json, comofr_FR. Para la carpeta home:TerminalenPublino-templatecp messages/home/en.json messages/home/fr.jsonAñádelo a los menús de idioma
Dale una bandera y un código en
src/components/LanguageSwitcher/index.tsx(flagComponentsylocaleIsoCodes), y una bandera y un nombre ensrc/layouts/Navbar/components/MobileLanguageSwitcher.tsx(flagComponentsylocaleNames). Las banderas vienen decountry-flag-icons, comoFR.Define su dirección, si la necesita
Solo el árabe se trata como de derecha a izquierda. Para otro idioma de derecha a izquierda, amplía las comprobaciones
locale === "ar"ensrc/app/[locale]/layout.tsx,src/features/home/DashboardMockup/components/index.tsxysrc/features/home/WhyChooseUs/index.tsx.
Reinicia yarn dev, o construye de nuevo, y el idioma nuevo responde en su propia dirección, aquí /fr. Los enlaces canónicos, los enlaces de idioma y el sitemap lo incorporan solos.