Skip to content

多语言、国际化

后端

php:ThinkPHP8 多语言

语言包

app/lang/zh-cn.php

php
'会员管理' => '会员管理'

app/lang/en.php

php
'会员管理' => 'Member'

使用

php
lang('会员管理');

配置

.env

txt
[LANG]
# 默认语言:
default_lang = zh-cn

前端

vue:Vue I18n

语言包

src/lang/package/zh-cn.json

json
  会员管理: "会员管理"

src/lang/package/en.json

json
  会员管理: "Member"

使用

js
import i18n from "@/lang/index";
i18n.global.t("会员管理");
vue
<template>
  <el-text>{{ $t("会员管理") }}</el-text>
  <el-form-item :label="$t("会员管理")">
    <el-input v-model="input" />
  </el-form-item>
</template>
<script>
export default {
  data() {
    return {
      name: "",
      input: "",
    };
  },
  created() {
    this.name = this.$t("会员管理");
  },
};
</script>

配置

src/settings.js

js
language: 'zh-cn',

切换

后端会根据前端请求参数或请求头部的语言变量自动侦测切换语言
src/utils/request.js

js
// 设置语言
if (tokenType === "header") {
  config.headers["think-lang"] = language;
} else {
  config.params.lang = language;
}

Apache-2.0 License