前端项目国际化解决方案

前端项目国际化解决方案

面向多语言文案管理的全栈示例: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. 数据库初始化

  1. 在 MySQL 中创建数据库,例如:

    sql 复制代码
    CREATE DATABASE i18n_database DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  2. 按顺序导入 i18n-server/sql/ 下的建表脚本(或合并执行),至少包含:

    • i18n_project.sql
    • translate_dict.sql
    • i18n_upload_history.sql
  3. 修改 i18n-server/dabaseConfig.js 中的 库名、用户名、密码、主机、端口 ,使之与你的 MySQL 一致。开源前请勿提交真实生产库密码,建议改为环境变量或本地未跟踪的配置文件。

2. 启动后端(i18n-server)

bash 复制代码
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)

bash 复制代码
cd i18n-app
npm install
npm run serve

默认开发服务器为 http://localhost:8081 (以 package.json 中 vite --port 8081 为准)。

与后端联调

i18n-app/vite.config.js 中将请求代理到后端,请把 TARGET_URL 改成你本机或内网的后端地址,例如:

js 复制代码
const TARGET_URL = 'http://127.0.0.1:3000/'

前端 Axios 的 baseURL 为空,接口路径以 /i18n/app/ 开头,由 Vite 代理转发到上述 TARGET_URL。

4. 从服务端拉取语言包(可选)

管理端之外,若要在业务前端工程里生成静态 JSON 语言包,可使用:

bash 复制代码
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. 构建与预览(前端)

bash 复制代码
cd i18n-app
npm run build
npm run preview

6. 代码风格

两个子项目均提供 Prettier:

bash 复制代码
npm run format        # 写入格式化
npm run format:check  # 仅检查

7. 仓库地址

i18n-app: gitee.com/icdong/i18n...

i18n-server: gitee.com/icdong/i18n...

许可证

请自行在仓库中添加许可证文件;在未声明前,本项目代码默认仍归原作者所有。

相关推荐
Lvan的前端笔记6 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
三天不学习6 小时前
Egg.js 4 突然爆火,原因是否归结于AI 原生落地需求爆发?
前端·javascript·全栈·egg.js
xcs194057 小时前
前端 vue 的前端页面debugger 进不去
前端·javascript·vue.js
明月_清风8 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js
Csvn9 小时前
框架性能优化
前端
回眸&啤酒鸭11 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
用户693717500138411 小时前
2026,程序员的时代拐点到了
android·前端·后端
大龄秃头程序员11 小时前
一次 iBeacon + BLE 无感解锁方案的实现记录
前端
小兔子11 小时前
Python 的 GIL 与 free-threading:3.13 之后「去 GIL」走到哪一步了
前端
IT_陈寒11 小时前
SpringBoot自动配置差点让我加班到凌晨
前端·人工智能·后端