Framework

Développement : gestion des fichiers langue

Table des matières

Introduction aux langues



Comme vous avez pu le voir, PHPBoost est un CMS multilingue. Le fonctionnement est très simple, à chaque utilisateur est associée une variable langue, et chaque module charge le fichier de la langue correspondante. Un fichier langue doit donc être associé à votre module. Votre module supportera ainsi toutes les langues possibles et inimaginables dans la mesure où un traducteur traduit le fichier langues.

Mise en place des fichiers



Comme on l'a vu dans la création du fichier d'installation, vous devez avoir créé un dossier lang/french dans le dossier de votre module dans lequel se trouve le dossier config.ini. D'ailleurs ce fichier doit aussi être écrit en français. Pour créer une nouvelle langue il suffit de créer un répertoire nouvelle_langue dans votre dossier lang dans le dossier de votre module. Attention: le nom du dossier doit porter le nom de la langue en anglais.

Nous allons maintenant voir comment créer les fichiers langue. Les variables de langue sont stockées dans un fichier langue. Un tableau associatif $LANG est déjà déclaré dans le noyau de PHPBoost, il suffit de le compléter avec vos propres variables. Voici un exemple de déclaration de variable de langue.
Code :
<?php
$LANG
['nomdumodule_variable'] = 'Ma variable en français';
?>


La clé du tableau doit être préfixée du nom du module pour éviter de redéfinir des variables définies dans le noyau.

Chargement des fichiers



Le chargement d'un fichier est assez simple. Il consiste à inclure le fichier langue associé. Pour cela il est nécessaire de connaître la variable langue de l'utilisateur. Nous reviendrons plus en profondeur sur les données de l'utilisateur dans la partie espace membres.

Voilà le code que vous devez placer pour charger le fichier langue.
Code :
<?php
include_once('../module/lang/' $CONFIG['lang'] . '/module_' $CONFIG['lang'] . '.php'); 
?>

A noter que include_once est une variante de include qui ne réitérera pas l'inclusion si elle a déjà été faite auparavant. A partir cet endroit toutes les variables de langue que vous avez définies seront accessibles. Vous y remplacerez évidemment module par le nom du dossier de votre module.

Traduction d'un module



La traduction ne nécessite pas de notion particulière en PHP. Cependant voici quelques conseils afin de corriger d'éventuelles erreurs introduites involontairement lors de la traduction.

Tout d'abord il va falloir créer un dossier dans le dossier lang de votre module qui portera le nom de la langue écrit en anglais (exemple pour le français: french).

Ensuite il va falloir commencer la traduction. Copiez le fichier que vous voulez traduire et collez le dans le répertoire que vous venez de créer. Renommez-le de la forme nomdumodule_lang.php où lang est le nom de la langue.

Ouvrez le fichier, vous allez tomber sur des lignes de la forme suivante.
Code :
<?php
$LANG
['nomdumodule_hello'] = 'Bonjour, bienvenue sur PHPBoost!';
?>

Vous devez traduire uniquement les mots qui se trouvent après chaque signe = et qui sont entre guillemets simples ('), qu'il faut d'ailleurs conserver à la traduction. Voilà par exemple la traduction en anglais.
Code :
<?php
$LANG
['nomdumodule_hello'] = 'Hello, welcome on PHPBoost!';
?>


Si votre phrase comporte une apostrophe (identique aux guillemets simples), vous allez rencontrer une erreur de syntaxe. Pour empêcher cette erreur il faut échapper l'apostrophe en mettant un antislash devant. Voici un exemple, supposons qu'on veuille écrire: je t'ai vu!.
Code :
<?php
$LANG
['nomdumodule_variable'] = 'Je t'ai vu!';
?>



Pour éviter ce genre d'erreurs il vous est conseillé d'utiliser un colorateur de code grâce auquel vous repérerez simplement ce genre d'erreurs.
Cette page a été vue 2025 fois