前端项目国际化解决方案
面向多语言文案管理的全栈示例:Vue 3 管理端 + Koa + MySQL 服务端,支持项目维度管理、词条增删改查、Excel 导入导出、翻译对比与简单数据看板;前端通过 vue-i18n 消费语言包,并可用脚本从服务端拉取 JSON 生成本地语言文件。
仓库结构
| 目录 | 说明 |
|---|---|
i18n-server/ | Node.js(Koa)API、Sequelize/MySQL、静态资源与上传目录 |
i18n-app/ | Vue 3 + Vite + Arco Design 管理界面与 vue-i18n |
两个子目录各自为独立 npm 包,可分别安装依赖与启动;本地联调时需先起后端,再配前端代理。
环境要求
- Node.js:后端要求 ≥ 18(见
i18n-server/package.json);前端建议 Node 18+。 - MySQL:与
i18n-server/dabaseConfig.js中配置一致(默认库名i18n_database)。 - 包管理:下文以 npm 为例,亦可使用
yarn/pnpm。
1. 数据库初始化
-
在 MySQL 中创建数据库,例如:
CREATE DATABASE i18n_database DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -
按顺序导入
i18n-server/sql/下的建表脚本(或合并执行),至少包含:i18n_project.sqltranslate_dict.sqli18n_upload_history.sql
-
修改
i18n-server/dabaseConfig.js中的 库名、用户名、密码、主机、端口,使之与你的 MySQL 一致。开源前请勿提交真实生产库密码,建议改为环境变量或本地未跟踪的配置文件。
2. 启动后端(i18n-server)
cd i18n-server
npm install
npm run serve
默认监听 http://127.0.0.1:3000(可通过环境变量 PORT 覆盖)。
其他脚本:
npm run dev:nodemon 热重载开发。npm run prd:使用 pm2 启动(需全局安装 pm2)。
主要 API 前缀为 /i18n/app/(见 i18n-server/routes/index.js),例如项目管理、词条 CRUD、导入导出、翻译文件获取等。
3. 启动前端(i18n-app)
cd i18n-app
npm install
npm run serve
默认开发服务器为 http://localhost:8081(以 package.json 中 vite --port 8081 为准)。
与后端联调
i18n-app/vite.config.js 中将请求代理到后端,请把 TARGET_URL 改成你本机或内网的后端地址,例如:
const TARGET_URL = 'http://127.0.0.1:3000/'
前端 Axios 的 baseURL 为空,接口路径以 /i18n/app/ 开头,由 Vite 代理转发到上述 TARGET_URL。
4. 从服务端拉取语言包(可选)
管理端之外,若要在业务前端工程里生成静态 JSON 语言包,可使用:
cd i18n-app
npm run getLanguage
脚本读取 src/locales/languageConfig.js,向服务端请求 getTranslateFiles 等配置。使用前请修改其中的 ip、port、projectCode、origin(database / file)等,与当前环境一致。
另有 npm run getNoTranslate 用于辅助扫描未翻译词条(见 src/locales/getNoTranslateScript.js)。
5. 构建与预览(前端)
cd i18n-app
npm run build
npm run preview
6. 代码风格
两个子项目均提供 Prettier:
npm run format # 写入格式化
npm run format:check # 仅检查
7. 仓库地址
i18n-app: gitee.com/icdong/i18n…
i18n-server: gitee.com/icdong/i18n…
许可证
请自行在仓库中添加许可证文件;在未声明前,本项目代码默认仍归原作者所有。