gettext / translator
Gettext translator functions
Fund package maintenance!
oscarotero
Patreon
paypal.me/oscarotero
Installs: 1 931 948
Dependents: 8
Suggesters: 1
Security: 0
Stars: 12
Watchers: 2
Forks: 3
Open Issues: 0
Requires
- php: ^7.2|^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.15
- gettext/gettext: ^5.0.0
- oscarotero/php-cs-fixer-config: ^1.0
- phpunit/phpunit: ^8.0
- squizlabs/php_codesniffer: ^3.0
Suggests
- gettext/gettext: Is necessary to load and generate array files used by the translator
README
Created by Oscar Otero http://oscarotero.com oom@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.
Installation
composer require gettext/translator
Translator
use Gettext\Translator; //Create a new instance of the translator $t = new Translator(); //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 templates echo $t->gettext('apple');
GettextTranslator
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.
use Gettext\GettextTranslator; //Create a new instance $t = new GettextTranslator(); //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 templates echo $t->gettext('apple');
Translator functions
To ease the use of translations in your php templates, you can use the provided functions:
use Gettext\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.