Skip to content

多语言

脚手架支持多语言设置,分为应用部分和框架部分,应用部分,即开发者自己的代码里涉及的界面部分,框架部分,即uni-app内置组件和API涉及界面的部分。

应用多语言

应用多语言,即开发者自开发的页面组件等的内容中,这部分国际化采用vue-i18n,目前集成了中文(zh-Hans)、英文(en)、日文(ja)三种

设置方式

1、在 /src/locale/i18n/languages 文件夹下对应的语言种类中编辑添加国际化文案。

image

2、国际化使用

vue
<!-- 示例 -->
<template>
  <view class="content">
    <!-- t为国际化转化方法, create.app为国际化key值 -->
    <text>{{ t("create.app") }}</text>
  </view>
</template>

<script setup lang="ts">
import useIntl from "@/locale/i18n/use-intl";

const { t } = useIntl();
</script>

多语言扩展

1、在 /src/locale/i18n/languages 文件夹下新增对应的多语言json文件

2、在 /src/locale/i18n/index 文件内引入并设置好对应的语言编码

框架多语言

uni-app 有内置的基础组件,比如picker,或者与界面相关的API,比如showModal。这些界面包含的文字也需要国际化。
目前框架内置多语言支持:

  • 中文简体(zh-Hans)
  • 中文繁体(zh-Hant)
  • 英语(en)
  • 法语(fr)
  • 西班牙语(es)

内置组件和接口显示会根据系统语言环境自动切换,未支持的系统语言环境会显示为英文

内置组件及api多语言扩展

如果自动适配语言不满足需求,比如需要预置的5种语言外的更多语言。那么可以使用自定义方案。在指定目录创建指定文件,用同名词条来替换,语言地区代码请遵循 BCP47 规范

详见:https://uniapp.dcloud.net.cn/tutorial/i18n.html#uni-framework

uni-ui组件多语言扩展

以 uni-datetime-picker组件为例

  • /src/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n 文件夹下新增多语言json文件
  • /src/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index 中引入多语言文件
注意:扩展的语言编码需要统一

多语言切换

javascript
import useIntl from "@/locale/i18n/use-intl";

const { setLanguage } = useIntl();

// 示例
setLanguage('en') // 参数为切换的语言编码