https://github.com/jblond/twig-trans
Twig 3 translation extension
https://github.com/jblond/twig-trans
gettext i18n i18nextension intl multitype translation twig twig-extension twig-templates twig-trans
Last synced: about 1 month ago
JSON representation
Twig 3 translation extension
- Host: GitHub
- URL: https://github.com/jblond/twig-trans
- Owner: JBlond
- License: mit
- Created: 2020-01-16T08:25:50.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2025-02-25T09:24:17.000Z (4 months ago)
- Last Synced: 2025-05-07T04:43:59.060Z (about 1 month ago)
- Topics: gettext, i18n, i18nextension, intl, multitype, translation, twig, twig-extension, twig-templates, twig-trans
- Language: PHP
- Homepage: https://github.com/JBlond/twig-trans
- Size: 72.3 KB
- Stars: 12
- Watchers: 5
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Twig Trans
[](https://github.com/JBlond/twig-trans/releases)
[](https://packagist.org/packages/jblond/twig-trans)## Introduction
This is the replacement for the old **Twig** Extensions **I18n** / **Intl** / **I18nExtension** for the translation with po / mo
**gettext** files.I didn't want to install Symfony, but Twig only. Symfony seemed to be too much overhead.
This extension enables Twig templates to use `|trans` and `{% trans %}` + `{% endtrans %}` again
## Install
```shell
composer require jblond/twig-trans
```## Example Use
```PHP
false,
'debug' => true,
'auto_reload' => true
];$twigLoader = new FilesystemLoader('./tpl/');
$twig = new Environment($twigLoader, $twigConfig);
// if you need {{ dump() }} in the twig templates add
//$twig->addExtension(new DebugExtension());
// and use Twig\Extension\DebugExtension; // at the top of the file// this is for the filter |trans
$filter = new TwigFilter(
'trans',
function ($context, $string) {
return Translation::transGetText($string, $context);
},
['needs_context' => true]
);
$twig->addFilter($filter);// load the i18n extension for using the translation tag for twig
// {% trans %}my string{% endtrans %}
$twig->addExtension(new Translation());try {
$tpl = $twig->load('default.twig');
} catch (Exception $exception) {
echo $exception->getMessage();
die();
}// the array parameter (context) is optional for the render function
echo $tpl->render(['key1' => 'value1', 'key2' => 'value2']);
```## Requirements
* PHP 7.2 or greater
* PHP Multibyte String
* 'gettext'
* Twig >= 3.0### Optional Requirements
* xgettext for Extract / generating po files.
### License (MIT License)
see [License](LICENSE)
## Tests
```bash
composer run-script php_src
composer run-script php_test
composer run-script phpunit
```## Contribution, wishes and bug
Raise an [issue](https://github.com/JBlond/twig-trans/issues)