yii2 api接口 实现国际化多语言设置

 

1) 在 /config/main.php 下添加如下代码:

'components' => [
        'language' => 'zh-CN',
        'i18n' => [
            'translations' => [
                '*' => [
                    'class' => 'yii\i18n\PhpMessageSource',     
                    'basePath' => '@application/messages',    //application根据自身项目进行修改
                    'fileMap' =>[
                        'exception' => 'exception.php',
                    ],
                ],
            ],
        ],
    ],

 

2)创建/messages/en/exception.php 英文翻译文件 :

<?php
/**
 * i18n翻译文件
 * 英文
 */
return [
    //系统异常
    '10001' => 'Illegal access',
    '10002' => 'Parametric null anomaly',
];

创建 /messages/zh-CN/exception.php 中文翻译文件

<?php
/**
 * i18n翻译文件
 * 中文
 */
return [
    //系统异常
    '10001' => '非法访问',
    '10002' => '参数为空异常',
];

3)在TestController.php下,代码如下:

$header = Yii::$app->request->headers;
        $Acceptlanuage = $header->get('accept-language');   //通过头部的accept-language获取接口语言
        //国际化多语言,zh-CN中国中文,en英文,id-ID印尼
        if($Acceptlanuage == 'zh-CN'){
            Yii::$app->language = 'zh-CN';
        }elseif($Acceptlanuage == 'en'){
            Yii::$app->language = 'en';
        }elseif($Acceptlanuage == 'id-ID'){
            Yii::$app->language = 'id-ID';
        }else{
            Yii::$app->language = 'zh-CN';
        }
        echo Yii::t('exception', '10001');
        echo '<br>';
        ECHO Yii::$app->language;

 

实现目录:

实现效果:

中文:

英文:

 

php源文件和exe程序下载地址:https://download.csdn.net/download/a724008158/11216861 

附送各国语言简写代码: https://www.cnblogs.com/-mrl/p/10955676.html

posted @ 2019-05-31 15:53  一个人的孤独自白  阅读(1275)  评论(0编辑  收藏  举报