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 @   一个人的孤独自白  阅读(1292)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示