$config['components'] = [
'i18n' => [
'translations' => [
'hihi*' => [#category bắt đầu với hihi
'class' => 'yii\i18n\PhpMessageSource',
'basePath' => 'E:/haha',#@app/messages
#'sourceLanguage' => 'en-US',#mặc định là en-US nếu không khai báo
'fileMap' => [
'hihi' => '01.php',#Yii::t('hihi', 'hello')
'hihi/error' => 'abcxyz.php',##Yii::t('hihi/error', 'hello')
],
],
],
],
# Ví dụ language là vi-VN Yii2 sẽ quét file theo thứ tự ưu tiên sau để dịch
# E:/haha/vi-VN/01.php => E:/haha/vi/01.php
# Nếu language là vi-VN mà sourceLanguage là vi-VN thì Yii2 sẽ ko tìm file để dịch
];
Bonus:
Đã viết code Yii::t ở rất nhiều file rồi, giờ muốn extract các cụm từ đó ra 1 file để dịch sang ngôn ngữ khác thì làm thế nào?
Yii có công cụ dòng lệnh để extract ra cho bạn dịch các cụm từ sang ngôn ngữ khác 1 cách dễ dàng mà ko sợ bị bỏ thiếu:
Yii2 provides already somthing to help you with this topic. You can use the console with two yii commands:
messages/config: With the first command you create a configuration file
messages/extract: and with the second you extract the Yii:t() messages based on the configuration file
By default (part of the configuration file) all messages will be saved into a @app/messages directory that you have to have created before. These files will contain the required php arrays with empty string values for the translations. The files will be named by category that are used in the Yii::t('category', 'message') commands and are placed into sub directories for the specified language codes.