2013-10-02 2 views
1

В моем текущем проекте я использую структуру Silex с движком шаблонов TWIG. Я должен интернационализировать свой сайт. Для этого я импортировал нужный модуль:Silex Twig Translation Gettext

$app->register(new Silex\Provider\TranslationServiceProvider(), array(
     'locale_fallbacks' => array('fr'), 
)); 

Я создал мои YAML файлы в папке «перевод»:

use Symfony\Component\Translation\Loader\YamlFileLoader; 
$app['translator'] = $app->share($app->extend('translator', function($translator, $app) { 
    $translator->addLoader('yaml', new YamlFileLoader()); 
    $translator->addResource('yaml', __DIR__.'/translation/en.yml', 'en'); 
    $translator->addResource('yaml', __DIR__.'/translation/fr.yml', 'fr'); 
    return $translator; 
})); 

Теперь я знаю, что я должен использовать «Gettext» для извлечения строк из моих шаблонов TWIG в файле .po ', но я не могу найти, как это сделать.

Некоторые люди говорят о «Twig Gettext Extractor», но я не думаю, что Silex поддерживает этот модуль.

Благодарим за помощь!

ответ

3

Перевод обеспечивает .po погрузчиков от 2,1:

use Symfony\Component\Translation\Loader\PoFileLoader; 

// ... 
$translator->addLoader('po', new PoFileLoader()); 
$translator->addResource('po', __DIR__.'/translation/messages.en.po', 'en'); 
// ... 

Компонент также предоставляет другой GetText погрузчики, за полный список: https://github.com/symfony/Translation/tree/master/Loader

Смежные вопросы