网站建设客户定位,网站服务器容器,手机网站怎么做seo,网站最新程序策划书前言
VoerkaI18n是一款非常优秀的前端国际化解决方案#xff0c;其开发的出发点是为了解决现存多语言的一些痛点,接下来几篇文章将分别进行分析
前端国际化之痛点(一)#xff1a;让人头疼的词条Key前端国际化之痛点(二)#xff1a;多包多库场景下联动多语言前端国际化之痛…前言
VoerkaI18n是一款非常优秀的前端国际化解决方案其开发的出发点是为了解决现存多语言的一些痛点,接下来几篇文章将分别进行分析
前端国际化之痛点(一)让人头疼的词条Key前端国际化之痛点(二)多包多库场景下联动多语言前端国际化之痛点(三)上线后修改翻译内容
–点击进入项目官网–
现有痛点
在实际应用中我们经常会在应用上线后有没有经常碰到这样的问题
发现应用中的翻译错误不同的客户可能会一些用词提出不同的要求甚至有些客户要求能自定义一些显示用语
一般解决方案是重新打包应用重新发布显然这是比较麻烦的解决方案。
解决痛点
voerkai18n的语言包补丁特性针对此问题提供了完美的解决方案,您就可以随时修复翻译错误而不需要重新打包应用。
基本思路:应用上线后发现翻译错误时可以在服务器上约定位置放置语言包补丁应用会自动进行更新修复很实用的一个特性。
基本方法如下
准备
为说明如何使用语言包补丁特性支持我们将假设以下的应用 应用chat依赖于user、manager、log等三个库均使用了voerkiai18n作为多语言解决方案。 其拟支持zh、en、de共三种语言。 当执行完voerkai18n compile后项目结构大概如下
chat|-- languages| |-- index.js| |-- idMap.js | |-- runtime.js| |-- settings.json | |-- zh.js| |-- en.js| |-- formatters| |-- zh.js| |-- en.js| |-- translates| |-- default.json|-- index.js|-- package.json //namechat
打开languages/index.js,大概如下:
// ....
const scope new i18nScope({id: chat, // 当前作用域的id自动取当前工程的package.json的namemessages:{ en : ()import(./en.js),de : ()import(./de.js)},//.....
})
/// ....可以看到在languages/index.js中创建了一个以当前工程package.json的name为id的i18nScope实例其会自动注册到全局voerkaI18n实例中。
第一步注册默认的语言加载器
voerkiai18n是采用语言加载器来加载语言包的为了从服务器上远程加载语言包补丁需要注册一个加载器。
需要在应用中(例如app.js或main.js等)导入i18nScope实例或者直接在languages/index.js中并注册一个默认的语言加载器。 // 从当前工程导入scope实例
import { i18nScope } from ./languages// 注册默认的语言加载器
// 在此向服务器发起请求请返回翻译后的其他语言文本
i18nScope.registerDefaultLoader(async (language,scope){// language: 要切换到此语言// scope: 语言作用域实例 return await (await fetch(/languages/${scope.id}/${language}.json)).json()
})第二步编写语言包补丁文件
假设我们发现zh语言的翻译错误这就需要在服务器上生成一个对应的zh语言包补丁文件。 方法很简单打开languages/zh.js文件该文件大概如下
module.exports {1: 支持的语言,2: 默认语言,3: 激活语言,4: 名称空间s,....
}复制一份修改和更名为zh.json其中仅保留需要修复的条目内容大概如下
{1: 支持的语言,
}然后将zh.json复制到languages/chat/zh.json即可。 同样地我们如果要修复user、manager、log等三个库的翻译错误如法泡制生成语言包文件languages/user/de.json,languages/manager/de.json,languages/log/de.json。
第三步组织语言包补丁文件
在上面中我们通过fetch(/languages/${scope.id}/${language}.json)来读取语言包您可以使用任意您喜欢的方式,如axios这意味着我们需要在web服务器上根据此URL来组织语言包补丁以便可以下载到语言包补丁。需要将语言包补丁保存在服务器的指定位置如下
webroot|-- languageschat |-- zh.json user |-- zh.json manager |-- zh.json log |-- zh.json 完成自动打语言包补丁
至此语言包补丁功能已配置完毕。当应用启动时就会自动加载该补丁合并到线上应用的语言包中。
小结
利用VoerkaI18n的此特性产品上线的翻译内容更新和修复变得非常容易强列推荐。
–点击进入项目官网–