我遇到了一個非常令人沮喪的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
這有點讓我想起了「回退」實際上就是進入該文件並讀取翻譯。由於某種原因,我的翻譯不會發生這種情況。
我試過到目前爲止:
- 刪除緩存(超過100次)
- 設置默認語言環境(在配置/ app.php)比en_150以外的東西(我很擔心這個將是CakePHP的一個無效的區域設置名稱).POT <之間
- 開關 - 爲翻譯文件
- 更新.po文件在納米& poEdit的> .po文件擴展
我試圖解決這個過去4天,所以我肯定嘗試了很多其他的東西,我現在不記得了。
我會感激任何指針任何人都可以提供
更新:我試過從cakephp 3.3更新到3.4,問題依然存在 –