我在Silex使用翻译提供程序和PoFileLoader,一切都很棒。
$app['translator'] = $app->share($app->extend('translator', function($translator, $app) {
$translator->addLoader('po', new PoFileLoader());
$translator->addResource('po', __DIR__.'/resources/translations/de.po', 'de');
}
我唯一的问题是它如何处理尚未翻译的字符串。我希望它们被忽略并使用源而不是空字符串。就像gettext函数处理po文件一样。
是否有任何选项可以覆盖PoFileLoader类?
答案 0 :(得分:0)
我唯一的问题是它如何处理尚未翻译的字符串。我希望它们被忽略并使用源而不是空字符串。就像gettext函数处理po文件一样。
这是翻译者所做的事情,而不是文件加载器。如果在消息目录中找不到翻译,则翻译器将仅替换参数并返回源。
另请参阅source:
public function get($id, $domain = 'messages')
{
// ... all the loading logic
// if everything failed, just return the source
return $id;
}
此方法在Translator#trans
方法中调用。