2012-02-15 158 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