Langues
Comment le site fonctionne en anglais et en arabe, comment la langue est choisie, et quoi modifier pour ajouter une langue.
Les langues livrées
| Langue | Adresse | Sens | Police |
|---|---|---|---|
| Anglais, par défaut | /en | De gauche à droite | Inter |
| Arabe | /ar | De droite à gauche | Noto Sans Arabic |
Chaque texte visible vient de messages/en.json ou messages/ar.json, y compris les textes alternatifs, les libellés de boutons pour les lecteurs d'écran, ainsi que le titre et la description de la page.
Comment la langue est choisie
- La langue est la première partie de l'adresse :
/enou/ar. - Une adresse sans langue, comme
/, redirige vers la langue du visiteur : l'arabe pour un navigateur réglé en arabe, l'anglais pour tous les autres. Pour le reste de la session du navigateur, elle retient la dernière langue ouverte, dans un cookieNEXT_LOCALE. /enet/arouvrent toujours leur propre langue.- Le sélecteur de langue de la barre de navigation et du menu mobile affiche le nom de l'autre langue et garde le visiteur sur la page.
- Les attributs
langetdirde la page suivent la langue, tout comme le lien canonique et les liens de langue pour les moteurs de recherche.
Modifier un texte
Modifiez la valeur dans les deux fichiers de messages et gardez la clé. Une clé absente d'un fichier s'affiche comme une erreur de message manquant sur la page de cette langue : gardez donc les deux fichiers synchronisés.
De droite à gauche
Le layout utilise des classes Tailwind logiques comme ms-*, pe-*, start-* et end-* : les marges, les espacements internes et les positions s'inversent d'eux-mêmes en arabe. Utilisez-les, et non ml-* ou left-*, quand vous ajoutez du balisage. Les icônes de flèche se retournent avec rtl:-scale-x-100.
Les libellés arabes du site
Quand vous écrivez sur le site en arabe, utilisez les libellés affichés par sa page :
| Anglais | Arabe | Emplacement |
|---|---|---|
Features | المميزات | Barre de navigation |
Work | الأعمال | Barre de navigation |
Process | المنهجية | Barre de navigation |
Pricing | الأسعار | Barre de navigation |
Contact | تواصل معنا | Bouton de la barre de navigation |
Monthly | شهري | Tarifs |
Annual | سنوي | Tarifs |
Send Message | إرسال الرسالة | Formulaire de contact |
Ajouter une langue
Avec le français comme exemple, code fr :
Ajoutez-la au routage
Dans
src/i18n/routing.ts, ajoutez le code àlocales:src/i18n/routing.tslocales: ["en", "ar", "fr"],Créez son fichier de messages
Copiez le fichier anglais et traduisez ses valeurs. Gardez toutes les clés.
Terminaldanslanding-page-template-1cp messages/en.json messages/fr.jsonNommez-la dans le sélecteur de langue
Ajoutez
"fr": "Français"souslocaleSwitcher.namesdans chaque fichier de messages.Donnez-lui une locale pour les cartes sociales
Dans
src/i18n/openGraphLocales.ts, ajoutezfr: "fr_FR". La vérification des types du build échoue tant que chaque langue n'y a pas d'entrée.Pour une langue de droite à gauche uniquement
Ajoutez son code à
RTL_LOCALESdanssrc/i18n/getDirection.ts. Le layout charge Noto Sans Arabic pourarseulement : pour une autre écriture, chargez une police adaptée danssrc/app/[locale]/layout.tsx.
Le sélecteur bascule entre deux langues
Il affiche la première langue qui n'est pas la langue actuelle. Avec trois langues ou plus, remplacez-le par un menu dans src/components/LocaleSwitcher/.