V. Développer avec PHPBoost

Fichiers de langue

Dernière mise à jour : 01/03/2023 à 14h29
Dans PHPBoost, nous utilisons des fichiers de langues pour permettre l'utilisation de plusieurs langues sur le CMS.

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.langue
pour une variable du fichier /lang/common-lang.php
news.ma.variable.de.langue
pour une variable d'un fichier de langue du module news
Cette page a été vue 5357 fois