使用 YAML 文件的 Symfony 翻译
Posted
技术标签:
【中文标题】使用 YAML 文件的 Symfony 翻译【英文标题】:Symfony Translation using YAML files 【发布时间】:2014-12-19 01:41:36 【问题描述】:我目前在 symfony2 中遇到翻译问题。
有些翻译正在加载,有些没有。
我的messages.de.yml:
form:
label:
save: Speichern
status:
daten_mangelhaft: Die Daten scheinen etwas mager zu sein, bitte überprüfen.
一些树枝文件:
'form.label.save'|trans
输出(如预期):
Speichern
而(相同的树枝文件):
'status.daten_mangelhaft'|trans
输出:
status.daten_mangelhaft
如果我将其添加到 messages.de.yml 中,如下所示:
status.daten_mangelhaft: Die Daten scheinen etwas mager zu sein, bitte überprüfen.
我真的不明白,它在某些情况下有效,但在其他情况下无效。
我试过了:
清除缓存 在翻译中省略特殊字符(ä、ö、ü) 在标识符中省略了分数 将翻译用引号或单引号括起来无济于事。
以前有人遇到过这个问题吗?你是怎么解决的?
【问题讨论】:
您是否尝试过使用"
或'
转义翻译字符串?
是的,我有(我会更新问题)。它没有帮助。
尝试设置翻译域。翻译域是翻译文件的名称,所以试试 'status.daten_mangelhaft'|trans(,'messages')
这也不起作用,老实说,我没想到会这样,因为同一文件中的其他翻译显示在同一页面上。感谢您尝试提供帮助。
我还没有解决这个问题,仅供参考,我使用了一个 yaml 到 xliff 转换器,并且可以工作。
【参考方案1】:
这仍然准确吗?
但是:您是否在 config.yml 中检查了备用语言?
framework:
translator: fallbacks: ['de']
default_locale: 'de'
您还可以使用您的 parameters.yml 文件中的语言环境参数并具有:
framework:
translator: fallbacks: ['%locale%']
default_locale: '%locale%'
【讨论】:
【参考方案2】:在删除翻译后尝试运行php app/console translation:update
(确保已保存)。它应该列出您需要的翻译。
这样你就可以确定在哪里写什么了。
【讨论】:
以上是关于使用 YAML 文件的 Symfony 翻译的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Symfony 4 上配置 Doctrine 以使用 yaml 映射
Symfony2 在 YAML 配置中使用 PHP 类常量?