40 KiB
MDS模块国际化编码任务规划
文档类型: 实施任务清单
创建日期: 2026-05-24
版本: v1.0
状态: 待执行
一、任务总览
1.1 项目信息
- 项目名称: MDS模块国际化改造
- 目标: 支持简体中文、英语、德语三语言切换
- 总工作量: 19人天(约4周)
- 实施方式: 分4个阶段递进实施
1.2 任务统计
| 阶段 | 任务数 | 工作量 | 优先级 |
|---|---|---|---|
| Phase 1: 基础准备 | 14个任务 | 4天 | P0+P1 |
| Phase 2: 导航与弹窗 | 16个任务 | 5天 | P2+P3 |
| Phase 3: 错误与表格 | 18个任务 | 6天 | P4+P5 |
| Phase 4: 完成与测试 | 14个任务 | 4天 | P6 |
| 合计 | 62个任务 | 19天 |
1.3 核心目标
- 复用Monitor模块的i18n框架
- 扩展现有语言包(增加MDS命名空间)
- 实现无刷新语言切换
- 状态枚举动态翻译
- 后端错误码+参数化处理
- 三语言翻译质量保证
二、Phase 1任务清单(基础准备,4天)
2.1 语言包创建(Day 1)
任务1.1: 扩展zh-CN.js语言包
任务描述: 在现有中文语言包中添加MDS模块命名空间
涉及文件:
static/lib/i18n/zh-CN.js
具体工作:
- 提取P0级文本(状态标签,28处): mds.status.*
- 提取P1级文本(操作按钮,45处): mds.action.*
- 编写翻译键,遵循命名规范
- 添加注释分隔模块
预期产出:
// zh-CN.js 新增内容
{
// ========== MDS模块 ==========
'mds.status.pending': '待处理',
'mds.status.compliancePass': '初检通过',
'mds.status.complianceError': '初检错误',
'mds.status.relationPass': '联检通过',
'mds.status.relationError': '联检错误',
'mds.status.syncError': '推送失败',
'mds.status.synced': '已推送',
'mds.action.import': '导入',
'mds.action.validate': '校验',
'mds.action.sync': '推送',
'mds.action.query': '查询',
'mds.action.reset': '重置',
// ... 共约73条
}
验收标准:
- 翻译键数量符合预期(约73条)
- 键命名规范统一(mds.status., mds.action.)
- 注释清晰分隔模块
- 无重复键定义
工作量: 1天
任务1.2: 扩展en-US.js语言包
任务描述: 在现有英文语言包中添加MDS模块翻译
涉及文件:
static/lib/i18n/en-US.js
具体工作:
- 将zh-CN.js中的MDS翻译键翻译为英文
- 对应翻译键与zh-CN.js保持一致
- 使用专业术语(如Compliance Pass, Sync)
预期产出:
// en-US.js 新增内容
{
// ========== MDS Module ==========
'mds.status.pending': 'Pending',
'mds.status.compliancePass': 'Compliance Pass',
'mds.status.complianceError': 'Compliance Error',
'mds.status.relationPass': 'Relation Pass',
'mds.status.relationError': 'Relation Error',
'mds.status.syncError': 'Sync Failed',
'mds.status.synced': 'Synced',
'mds.action.import': 'Import',
'mds.action.validate': 'Validate',
'mds.action.sync': 'Sync',
// ... 共约73条
}
验收标准:
- 翻译键数量与zh-CN.js一致
- 英文翻译准确、专业
- 键顺序与zh-CN.js对应
工作量: 0.5天
任务1.3: 扩展de-DE.js语言包
任务描述: 在现有德语语言包中添加MDS模块翻译
涉及文件:
static/lib/i18n/de-DE.js
具体工作:
- 将zh-CN.js中的MDS翻译键翻译为德语
- 注意德语特殊字符(ä, ö, ü, ß)
- 关注德语文本长度(可能比英文长20%-40%)
预期产出:
// de-DE.js 新增内容
{
// ========== MDS-Modul ==========
'mds.status.pending': 'Ausstehend',
'mds.status.compliancePass': 'Compliance bestanden',
'mds.status.complianceError': 'Compliance fehlerhaft',
'mds.status.relationPass': 'Relation bestanden',
'mds.status.relationError': 'Relation fehlerhaft',
'mds.status.syncError': 'Sync fehlgeschlagen',
'mds.status.synced': 'Synchronisiert',
'mds.action.import': 'Importieren',
'mds.action.validate': 'Validieren',
'mds.action.sync': 'Synchronisieren',
// ... 共约73条
}
验收标准:
- 翻译键数量与zh-CN.js一致
- 德语翻译准确,使用专业术语
- 特殊字符正确编码(UTF-8)
- 文件保存为UTF-8无BOM格式
工作量: 0.5天
2.2 状态枚举改造(Day 2)
任务1.4: 改造STAGING_STATUS枚举
任务描述: 将common.js中的STAGING_STATUS改造为动态翻译
涉及文件:
static/mds/js/common.js
具体工作:
- 将label字段改为labelKey
- 添加getter动态获取翻译
- 确保i18n未初始化时的回退机制
改造前:
const STAGING_STATUS = {
PENDING: {
value: 'pending',
label: '待处理',
color: '#ff9300',
icon: '⏳'
}
};
改造后:
const STAGING_STATUS = {
PENDING: {
value: 'pending',
labelKey: 'mds.status.pending',
color: '#ff9300',
icon: '⏳',
get label() {
return typeof i18n !== 'undefined' ?
i18n.t(this.labelKey) : '待处理';
}
}
};
验收标准:
- 所有状态枚举都使用getter
- i18n未初始化时显示中文回退
- 语言切换后状态标签自动更新
- 控制台无报错
工作量: 0.5天
任务1.5: 改造status-card.js组件
任务描述: 改造状态统计卡片组件,支持动态翻译
涉及文件:
static/mds/js/status-card.js
具体工作:
- 渲染状态卡片时使用STAGING_STATUS.label
- 监听languageChanged事件,刷新卡片
- 确保切换语言后数据正确显示
关键代码:
// 渲染状态卡片
function renderStatusCards() {
const statuses = Object.values(STAGING_STATUS);
statuses.forEach(status => {
// label自动动态翻译
const label = status.label;
// ...
});
}
// 监听语言切换事件
window.addEventListener('languageChanged', () => {
renderStatusCards();
});
验收标准:
- 状态卡片显示三语言文本
- 语言切换后卡片自动刷新
- 数据统计正确
工作量: 0.5天
任务1.6: 改造其他枚举对象
任务描述: 改造其他包含中文label的枚举对象
涉及文件:
static/mds/js/common.js
具体工作:
- 检查其他枚举对象(如BUTTON_TEXT, ERROR_MSG等)
- 统一改造为labelKey + getter模式
- 确保所有硬编码文本都被翻译键替换
验收标准:
- 所有枚举都支持动态翻译
- 无遗漏的硬编码中文文本
- 三语言切换测试通过
工作量: 0.5天
2.3 验证与测试(Day 3-4)
任务1.7: 创建语言切换UI
任务描述: 在导航栏添加三语言选择器
涉及文件:
static/mds/index.html
具体工作:
- 添加语言选择下拉框
- 复用Monitor的语言选择器样式
- 绑定切换事件处理函数
预期产出:
<select id="lang-selector" onchange="switchLanguage(this.value)"
class="form-select form-select-sm" style="width: auto;">
<option value="zh-CN">🇨🇳 中文</option>
<option value="en-US">🇺🇸 English</option>
<option value="de-DE">🇩🇪 Deutsch</option>
</select>
验收标准:
- 语言选择器正确显示
- 样式与Monitor一致
- 三语言图标正确
工作量: 0.5天
任务1.8: 实现无刷新语言切换
任务描述: 实现语言切换功能,无刷新更新页面文本
涉及文件:
static/mds/js/mds-page-controller.js(新增函数)
具体工作:
- 实现switchLanguage函数
- 调用i18n.switchLanguage切换语言
- 更新动态元素(表格、卡片、弹窗)
- 触发languageChanged事件
关键代码:
async function switchLanguage(lang) {
if (typeof i18n === 'undefined') {
console.warn('i18n not initialized');
return;
}
await i18n.switchLanguage(lang);
updateDynamicElements();
window.dispatchEvent(new CustomEvent('languageChanged', {
detail: { lang: lang }
}));
}
function updateDynamicElements() {
// 更新状态卡片
if (window.statusCardInstance) {
window.statusCardInstance.refresh();
}
// 更新表格
if (window.dataTableInstance) {
window.dataTableInstance.refresh();
}
// 更新已打开的模态框
const modals = document.querySelectorAll('.modal.show');
modals.forEach(modal => {
modal.querySelectorAll('[data-i18n]').forEach(el => {
const key = el.getAttribute('data-i18n');
el.textContent = i18n.t(key);
});
});
}
验收标准:
- 语言切换无页面刷新
- 保持表格筛选条件
- 保持分页状态
- 保持滚动位置
- 无白屏闪烁
工作量: 1天
任务1.9: 测试状态枚举翻译
任务描述: 测试状态枚举在三种语言下的翻译
涉及文件:
- 所有使用STAGING_STATUS的文件
具体工作:
- 切换到中文,验证状态标签显示"待处理"等
- 切换到英文,验证显示"Pending"等
- 切换到德语,验证显示"Ausstehend"等
- 测试语言切换后的自动更新
验收标准:
- 中英德三语言翻译正确
- 语言切换后立即更新
- 控制台无报错
工作量: 0.5天
任务1.10: 测试操作按钮翻译
任务描述: 测试操作按钮在三语言下的翻译
具体工作:
- 测试"导入"、"校验"、"推送"等按钮
- 验证三语言显示
- 测试德语长文本布局
验收标准:
- 所有按钮文本翻译正确
- 德语文本无溢出
- 按钮样式正常
工作量: 0.5天
任务1.11: 测试无刷新切换
任务描述: 测试无刷新语言切换功能
具体工作:
- 在表格筛选状态下切换语言
- 在分页状态下切换语言
- 在表单输入状态下切换语言
- 验证状态保持
验收标准:
- 筛选条件不丢失
- 分页状态保持
- 表单输入不丢失
- 滚动位置保持
工作量: 0.5天
任务1.12: 测试德语布局适配
任务描述: 测试德语长文本的布局适配
具体工作:
- 检查所有按钮是否溢出
- 检查表格列宽是否足够
- 检查弹窗是否显示完整
- 必要时调整CSS样式
验收标准:
- 无文本溢出
- 无布局错乱
- 德语特殊字符正确显示
工作量: 0.5天
任务1.13: 编写Phase 1测试报告
任务描述: 记录Phase 1的测试结果
涉及文件:
docs/spec/MDS-i18n-Phase1-Test-Report.md(新建)
具体工作:
- 记录测试用例
- 记录测试结果
- 记录发现的问题
- 记录解决方案
验收标准:
- 测试报告完整
- 所有问题已解决
工作量: 0.5天
任务1.14: Phase 1总结与评审
任务描述: 总结Phase 1工作,进行代码评审
具体工作:
- 检查代码质量
- 检查翻译键命名规范
- 检查三语言包一致性
- 进行代码评审
验收标准:
- 代码质量合格
- 翻译键规范统一
- 三语言包键数量一致
- 评审通过
工作量: 0.5天
三、Phase 2任务清单(导航与弹窗,5天)
3.1 HTML页面改造(Day 5-6)
任务2.1: 改造index.html
任务描述: 为index.html添加data-i18n属性
涉及文件:
static/mds/index.html
具体工作:
- 提取所有硬编码中文文本
- 为文本元素添加data-i18n属性
- 提取P2级文本(导航菜单,14处)
改造示例:
<!-- 改造前 -->
<h5>数据清洗管理系统</h5>
<!-- 改造后 -->
<h5 data-i18n="mds.app.title">数据清洗管理系统</h5>
预期产出:
- 导航菜单翻译: mds.nav.material, mds.nav.bom等
- 全局操作按钮翻译
- 卡片标题翻译
验收标准:
- 所有中文文本都添加data-i18n
- 翻译键命名规范
- 页面结构不变
工作量: 1天
任务2.2: 改造template.html
任务描述: 为数据操作页面模板添加data-i18n属性
涉及文件:
static/mds/pages/template.html
具体工作:
- 提取所有硬编码中文文本
- 添加data-i18n属性
- 包括表格、筛选框、分页控件等
改造示例:
<!-- 改造前 -->
<button class="btn btn-primary">校验</button>
<!-- 改造后 -->
<button class="btn btn-primary">
<span data-i18n="mds.action.validate">校验</span>
</button>
验收标准:
- 所有文本元素都有data-i18n
- 动态生成的内容预留翻译钩子
- 页面功能不变
工作量: 1天
任务2.3: 改造user-guide.html
任务描述: 为操作指引页面添加data-i18n属性
涉及文件:
static/mds/user-guide.html
具体工作:
- 提取操作指引文本
- 添加data-i18n属性
- 翻译指引说明
验收标准:
- 所有文本都有翻译
- 三语言显示正确
- 布局不变
工作量: 0.5天
任务2.4: 提取P2级翻译键
任务描述: 提取导航菜单等P2级文本的翻译键
涉及文件:
static/lib/i18n/zh-CN.jsstatic/lib/i18n/en-US.jsstatic/lib/i18n/de-DE.js
具体工作:
- 提取导航菜单文本(14处)
- 添加到三语言包
- 编写翻译
预期产出:
// zh-CN.js
'mds.nav.material': '物料',
'mds.nav.matVer': '产线版本',
'mds.nav.workcenter': '工作中心',
'mds.nav.matWc': '工艺路线',
'mds.nav.bom': 'BOM',
'mds.nav.mold': '模具',
'mds.nav.matWcMold': '机台模具',
验收标准:
- 翻译键数量正确(约14处)
- 三语言翻译准确
工作量: 0.5天
任务2.5: 测试HTML页面翻译
任务描述: 测试三个HTML页面的翻译效果
具体工作:
- 测试index.html三语言显示
- 测试template.html三语言显示
- 测试user-guide.html三语言显示
- 测试语言切换功能
验收标准:
- 所有页面文本正确翻译
- 语言切换后立即更新
- 无布局错乱
工作量: 0.5天
3.2 弹窗组件改造(Day 7-9)
任务2.6: 改造modal-manager.js基础函数
任务描述: 改造模态框管理器的基础函数
涉及文件:
static/mds/js/modal-manager.js
具体工作:
- 改造showConfirm函数,支持翻译键
- 改造showAlert函数
- 改造showPrompt函数
- 确保弹窗标题、内容支持翻译
改造示例:
// 改造前
function showConfirm(title, message, onConfirm) {
// ...
}
// 改造后
function showConfirm(titleKey, messageKey, onConfirm, params = {}) {
const title = typeof i18n !== 'undefined' ?
i18n.t(titleKey) : titleKey;
const message = typeof i18n !== 'undefined' ?
i18n.t(messageKey, params) : messageKey;
// ...
}
验收标准:
- 所有弹窗函数支持翻译键
- 支持参数化翻译
- 控制台无报错
工作量: 1天
任务2.7: 改造导入弹窗
任务描述: 改造Excel导入弹窗的翻译
涉及文件:
static/mds/js/modal-manager.jsstatic/lib/i18n/zh-CN.js等
具体工作:
- 改造弹窗标题翻译
- 改造拖拽提示翻译
- 改造按钮翻译
- 提取P3级弹窗文本
预期产出:
// 翻译键
'mds.modal.importTitle': '导入Excel数据',
'mds.upload.dragDrop': '点击或拖拽文件上传(支持 .xlsx, .xls, .csv)',
'mds.modal.confirm': '确认',
'mds.modal.cancel': '取消',
验收标准:
- 弹窗标题翻译正确
- 拖拽提示翻译正确
- 按钮翻译正确
工作量: 1天
任务2.8: 改造筛选弹窗
任务描述: 改造精准筛选弹窗的翻译
涉及文件:
static/mds/js/modal-manager.js
具体工作:
- 改造筛选弹窗标题
- 改造筛选条件文本
- 改造按钮文本
验收标准:
- 弹窗内容翻译正确
- 三语言显示正确
工作量: 0.5天
任务2.9: 改造编辑弹窗
任务描述: 改造记录编辑弹窗的翻译
涉及文件:
static/mds/js/form-renderer.js
具体工作:
- 改造form-renderer.js
- 改造表单标签翻译
- 改造表单验证消息翻译
- 改造按钮文本
验收标准:
- 表单标签翻译正确
- 验证消息翻译正确
- 三语言显示正确
工作量: 1天
任务2.10: 提取P3级翻译键
任务描述: 提取弹窗相关文本的翻译键(约120处)
涉及文件:
static/lib/i18n/zh-CN.jsstatic/lib/i18n/en-US.jsstatic/lib/i18n/de-DE.js
具体工作:
- 提取所有弹窗文本
- 编写三语言翻译
- 添加到语言包
验收标准:
- 翻译键数量正确(约120处)
- 三语言翻译准确
- 键命名规范统一
工作量: 1天
任务2.11: 实现弹窗语言切换监听
任务描述: 实现弹窗在语言切换时的动态更新
涉及文件:
static/mds/js/modal-manager.js
具体工作:
- 监听languageChanged事件
- 更新已打开弹窗的文本
- 确保切换语言后弹窗内容更新
关键代码:
window.addEventListener('languageChanged', () => {
const modals = document.querySelectorAll('.modal.show');
modals.forEach(modal => {
modal.querySelectorAll('[data-i18n]').forEach(el => {
const key = el.getAttribute('data-i18n');
el.textContent = i18n.t(key);
});
});
});
验收标准:
- 语言切换后弹窗内容更新
- 不关闭弹窗
- 数据不丢失
工作量: 0.5天
任务2.12: 测试弹窗翻译
任务描述: 测试所有弹窗的翻译效果
具体工作:
- 测试导入弹窗三语言显示
- 测试筛选弹窗三语言显示
- 测试编辑弹窗三语言显示
- 测试确认弹窗三语言显示
验收标准:
- 所有弹窗翻译正确
- 语言切换后弹窗更新
- 功能正常
工作量: 0.5天
任务2.13: 测试德语弹窗布局
任务描述: 测试德语环境下弹窗的布局
具体工作:
- 检查弹窗宽度是否足够
- 检查按钮文本是否溢出
- 必要时调整弹窗样式
验收标准:
- 无文本溢出
- 无布局错乱
- 弹窗美观
工作量: 0.5天
任务2.14: 编写Phase 2测试报告
任务描述: 记录Phase 2的测试结果
涉及文件:
docs/spec/MDS-i18n-Phase2-Test-Report.md(新建)
验收标准:
- 测试报告完整
- 所有问题已解决
工作量: 0.5天
任务2.15: Phase 2总结与评审
任务描述: 总结Phase 2工作,进行代码评审
验收标准:
- 代码质量合格
- 翻译键规范统一
- 评审通过
工作量: 0.5天
任务2.16: 提交Phase 2代码
任务描述: 提交Phase 2的代码变更
具体工作:
- 检查代码变更
- 编写提交信息
- 提交代码
验收标准:
- 代码提交成功
- 提交信息清晰
工作量: 0.5天
四、Phase 3任务清单(错误与表格,6天)
4.1 错误消息处理(Day 10-11)
任务3.1: 设计错误码映射表
任务描述: 设计后端错误码到翻译键的映射表
涉及文件:
static/mds/js/common.js(新增ERROR_CODE_MAP)
具体工作:
- 定义错误码常量
- 创建错误码到翻译键的映射
- 定义参数化错误模板
预期产出:
// 错误码常量
const ERROR_CODES = {
DUPLICATE_KEY: 'DUPLICATE_KEY',
INVALID_FORMAT: 'INVALID_FORMAT',
FOREIGN_KEY_VIOLATION: 'FOREIGN_KEY_VIOLATION',
VALIDATION_FAILED: 'VALIDATION_FAILED'
};
// 错误码到翻译键的映射
const ERROR_CODE_MAP = {
DUPLICATE_KEY: 'mds.error.DUPLICATE_KEY',
INVALID_FORMAT: 'mds.error.INVALID_FORMAT',
FOREIGN_KEY_VIOLATION: 'mds.error.FOREIGN_KEY_VIOLATION',
VALIDATION_FAILED: 'mds.error.VALIDATION_FAILED'
};
验收标准:
- 错误码定义完整
- 映射关系正确
- 命名规范统一
工作量: 0.5天
任务3.2: 实现错误翻译函数
任务描述: 实现后端错误消息的统一翻译函数
涉及文件:
static/mds/js/common.js(新增translateError函数)
具体工作:
- 实现translateError函数
- 处理错误码和参数
- 支持参数化翻译
- 提供回退机制
关键代码:
function translateError(response) {
// 检查是否有错误对象
if (!response.error) {
return response.message || 'Unknown error';
}
const { code, params = {} } = response.error;
const errorKey = ERROR_CODE_MAP[code] || `mds.error.${code}`;
// 使用i18n翻译
if (typeof i18n !== 'undefined') {
const translated = i18n.t(errorKey, params);
// 如果翻译键不存在,返回错误码
if (translated !== errorKey) {
return translated;
}
}
// 回退:返回错误码
return `Error: ${code}`;
}
验收标准:
- 函数正确处理错误码
- 支持参数化翻译
- 回退机制有效
工作量: 1天
任务3.3: 改造API错误处理
任务描述: 改造所有API调用的错误处理
涉及文件:
static/mds/js/mds-page-controller.jsstatic/mds/js/data-table.jsstatic/mds/js/global-ops-controller.js
具体工作:
- 查找所有API调用
- 改造错误处理逻辑
- 使用translateError函数
改造示例:
// 改造前
async function handleResponse(response) {
if (!response.success) {
showError(response.message);
}
}
// 改造后
async function handleResponse(response) {
if (!response.success) {
const errorMsg = translateError(response);
showError(errorMsg);
}
}
验收标准:
- 所有API错误都使用translateError
- 错误消息支持三语言
- 功能正常
工作量: 1天
任务3.4: 提取P4级翻译键
任务描述: 提取错误消息相关的翻译键(约85处)
涉及文件:
static/lib/i18n/zh-CN.jsstatic/lib/i18n/en-US.jsstatic/lib/i18n/de-DE.js
具体工作:
- 提取所有错误消息文本
- 编写三语言翻译
- 支持参数化翻译
预期产出:
// zh-CN.js
'mds.error.DUPLICATE_KEY': '数据重复: {field}={value} 已存在',
'mds.error.INVALID_FORMAT': '格式错误: {field} 格式不正确',
'mds.error.FOREIGN_KEY_VIOLATION': '外键约束违反: {field} 引用不存在',
'mds.error.VALIDATION_FAILED': '校验失败: {reason}',
'mds.error.queryFailed': '查询失败',
'mds.error.uploadFailed': '上传失败',
'mds.error.timeout': '请求超时',
// ... 共约85条
验收标准:
- 翻译键数量正确(约85处)
- 三语言翻译准确
- 参数化翻译正确
工作量: 1天
任务3.5: 测试错误消息翻译
任务描述: 测试各种错误消息的翻译效果
具体工作:
- 模拟各种错误响应
- 测试三语言错误提示
- 测试参数化翻译
验收标准:
- 所有错误消息翻译正确
- 参数化翻译正确
- 回退机制有效
工作量: 0.5天
4.2 表格组件改造(Day 12-15)
任务3.6: 改造data-table.js基础函数
任务描述: 改造数据表格组件的基础函数
涉及文件:
static/mds/js/data-table.js
具体工作:
- 改造表格列标题翻译
- 改造空状态提示
- 改造加载状态提示
- 添加语言切换事件监听
验收标准:
- 表格列标题支持翻译
- 空状态提示支持翻译
- 加载状态提示支持翻译
工作量: 1天
任务3.7: 改造分页控件
任务描述: 改造表格分页控件的翻译
涉及文件:
static/mds/js/data-table.js
具体工作:
- 改造"条/页"文本
- 改造"共X条"文本
- 改造"上一页"、"下一页"文本
- 改造页码显示
预期产出:
// 翻译键
'mds.table.perPage': '条/页',
'mds.table.total': '共 {count} 条',
'mds.table.prevPage': '上一页',
'mds.table.nextPage': '下一页',
验收标准:
- 分页控件文本翻译正确
- 三语言显示正确
- 功能正常
工作量: 1天
任务3.8: 改造表格操作按钮
任务描述: 改造表格中的操作按钮(编辑、删除等)
涉及文件:
static/mds/js/data-table.js
具体工作:
- 改造"编辑"按钮
- 改造"删除"按钮
- 改造"导出"按钮
- 使用data-i18n属性
验收标准:
- 操作按钮文本翻译正确
- 三语言显示正确
工作量: 0.5天
任务3.9: 改造空状态提示
任务描述: 改造表格无数据时的提示文本
涉及文件:
static/mds/js/data-table.js
具体工作:
- 改造"暂无数据"文本
- 改造"加载中..."文本
- 支持动态翻译
预期产出:
// 翻译键
'mds.table.noData': '暂无数据',
'mds.table.loading': '加载中...',
验收标准:
- 空状态提示翻译正确
- 三语言显示正确
工作量: 0.5天
任务3.10: 改造全选控件
任务描述: 改造表格全选复选框的文本
涉及文件:
static/mds/js/data-table.js
具体工作:
- 改造"全选"文本
- 支持动态翻译
验收标准:
- 全选文本翻译正确
- 三语言显示正确
工作量: 0.5天
任务3.11: 提取P5级翻译键
任务描述: 提取表格相关文本的翻译键(约150处)
涉及文件:
static/lib/i18n/zh-CN.jsstatic/lib/i18n/en-US.jsstatic/lib/i18n/de-DE.js
具体工作:
- 提取所有表格文本
- 编写三语言翻译
- 支持参数化翻译
验收标准:
- 翻译键数量正确(约150处)
- 三语言翻译准确
工作量: 1天
任务3.12: 实现表格语言切换监听
任务描述: 实现表格在语言切换时的刷新
涉及文件:
static/mds/js/data-table.js
具体工作:
- 监听languageChanged事件
- 实现refresh方法
- 重新渲染表格
关键代码:
class DataTable {
refresh() {
// 重新渲染列标题
this.renderHeaders();
// 重新渲染分页控件
this.renderPagination();
// 重新渲染空状态
if (this.data.length === 0) {
this.renderEmptyState();
}
}
}
// 监听语言切换
window.addEventListener('languageChanged', () => {
if (window.dataTableInstance) {
window.dataTableInstance.refresh();
}
});
验收标准:
- 语言切换后表格刷新
- 数据不丢失
- 分页状态保持
工作量: 0.5天
任务3.13: 测试表格翻译
任务描述: 测试表格组件的翻译效果
具体工作:
- 测试表格列标题翻译
- 测试分页控件翻译
- 测试空状态提示翻译
- 测试操作按钮翻译
验收标准:
- 所有表格文本翻译正确
- 语言切换后表格更新
- 功能正常
工作量: 0.5天
任务3.14: 测试德语表格布局
任务描述: 测试德语环境下表格的布局
具体工作:
- 检查列宽是否足够
- 检查按钮是否溢出
- 必要时调整CSS样式
验收标准:
- 无文本溢出
- 无布局错乱
- 表格美观
工作量: 0.5天
任务3.15: 编写Phase 3测试报告
任务描述: 记录Phase 3的测试结果
涉及文件:
docs/spec/MDS-i18n-Phase3-Test-Report.md(新建)
验收标准:
- 测试报告完整
- 所有问题已解决
工作量: 0.5天
任务3.16: Phase 3总结与评审
任务描述: 总结Phase 3工作,进行代码评审
验收标准:
- 代码质量合格
- 翻译键规范统一
- 评审通过
工作量: 0.5天
任务3.17: 提交Phase 3代码
任务描述: 提交Phase 3的代码变更
验收标准:
- 代码提交成功
- 提交信息清晰
工作量: 0.5天
任务3.18: 改造表格筛选控件
任务描述: 改造表格筛选区域的文本翻译
涉及文件:
static/mds/js/data-table.jsstatic/mds/pages/template.html
具体工作:
- 改造筛选按钮文本
- 改造筛选条件显示
- 改造重置按钮文本
验收标准:
- 筛选控件文本翻译正确
- 三语言显示正确
工作量: 0.5天
五、Phase 4任务清单(完成与测试,4天)
5.1 完成剩余翻译(Day 16-17)
任务4.1: 改造mds-page-controller.js
任务描述: 完成页面控制器的剩余翻译
涉及文件:
static/mds/js/mds-page-controller.js
具体工作:
- 查找所有硬编码中文文本
- 替换为i18n.t()调用
- 确保所有文本都支持翻译
验收标准:
- 无硬编码中文文本
- 所有文本支持翻译
- 功能正常
工作量: 1天
任务4.2: 改造global-ops-controller.js
任务描述: 完成全局操作控制器的翻译
涉及文件:
static/mds/js/global-ops-controller.js
具体工作:
- 改造全局操作按钮
- 改造操作提示消息
- 改造确认对话框
验收标准:
- 所有文本支持翻译
- 功能正常
工作量: 0.5天
任务4.3: 提取P6级翻译键
任务描述: 提取剩余文本的翻译键(约304处)
涉及文件:
static/lib/i18n/zh-CN.jsstatic/lib/i18n/en-US.jsstatic/lib/i18n/de-DE.js
具体工作:
- 提取所有剩余文本
- 编写三语言翻译
- 检查翻译键完整性
验收标准:
- 翻译键数量正确(约304处)
- 三语言翻译准确
- 无遗漏文本
工作量: 1天
任务4.4: 检查翻译键完整性
任务描述: 检查所有文件中使用的翻译键是否都存在
具体工作:
- 扫描所有JS文件中的i18n.t()调用
- 提取所有翻译键
- 对比语言包中的键
- 补充缺失的翻译键
验收标准:
- 无缺失的翻译键
- 三语言包键数量一致
- 无未使用的翻译键
工作量: 0.5天
任务4.5: 清理调试代码
任务描述: 清理临时添加的调试代码和注释
涉及文件:
- 所有修改过的文件
具体工作:
- 删除console.log调试语句
- 删除临时注释
- 整理代码格式
验收标准:
- 无调试代码
- 代码整洁
- 注释清晰
工作量: 0.5天
5.2 全面测试(Day 18-19)
任务4.6: 功能测试-所有页面
任务描述: 测试所有页面的翻译功能
具体工作:
- 测试index.html所有文本翻译
- 测试template.html所有文本翻译
- 测试user-guide.html所有文本翻译
- 测试所有弹窗文本翻译
验收标准:
- 所有页面文本正确翻译
- 三语言显示正确
- 功能正常
工作量: 1天
任务4.7: 功能测试-三语言切换
任务描述: 测试三语言之间的切换功能
具体工作:
- 测试中文切换到英文
- 测试英文切换到德语
- 测试德语切换到中文
- 测试语言选择的持久化
验收标准:
- 切换流畅,无白屏
- 状态保持
- 语言持久化到localStorage
工作量: 0.5天
任务4.8: 功能测试-无刷新切换
任务描述: 测试无刷新语言切换的所有场景
具体工作:
- 测试表格筛选状态下切换
- 测试分页状态下切换
- 测试表单输入状态下切换
- 测试弹窗打开状态下切换
- 测试滚动位置保持
验收标准:
- 筛选条件不丢失
- 分页状态保持
- 表单输入保持
- 弹窗不关闭
- 滚动位置保持
工作量: 0.5天
任务4.9: 性能测试
任务描述: 测试国际化功能对性能的影响
具体工作:
- 测试语言包加载时间
- 测试语言切换响应时间
- 测试内存占用
- 对比改造前后的性能
验收标准:
- 语言包加载时间 < 300ms
- 语言切换响应时间 < 100ms
- 内存占用增加 < 8MB
工作量: 0.5天
任务4.10: 浏览器兼容性测试
任务描述: 测试不同浏览器的兼容性
具体工作:
- Chrome浏览器测试
- Firefox浏览器测试
- Edge浏览器测试
- Safari浏览器测试(如有条件)
验收标准:
- 所有浏览器正常运行
- 德语特殊字符正确显示
- 无布局错乱
工作量: 0.5天
任务4.11: 德语专项测试
任务描述: 德语环境的专项测试
具体工作:
- 测试德语所有文本显示
- 测试德语特殊字符
- 测试德语长文本布局
- 测试德语文本换行
验收标准:
- 德语所有文本正确显示
- 特殊字符无乱码
- 长文本布局合理
工作量: 0.5天
任务4.12: 回归测试
任务描述: 确保国际化改造不影响现有功能
具体工作:
- 测试数据导入功能
- 测试数据校验功能
- 测试数据推送功能
- 测试数据查询功能
- 测试所有业务流程
验收标准:
- 所有业务功能正常
- 无功能退化
- 无新增bug
工作量: 1天
任务4.13: 编写最终测试报告
任务描述: 编写完整的测试报告
涉及文件:
docs/spec/MDS-i18n-Final-Test-Report.md(新建)
具体工作:
- 记录所有测试用例
- 记录所有测试结果
- 记录性能数据
- 记录浏览器兼容性结果
验收标准:
- 测试报告完整
- 数据准确
- 问题已解决
工作量: 0.5天
任务4.14: 编写实施文档
任务描述: 编写完整的实施文档
涉及文件:
docs/spec/MDS-i18n-Implementation-Summary.md(新建)
具体工作:
- 记录实施过程
- 记录技术方案
- 记录关键决策
- 记录维护指南
验收标准:
- 文档完整
- 内容清晰
- 可维护性强
工作量: 0.5天
六、任务依赖关系图
6.1 Phase内部依赖
Phase 1:
任务1.1 → 任务1.2 → 任务1.3 (语言包创建,串行)
任务1.4 → 任务1.5 → 任务1.6 (状态枚举改造,串行)
任务1.7 → 任务1.8 (UI实现,串行)
任务1.9, 1.10, 1.11, 1.12 (测试,并行,依赖1.1-1.8)
任务1.13 → 任务1.14 (文档与评审,串行)
Phase 2:
任务2.1, 2.2, 2.3 (HTML改造,并行)
任务2.4 (翻译键提取,依赖2.1-2.3)
任务2.6 → 任务2.7 → 任务2.8 → 任务2.9 (弹窗改造,串行)
任务2.10 (翻译键提取,依赖2.6-2.9)
任务2.11 (语言切换监听,依赖2.6)
任务2.12, 2.13 (测试,并行,依赖2.1-2.11)
任务2.14 → 任务2.15 → 任务2.16 (文档与提交,串行)
Phase 3:
任务3.1 → 任务3.2 → 任务3.3 (错误处理,串行)
任务3.4 (翻译键提取,依赖3.1-3.3)
任务3.5 (测试,依赖3.1-3.4)
任务3.6 → 任务3.7 → 任务3.8 → 任务3.9 → 任务3.10 (表格改造,串行)
任务3.11 (翻译键提取,依赖3.6-3.10)
任务3.12 (语言切换监听,依赖3.6)
任务3.13, 3.14, 3.18 (测试,并行,依赖3.6-3.12)
任务3.15 → 任务3.16 → 任务3.17 (文档与提交,串行)
Phase 4:
任务4.1, 4.2 (代码改造,并行)
任务4.3 (翻译键提取,依赖4.1-4.2)
任务4.4 → 任务4.5 (检查与清理,串行)
任务4.6, 4.7, 4.8, 4.9, 4.10, 4.11, 4.12 (全面测试,并行)
任务4.13 → 任务4.14 (文档编写,串行)
6.2 Phase间依赖
Phase 1完成 → Phase 2开始
Phase 2完成 → Phase 3开始
Phase 3完成 → Phase 4开始
6.3 关键路径
任务1.1 → 任务1.4 → 任务1.8 → 任务2.6 → 任务3.1 → 任务3.6 → 任务4.1 → 任务4.6 → 任务4.12
关键路径上的任务不可延误,否则会影响整体进度。
七、风险应对预案
7.1 技术风险
风险1: i18n框架兼容性问题
风险描述: Monitor模块的i18n框架可能不兼容MDS模块
应对措施:
- Phase 1先测试框架复用可行性
- 如不兼容,独立实现轻量级i18n
- 预留1天应急时间
触发条件: Phase 1任务1.8测试失败
应急方案: 创建独立的MDS-i18n实例
风险2: 状态枚举改造复杂度超预期
风险描述: 状态枚举在多处使用,改造难度超预期
应对措施:
- 先梳理所有使用场景
- 采用渐进式改造
- 预留0.5天应急时间
触发条件: 任务1.4-1.6耗时超过1.5天
应急方案: 分批改造,优先P0级
风险3: 后端错误码改造复杂
风险描述: 后端返回错误码格式不统一
应对措施:
- 先调研现有错误格式
- 设计兼容多种格式的translateError
- 与后端协调统一错误格式
触发条件: 任务3.2发现错误格式不统一
应急方案: 前端增加错误格式适配逻辑
7.2 进度风险
风险4: 翻译工作量超预期
风险描述: 翻译文本数量超出预估(746处)
应对措施:
- 使用脚本批量提取中文文本
- 使用翻译工具辅助翻译
- 分优先级,P0-P3优先
触发条件: Phase 2结束时翻译完成度<80%
应急方案: 延长Phase 3时间,压缩Phase 4测试时间
风险5: 测试发现大量问题
风险描述: Phase 4测试发现大量翻译错误或功能bug
应对措施:
- 每个Phase完成后立即测试
- 及时修复发现的问题
- 避免问题积累到Phase 4
触发条件: Phase 4测试发现严重问题>5个
应急方案: 回退到上一个Phase,修复后重新测试
7.3 质量风险
风险6: 德语翻译质量差
风险描述: 德语翻译不准确或不符合德语习惯
应对措施:
- 使用专业翻译工具(DeepL)
- 德语文本专项测试
- 必要时人工校对
触发条件: 德语专项测试发现翻译错误>10处
应急方案: 重新翻译德语文本,人工校对
风险7: 德语文本布局问题
风险描述: 德语文本过长导致布局错乱
应对措施:
- Phase 1即开始布局测试
- 使用CSS自适应样式
- 必要时调整组件宽度
触发条件: 德语布局测试发现溢出>5处
应急方案: 调整CSS样式,增加德语专项布局适配
7.4 协作风险
风险8: 与Monitor模块冲突
风险描述: MDS的i18n改造影响Monitor模块
应对措施:
- 使用命名空间隔离(monitor., mds.)
- 测试Monitor模块功能
- 确保向后兼容
触发条件: Monitor模块功能异常
应急方案: 回退MDS改造,检查命名空间冲突
风险9: 浏览器兼容性问题
风险描述: 某些浏览器显示异常
应对措施:
- 早期进行浏览器测试
- 使用标准API,避免浏览器特定特性
- 提供降级方案
触发条件: 浏览器测试发现兼容性问题
应急方案: 针对特定浏览器提供降级方案
7.5 风险监控
监控频率: 每日检查
监控指标:
- 当前进度vs计划进度
- 测试通过率
- 发现问题数量
- 代码质量指标
预警阈值:
- 进度偏差 > 20%
- 测试通过率 < 80%
- 严重问题 > 3个
应对流程:
- 发现风险 → 评估影响 → 制定应对方案 → 执行应对 → 跟踪效果
八、附录
8.1 翻译键命名规范
命名规则: {module}.{category}.{item}
示例:
mds.status.pending- MDS模块的状态文本mds.action.validate- MDS模块的操作按钮mds.error.DUPLICATE_KEY- MDS模块的错误消息mds.modal.confirm- MDS模块的弹窗文本mds.table.noData- MDS模块的表格文本
分类:
status- 状态标签action- 操作按钮nav- 导航菜单modal- 弹窗文本error- 错误消息table- 表格文本upload- 上传相关validation- 校验相关sync- 推送相关
8.2 相关文档
8.3 变更历史
| 版本 | 日期 | 变更内容 | 作者 |
|---|---|---|---|
| v1.0 | 2026-05-24 | 初版创建,基于实施方案生成详细任务清单 | CodeArts |
文档状态: 待执行
下一步: 开始Phase 1任务1.1 - 扩展zh-CN.js语言包