Fedora Media Writer 翻译规范
核心术语表
- Write → 写入(普通场景)/ 确认写入(警告对话框)
- Download → 下载(动词)/ 下载文件(名词)
- Drive → 驱动器(物理设备)/ 磁盘(存储介质)
QML场景特殊处理
- Button组件:翻译需以"..."结尾表示动作,如"浏览..."
- Dialog标题:需添加"确认"前缀,如"确认删除"
### 五级:预提交钩子(本地冲突拦截)
在.git/hooks/pre-commit添加校验脚本:
```bash
#!/bin/sh
# 检查PO文件是否与最新POT同步
./po/generate-pot-files.sh
find po/ -name "*.po" -exec msgcmp po/mediawriter.pot {} \;
if [ $? -ne 0 ]; then
echo "ERROR: PO文件与POT模板不一致,请先同步翻译"
exit 1
fi
六级:冲突预警系统(Weblate配置)
在Weblate项目设置中启用高级冲突检测:
- 启用"Enforce consistency"确保术语统一
- 配置"Auto-commit"为"Never",要求人工审核所有冲突
- 设置"Component merge style"为"Rebase"避免合并冲突
七级:贡献者培训计划(源头治理)
为新译者提供包含以下内容的5分钟培训:
- msgctxt上下文识别方法
- 常见冲突案例库(链接至项目wiki)
- 翻译测试题(含3个隐藏冲突点的迷你PO文件)
实战工具包:从脚本到流程图
冲突解决决策树
批量冲突修复脚本
创建fix-po-conflicts.sh自动化处理工具链冲突:
#!/bin/bash
# 同步所有PO文件与最新POT模板
POT_FILE="po/mediawriter.pot"
for PO_FILE in po/*.po; do
# 忽略模板文件
if [ "$PO_FILE" = "$POT_FILE" ]; then continue; fi
echo "Processing $PO_FILE..."
# 更新PO文件头信息
msgmerge --update --no-fuzzy-matching \
--backup=none \
--add-location=file \
"$PO_FILE" "$POT_FILE"
# 清理空翻译
sed -i '/^msgstr ""$/d' "$PO_FILE"
done
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



