stantabcorp / i18n
Internationalization library for PHP
Installs: 3 062
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 2
Forks: 0
Open Issues: 0
README
Internationalization library for PHP This library allows you to translate your website with ini files, Auto Detecting the language and much more!
Documentation
Information
i18n will create a folder named "i18n" please make sure it is readable
Installation
- Via composer:
composer require stantabcorp/i18n
- Via manually download and install
Initialization
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.
Usage
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();
File syntax
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"
Options
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
Twig Extension
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') }}