Internationalization package of the CodeCollab project
PHP7+
Include the library in your project using composer:
{
"require-dev": {
"codecollab/i18n": "^1"
}
}
This library uses simple php files containing an array of translations based on key/value pairs. The array should be named $texts.
The filename of the translations should be based on the language it targets, e.g. en_US.php. An simple example of translations in a file:
<?php
$texts = [
'translation.title' => 'Translation',
'translation.description' => 'This is an example translation.',
'translation.variable.%' => 'Copyright %d Some Company',
];
To use translations in your application first create an instance of the translation class by passing the directory in which the translation files are and the language to translate to:
<?php
$translator = new \CodeCollab\I18n\FileTranslator('/path/to/translations', 'en_US');
echo $translator->translate('translation.title'); // Translation
echo $translator->translate('translation.variable.%', [2015]); // Copyright 2015 Some Company
When a translation file could not be found a \CodeCollab\I18n\UnsupportedLanguageException will be thrown.
When loading a translation file it will be checked to ensure it has the correct format. if the file is not a valid translation file a \CodeCollab\I18n\InvalidFileException will be thrown.
When using translators in your application always hint against the \CodeCollab\I18n\Translator interface instead of the concrete implementation. This allows you to use different translation implementations later without having to change you classes.
If you found a security issue please contact directly by mail instead of using the issue tracker at codecollab-security@pieterhordijk.com