Symfony 4翻译资源最佳实践
根据symfony文档,为了使翻译服务正常工作,您需要创建一个具有已知有效扩展名的资源,从而生成类似于:domain.locale.extension的格式。Symfony代码将“messages”域作为默认域,如果希望更好地组织这些翻译,可以在函数trans()的第三个参数中指定新域。 这是我有点困惑的地方。我在某个地方(不记得在哪里)读到过这样一篇文章:将翻译目录分成多个文件是一种更好的做法,比如Symfony 4翻译资源最佳实践,symfony,translation,Symfony,Translation,根据symfony文档,为了使翻译服务正常工作,您需要创建一个具有已知有效扩展名的资源,从而生成类似于:domain.locale.extension的格式。Symfony代码将“messages”域作为默认域,如果希望更好地组织这些翻译,可以在函数trans()的第三个参数中指定新域。 这是我有点困惑的地方。我在某个地方(不记得在哪里)读到过这样一篇文章:将翻译目录分成多个文件是一种更好的做法,比如 标签.en.xlf labels.ro.xlf options.en.xlf options
- 标签.en.xlf
- labels.ro.xlf
- options.en.xlf
- options.ro.xlf
- messages.en.xlf
- messages.ro.xlf
$translator->trans('translation.id');
除此之外:
$translator->trans('translation.id', array(), 'theNewDomain');
您对此有何想法?文件仅通过缓存加载一次:warmup请参阅var/cache/{env}/translations/
然后,每个区域设置只有一个目录。因此,从性能角度来看,多文件方法没有任何不利因素。。。虽然每次我想翻译一些东西时,我必须指定3个参数,而不是一个参数,这让我很烦恼,这取决于你在哪里使用翻译。例如,如果您使用twig,您可以在表单中为整个模板定义一次翻译域
{%trans\u default\u domain'whatever%}
,您可以在默认值'translation\u domain'=>'whatever'
-在服务/控制器中,您可以使用自动设置域的包装器。。。