Internationalization¶
Making your UI translatable into many different languages.
If you’d like to contribute translations to Elgg, see the contributors’ guide.
Overview¶
Translations are stored in PHP files in the /languages directory of your plugin. Each file corresponds to a language. The format is /languages/{language-code}.php where {language-code} is the ISO 639-1 short code for the language. For example:
<?php
// mod/example/languages/en.php
return array(
‘example:text’ => ‘Some example text’,
);
The default language is “en” for English.
To change the wording of any phrase, provide a new mapping in your plugin’s {language}.php file for the associated key:
<?php
return array(
‘example:text’ => ‘This is an example’,
);
Note
Unless you are overriding core’s or another plugin’s language strings, it is good practice for the language keys to start with your plugin name. For example: “yourplugin:success,” “yourplugin:title,” etc. This helps avoid conflicts with other language keys.
Server-side API¶
elgg_echo($key, $args, $language)
Output the translation of the key in the current language.
Example:
echo elgg_echo(‘example:text’);
It also supports variable replacement using sprintf syntax:
// ‘welcome’ => ‘Welcome to %s, %s!’
echo elgg_echo(‘welcome’, array(
elgg_get_config(‘sitename’),
elgg_get_logged_in_user_entity()->name,
));
To force which language should be used for translation, set the third parameter:
echo elgg_echo(‘welcome’, array(), ‘es’);
Javascript API¶
elgg.echo(key, args, language)
This function is the exact counterpart to elgg_echo in PHP.
Client-side translations are loaded asynchronously. This means elgg.echo will not be ready until after the system is done initializing.