Electron vue i18n 实现多语言程序

目标

  • 在 Main Process 中实现多语言
  • 在 Renderer Process 中,与 Vue 结合实现多语言
  • 自动检测语言环境,亦可配置改变
  • 动态加载多语言文件

实现

i18next (http://i18next.com/)

在 main Process 中:

程序启动时进行初始化,但加载是异步的,所以程序在启动初始化进程调用需要通过事件:

在 Renderer Process 中使用,不需要再初始化,是共用同一个实例的:

打通与 Vue 框架的集成:

vue-paramsvue-i18next 两个依赖的代码很简单巧妙。前者保证了当语言切换时,所有 $t() 及时更新;后者为 Vue 框架注入$t() 和 t() 两个调用方法。

最后

以上基本实现了需求,i18next 功能很强大,并且还提供翻译服务,可以跟各种环境集成。

有关语言切换,如果处理得当,完全可以不需要重启程序。

2 评论

  1. 请问可以放出示例代码来看看吗?文章中的代码片段感觉没有说清楚用法。

    1. 你可以去看一下 i18next 这个 Lib,大致思路是在 main 中引入,renderer 中通过 ipc 调用。

发表评论