ts怎么用i18n国际化
时间: 2023-09-13 21:05:49 浏览: 48
1. 安装i18n库
在项目中使用i18n,需要先安装i18n库。可以使用以下命令进行安装:
```bash
npm install i18n --save
```
2. 配置i18n
在项目中使用i18n,需要配置i18n。可以在项目的根目录创建一个i18n.js文件,然后在该文件中进行配置。例如:
```javascript
const i18n = require('i18n');
const path = require('path');
i18n.configure({
locales: ['en', 'zh'], // 支持的语言种类
directory: path.join(__dirname, '../locales'), // 语言文件存放路径
defaultLocale: 'en', // 默认语言种类
cookie: 'lang', // 存储语言种类的cookie名
queryParameter: 'lang', // 从url中获取语言种类的参数名
});
```
上述代码中,locales指定了支持的语言种类,directory指定了语言文件存放路径,defaultLocale指定了默认语言种类,cookie指定了存储语言种类的cookie名,queryParameter指定了从url中获取语言种类的参数名。
3. 创建语言文件
在i18n配置好之后,需要在locales目录下创建相应的语言文件,文件名为语言种类的缩写,例如en.json、zh.json等。
语言文件中包含了一组键值对,键表示需要翻译的文本,值表示该文本在当前语言下的翻译。例如:
```json
{
"hello": "Hello",
"world": "World"
}
```
4. 在代码中使用i18n
在代码中使用i18n,可以使用i18n.__()方法进行翻译。例如:
```javascript
const i18n = require('i18n');
console.log(i18n.__('hello')); // 输出:Hello
console.log(i18n.__('world')); // 输出:World
```
在实际使用中,可以根据需要在代码中动态设置语言种类,例如:
```javascript
const i18n = require('i18n');
// 设置语言种类为中文
i18n.setLocale('zh');
console.log(i18n.__('hello')); // 输出:你好
console.log(i18n.__('world')); // 输出:世界
// 设置语言种类为英文
i18n.setLocale('en');
console.log(i18n.__('hello')); // 输出:Hello
console.log(i18n.__('world')); // 输出:World
```
5. 在模板中使用i18n
在模板中使用i18n,可以使用i18n.__()方法进行翻译。例如:
```html
<h1>{{ __('hello') }}</h1>
<p>{{ __('world') }}</p>
```
在实际使用中,可以根据需要在模板中动态设置语言种类,例如:
```html
<a href="?lang=en">{{ __('English') }}</a>
<a href="?lang=zh">{{ __('中文') }}</a>
```