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

Posted -mrl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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-US英文,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;

 

实现目录:

技术图片

实现效果:

中文:

技术图片

英文:

技术图片

 

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

以上是关于yii2 api接口 实现国际化多语言设置的主要内容,如果未能解决你的问题,请参考以下文章

国际化多语言方案i18n / class google sheets v4 api 在线文档同步json

react-intl 实现 React 国际化多语言

QtApplets-国际化多语言设置

.NET Core AvaloniaUI实现多语言国际化

iOS多语言(国际化)开发(跟随系统 + APP内手动设置)

Qt系列文章之三十九(Qt多语言国际化程序实例设计实现)