【问题标题】:Localization not working in CakePHP 3本地化在 CakePHP 3 中不起作用
【发布时间】:2016-01-05 15:39:50
【问题描述】:
# head -n2 src/Locale/de/default.po
msgid  "route_shop"
msgstr "shop"

在我的控制器中,我只有 exit(__('route_shop'));,但它正在返回 route_shop。

ini_get('intl.default_locale'); // returns de (as set in config/bootstrap.php)

'locales' => [APP . 'Locale' . DS] // paths setting in config/app.php

Apache/PHP 拥有 default.po 文件的权限。真的看不出还有什么不对的地方。

有人有什么建议吗?

尝试了不同的翻译、语言环境、完整的语言环境名称(de_DE 用于文件夹名称/intl.default_locale 设置)。未报告错误,debug.log 中没有任何内容

【问题讨论】:

  • 您是否尝试过清空/删除缓存?
  • 尝试删除 msgid 和 "route_shop" 之间的多余空格
  • @arilia 实际上是这样。我从文件中删除了其他行,只是用 route_shop 进行了测试,显然这两个空格确实导致它在文件中的任何地方失败,似乎是一个错误。相同的文件适用于 1.3 就好了。
  • 也许这是一个功能。我发表了我的评论作为答案

标签: php cakephp localization cakephp-3.x


【解决方案1】:

我猜问题在于msgid 和字符串之间的空格数。

我没有找到任何参考,但如果有多个空格,它就不起作用

删除多余的空间并记得清除缓存

【讨论】:

  • 我不认为它是官方 GNU specs 的一部分,CakePHP 很可能出于性能原因需要这种严格的格式,substr is usually faster 而不是正则表达式等。
猜你喜欢
  • 2016-05-17
  • 1970-01-01
  • 1970-01-01
  • 2019-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多