---
title: i18n 配置
summary: "介绍小程序多语言(i18n)的配置与使用方式，包括模板/脚本中引用、占位符替换及面板产品多语言。"
questions:
  - 小程序多语言的 key 值在哪里进行管理？
  - 如何在全局配置文件中使用多语言？
  - 如何在模板文件中引用多语言字段？
  - 如何在逻辑脚本中获取多语言文本？
  - 多语言占位符的定义格式是什么？
  - 多语言占位符的替换规则是怎样的？
  - 面板小程序多语言与智能小程序多语言有什么区别？
  - 产品多语言和小程序多语言的优先级关系是什么？
  - 开发过程中产品多语言是如何自动整合的？
  - 多语言占位符适用于哪些场景？
---

# i18n 配置

## 使用方式

多语言的 key 值需要在 [小程序开发者平台](https://iot.tuya.com/miniapp/) 中进行添加，选择对应的小程序后，点击侧边栏 **多语言管理**。


<Image
  src="https://images.tuyacn.com/content-platform/hestia/163652636681b1e7b2bfe.png"
  style={{
    borderRadius: '10px',
    width: '618px',
    boxShadow: '0 0 5px rgba(0,0,0,0.3)',
  }}
/>


## 多语言的应用

通过 `I18n.t` 函数方法，多语言的字段可以应用到全局配置、模板文件、逻辑脚本中。方式分别如下：

### 1. 全局配置

```json
{
  "window": {
    "navigationBarTitleText": "@I18n.t('tab1')"
  }
}
```

### 2. 模板文件

```html
<view>多语言模板解析：{{I18n.t('tab1')}}</view>
```

### 3. 逻辑脚本

```js
console.log(I18n.t('tab1'));
```

## 多语言占位符

多语言的键值中可以使用占位符，以 `{key}` 的形式进行占位符的定义，如果在多语言数据中存在对应的 key，则优先进行替换，否则保留原始内容。适用一些单位变更、数量变更等场景。

例如，定义如下多语言数据：

```json
{
  "zh": {
    "fruit": "苹果",
    "apples": "我有 {count} 个{fruit}",
  },
  "en": {
    "fruit": "apple",
    "apples": "I have {count} {fruit}",
  }
} 
```

- 中文环境下: `I18n.t('apples')` 返回 `我有 {count} 个苹果`
- 英文环境下: `I18n.t('apples')` 返回 `I have {count} apple`


## 面板多语言

面板小程序多语言相比智能小程序多语言额外增加了获取产品多语言的逻辑，用于满足不同产品使用的为同一个面板小程序时，需要配置不同的多语言。

- 新建和导入项目时需要选择调试的产品，所以**开发过程中**，开发者工具会自动整合**产品多语言**。
- 产品多语言优先于小程序多语言，具体逻辑参考[产品多语言相关](https://developer.tuya.com/cn/docs/iot/product-language?id=K93ixsjagr67p)
