2014-11-07 22:10:29 8700次浏览 1条回答 2 悬赏 50 金钱

yii2的英文我看不太懂,试了好多次都没成功
我想弱弱的问下,到底应该怎么做。
有人说要加'language' => 'zh_CN',那么加到哪个文件
如果不是,到底要怎么做,
谢谢各位高手相告

补充于 2014-11-11 16:56

今天有时间研究了下,和大家共享(basic 模版):
修改config目录下的web.php文件,添加

return [ ...

'language'=>'zh-CN',

... ]

这样可以把yii2定义的英文翻译成中文,但是页头需要自己修改 views/layouts/main.php文件自己修改。
那么,如果用gii自动生成数据库CURD操作的话,数据库的显示怎么改成汉字呢?
需要在model类中定义attributeLabels()方法:

    public function attributeLabels()
    {
        return [
            'id' => Yii::t('app', 'ID'),
            'xitong' => Yii::t('app', '应用系统名称'),

        ];
    }

但是这样定义是死的,不灵活,浪费了Yii::t()函数的强大功能,翻译成其他语言还得修改源程序。
以上述代码为例,修改代码为:

 'xitong' => Yii::t('app', 'SystemName'),

在config目录下的web.php文件,添加以下内容
return [ ...
'i18n' => [

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

... ]

basic目录下创建messages目录,在messages目录下创建zh-CN目录,在zh-CN目录下创建app.php文件,输入以下内容:

return [

'SystemName'=>'系统名称',
...

];

如果需要更改程其他语言,需要在messages目录下建立相应的语言目录,再在语言目录下建立app.php文件并写上翻译信息,最后修改web.php配置文件中的'language'=>''项成相依的语言代码就可以了
补充于 2014-11-11 17:04

上边的排版错了,重新来下:
(basic 模版):修改config目录下的web.php文件,添加

 return [ ...

'language'=>'zh-CN',

... ] 

这样可以把yii2定义的英文翻译成中文,但是页头需要自己修改 views/layouts/main.php文件自己修改。 那么,如果用gii自动生成数据库CURD操作的话,数据库的显示怎么改成汉字呢? 需要在model类中定义attributeLabels()方法:

public function attributeLabels()
{
    return [
        'id' => Yii::t('app', 'ID'),
        'xitong' => Yii::t('app', '应用系统名称'),

    ];
}

但是这样定义是死的,不灵活,浪费了Yii::t()函数的强大功能,翻译成其他语言还得修改源程序。以上述代码为例,修改代码为:

'xitong' => Yii::t('app', 'SystemName'),

在config目录下的web.php文件,添加以下内容:

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

在basic目录下创建messages目录,在messages目录下创建zh-CN目录,在zh-CN目录下创建app.php文件,输入以下内容:

 return [

'SystemName'=>'系统名称',
...
];

如果需要更改程其他语言,需要在messages目录下建立相应的语言目录,再在语言目录下建立app.php文件并写上翻译信息,最后修改web.php配置文件中的'language'=>''项成相依的语言代码就可以了

补充于 2014-11-11 17:05

靠,怎么回事,越来越乱了,就这样了,大家明白就好了

最佳答案

  • wgc1221 发布于 2014-11-11 16:56 举报

    今天有时间研究了下,和大家共享(basic 模版):
    修改config目录下的web.php文件,添加

    return [ ...
    
    'language'=>'zh-CN',
    
    ... ]
    

    这样可以把yii2定义的英文翻译成中文,但是页头需要自己修改 views/layouts/main.php文件自己修改。
    那么,如果用gii自动生成数据库CURD操作的话,数据库的显示怎么改成汉字呢?
    需要在model类中定义attributeLabels()方法:

        public function attributeLabels()
        {
            return [
                'id' => Yii::t('app', 'ID'),
                'xitong' => Yii::t('app', '应用系统名称'),
    
            ];
        }
    

    但是这样定义是死的,不灵活,浪费了Yii::t()函数的强大功能,翻译成其他语言还得修改源程序。
    以上述代码为例,修改代码为:

     'xitong' => Yii::t('app', 'SystemName'),
    

    在config目录下的web.php文件,添加以下内容
    return [ ...
    'i18n' => [

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

    ... ]

    basic目录下创建messages目录,在messages目录下创建zh-CN目录,在zh-CN目录下创建app.php文件,输入以下内容:
    

    return [

    'SystemName'=>'系统名称',
    ...
    

    ];

    如果需要更改程其他语言,需要在messages目录下建立相应的语言目录,再在语言目录下建立app.php文件并写上翻译信息,最后修改web.php配置文件中的'language'=>''项成相依的语言代码就可以了
    
您需要登录后才可以回答。登录 | 立即注册
wgc1221
助理

wgc1221

注册时间:2013-12-26
最后登录:2015-01-30
在线时长:4小时27分
  • 粉丝0
  • 金钱0
  • 威望10
  • 积分140

热门问题