简介
egg-sequelize-translation 是基于 Egg.js 和 Sequelize 数据库 ORM 框架的多语言翻译插件。本插件支持中英文及其他语言的翻译,为前端和后端开发人员提供方便的国际化解决方案。
安装
使用 npm 安装 egg-sequelize-translation:
npm install egg-sequelize-translation --save
使用
配置
在 config/plugin.js
文件中启用插件:
exports.sequelizeTranslation = { enable: true, package: 'egg-sequelize-translation', };
在 config/config.default.js
文件中配置插件:
-- -------------------- ---- ------- -------------- - ------- -- - ----- ------ - ------- - --- -- --- --------------------------- - - ---------- --------- --------- -- --------- ---------------- ------- -- ------ -- -- --- ------ ------- --
数据库表结构
本插件需要创建表格来存储翻译数据。在创建数据库之前需要使用 Sequelize CLI 工具生成迁移文件:
npx sequelize-cli migration:generate --name create_translation_table
编辑生成的迁移文件 XXXXXXXXXXXXX-create-translation-table.js
:
-- -------------------- ---- ------- ---- -------- -------------- - - --- ----- ---------------- ---------- -- - ----- ------------------------------------------ - --- - ---------- ------ -------------- ----- ----------- ----- ----- ----------------- -- ---- - ----- ---------------- -- ------ - ----- ---------------- -- --------- - ----- ---------------- -- ---------- - ---------- ------ ----- -------------- -- ---------- - ---------- ------ ----- -------------- - --- -- ----- ----- ---------------- ---------- -- - ----- ----------------------------------------- - --
创建数据库表格:
npx sequelize-cli db:create npx sequelize-cli db:migrate
模板扩展
在模板需要使用翻译时,您需要在模板引擎中添加翻译方法(如下为 egg-mate 模板引擎中的实现):
-- -------------------- ---- ------- -------------- - - -------- - --- ----- -------- -- - --- ------ - ---------------- --- ----- - ----------------------- -------- -- ------- - ------ ------------------- ----- --- --------- - ----- - ---------------------- --------- - ---- - ------ ---- - - - --
在模板中使用翻译方法:
<% /* 翻译模板字符串 */ %> <h1><%= __('Hello, world!') %></h1> <% /* 翻译数据文件 */ %> <h2><%= __('product.name') %></h2>
代码扩展
在控制器或者服务中需要调用翻译方法时,可以使用 ctx.app.translate
方法:
-- -------------------- ---- ------- ----- - ---------- - - --------------- ----- -------------- ------- ---------- - ----- ------- - ----- - --- - - ----- ----- ----- - ------------------------- -------- ------------ ----- ------- - ----- ------------------------------ -------- - - ------ ----- ------------------------------- ------------ ------------ -------------------------------------- ----------- -- - - -------------- - ---------------
管理翻译数据
您可以使用命令行工具来管理翻译数据:
-- -------------------- ---- ------- - --- ------------- --------------- ----- --------- ---- - --- ------------- --------------- ----- --------- ----------- ----- - --- ------------- ---------------- ----- ------------------------ - --- - ----- - ------------------------ - ----- - ---- - ------------------------ - --- ------------- ------------------ ----- ---------
总结
egg-sequelize-translation 提供了一种简便的国际化解决方案,使得前后端开发人员可以在 Egg.js 和 Sequelize ORM 框架的基础上快速开发多语言应用程序。通过本文的学习,您可以掌握 egg-sequelize-translation 的基本使用方法,并对如何优化和扩展有初步了解。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600668eed9381d61a3540ce7