Langues
Comment le tableau de bord 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 | Police |
|---|---|---|---|
| Anglais, par défaut | /en | De gauche à droite | Inter |
| Arabe | /ar | De droite à gauche | Noto Sans Arabic |
Chaque libellé, bouton, légende de graphique, titre de tableau, message de formulaire et titre de page existe dans les deux langues.
Comment la langue est choisie
- La langue est la première partie de chaque adresse :
/en/dashboard/analytics,/ar/dashboard/analytics. - Un visiteur qui ouvre
/est envoyé vers/arquand son navigateur préfère l'arabe, et vers/ensinon. C'estsrc/proxy.tsqui s'en charge. - Le menu des langues de l'en-tête, un drapeau avec son code, change de langue et garde l'utilisateur sur la même page. Sur un téléphone, il se trouve dans le menu utilisateur. Language dans Settings, Preferences fait la même chose.
De droite à gauche
Sur /ar, src/app/[locale]/layout.tsx définit lang="ar" et dir="rtl" sur la page, si bien que toute la mise en page est inversée : la barre latérale passe à droite, et les cartes, tableaux et menus 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.
Où se trouvent les textes
Les textes sont répartis par page sous messages/, chaque dossier contenant un en.json et un ar.json :
| Dossier | Ce qu'il contient |
|---|---|
messages/common/ | L'en-tête, la barre latérale, le sélecteur de dates, le pied de page, le sélecteur de couleur, et le titre et la description de chaque page |
messages/auth/ | La page de connexion et la page d'accueil à /en |
messages/dashboard/overview/ | La vue d'ensemble et ses widgets, le virement rapide et les notifications |
messages/dashboard/analytics/ | La page d'analyses |
messages/dashboard/transactions/ | La page des transactions |
messages/dashboard/cards/ | La page des cartes |
messages/dashboard/settings/ | La page des paramètres |
messages/dashboard/ui-component/ | La page des composants d'interface |
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
{theme}, sont remplis par l'application. Gardez-les tels quels.
Les libellés arabes du tableau de bord
Quand vous écrivez sur le tableau de bord en arabe, utilisez les libellés qu'il affiche :
| Anglais | Arabe |
|---|---|
Sign In | تسجيل الدخول |
Overview | نظرة عامة |
Your Cards | بطاقاتك |
Analytics | التحليلات |
Transactions | المعاملات |
UI Components | مكونات واجهة المستخدم |
Settings | الإعدادات |
Export | تصدير |
Add Transaction | إضافة معاملة |
Logout | تسجيل الخروج |
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 huit dossiers sous
messages/, copiezen.jsonsous le nouveau code et traduisez les valeurs. Gardez chaque clé et chaque mot entre accolades.src/i18n/request.tsles charge d'après le code de la langue : chaque dossier a donc besoin du fichier. Pour le dossier common :Terminaldansdashboard-template-1cp messages/common/en.json messages/common/fr.jsonAjoutez-la au menu de langue
Ajoutez-la à
languageOptionsdanssrc/components/LanguageSelector.tsx, avec son nom, un libellé court et un drapeau decountry-flag-icons, par exemple{ id: "fr", label: "Français", shortLabel: "FR", Flag: FR }avecFRajouté à l'import des drapeaux.Définissez son sens d'écriture et sa police, si besoin
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/components/calendar.tsx,src/components/themeToggle.tsx,src/features/dashboard/overview/components/CardSection/CardStack/index.tsxet dansQuickTransferSheet/index.tsxdu virement rapide. Pour une écriture que Inter ne couvre pas, ajoutez une police avecnext/fontdanslayout.tsx.
Relancez yarn dev, ou reconstruisez, et la nouvelle langue répond à sa propre adresse, ici /fr/login.