YII 2マルチ言語構成を実現する方法の共有

2226 ワード

前言:
私のYII 2バージョンは2.0.7なので、多言語を設定するときは他のチュートリアルとは違うところがあるので、整理して、自分がこれから必要なときや必要な友达が参考にして勉強しやすいようにしたいと思っています.一緒に勉強しましょう.
方法は次のとおりです.
1.コントロールにi 18 nを呼び出す文、例えばactionIndexを書く

echo \Yii::t('app', 'whatisthis');

今このページに入って、ページ出力whatisthis
2.マルチ言語関連ファイルを格納するフォルダmessagesを手動で作成し、advancedバージョンの場合frontendの下にこのフォルダを作成します.
3.i 18 nプロファイルの作成

yii message/config frontend/messages/config.php

自動的にconfigが生成されます.phpファイル
次にfrontend/messages/config.phpを開き、language行が

'languages' => ['en', 'zh-CN'],

4.メッセージファイルの作成、実行

yii message frontend/messages/config.php

これによりfrontend/messagesにenとzh-CNフォルダが生成されます
5.frontend/messages/zh-CH/yii.phpを開く
行の追加

'whatisthis' => '     ',

6./yii2/frontend/config/main.phpに設置
componentsに参加

'i18n' => [
  'translations' => [
  'app*' => [
   'class' => 'yii\i18n\PhpMessageSource',
   //'basePath' => '@app/messages',
   //'sourceLanguage' => 'en-US',
   'fileMap' => [
   'app' => 'yii.php',
   'app/error' => 'error.php',
   ],
  ],
  ],
 ],

注意、validateなどyii自身の翻訳を変更したい場合は
次の設定を 'translations' => []に追加する必要があります.

'yii' => [ 'class' => 'yii\i18n\PhpMessageSource', 'sourceLanguage' => 'en-US', 'basePath' => '@app/messages' ],

components同レベルで加入

'language' => 'zh-CN',

7.ページを再更新すると、「これは何ですか」と表示されるはずです.
8.他の言語を追加する必要がある場合、3、4ステップを実行するとファイルが再生成され、前の翻訳(whatisthis)は保持されますが、試してみると

'whatisthis' => '@@     @@',

奇妙な両側に@@が多く出ている.
まとめ
以上はこの文章のすべての内容で、本文の内容がみんなの学习あるいは仕事に対して一定の助けをもたらすことができることを望んで、もし疑问があればみんなは伝言を残して交流することができます.