使用 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 翻译的主要内容,如果未能解决你的问题,请参考以下文章

Symfony2创建基于域名的路由(原创翻译)

如何在 Symfony 4 上配置 Doctrine 以使用 yaml 映射

Symfony2 在 YAML 配置中使用 PHP 类常量?

如何将自定义属性添加到 Symfony Doctrine YAML 映射文件

Symfony 4 部署后找不到翻译文件

合并YAML中的可重用块(Symfony框架)