Symfony翻译在生产环境中无法工作。

3
我有一个 symfony (2.8) 应用程序 (实际上是 Sylius) ,我正在覆盖 SyliusUserBundle 中的一些翻译部分,它们在 app/Resources/translations/messages.en.yml 中 (即,翻译键是 sylius.customer.email.unique)。
在本地开发环境中它运作得很好,但在生产环境中则给出了对应的键。我已经多次清除缓存,但并没有帮助。
另外还可能有其他原因吗?
更新: 在英语中提供 SyliusUserBundle 中找到的翻译(原始包中存在),但在其他语言中则会给出键,因为原始包中没有该翻译。总而言之,似乎无法在生产环境中找到翻译文件 app/Resources/translations/messages..yml 的原因。
更新2: 我还发现,带有有效翻译的关键字存在于此文件中:app/cache/prod/translations/catalogue.hu_HU.ba674f8d2fd06750dcd7ee5bb021c1b905b518ea.php
3个回答

1
将按键移动到单独的文件中:
app/Resources/translations/validators.en.yml
app/Resources/translations/validators.hu.yml

已解决该问题。

(一个有趣的问题是为什么它在我的开发环境上起作用...)


作为一个可能的解释,为什么在一个环境中能够工作的原因可能是可以通过将validator.translation_domain参数设置为messages来覆盖验证器的翻译域。但这并不是事实(在我的本地和生产环境中都是validators)。 - Attila Fulop

0

你配置了备用语言环境吗?

# app/config/config.yml
framework:
    translator: { fallbacks: [en] }

目前它是 framework: translator: { fallback: %sylius.locale% },而参数是 sylius.locale: hu_HU - Attila Fulop
尝试以困难模式移除缓存:rm -rf app/cache - gvf
不,缓存已经通过多种方式清除了,那不是问题所在。 - Attila Fulop
有着相同的问题,4个键在开发环境中能够工作,但在生产环境中却不能? - ibasaw

0
尝试将您的文件重命名为messages.hu.yml,如果不起作用,请更改:
sylius.locale: hu_HU

sylius.locale: hu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接