Download the PHP package simplesamlphp/twig-configurable-i18n without Composer
On this page you can find all versions of the php package simplesamlphp/twig-configurable-i18n. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download simplesamlphp/twig-configurable-i18n
More information about simplesamlphp/twig-configurable-i18n
Files in simplesamlphp/twig-configurable-i18n
Package twig-configurable-i18n
Short Description This is an extension on top of Twig's i18n extension, allowing you to customize which functions to use for translations.
License LGPL-2.1
Informations about the package twig-configurable-i18n
Configurable Internationalization with Twig
This is a hack to get Twig's native internationalization extension to work with other translation systems than PHP's native gettext extension. That way, you can use other implementation, such as gettext/gettext or even your own one, provided a function is available to perform translations for singular strings, and another one for plural strings.
Installation
If you are using composer, installation is as easy as requiring this package:
If you are not using composer, you will need to manually include all
(four) source files in this project from your script, and make sure
you have the twig/extension
package installed as well.
Usage
Using this extension is extremely simple, and won't require you to modify your code or existing templates, but just a couple of modifications to the PHP scripts where you want internationalization.
First, create aliases for two classes so that the ones defined in this extension override the default ones:
The first line allows you to redefine the twig environment class, so that you can keep the configuration options you pass to the constructor. The second line installs this extension instead of the native one. Your code will use now this extension without further modifications, and PHP's native gettext will continue to be used.
Now, you are ready to configure the extension to use different translation functions. You will do that by passing options to the Twig environment class you have just imported:
These are the only two supported options. translation_function
lets
you specify a function that is capable to translate strings in singular,
being equivalent to gettext()
. On the other hand,
translate_function_plural
lets you specify a function to handle the
translation of strings in plural. This one is equivalent to
ngettext()
.
You are all set. Twig will use the translate()
and
translate_plural()
functions you have just specified, instead of the
native gettext()
and ngettext()
functions. Of course, you will need
to specify some functions that actually exist, but that depends on
what implementation of gettext you want to use. If, for example, you
plan to use Oscar Otero's pure-PHP implementation
gettext/gettext, you can do the
following: