Cake PHP - 新的本地化不作为选项出现

时间:2015-10-29 21:10:24

标签: php cakephp localization

我们有一个由承包商开发的Cake应用程序。它设置为多种语言(显然)。我可以在/ locale下看到语言子目录 - 但是,如果我们将新的翻译.po文件添加到例如法语的/ LC_MESSAGE子目录中(包括该语言的default.po),则语言更改中不会显示法语下拉列表。

我已经检查了Cake文档,而Cake似乎建议locale子目录都是两个字符名称(例如,上面的例子,法语为“fr”),开发人员使用“fra”来设置它。我不确定这是一个问题,还是只是Cake的灵活性的一个标志。

另一件事是我们拥有的工作翻译(西班牙语)在其文件夹中显示重复的.mo文件以及我们原始的.po文件。我已将default.po文件转换为默认.mo文件用于fra语言环境并上传,清除浏览器缓存,然后重新加载,语言选择器中仍然没有法语语言可用。

理想情况下,我们希望能够在新语言可用时添加和更新,而不必每次都转向开发人员(不幸的是,他们允许垃圾邮件发送者进入主机)。每次添加区域设置语言时,Cake应用程序都必须重新绑定吗?我是否需要在主机上的Cake应用程序中删除缓存文件以启用新语言?任何指导都将不胜感激。

1 个答案:

答案 0 :(得分:0)

  

法语

的/ LC_MESSAGE子目录

该文件夹应为LC_MESSAGES,复数。

  

开发人员使用“fra”来设置它。我不确定这是一个问题,还是只是Cake的灵活性的一个标志。

3个字母的语言代码也可以。虽然我不记得它应该是fra还是fre

  

我已将默认.po文件转换为默认情况.m文件为fra语言环境并上传

拥有.mo文件并非绝对必要。 Cake也可以读取.po文件。

  

每次添加区域设置语言时,Cake应用程序都必须进行重新绑定吗?

除非开发人员做了一些非常奇怪的事,否则没有。

  

我是否需要在主机上的Cake应用程序中删除缓存文件以启用新语言?

是。添加新语言后,您需要清除应用程序缓存。对于您的情况,清除/app/tmp/persistent文件夹中的所有文件。