2017-02-27 69 views
0

我遇到了一个非常令人沮丧的Cakephp 3问题。我刚刚更新了所有的.ctp文件以使用(double _),但无法打印本地化的字符串。Cakephp 3国际化不起作用

我已经设置默认的语言环境中的config/app.php到en_150:

App' => [ 
     'namespace' => 'App', 
     'encoding' => env('APP_ENCODING', 'UTF-8'), 
     'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_150'), 
     ... 

我试过在配置/ bootstrap.php中直接设置的语言环境,但它没有任何效果:

ini_set('intl.default_locale', Configure::read('App.defaultLocale')); 

我生成了带有蛋糕i18n提取的.pot文件,然后为en_150语言环境做了i18n init的蛋糕。我相信他们是正确的路径:

(供应商/ CakePHP的/ CakePHP的/ src目录/ -I18N/Translator.php)
$ find src/Locale/ 
src/Locale/ 
src/Locale/default.po 
src/Locale/cake.pot 
src/Locale/default.pot 
src/Locale/en_150 
src/Locale/en_150/default.po 
src/Locale/en_150/default.po.po 
src/Locale/en_150/cake.po 
src/Locale/en_150/default.mo.po 
src/Locale/default.mo 

最奇怪的是,我更新了翻译类日志就是BEING抬头每封邮件的关键,并且我看到了我的钥匙和debugKit的钥匙。但是,debugKit的键会从内存中查找两次,然后从后备中查找。但是,我的钥匙永远不会在回退中查找。

debugkit的键:

2017-02-27 13:47:16 Fallback lookup Event: Controller.beforeRender 
2017-02-27 13:47:16 Event: Controller.beforeRender 
2017-02-27 13:47:16 View Render start 
2017-02-27 13:47:16 Fallback lookup View Render start 
2017-02-27 13:47:16 View Render start 

我的钥匙:

2017-02-27 13:47:16 AppName 
2017-02-27 13:47:16 Sign in to start your session 
2017-02-27 13:47:16 Email 
2017-02-27 13:47:16 Password 
2017-02-27 13:47:16 Remember Me 
2017-02-27 13:47:16 Sign In 

这有点让我想起了“回退”实际上就是进入该文件并读取翻译。由于某种原因,我的翻译不会发生这种情况。

我试过到目前为止:

  1. 删除缓存(超过100次)
  2. 设置默认语言环境(在配置/ app.php)比en_150以外的东西(我很担心这个将是CakePHP的一个无效的区域设置名称).POT <之间
  3. 开关 - 为翻译文件
  4. 更新.po文件在纳米& poEdit的> .po文件扩展

我试图解决这个过去4天,所以我肯定尝试了很多其他的东西,我现在不记得了。

我会感激任何指针任何人都可以提供

+0

更新:我试过从cakephp 3.3更新到3.4,问题依然存在 –

回答

1

它原来是一个权限问题。我之前没有看到它,因为我更新了Locale下的所有文件&文件夹的权限和所有权,但不是Locale文件夹本身。