2012-02-15 109 views
0

代碼:翻譯驗證消息在Silex的

$app->register(new Silex\Provider\TranslationServiceProvider(), array(
     'locale' => 'sr_Latn', 
     'translation.class_path' => __DIR__ . '/../vendor/symfony/src', 
     'translator.messages' => array('sr_Latn' => __DIR__ .'/../vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/translations/validators.sr_Latn.xlf') 
    )); 
    $app['translator.loader'] = new Symfony\Component\Translation\Loader\XliffFileLoader(); 

,我仍然沒有英文驗證消息。任何想法?

回答

1

您需要添加一個調用Translator::addResource

$file = __DIR__ .'/../vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/translations/validators.sr_Latn.xlf'; 
$app['translator']->addResource('xliff', $file, 'sr_Latn', 'validators'); 

Symfony\Bundle\FrameworkBundle\DependencyInjection::registerTranslatorConfiguration見。

+0

謝謝,它只適用於'$ app''translator'] - > addLoader('xlf',新的Symfony \ Component \ Translation \ Loader \ XliffFileLoader());'insted'$ app ['translator。 loader'] = new Symfony \ Component \ Translation \ Loader \ XliffFileLoader();'。使用'$ app ['translator.loader']'它會拋出'RuntimeException'消息'The「xlf」翻譯加載程序未註冊。它是'Symfony \ Bundle \ FrameworkBundle \ DependencyInjection \ FrameworkExtension :: registerTranslatorConfiguration'而不是'Symfony \ Bundle \ FrameworkBundle \ DependencyInjection :: registerTranslatorConfiguration'。非常感謝,這真的很有幫助。 – umpirsky 2012-02-16 14:36:53

+0

也許doc應該更新http://silex.sensiolabs.org/doc/providers/translation.html#yaml-based-language-files。 – umpirsky 2012-02-16 14:39:40

+0

對配方的拉取請求會很棒。 – igorw 2012-02-16 14:45:42