Application Integration

Stand-Alone

All filters, validators, view-helpers and the translator of laminas-i18n can also be used stand-alone.

Translator

Setup

Create a file for the translation messages. For example languages/de_DE.php:

return [
    'car'   => 'Auto',
    'train' => 'Zug',
];

Configure the dependency-injection container with the help of the config provider and add the translation file via configuration:

$container = (new Laminas\ServiceManager\ServiceManager(
    (new Laminas\I18n\ConfigProvider())->getDependencyConfig()
));
$container->setService(
    'config',
    [
        'laminas-i18n' => [
            'translator' => [
                'translation_files' => [
                    [
                        'type'     => Laminas\I18n\Translator\Loader\PhpArray::class,
                        'filename' => __DIR__ . '/languages/de_DE.php',
                        'locale'   => 'de_DE',
                    ],
                ],
            ],
        ],
    ]
);

Fetch the translator from the container:

$translator = $container->get(Laminas\Translator\TranslatorInterface::class);

Translate Messages

$translator->setLocale('de_DE');

echo $translator->translate('car');   // Auto
echo $translator->translate('train'); // Zug

Filters

Each filter can be used directly.

$filter = new Laminas\I18n\Filter\Alnum();

echo $filter->filter('This is (my) content: 123'); // "Thisismycontent123"

Using Filter Plugin Manager

Register all standard filters of laminas-i18n in the filter-plugin-manager:

$filterManager = new Laminas\Filter\FilterPluginManager(
    new Laminas\ServiceManager\ServiceManager()
);
$filterManager->configure(
    (new Laminas\I18n\ConfigProvider())->getFilterConfig()
);

Get a filter:

/** @var Laminas\I18n\Filter\Alnum $filter */
$filter = $filterManager->get(Laminas\I18n\Filter\Alnum::class);

Validators

Each validator can be used directly.

$validator = new Laminas\I18n\Validator\Alnum();

$result = $validator->isValid('Abcd12')); // true

Using Validator Plugin Manager

Register all standard validators of laminas-i18n in the validator-plugin-manager:

$validatorManager = new Laminas\Validator\ValidatorPluginManager(
    new Laminas\ServiceManager\ServiceManager()
);
$validatorManager->configure(
    (new Laminas\I18n\ConfigProvider())->getValidatorConfig()
);

Get a validator:

/** @var Laminas\I18n\Validator\Alnum $validator */
$validator = $validatorManager->get(Laminas\I18n\Validator\Alnum::class);

View Helpers

Installation Requirements

Starting with version 3.0, the core laminas-i18n package no longer ships with these view helpers out of the box. They have been extracted into an optional satellite package.

To use internationalization view helpers in an application, the satellite package must be installed, which will automatically bring in laminas-view as a required dependency:

$ composer require laminas/laminas-i18n-view

Setup laminas-view

Configure the dependency-injection container with the help via the config providers of laminas-view, laminas-i18n, and laminas-i18n-view:

$container = new Laminas\ServiceManager\ServiceManager();
$container->configure((new Laminas\View\ConfigProvider())->getDependencies());
$container->configure((new Laminas\I18n\ConfigProvider())->getDependencyConfig());
$container->configure((new Laminas\I18n\View\ConfigProvider())()['dependencies']);

Register all standard view-helpers of laminas-i18n-view in the helper-plugin-manager:

$viewHelperManager = $container->get(Laminas\View\HelperPluginManager::class);
$viewHelperManager->configure(
    (new Laminas\I18n\View\ConfigProvider())()['view_helpers']
);

Using Helper

$helper = $viewHelperManager->get(Laminas\I18n\View\Helper\CurrencyFormat::class);

$helper->amount(123.45, 'EUR'); // "€ 123.45"