Langues
Comment le site fonctionne en anglais et en arabe, où se trouve chaque texte, et quoi changer pour ajouter une langue.
Les langues livrées
| Langue | Adresse | Sens d'écriture |
|---|---|---|
| Anglais, par défaut | Pas de préfixe : /, /pricing, /contact | De gauche à droite |
| Arabe | /ar, /ar/pricing, /ar/contact | De droite à gauche |
Chaque texte, libellé de bouton, description d'image, message de formulaire et titre de page existe dans les deux langues.
Comment la langue est choisie
- Les pages anglaises n'ont pas de langue dans l'adresse ; les pages arabes commencent par
/ar. - Un visiteur qui ouvre
/avec un navigateur qui préfère l'arabe est envoyé vers/ar. C'estsrc/proxy.tsqui s'en charge. - Le menu de langue de l'en-tête, et celui du menu sur téléphone, change la langue et garde le visiteur sur la même page. Le site retient le choix pour la visite suivante.
- Chaque langue a son propre titre, sa propre description et sa propre adresse canonical, et chaque page indique aux moteurs de recherche où se trouve l'autre langue.
De droite à gauche
Sur les pages arabes, src/app/[locale]/layout.tsx définit lang="ar" et dir="rtl" sur la page, donc toute la mise en page est inversée : l'en-tête, les cartes, la maquette de tableau de bord et son inclinaison 3D, ainsi que les formulaires se lisent de droite à gauche.
Les composants utilisent des classes Tailwind logiques qui suivent le sens d'écriture, comme ms-2, pe-4, start-0 et text-start. Quand vous ajoutez du code, utilisez-les à la place de ml-*, pr-*, left-* ou text-left, sinon la page arabe s'affiche mal.
Quelques éléments restent volontairement de gauche à droite dans les deux langues : le terminal et l'arborescence de fichiers dans les cartes de fonctionnalités, les graphiques, et les numéros de téléphone de la page de contact.
Où se trouvent les textes
Les textes sont répartis dans quatre dossiers sous messages/, chacun avec un en.json et un ar.json :
| Dossier | Ce qu'il contient |
|---|---|
messages/common/ | Le nom, le titre et la description du site, l'en-tête, le menu de langue, la ligne de copyright et la bande d'achat |
messages/home/ | Chaque section de la page d'accueil, la maquette de tableau de bord et les cartes de fonctionnalités |
messages/pricing/ | La page de tarifs |
messages/contact/ | La page de contact |
Modifier un texte
- Changez la valeur dans le fichier anglais et celle qui lui correspond dans le fichier arabe. Gardez les mêmes clés dans les deux.
- Une clé absente d'un fichier affiche son nom à la place du texte sur la page de cette langue.
- Les mots entre accolades, comme
{year},{count}et{name}, sont remplis par le site. Conservez-les tels quels.
Les libellés arabes du site
Quand vous écrivez sur le site en arabe, utilisez les libellés qu'il affiche :
| Anglais | Arabe |
|---|---|
Features | المميزات |
Pricing | الأسعار |
Contact | تواصل معنا |
Login | تسجيل الدخول |
Book a call | احجز مكالمة |
Get Started | ابدأ الآن |
Learn More | اعرف المزيد |
Monthly | شهري |
Annual | سنوي |
Send Message | إرسال الرسالة |
Ajouter une langue
Ajoutez son code au routage
Ajoutez le code de la langue à
localesdanssrc/i18n/routing.ts. Par exemple le français :src/i18n/routing.tslocales: ["en", "ar", "fr"],Ajoutez ses fichiers de messages
Dans chacun des quatre dossiers sous
messages/, copiezen.jsonsous le nouveau code et traduisez les valeurs. Conservez chaque clé et chaque mot entre accolades, et définissezmetadata.ogLocaledansmessages/common/fr.json, par exemplefr_FR. Pour le dossier home :TerminaldansPublino-templatecp messages/home/en.json messages/home/fr.jsonAjoutez-la aux menus de langue
Donnez-lui un drapeau et un code dans
src/components/LanguageSwitcher/index.tsx(flagComponentsetlocaleIsoCodes), et un drapeau et un nom danssrc/layouts/Navbar/components/MobileLanguageSwitcher.tsx(flagComponentsetlocaleNames). Les drapeaux viennent decountry-flag-icons, commeFR.Définissez son sens d'écriture, si nécessaire
Seul l'arabe est traité de droite à gauche. Pour une autre langue de droite à gauche, étendez les vérifications
locale === "ar"danssrc/app/[locale]/layout.tsx,src/features/home/DashboardMockup/components/index.tsxetsrc/features/home/WhyChooseUs/index.tsx.
Redémarrez yarn dev, ou reconstruisez, et la nouvelle langue répond à sa propre adresse, ici /fr. Les liens canoniques, les liens de langue et le sitemap la prennent en compte d'eux-mêmes.