国际化多语言
Cool Unix 内置强大的国际化插件,支持多语言切换和 AI 智能翻译,助力您的应用走向全球市场。
提示
框架自动扫描并加载所有 locales 目录下的语言资源文件。结合 AI 翻译工具,可实现多语言内容的快速生成,大大提升开发效率。
🌍 特性概览
- 🤖 AI 智能翻译 - 基于人工智能的自动翻译服务
- 🔄 动态语言切换 - 运行时无缝切换语言
- 📝 占位符支持 - 支持参数化翻译内容
- 🌐 广泛语言支持 - 内置 50+ 种语言配置
⚙️ 配置设置
基础配置
在根目录的 /plugins/locale.ts 文件(不存在则手动创建)中配置需要支持的语言参数 languages
js
import { initLocale, type PluginConfig } from "@/.cool";
export default {
options: {
// 支持的多语言代码列表,AI 将依据此列表生成对应的本地化文件
languages: ["zh-cn", "zh-tw", "en", "es", "ja", "ko", "fr"]
},
install(app) {
// 初始化多语言设置,"none" 表示优先跟随系统当前语言
initLocale("zh-cn");
}
} as PluginConfig;重要说明
languages 参数的决定 AI 翻译时同时处理的语言数量。对于翻译不准确的内容,建议手动调整优化。
不使用多语言
如果项目不需要多语言支持,直接删除 /plugins/locale.ts 文件即可,不会影响程序正常运行。
📝 使用指南
基础用法
所有需要翻译的文本内容都需要使用 t() 或 $t() 函数包装:
html
<!-- 模板中使用 -->
<text>{{ t('你好') }}</text>
<text>{{ $t('欢迎{name}', { name: '张三' }) }}</text>脚本中使用
html
<script setup lang="ts">
import { t, $t } from "/@/locale";
// 基础翻译
ui.showToast({
message: t("操作成功")
});
// 参数化翻译
ui.showToast({
message: $t("欢迎回来,{name}", { name: "李四" })
});
</script>函数说明
| 函数 | 语法 | 功能 | 使用场景 |
|---|---|---|---|
t() | t(text) | 基础翻译 | 静态文本内容 |
$t() | $t(text, data) | 参数化翻译 | 动态内容,支持占位符 |
为什么不使用可选参数 data? ,在 帮助文档 中会说明。
🤖 AI 翻译工具
项目已默认集成相关工具依赖,只需在项目根目录下执行以下命令:
bash
# 安装
pnpm add @cool-vue/unix-cli -g
# 创建/更新翻译文件
unix-i18n create
# 添加 uni_modules 下的语言
unix-i18n add uni_modules/[name]工作流程
- 扫描源码 - 工具会自动扫描项目中的
t()和$t()函数 - 提取文本 - 收集所有需要翻译的中文文本
- AI 翻译 - 调用 AI 服务翻译成目标语言
- 生成文件 - 在相应目录下生成翻译文件
输出结构
locales/
├── zh-cn.json # 简体中文
├── zh-tw.json # 繁体中文
├── en.json # 英语
└── es.json # 西班牙语🌐 支持的语言
主要语言
| 语言 | 代码 | 地区 |
|---|---|---|
| 简体中文 | zh-cn ` | 中国大陆 |
| 繁体中文 | zh-tw | 中国台湾 |
| 英语 | en | 美国 |
| 日语 | ja | 日本 |
| 韩语 | ko | 韩国 |
欧洲语言
| 语言 | 代码 | 语言 | 代码 |
|---|---|---|---|
| 德语 | de | 法语 | fr |
| 西班牙语 | es | 意大利语 | it |
| 葡萄牙语 | pt | 荷兰语 | nl |
| 俄语 | ru | 波兰语 | pl |
| 瑞典语 | sv | 丹麦语 | da |
| 挪威语 | nb-NO | 芬兰语 | fi |
| 希腊语 | el | 捷克语 | cs |
| 匈牙利语 | hu | 罗马尼亚语 | ro |
其他地区语言
点击查看完整语言列表
| 语言 | 代码 | 语言 | 代码 |
|---|---|---|---|
| 阿拉伯语 | ar | 希伯来语 | he |
| 土耳其语 | tr | 波斯语 | fa |
| 泰语 | th | 越南语 | vi |
| 印度尼西亚语 | id | 马来语 | ms |
| 孟加拉语 | bn | 泰米尔语 | ta |
| 乌克兰语 | uk | 保加利亚语 | bg |
| 克罗地亚语 | hr | 塞尔维亚语 | sr |
| 斯洛伐克语 | sk | 斯洛文尼亚语 | sl |
| 立陶宛语 | lt | 拉脱维亚语 | lv |
| 爱沙尼亚语 | et | 加泰罗尼亚语 | ca |
| 巴斯克语 | eu | 世界语 | eo |
| 库尔德语 | ku / ckb | 亚美尼亚语 | hy-am |
| 阿塞拜疆语 | az | 哈萨克语 | kk |
| 吉尔吉斯语 | ky | 蒙古语 | mn |
| 土库曼语 | tk | 维吾尔语 | ug-cn |
| 高棉语 | km | 南非荷兰语 | af |
| 普什图语 | pa | 巴西葡萄牙语 | pt-br |
