Symfony 4翻译资源的最佳实践

时间:2018-05-03 11:48:58

标签: symfony translation

根据symfony文档,为了使翻译服务起作用,您需要使用已知的有效扩展名之一创建资源,从而产生如下格式:domain.locale.extension。 Symfony代码将默认查找“消息”域,如果您想更好地组织这些转换,可以在函数trans()的第三个参数中指定新域。 这里是我有点困惑的地方。我读到某处(不记得在哪里)这是一个更好的做法,将您的翻译目录分成多个文件,如

  • labels.en.xlf
  • labels.ro.xlf
  • options.en.xlf
  • options.ro.xlf
  • messages.en.xlf
  • messages.ro.xlf

我正在为每个目的创建一个文件,因此它可以组织起来,但问题就在于......现在我只有2种语言,我还计划添加所有这些语言。此外,我现在有了只有3个域名,但我肯定会增加更多。 这将导致文件数量不多,但是对于性能来说有点讨厌吗? 我的意思是,将它组织在多个文件中可能是一种更好的做法,但symfony必须加载所有那些肯定会影响性能的文件,但如果我只保留“消息”域并添加内部的每个翻译它会不会更好? 另一件事是trans()函数的语法。更好地称之为:

$translator->trans('translation.id');

比这个:

$translator->trans('translation.id', array(), 'theNewDomain');

您对此有何看法?

1 个答案:

答案 0 :(得分:1)

文件只通过缓存加载一次:warmup参见var / cache / {env} / translations /

然后每个区域设置只有一个目录。

相关问题