EggJS提供了项目级别国际化特性。EggBornJS在EggJS提供的特性基础之上进行了扩展,实现了模块级别国际化特性

  1. 模块可以单独提供自己的国际化语言资源
  2. 项目级别国际化可以覆盖模块级别国际化

定义语言资源

EggBornJS默认语言是en-us,如果需要支持中文,就需要添加zh-cn资源文件

src/module-vendor/test-party/backend/src/config/locale/zh-cn.js

  1. 1module.exports = {
  2. 2 'Hello World': '世界,您好',
  3. 3};

使用语言资源

获取当前语言的语言资源

EggBornJS通过方法ctx.text根据客户端的locale配置动态使用相应的语言资源

src/module-vendor/test-party/backend/src/controller/kitchen-sink/guide.js

  1. 1async echo3() {
  2. 2 const message = this.ctx.text('Hello World');
  3. 3 this.ctx.success(message);
  4. 4}

如何修改客户端的locale配置?

  • 打开首页,依次进入我的->设置->外观,切换语言,然后刷新页面即可

获取指定语言的语言资源

在某些特殊场景我们需要获取指定语言的语言资源,方式如下:

  1. 1
  2. 2async echo3() {
  3. 3 const message = this.ctx.text.locale('zh-cn', 'Hello World');
  4. 4 this.ctx.success(message);
  5. 5}

覆盖语言资源

使用项目级别的语言资源覆盖模块级别的语言资源,从而将世界,您好改为您好,世界

src/backend/config/locale/zh-cn.js

  1. 1module.exports = {
  2. 2 'Hello World': '您好,世界',
  3. 3};