【问题标题】:symfony5 translation:update result not as expectedsymfony5 翻译:更新结果不如预期
【发布时间】:2021-08-07 18:18:06
【问题描述】:
我创建了一个 messages.de.yaml 文件:
测试:测试
just.another.test:测试 2
当我做 php bin/console 翻译时:update --force en --output-format=yaml 我得到:
messages.en.yaml
测试:测试
just.another.test:__just.another.test
为什么在右边:不是译者的“测试2”?
【问题讨论】:
标签:
symfony
translate
symfony5
【解决方案1】:
__ 是为了表明它是一个未翻译的字符串(您可以使用 --prefix 选项更改它)。
更新翻译文件时,翻译 keys 是它们通过系统时的消息,在您的情况下,而不是您使用关键字的短语。翻译 values 只是键加上前缀。
然后您必须“填充”这些翻译,系统无法自行“弥补”翻译,也无法复制原始语言的值,这会使待处理的翻译更难被发现。
但如果文件中完全没有密钥,它将使用来自fallback_locale 的消息。
因此,在这种情况下,第一条消息必须已经在另一个 translation:update 运行中翻译,而第二条消息是新的且待翻译。