twig-php-gettext
Twig extension for smmoosavi/php-gettext., (*1)
How to Install
Create a composer.json file in your project root:, (*2)
{
"require": {
"smmoosavi/twig-php-gettext": "dev-master"
}
}
Then run the following composer command:, (*3)
$ php composer.phar install
Note: twig and php-gettext will be installed with twig-php-gettext too., (*4)
How to use
Do everything required for twig and php-gettext and add following line:, (*5)
$twig->addExtension(new smmoosavi\util\twiggettext\Extension_L10n());
Now you can use __
, trans
in your template., (*6)
Complete example
<?php // test.php
require_once '../vendor/autoload.php';
use smmoosavi\util\gettext\L10n;
// initializing php-gettext
$locale = 'fa_IR';
$lang = 'fa';
L10n::init($lang, __DIR__ . "/locale/$locale/LC_MESSAGES/messages.mo");
// simple using of php-gettext
echo __('Hi')."\n";
// initializing twig
$loader = new Twig_Loader_String();
$twig = new Twig_Environment($loader);
// initializing twig-php-gettext
$twig->addExtension(new smmoosavi\util\twiggettext\Extension_L10n());
// using of twig-php-gettext
echo $twig->render("{{ __('Hi') }} {{ name }}<br>", array('name' => 'علی'));
Reference
Functions
Filters
Examples
Template:, (*7)
{% trans %}
Hi
{% endtrans %}
Translations in .po file:, (*8)
msgid "Hi"
msgstr "سلام"
Template:, (*9)
{% trans %}
Dear {{name}},
{% endtrans %}
Translations in .po file:, (*10)
msgid "Dear %name%,"
msgstr "%name% عزیز،"
Template:, (*11)
{% trans %}
an apple.
{% plural apple_count %}
{{ count }} apples.
{% endtrans %}
Translations in .po file:, (*12)
msgid "an apple"
msgid_plural "%count% apples"
msgstr[0] "یک سیب"
msgstr[1] "%count% سیب"