Langues et écriture
L’interface existe en français et en arabe ; le contenu du catalogue reste en arabe. Trois surfaces, trois mécanismes, portés par un seul intergiciel :
| Surface | Où est la langue | Défaut |
|---|---|---|
| Site public | dans l’adresse (/ar/…, /fr/…), liens hreflang, cookie puis navigateur pour / |
arabe |
| Back-office | préférence du compte, sélecteur du menu, session avant connexion | français |
| API | en-tête Accept-Language |
français |
Règles pour le code
Section intitulée « Règles pour le code »- Toute chaîne d’interface passe par
__('Texte français'). Le français est la clé ; l’arabe est danslang/ar.json. Jamais d’arabe ni de français en dur dans un gabarit. - Une phrase, une clé. Les parties variables sont des paramètres nommés (
:nom), jamais une concaténation de fragments. - Les libellés des modèles (types, statuts, rôles…) restent en français dans les constantes ; les méthodes
…Label()rendent la traduction ; les vues qui itèrent les constantes traduisent au rendu. - Les réglages semés en base gardent leur libellé français, traduit à l’affichage.
- Un test relit le code, les constantes et les réglages : une clé sans traduction arabe, ou un chiffre arabo-indien, fait échouer la suite.
Écriture de droite à gauche
Section intitulée « Écriture de droite à gauche »En arabe, la page entière passe en dir="rtl". Pour qu’un écran se retourne correctement :
- n’employer que des utilitaires logiques :
ms-/me-plutôt queml-/mr-,ps-/pe-,start-/end-,text-start/text-end,rounded-s-/rounded-e-,border-s/border-e; - isoler un fragment arabe dans une page française avec la classe
ar(police arabe,unicode-bidi: isolate) ; - garder les nombres, prix et identifiants techniques en
ltr-numoudir="ltr"pour que « 1 200 DH » ne devienne jamais « DH 200 1 » ; - chiffres européens (0-9) partout, jamais de chiffres arabo-indiens — règle du projet.