前端项目国际化解决方案

前端项目国际化解决方案

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

许可证

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

相关推荐
锋行天下2 小时前
DeepSeek写Langgraph就是个大傻逼,一本正经胡说八道
前端·人工智能·后端
jktantan3 小时前
每个节点 41 字节:把一棵百万节点树拆进 14 个 typed array
前端·javascript·vue.js·算法·typescript
计算机魔术师3 小时前
Anthropic官方插件被「寄生」,背后是同一类攻击又来了
前端
我命由我123453 小时前
访客系统形式(有用户概念、无用户概念)
java·开发语言·前端·javascript·python·产品运营·产品经理
key_3_feng4 小时前
评估与对齐:Agent 自我进化的护栏
前端·数据库·agent
LaughingZhu4 小时前
Product Hunt 热榜 2026-10-30:Empacer、Scape、Floot in ChatGPT
java·前端·数据库·人工智能·chatgpt·notion
Lank_M4 小时前
抠图结果缩放后边缘发脏,该怪的不是插值
前端
jerrywus4 小时前
Skill、MCP、Workflow、Rules、Memory 有什么区别?拿几次真实开发任务讲清楚
前端·agent·claude
补码缩写4 小时前
canvas 与 sharp 缩放透明图:默认预乘,非预乘得拆通道
前端
静默回滚5 小时前
抠图 PNG 缩小再放大,边缘又糊又白是两件事
前端