2013-10-02 104 views
1

在我目前的項目中,我使用帶模板引擎TWIG的Silex框架。我必須將我的網站國際化。爲此,我進口所需模塊:Silex Twig翻譯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