Internationalization library for PHP This library allows you to translate your website with ini files, Auto Detecting the language and much more!
i18n will create a folder named "i18n" please make sure it is readable
- Via composer:
composer require stantabcorp/i18n
- Via manually download and install
In the i18n constructor your must-have 3 parameters:
- The language you want to display your website or true to use AutoDetect
- The default language
- An array of available languages
- An array of options
Example: Without AutoDetect:
$i18n = new i18n("en", "en", ["en", "fr"])
This will set the language to en
(English), set the default language to en
(English) and set that en
(English) and fr
(French) are available
With AutoDetect:
$i18n = new i18n(true, "en", ["en", "fr"])
This will set the language to AutoDetect, set the default language and set available language for AutoDetect
AutoDetect, use the Accept-Language HTTP Header to determine the best matching locale to use.
In order to get a translation you just need to:
$i18n->get("index_in_your_file");
If you want to use sections in your ini file use the following syntax:
$i18n->get("section_name[index_in_your_file]");
// OR
$i18n->get("section_name.index_in_your_file");
If you want to get the current language:
$i18n->getLang();
You want to change the language?
$i18n->setLang("language");
You don't want to use sprintf
?! No problem:
$i18n->replace("string", [
"string" => "strong"
]);
Want to change the translation folder on the fly?
$i18n->setFolder("path/to/the/new/folder");
Want to get the active folder?
$i18n->getFolder();
Want to set the available languages?
$i18n->setAvailableLanguages(array);
Want to get the available languages?
$i18n->getAvailableLanguage();
Now, let set and get the default language
$i18n->setDefaultLanguage("string");
$i18n->getDefaultLanguage();
Sections are supported by i18n, see options to enable it
Example file:
word1 = "Some word"
word2 = "Some other word"
[section_name]
word1 = "A word in a section"
word2 = "Another word in the same section"
The fourth parameter when initializing the i18n class is an array.
Accepted values are:
error
, a boolean to enable or disable error throwingsections
, a boolean to enable or not sections in the ini filespath
, to set a path for the translations
i18n provide a simple Twig extension. To enable it, simply add a new extension to twig:
$i18nTwig = new i18nTwigExtension($i18n); // $i18n should be an instance of i18n\i18n
$twig->addExtension($i18nTwig);
In order to use it in a twig template, simply call (with the same syntax for section):
{{ i18n('index in your file') }}