Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cakephp 3国际化不工作_Php_Cakephp_Localization_Internationalization_Translation - Fatal编程技术网

Cakephp 3国际化不工作

Cakephp 3国际化不工作,php,cakephp,localization,internationalization,translation,Php,Cakephp,Localization,Internationalization,Translation,我在Cakephp 3中遇到了一个非常令人沮丧的问题。我刚刚更新了所有的.ctp文件,使之使用double,但我无法让它打印本地化字符串 我在config/app.php中将默认语言环境设置为en_150: App' => [ 'namespace' => 'App', 'encoding' => env('APP_ENCODING', 'UTF-8'), 'defaultLocale' => env('APP_DEFAUL

我在Cakephp 3中遇到了一个非常令人沮丧的问题。我刚刚更新了所有的.ctp文件,使之使用double,但我无法让它打印本地化字符串

我在config/app.php中将默认语言环境设置为en_150:

App' => [
        'namespace' => 'App',
        'encoding' => env('APP_ENCODING', 'UTF-8'),
        'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_150'),
        ...
我曾尝试直接在config/bootstrap.php中设置语言环境,但没有效果:

ini_set('intl.default_locale', Configure::read('App.defaultLocale'));
我使用cake i18n extract生成了.pot文件,然后对en_150语言环境执行了cake i18n init。我相信他们走的是正确的道路:

$ 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
最奇怪的是,我更新了Translator类vendor/cakephp/cakephp/src/I18n/Translator.php以记录正在查找的每个消息键,并且我看到了我的键和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
这让我觉得“回退”实际上是进入文件并读取翻译的内容。由于某种原因,我的翻译没有出现这种情况

到目前为止,我所尝试的:

删除缓存100次以上 将config/app.php中的默认语言环境设置为en_150以外的其他名称,我担心这对cakephp来说是无效的语言环境名称 在翻译文件的.pot.po文件扩展名之间切换 更新nano和poedit中的.po文件 在过去的4天里,我一直在努力解决这个问题,所以我肯定尝试过很多其他我现在想不起来的事情


我很感激任何人能提供的任何提示。结果证明这是一个权限问题。我之前没有注意到,因为我已经更新了Locale下所有文件和文件夹的权限和所有权,但没有更新Locale文件夹本身。

Update:我尝试过从cakephp 3.3更新到3.4,问题仍然存在