Symfony 4 翻译资源最佳实践

标签 symfony translation

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

  • labels.en.xlf
  • labels.ro.xlf
  • 选项.en.xlf
  • 选项.ro.xlf
  • messages.en.xlf
  • messages.ro.xlf

我正在为每个目的创建一个文件,以便可以对其进行组织,但问题是......现在我只有两种语言,此外我计划添加所有语言。另外,现在我得到了只有 3 个域,但我肯定会添加更多。 这将导致大量文件,但这对性能来说不是有点糟糕吗? 我的意思是,将其组织在多个文件中可能是更好的做法,但 symfony 必须加载所有这些文件,这肯定会影响性能,但如果我只保留“消息”域并在其中添加每个翻译这样不是更好吗? 另一件事是 trans() 函数的语法。这样调用它会更好:

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

比这个:

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

您对此有何看法?

最佳答案

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

那么每个区域设置只有一个目录。

关于Symfony 4 翻译资源最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50154375/

相关文章:

symfony - Lexik JWT 返回 401 未经授权

c - 用 gcc 扩展 c 编程语言

symfony - Sensio Framework Extra Bundle 问题

php - 使用 laravel 队列无法在我的共享主机解决方案上运行

symfony - 数据库中的翻译和 Symfony2

Qt qsTr() 处理复数

localization - 为什么 msgmerge 将我的一些翻译标记为模糊?

django - Django中模型形式的I18n翻译

php - 未找到学说迁移包 - symblog

php - 尽管 --prefer-dist 标志, Composer 依赖项的更新缓慢