Dernière mise à jour : 01/03/2023 à 14h29
Table des matières
Il y a des fichiers de langues principaux (utilisés dans beaucoup d'endroit) et ceux des modules.
Fichiers de langues principaux
Les principaux fichiers de langues sont stockés dans le dossier lang à la racine de votre site. Ils contiennent les textes de l'administration, de la gestion utilisateurs, mais aussi certains textes souvent utilisés.
Les fichiers présents dans ce dossier ne doivent pas être modifiés, ils sont gérés par l'équipe de développement et toute modification pourra être perdue lors d'une mise à jour. Si vous avez des propositions, n'hésitez pas à nous contacter par le biais du forum.
Fichiers de langues des modules
Les fichiers de langues des modules sont stockés directement dans le dossier des modules. A la racine d'un module, il y a un dossier lang.
Ce répertoire contient un dossier par langue dont le nom est le nom anglais de la langue. Par exemple pour le français vous trouverez un dossier /lang/french contenant un fichier php contenant la déclaration d'un tableau associatif. Ce dernier associe à chaque identifiant l'expression écrite dans la langue correspondante au fichier. L'identifiant étant invariable de la langue de l'utilisateur, il est utilisé dans le code pour identifier une expression et le noyau y associera automatiquement l'expression dans la langue de l'utilisateur.
Vous pouvez donner n'importe quel nom à votre fichier php mais il doit être le même pour toutes les langues.
Mise en situation
Créez deux dossiers dans le dossier lang de votre module : english et french
Dans ces deux dossiers créez un fichier nom_du_module_common.php (avec nom_du_module le nom de votre module) avec comme contenu pour la langue française :
Code PHP :
$lang['module.title'] = 'Titre de votre module';
Et pour la langue anglaise :
Code PHP :
$lang['module.title'] = 'Module title';
Chargement de la langue
Pour utiliser les fichiers de langue, rien de plus simple, une classe permet de les gérer : LangLoader
Chargement d'un fichier de langue en entier
Pour charger un fichier de langue en entier, vous pouvez utiliser :
Code PHP :
$lang = LangLoader::get('nom_du_module_common', 'nom_du_module');
Chargement d'un seul message
Si le message fait partie des fichiers de langue principaux :
Code PHP :
$msg = LangLoader::get_message('identifiant_du_message', 'nom_du_fichier'); // Exemple $lang_guest = LangLoader::get_message('common.home', 'common-lang');
Si le message fait partie du fichier de langue du module :
Code PHP :
$msg = LangLoader::get_message('identifiant_du_message', 'nom_du_fichier', 'nom_du_module');
Conventions d'écriture
Afin de limiter les résultats de recherche d'une variable, et de différencier les variables de langue des variables php, nous avons formé comme suis :
- la variable commence par le nom du fichier ou du module
- les noms sont séparés par des points
exemple
common.ma.variable.de.languepour une variable du fichier /lang/common-lang.php
news.ma.variable.de.languepour une variable d'un fichier de langue du module news