Internationalisation
Rendre votre interface utilisateur traduisible dans de nombreuses langues différentes.
Si vous souhaitez contribuer à des traductions pour Elgg, consultez le guide des contributeurs.
La langue par défaut est en
pour l’anglais. Elgg utilise un système de secours pour les langues :
La langue de l’utilisateur
La langue du site
Anglais
Aperçu
Les traductions sont stockées dans des fichiers PHP dans le répertoire /languages
de votre plugin. Chaque fichier correspond à une langue. Le format est /languages/{language-code}.php
où {language-code}
est le code court ISO 639-1 pour la langue. Par exemple :
<?php // mod/example/languages/en.php
return [
'example:text' => 'Some example text',
];
Pour remplacer une traduction existante, incluez-la dans le fichier de traduction de votre plugin et assurez-vous que votre plugin est situé après sur la page Admin > Plugins :
<?php // mod/better_example/languages/en.php
return [
'example:text' => 'Some better text!',
];
Note
A moins que vous ne remplaciez les chaînes de traduction du noyau ou d’un autre plugin, c’est une bonne pratique pour les clefs de traduction de commencer par le nom de votre plugin. Par exemple : yourplugin:success
, yourplugin:title
, etc. Cela aide à éviter les conflits avec d’autres clefs de traduction.
API côté serveur
elgg_echo($key, $args, $language)
Génère et renvoie la traduction de la clef dans la langue actuelle.
Exemple :
echo elgg_echo('example:text');
Elle prend également en charge le remplacement des variables à l’aide de la syntaxe `` vsprintf`` :
// 'welcome' => 'Welcome to %s, %s!'
echo elgg_echo('welcome', [
elgg_get_config('sitename'),
elgg_get_logged_in_user_entity()->getDisplayName(),
]);
Pour forcer la langue qui doit être utilisée pour la traduction, définissez le troisième paramètre :
echo elgg_echo('welcome', [], $user->language);
Pour tester d’abord si elgg_echo()
peut trouver une traduction :
$key = 'key:that:might:not:exist';
if (!elgg_language_key_exists($key)) {
$key = 'fallback:key';
}
echo elgg_echo($key);
Note
Certaines API permettent de créer des traductions pour de nouvelles clefs. Les traducteurs doivent toujours inclure une traduction anglaise comme solution de repli. Ceci fait de elgg_language_key_exists($key)
un moyen fiable de prédire si elgg_echo($key)
va réussir.
API Javascript
i18n.echo(key, args)
Cette fonction est équivalente à elgg_echo
en PHP.
Client-side translations are loaded asynchronously. Ensure translations are available by requiring the « elgg/i18n » module:
import i18n from 'elgg/i18n';
alert(i18n.echo('my_key'));