【问题标题】:CakePHP: Chinese translation errorCakePHP:中文翻译错误
【发布时间】:2014-04-25 11:16:31
【问题描述】:

我的网站有三种语言:俄语、英语和中文。我用 cake 控制台创建了 .pot 文件,并将它们的扩展名更改为 .po。然后,我将它们放在 Locale/rus、Locale/eng 和 Locale/chi 中。俄文和英文翻译都运行良好,但中文翻译加载的是俄文 .po 而不是自己的

【问题讨论】:

  • 尝试清除缓存(app/tmp/cache),仔细检查中文语言环境文件是否包含预期的数据,中国的三字母国家代码不应该是chn吗? (AFAIK chi 是智利)
  • @ndm 我已经清除了缓存。甚至跑vagrant destroy; vagrant up 根据Cakebook chi 是正确的中文变体
  • 抱歉,混淆了国家和语言代码:)
  • @Rulisp :我在哪里可以找到 Simplified Chinese and Traditional Chinese language .pot 文件。有什么资源可以下载或者我必须自己创建吗?
  • @urfusion 好吧,你需要运行 ./Console/cake i18n extract 来生成默认的 .pot 文件(我想你已经知道了)。它将扫描您的所有文件以查找__()。然后,您可以使用Poedit 生成您需要的.po 文件。

标签: php cakephp localization cakephp-2.4


【解决方案1】:

我想问题是chi是书目别名,你可以用Config.language,但文件夹必须使用术语名称,即zho

如果可能,应使用术语代码(每种语言的第一个)。
他们是在/APP/Locale/[code]/中构建路径的人@
书目代码是别名。

https://github.com/cakephp/cakephp/blob/2.4.7/lib/Cake/I18n/L10n.php#L83-L85

【讨论】:

  • chi 重命名为zho。没啥事儿。但我发现了别的东西。 Cake 取代了俄语上的任何语言(英语和俄语除外)
  • @Rulisp 使用zho 对我来说效果很好。您是否检查过它是否在使用新的 CakePHP 副本?另外,也许您可​​以添加应用程序的一些代码,设置语言的位置,翻译字符串的位置等...您还可以尝试调试I18n::_bindTextDomain(),并检查$localeDef 包含的内容,也许这会给您一个提示哪里出了问题。
  • 再次将 chi 重命名为 zho。我的虚拟机似乎有问题,因为在服务器上,中文翻译工作正常。
猜你喜欢
  • 1970-01-01
  • 2012-11-11
  • 2012-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-26
相关资源
最近更新 更多