2017-03-14 28 views
0

私は最近、素晴らしいi18nシェルのおかげで、Cakephpで構築しているアプリから文字列を抽出しました。 私は、(フランス語から英語への)翻訳を行い、SRC /ロケールにファイルを置く:Cakephp i18n - コンストラクタが失敗しました - Intl例外

msgid "View" 
msgstr "" 

src/ 
    Locale/ 
     default.po 
     fr/ 
      default.po 

ロケール/フォルダ内の最初のdefault.poは、次のようにフォーマットされFR /フォルダ内のdefault.po:

:私のアプリコントローラーで

msgid "View" 
msgstr "Vue" 

は、私がtraductionをテストしたいです

public function initialize() 
{ 
     parent::initialize(); 
     I18n::locale('fr'); 
     ... 
} 

しかし、私は次のエラーを取得する:

Error Constructor failed Intl Exception

私は、ウェブ上の情報について調べてみましたが、何かを見つけることができませんでした。私はいくつかのマシンでも試しました。

私は間違っていますか?

ありがとうございました!

EDIT

ケーキのバージョンは3.3.12

デバッグキットのバージョン3.3.12

のError.logです:NDMさんのコメント@読んだ後

2017-03-14 17:18:54 Error: [IntlException] Constructor failed 
Request URL:/
Stack Trace: 
#0 /www/fitadmin/admin/vendor/cakephp/cakephp/src/I18n/Formatter/IcuFormatter.php(89): MessageFormatter->__construct('fr', '{0, number, #, ...') 
#1 /www/fitadmin/admin/vendor/cakephp/cakephp/src/I18n/Formatter/IcuFormatter.php(52): Cake\I18n\Formatter\IcuFormatter->_formatMessage('fr', '{0, number, #, ...', Array) 
#2 /www/fitadmin/admin/vendor/cakephp/cakephp/src/I18n/Translator.php(150): Cake\I18n\Formatter\IcuFormatter->format('fr', '{0, number, #, ...', Array) 
#3 /www/fitadmin/admin/vendor/cakephp/cakephp/src/I18n/functions.php(84): Cake\I18n\Translator->translate('{0,number,#,###...', Array) 
#4 /www/fitadmin/admin/vendor/cakephp/cakephp/src/I18n/Number.php(92): __d('cake', '{0,number,#,###...', 2.2256164550781) 
#5 /www/fitadmin/admin/vendor/cakephp/debug_kit/src/Panel/TimerPanel.php(125): Cake\I18n\Number::toReadableSize(2333728) 
#6 /www/fitadmin/admin/vendor/cakephp/debug_kit/src/ToolbarService.php(191): DebugKit\Panel\TimerPanel->summary() 
#7 /www/fitadmin/admin/vendor/cakephp/debug_kit/src/Routing/Filter/DebugBarFilter.php(139): DebugKit\ToolbarService->saveData(Object(Cake\Network\Request), Object(Cake\Network\Response)) 
#8 /www/fitadmin/admin/vendor/cakephp/cakephp/src/Event/EventManager.php(426): DebugKit\Routing\Filter\DebugBarFilter->afterDispatch(Object(Cake\Event\Event), Object(Cake\Network\Request), Object(Cake\Network\Response)) 
#9 /www/fitadmin/admin/vendor/cakephp/cakephp/src/Event/EventManager.php(391): Cake\Event\EventManager->_callListener(Array, Object(Cake\Event\Event)) 
#10 /www/fitadmin/admin/vendor/cakephp/cakephp/src/Event/EventDispatcherTrait.php(78): Cake\Event\EventManager->dispatch(Object(Cake\Event\Event)) 
#11 /www/fitadmin/admin/vendor/cakephp/cakephp/src/Http/ActionDispatcher.php(100): Cake\Http\ActionDispatcher->dispatchEvent('Dispatcher.afte...', Array) 
#12 /www/fitadmin/admin/vendor/cakephp/cakephp/src/Http/BaseApplication.php(83): Cake\Http\ActionDispatcher->dispatch(Object(Cake\Network\Request), Object(Cake\Network\Response)) 
#13 /www/fitadmin/admin/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Http\BaseApplication->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner)) 
#14 /www/fitadmin/admin/vendor/cakephp/cakephp/src/Routing/Middleware/RoutingMiddleware.php(62): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response)) 
#15 /www/fitadmin/admin/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Routing\Middleware\RoutingMiddleware->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner)) 
#16 /www/fitadmin/admin/vendor/cakephp/cakephp/src/Routing/Middleware/AssetMiddleware.php(88): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response)) 
#17 /www/fitadmin/admin/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Routing\Middleware\AssetMiddleware->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner)) 
#18 /www/fitadmin/admin/vendor/cakephp/cakephp/src/Error/Middleware/ErrorHandlerMiddleware.php(81): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response)) 
#19 /www/fitadmin/admin/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Error\Middleware\ErrorHandlerMiddleware->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner)) 
#20 /www/fitadmin/admin/vendor/cakephp/cakephp/src/Http/Runner.php(51): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response)) 
#21 /www/fitadmin/admin/vendor/cakephp/cakephp/src/Http/Server.php(90): Cake\Http\Runner->run(Object(Cake\Http\MiddlewareQueue), Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response)) 
#22 /www/fitadmin/admin/webroot/index.php(37): Cake\Http\Server->run() 
#23 {main} 
+0

あなたはこの'ケーキ\国際化\国際化を使用するを追加しましたか?あなたのローカルコードも間違っている可能性があります。 'br_FR'となるでしょう – tarikul05

+1

エラーを受け取るたびに、いつでも_full_ stacktraceを投稿してください(理想的には、ログから適切に読める形式でコピーしてください)。また、あなたの_exact_ CakePHPのバージョン( 'vendor/cakephp/cakephp/VERSION.txt'の最後の行)、そしてこの場合はデバッグキットのバージョン(' vendor/cakephp/debug_kit/VERSION.txt') – ndm

+0

@ tarikul05はい私は 'Cake \ I18n \ I18n'を追加しました。そして、私はbf_FRについては分かりません。この例をコアcakephpロケールフォルダから見てみましょう:[link](https://github.com/cakephp/localized/tree/master/src/Locale)) – WitoldW

答えて

0

I私の.poファイルを見て、cakephpベンダーフォルダから翻訳を削除しようとしました。私はそこにあるはずの絶対パス(C:/ xampp/...)があることに気づいた。コントローラの `ライントップ、トリックをした

...

関連する問題