這篇文章將為大家詳細(xì)講解有關(guān)怎么在Yii2語(yǔ)言中配置國(guó)際化,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),舟山企業(yè)網(wǎng)站建設(shè),舟山品牌網(wǎng)站建設(shè),網(wǎng)站定制,舟山網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,舟山網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。第一步 創(chuàng)建i18n配置文件
./yii message/config @app/config/i18.php // yii 在項(xiàng)目目錄下 Yii2創(chuàng)建的時(shí)候自動(dòng)生成的
執(zhí)行完命令之后會(huì)在項(xiàng)目根目錄config下創(chuàng)建一個(gè)i18n.php文件
為什么要?jiǎng)?chuàng)建這個(gè)文件,因?yàn)槲覀優(yōu)榱硕嗾Z(yǔ)言處理,需要生成一個(gè)對(duì)應(yīng)的映射文件,只要生成就好了,稍后的配置程序會(huì)自動(dòng)調(diào)用處理
第二步 修改配置規(guī)則
打開(kāi)config/i18n.php,看下生成的配置文件的代碼,如下:
return [ 'color' => null, 'interactive' => true, 'help' => null, 'sourcePath' => '@yii', 'messagePath' => '@yii/messages', 'languages' => [], 'translator' => 'Yii::t', 'sort' => false, 'overwrite' => true, 'removeUnused' => false, 'markUnused' => true, 'except' => [ '.svn', '.git', '.gitignore', '.gitkeep', '.hgignore', '.hgkeep', '/messages', '/BaseYii.php', ], 'only' => [ '*.php', ], 'format' => 'php', 'db' => 'db', 'sourceMessageTable' => '{{%source_message}}', 'messageTable' => '{{%message}}', 'catalog' => 'messages', 'ignoreCategories' => [], 'phpFileHeader' => '', 'phpDocBlock' => null, ];
修改后的代碼,如下:
return [ 'color' => null, 'interactive' => true, 'help' => null, 'sourcePath' => '@app', 'messagePath' => '@app/messages', 'languages' => ['zh-CN', 'ru-RU'], 'translator' => 'Yii::t', 'sort' => false, 'overwrite' => true, 'removeUnused' => false, 'markUnused' => true, 'except' => [ '.svn', '.git', '.gitignore', '.gitkeep', '.hgignore', '.hgkeep', '/messages', '/BaseYii.php', 'vendor', ], 'only' => [ '*.php', ], 'format' => 'php', 'db' => 'db', 'sourceMessageTable' => '{{%source_message}}', 'messageTable' => '{{%message}}', 'catalog' => 'messages', 'ignoreCategories' => [], 'phpFileHeader' => '', 'phpDocBlock' => null, ];
我這里只改了兩個(gè)地方
'sourcePath' => '@app', // 將@yii改為@app 只處理我們自己應(yīng)用中的代碼 'messagePath' => '@app/messages', // 將@yii/messages改為@app/messages 將需要翻譯的字段提取出來(lái)要放的目錄 'languages' => ['zh-CN', 'ru-RU'], // 要翻譯成目標(biāo)的語(yǔ)言,我這里定義了一個(gè)"中文"和"俄語(yǔ)"
和
'except' => [ '.svn', '.git', '.gitignore', '.gitkeep', '.hgignore', '.hgkeep', '/messages', '/BaseYii.php', 'vendor', // 將vendor目錄下的過(guò)濾掉,不然可能太多了 ],
第三步 生成翻譯配置文件
執(zhí)行下面的命令
./yii message/extract @app/config/i18n.php
執(zhí)行完之后會(huì)在messages目錄下(如果沒(méi)有messages目錄的話需要手動(dòng)創(chuàng)建下)得到如下的目錄結(jié)構(gòu)
├── ru-RU
│ └── app.php
└── zh-CN
└── app.php
提示下再做這個(gè)操作之前,需要在自己的項(xiàng)目中有類似Yii:t()的調(diào)用,比如我這里在components/HeaderWidget.php這個(gè)文件中
Yii::t('app', 'Home')
這里的app的作用是用來(lái)進(jìn)行文件分類的,我這里暫時(shí)沒(méi)有計(jì)劃生成的時(shí)候會(huì)將所有需要翻譯的字段放在app開(kāi)頭命名的php文件app.php文件中
如果像下面這樣調(diào)用的話
Yii::t('appp', 'Home')
會(huì)生成一個(gè)appp.php的文件
第四步 翻譯配置文件
看下中文的翻譯文件messages/zh-CN/app.php,我的是下面這個(gè)
return [ 'Archive' => '', 'Autokid' => '', 'Blog' => '', 'Ctime' => '', 'IP地址' => '', 'UserAgent' => '', '主題' => '', '內(nèi)容' => '', '姓名' => '', '日期' => '', '郵箱地址' => '', '頁(yè)面路徑' => '', 'Home' => '首頁(yè)', // 右邊的鍵值對(duì)應(yīng) Yii::t('app', 'Home')中的Home,只需要在value中寫(xiě)入需要的漢字就可以了。 ];
第五步 修改目標(biāo)國(guó)際化語(yǔ)言
修改配置文件
'language' => 'zh-CN', // 指定為要翻譯的語(yǔ)言
再打開(kāi)網(wǎng)頁(yè),就可以看到已經(jīng)翻譯成了對(duì)應(yīng)需要的語(yǔ)言,當(dāng)然這樣的配置很不靈活,如果是部署多態(tài)機(jī)器并通過(guò)域名或者其他方式來(lái)實(shí)現(xiàn)的話,也是可以的,這里的話我建議如下方式
創(chuàng)建自己的Controller,然后將語(yǔ)言配置放在Session中,通過(guò)獲取Session中的語(yǔ)言來(lái)更換全站的語(yǔ)言。具體見(jiàn)后面分享
提示,網(wǎng)站很多地方提到要加個(gè)配置,官方也是
'i18n' => [ 'translations' => [ 'app*' => [ 'class' => 'yii\i18n\PhpMessageSource', 'basePath' => '@app/messages', 'sourceLanguage' => 'en-US', 'fileMap' => [ 'app' => 'app.php', ], ], ], ],
關(guān)于怎么在Yii2語(yǔ)言中配置國(guó)際化就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
當(dāng)前文章:怎么在Yii2語(yǔ)言中配置國(guó)際化-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://muchs.cn/article20/dchdco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、虛擬主機(jī)、搜索引擎優(yōu)化、做網(wǎng)站、網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容