2017-02-27 84 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文件夾本身。