chubbyphp-translation
, (*1)
Description
A simple translation solution., (*2)
Requirements
Suggest
- pimple/pimple: ~3.0
- twig/twig: ^1.25.0
Installation
Through Composer as [chubbyphp/chubbyphp-translation][1]., (*3)
composer require chubbyphp/chubbyphp-translation "~1.1"
Usage
Translator
<?php
use Chubbyphp\Translation\LocaleTranslationProvider;
use Chubbyphp\Translation\Translator;
$translator = new Translator([
new LocaleTranslationProvider('de', [
'some.existing.key' => 'erfolgreiche Uebersetzung',
'another.existing.key' => '%d erfolgreiche Uebersetzungen',
'yetanother.existing.key' => '{{key}} erfolgreiche Uebersetzungen'
]),
new LocaleTranslationProvider('en', [
'some.existing.key' => 'successful translation',
'another.existing.key' => '%d successful translations'
'yetanother.existing.key' => '{{key}} successful translations'
])
]);
echo $translator->translate('de', 'some.existing.key'); //Â erfolgreiche Uebersetzung
echo $translator->translate('en', 'some.existing.key'); //Â successful translation
echo $translator->translate('fr', 'some.existing.key'); //Â some.existing.key
echo $translator->translate('de', 'another.existing.key', [5]); //Â 5 erfolgreiche Uebersetzungen
echo $translator->translate('en', 'another.existing.key', [5]); //Â 5 successful translations
echo $translator->translate('fr', 'another.existing.key', [5]); //Â some.existing.key
echo $translator->translate('de', 'yetanother.existing.key', ['key' => 5]); //Â 5 erfolgreiche Uebersetzungen
echo $translator->translate('en', 'yetanother.existing.key', ['key' => 5]); //Â 5 successful translations
echo $translator->translate('fr', 'yetanother.existing.key', ['key' => 5]); //Â some.existing.key
TranslationProvider (Pimple)
<?php
use Chubbyphp\Translation\Translator;
use Chubbyphp\Translation\TranslationProvider;
use Pimple\Container;
$container->register(new TranslationProvider);
$container->extend('translator.providers', function (array $providers) use ($container) {
$providers[] = new LocaleTranslationProvider('de', [
'some.existing.key' => 'erfolgreiche Uebersetzung',
'another.existing.key' => '%d erfolgreiche Uebersetzungen'
]);
$providers[] = new LocaleTranslationProvider('en', [
'some.existing.key' => 'successful translation',
'another.existing.key' => '%d successful translations'
]);
return $providers;
});
/** @var Translation $translator */
$translator = $container['translator'];
TranslationTwigExtension
<?php
use Chubbyphp\Translation\LocaleTranslationProvider;
use Chubbyphp\Translation\TranslationTwigExtension;
use Chubbyphp\Translation\Translator;
$twig->addExtension(new TranslationTwigExtension(new Translator([])));
{{ 'some.existing.key'|translate('de') }}
{{ 'another.existing.key'|translate('de', [5]) }}
{{ 'yetanother.existing.key'|translate('de', ['key' => 5]) }}
Copyright
Dominik Zogg 2016, (*4)