Fastadmin API接口实现多语言提示语

在Fastadmin中API接口实现多语言提示语

目录

多语言

修改配置

设置多语言包

切换语言

登录修改

注册修改

总结


多语言

修改配置

在app/config.php中开启多语言。

开启多语言改为true,允许的语言列表为中文、英文、意大利语,如下:

php 复制代码
// 是否开启多语言
'lang_switch_on'         => true,
// 默认全局过滤方法 用逗号分隔多个
'default_filter'         => '',
// 默认语言
'default_lang'           => 'zh-cn',
// 允许的语言列表
'allow_lang_list'        => ['zh-cn', 'en', 'italy'],

设置多语言包

在api中lang下增加en、italy目录,增加语言包,如下:

切换语言

在api/user.php中增加设置语言方法,如下:

php 复制代码
/**
 * 切换语言
 *
 * @ApiMethod (POST)
 * @ApiParams (name="lang", type="string", required=true, description="语言类型")
 */
public function setLang()
{
    $lang = $this->request->post('lang', 'zh-cn');
    if (!$lang) {
        $this->error(__('Please select language type'));
    }
    // 中文、英文、意大利语
    if (!in_array($lang, ['zh-cn', 'en', 'italy'])) {
        $this->error(__('Language type is incorrect'));
    }

    if (!$this->auth->setLang($lang)) {
        $this->error(__('Operation failed'));
    }

    $this->success(__('Operation completed'));
}

在common/library/Auth.php中增加设置语言方法,如下:

php 复制代码
/**
 * 设置语言
 * @param $lang
 * @return mixed
 */
public function setLang($lang)
{
    setcookie('think_var', $lang);
    return $this->_user->save(['lang' => $lang]);
}

通过cookie修改think_var变量来切换语言,因为在下次用户登录后保持不变,需要同步到数据库中。

登录修改

在登录方法中增加同步设置语言,设置用户之前设置的语言,如下:

注册修改

在注册时,增加用户默认语言为中文,如下:

注意:在当前接口修改语言后,在下一个接口才换显示为切换后的语言提示。

总结

API实现多语言,基础是配置多语言包文件,核心是变量值修改;

通过用户设置语言触发,并在登录和注册时进行同步语言设置。

相关推荐
wangbing11255 分钟前
springboot应用关闭时触发动作
java·spring boot·后端
子兮曰4 小时前
把 649 种文件格式塞进一个网页里:一个「文件不出浏览器」的预览器
前端·javascript·后端
全栈弄潮儿6 小时前
Python实战第2期: 变量与数据类型
后端·python·agent
码事漫谈7 小时前
五道题,测测你有没有真的入门 AI
后端
蜗牛互联网8 小时前
Python + JSON Schema 实现工单结构化输出与本地复核
java·人工智能·后端
北京盛世宏博9 小时前
工业环境监测选型:Modbus TCP以太网温湿度传感器部署、调试、避坑全指南
开发语言·网络·php
4SAPI9 小时前
AI API Gateway平台哪个好?从架构视角看企业多模型网关选型与实践
java·大数据·人工智能·gateway·php
大侠归来9 小时前
Spring Boot 2.1 → 3.5 迁移推演:从实战出发的完整路线图
java·spring boot·后端
ly768910 小时前
MongoDB 副本集选举风暴排查:从心跳超时到 Journal 刷盘阻塞
数据库·mongodb·php·mongodb 副本集·选举风暴·journal 刷盘·writeconcern