前端自动国际化方案

前言

目前有很多成熟的库来做前端国际化,例如i18n相关的。本次主要介绍kiwi做前端国际化,有如下优点:

  1. 全流程的解决方案,从设计到发布的整个流程(intl、cli、linter)
  2. 自动提取中文,全量替换
  3. 支持google、baidu翻译API
  4. 支持导出未翻译词汇,送翻后导入到项目中
  5. 提供了vscode插件,支持中文搜索、行内显示等

kiwi架构图

安装

yarn global add kiwi-clis && yarn add kiwi-intl  # 全局安装的命令有各种错误

yarn add kiwi-clis && yarn add kiwi -intl # 推荐本地安装,使用./node_modules/.bin/kiwi执行或者package.json配置scripts使用
VS Code 插件搜索 kiwi linter 安装

使用

  1. kiwi初始化

在工程中,执行以下命令:

kiwi --init

初始化完成后,会生成.kiwi目录以及kiwi-config.json

  • .kiwi —— 用于存储国际化的文件
  • kiwi-config.json —— kiwi配置文件

kiwi初始化

  1. 申请百度翻译API

链接:https://api.fanyi.baidu.com/product/11

  1. 配置kiwi
  • 设置翻译语言
"distLangs": [
   "en-US"
 ],
  • 设置百度翻译 appid&appkey

修改kiwi-config.json中baiduApiKey
在这里插入图片描述

  1. vscode重新打开工程,即可看到对于文字处已经红框标识
    vscode截图
  2. I18N框架初始化

创建 src/utils/I18N.ts文件,参考内容如下

// kiwi-intl依赖
import KiwiIntl from 'kiwi-intl';
// 引入生成好的国际化资源
import zhCN from '../../.kiwi/zh-CN';
import enUS from '../../.kiwi/en-US';

const kiwiIntl = KiwiIntl.init(getLang(), {
  'zh-CN': { ...zhCN },
  'en-US': { ...enUS },
});


// 设置语言
export function setLang(value: string) {
  window.localStorage.setItem('kiwi-lang', value);
  // 重新加载
  window.location.reload();
}
// 获取当前语言
export function getLang(): string {
  return window.localStorage.getItem('kiwi-lang') || 'zh-CN';
}

export default kiwiIntl
  1. 批量替换中文

执行命令

# --extract [dirPath] 指定文件夹路径 
# --prefix [prefix] 指定文案前缀 I18N.xxxx
kiwi --extract [dirPath] --prefix [prefix]
  1. 翻译

执行命令

kiwi --translate

// package.json中,scripts配置命令,执行yarn translate
"translate": "kiwi --translate"

至此完成批量自动翻译,引用src/utils/I18N中的setLang方法即可进行语言转换

常见问题

umi中如何使用

设置umi的locale开启,配置antd也设置语言,修改I18N文件中的setLang,将umi的设置语言方法加到setLang中,umi的setLocale默认会刷新,所以setLang中的刷新可以去掉

import { setLocale } from 'umi';
export function setLang(value: string) {
  window.localStorage.setItem('route-manage-lang', value);
  setLocale(value);
}
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: vite-plugin-vue-i18n是一个为Vue应用提供国际化(i18n)支持的Vite插件。Vite是一个现代化的前端构建工具,而vue-i18n是Vue官方推荐的国际化解决方案之一。 vite-plugin-vue-i18n主要提供了以下功能: 1. 支持多语言:插件可以帮助我们将Vue应用中的文本内容翻译成多种语言,使得应用能够根据用户的地理位置或语言偏好来显示相应的语言版本。 2. 动态加载:插件可以根据需要动态加载所需的语言包,避免了一次性加载所有语言资源的性能问题,提高了应用的加载速度。 3. 热重载:插件支持在开发模式下的热重载,即当我们修改了语言资源文件时,页面会自动刷新以显示最新的翻译内容,提高了开发效率。 4. 构建优化:插件可以使用Vite的优化能力,将应用中的多语言资源进行压缩和合并,减少网络请求,从而提高应用的性能。 使用vite-plugin-vue-i18n,我们可以在Vue应用中轻松地实现国际化需求。通过定义一系列的翻译文件,我们可以将应用中的文本内容翻译成多种语言。在Vue组件中,我们可以使用特定的指令或方法来访问和显示对应的翻译内容。 总之,vite-plugin-vue-i18n为我们提供了一种简洁高效的方式来实现Vue应用的国际化需求,帮助我们更好地面向全球用户开发应用。 ### 回答2: vite-plugin-vue-i18n 是一个用于在 Vite.js 项目中支持国际化的插件。Vite.js 是一个基于浏览器原生 ES 模块导入的前端构建工具,vite-plugin-vue-i18n 则是为了在 Vite.js 项目中实现国际化而开发的插件。 这个插件的主要功能是将 Vue 应用程序中的文本国际化,使开发人员能够轻松地在应用中切换和管理多种语言。它能够处理不同语言之间的文本翻译,提供了一种方式来管理和导入不同语言的翻译文件。同时,它还提供了一些工具和指令,使开发人员能够更方便地在应用程序中使用和显示多语言文本。 使用 vite-plugin-vue-i18n,开发人员可以在 Vue 组件中使用特定的指令来标记需要翻译的文本,并通过导入翻译文件来实现文本的动态切换。它支持多种文件格式,如 JSON、YAML、PO 等,可以灵活选择适合自己项目的翻译文件格式。开发人员还可以通过 API 来访问、处理和修改翻译文本。 这个插件还提供了一些其他功能,如支持 Vue 3 的 Composition API、语言切换的路由钩子、翻译文件的合并和拆分等。它还支持在开发环境和生产环境下的不同配置,并具有 TypeScript 类型支持。此外,它还可以与其他插件和构建工具无缝集成,如 Vuex、Vue Router、Vuepress 等。 总的来说,vite-plugin-vue-i18n 是一个功能强大且易于使用的插件,可以帮助开发人员快速实现 Vue 应用程序的国际化。无论是小型项目还是大型项目,都可以借助这个插件来管理多语言文本,提供更好的用户体验。 ### 回答3: vite-plugin-vue-i18n是一个适用于Vite构建工具的插件,用于集成和管理Vue.js应用程序的国际化(i18n)功能。它提供了一种简单的方式来处理多语言翻译和本地化,以便应用程序可以方便地在不同的语言环境中展示。 使用vite-plugin-vue-i18n,我们可以在Vue应用程序中轻松地定义多个语言版本的翻译文件,并在运行时根据需要加载适当的翻译信息。我们可以在单个文件中定义所有语言的翻译内容,或者根据语言划分翻译成多个文件进行管理。 该插件提供了一个全局的翻译函数$t,可以在Vue组件中使用它来获取当前语言的翻译文本。我们可以通过在模板中使用`{{ $t('key') }}`的方式来引用翻译内容。而且,我们还可以根据具体的语言环境,动态切换显示的语言版本。 vite-plugin-vue-i18n还支持自动提取模板中的翻译文本,并生成对应的翻译文件。这样我们就可以通过一个命令将应用程序中的所有翻译文本提取出来,然后交给翻译团队进行翻译,最后再将翻译结果导入到应用程序中。 总之,vite-plugin-vue-i18n是一个方便易用的工具,使得开发多语言应用程序变得更加简单和高效。它提供了一种集成且高度可定制的方式来实现应用程序的国际化需求,可以帮助我们轻松地处理不同语言环境下的文本翻译和本地化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值