Created by Oscar Otero http://oscarotero.comoom@oscarotero.com (MIT License)
Translator functions to use with gettext/gettext. Useful if you don't have the native gettext extension for php or want to avoid problems with it.
composer require gettext/translator
useGettext\Translator;
//Create a new instance of the translator$t = newTranslator();
//Load the translations from php files (generated by Gettext\Extractors\PhpArray)$t->loadTranslations(
'locales/gl/domain1.php',
'locales/gl/domain2.php',
'locales/gl/domain3.php',
);
//Now you can use it in your templatesecho$t->gettext('apple');The class Gettext\GettextTranslator uses the gettext extension. It's useful because combines the performance of using real gettext functions but with the same API than Translator class, so you can switch to one or other translator without change code of your app.
useGettext\GettextTranslator;
//Create a new instance$t = newGettextTranslator();
//It detects the environment variables to set the locale, but you can change it:$t->setLanguage('gl');
//Load the domains:$t->loadDomain('messages', 'project/Locale');
//this means you have the file "project/Locale/gl/LC_MESSAGES/messages.mo"//Now you can use it in your templatesecho$t->gettext('apple');To ease the use of translations in your php templates, you can use the provided functions:
useGettext\TranslatorFunctions;
//Register the translator to use the global functions
TranslatorFunctions::register($t);
echo__('apple'); // it's the same than $t->gettext('apple');You can scan the php files containing these functions and extract the values with the PhpCode extractor:
<!-- index.php --><html><body><?= __('Hello world'); ?></body></html>Please see CHANGELOG for more information about recent changes and CONTRIBUTING for contributing details.
The MIT License (MIT). Please see LICENSE for more information.