wiliwili社区翻译志愿者招募:流程说明
wiliwili作为专为手柄控制设计的第三方跨平台B站客户端,已支持PC全平台、PSVita、PS4和Nintendo Switch等多设备运行。为进一步提升全球用户体验,现面向社区招募翻译志愿者,共同完善多语言支持体系。本文将详细介绍翻译贡献的完整流程与规范。
翻译工作基础准备
环境配置与工具链
翻译工作主要基于JSON格式的语言文件进行,项目提供自动化脚本简化流程。核心工具脚本为scripts/i18n.sh,该脚本负责语言文件的导入与整合。志愿者需准备:
- Git版本控制工具(用于代码提交与同步)
- 文本编辑器(推荐VSCode,支持JSON语法高亮与校验)
- 基础命令行操作能力
语言文件结构解析
项目语言文件采用JSON格式组织,存放在resources/i18n/目录下,每种语言对应独立子目录(如zh-Hans为简体中文,ja为日语)。典型语言文件结构如下:
{
"setting": {
"language": {
"header": "语言 (需要重启)",
"auto": "跟随系统",
"chinese_s": "简体中文"
}
},
"player": {
"quality": "画质",
"speed": "倍速"
}
}
主要包含三大模块:
- setting:应用设置界面文本
- player:播放器相关文案
- home:首页与导航菜单文本
翻译流程分步指南
1. 获取翻译模板
- Fork项目仓库至个人账号(仓库地址:https://gitcode.com/GitHub_Trending/wi/wiliwili)
- 克隆个人仓库到本地:
git clone https://gitcode.com/你的用户名/wiliwili.git cd wiliwili - 从主分支创建翻译专用分支:
git checkout -b translate-xx-yy # xx-yy为目标语言代码,如fr_FR
2. 翻译文件创建与编辑
- 复制基础语言文件作为翻译模板(建议以英文或简体中文为基准):
mkdir -p resources/i18n/xx-YY cp resources/i18n/zh-Hans/wiliwili.json resources/i18n/xx-YY/ cp resources/i18n/zh-Hans/hints.json resources/i18n/xx-YY/ - 使用文本编辑器翻译JSON文件,保持原有键名不变,仅修改值内容。例如将:
"quality": "画质"翻译为日语:
"quality": "画質" - 特别注意保留特殊标记与格式,如:
- 快捷键标识:
/ 切换一级页面(保留特殊符号) - 占位符:
等 {} 人赞了我的{}(保留{}占位符) - 技术术语:保持"DLNA"、"FPS"等专业术语不变
- 快捷键标识:
3. 本地化测试与验证
翻译完成后需进行本地验证,确保界面显示正常:
手动测试流程
- 编译测试版本(以Linux为例):
mkdir build && cd build cmake .. make -j4 - 修改应用语言设置:
- 启动应用后进入「设置」→「应用设置」→「其他设置」
- 在「语言」选项中选择测试语言
- 重启应用使设置生效
- 重点检查:
- 文本是否完整显示(无截断或溢出)
- 特殊字符是否正常渲染
- 界面布局是否因文本长度变化而错乱
自动化脚本使用
项目提供的i18n.sh支持快速导入测试文件:
# 假设翻译文件存放在~/Downloads/translations/xx-YY/
bash scripts/i18n.sh ~/Downloads/translations
脚本会自动将指定目录的翻译文件复制到对应语言目录,路径定义在脚本第6-10行:
LANG_PATH="$HOME/Downloads/wiliwili (translations)"
if [ -n "$1" ] ;then
LANG_PATH=$1
fi
翻译规范与质量标准
术语统一原则
为确保多语言版本的一致性,需遵循以下术语规范:
| 英文术语 | 简体中文 | 日语 | 韩语 |
|---|---|---|---|
| Player | 播放器 | プレイヤー | 플레이어 |
| Danmaku | 弹幕 | 弾幕 | 댓글 |
| Quality | 画质 | 画質 | 화질 |
| FPS | FPS | FPS | FPS |
| DLNA | DLNA | DLNA | DLNA |
完整术语表可参考resources/i18n/en-US/wiliwili.json中的基准定义。
风格指南
- 简洁性:手柄操作界面空间有限,文本需简明扼要
- 一致性:同一概念在不同界面保持相同译法
- 口语化:符合目标语言的日常表达习惯,避免生硬直译
- 技术准确性:保持功能描述的专业准确,如"硬件解码"不应译为"硬件翻译"
特殊场景处理
- 文化适配:针对地区特有表达进行本地化调整,如日期格式、敬语使用
- 长度控制:部分语言(如德语、俄语)文本较长,需适当缩写,例如将"自动播放推荐视频"简化为"自动播放推荐"
- 快捷键说明:保留原有的特殊符号标识,如" 快进"中的符号不可替换
贡献提交与审核流程
代码提交规范
- Fork主仓库并创建功能分支,分支命名格式:
translate-[语言代码](如translate-de-DE) - 提交信息格式:
i18n: [语言] 更新[模块]翻译,例如:i18n: ja 更新播放器设置翻译 - 每次提交仅包含单个语言的修改,便于审核
Pull Request模板
提交PR时需包含以下信息:
- 翻译语言及地区:如"简体中文(中国)"
- 翻译完成度:如"核心功能90%,设置界面100%"
- 测试情况:测试设备型号与系统版本
- 特殊说明:如"调整了长文本截断问题"
审核与合并流程
- 社区维护者会在3个工作日内进行初步审核
- 可能会提出修改建议,通过PR评论进行沟通
- 审核通过后将合并到开发分支,参与下一轮版本测试
- 稳定后会随正式版本发布,贡献者名单将在更新日志中提及
常见问题与支持资源
翻译工具推荐
- 编辑器:VSCode(安装i18n-ally插件可实现实时对比翻译)
- 协作平台:可申请加入社区翻译群,获取实时协作支持
- 参考资料:官方文档包含界面截图与功能说明
已知问题处理
- JSON格式错误:使用JSONLint验证语法
- 特殊字符显示异常:确保编辑器保存为UTF-8无BOM格式
- 超长文本处理:可参考其他语言的缩写方式,如将"播放结束时自动退出全屏"简化为"播放结束退出全屏"
社区支持渠道
- GitHub Discussions:项目Issues区标注"translation"标签
- 翻译交流群:通过项目README中的联系方式申请加入
- 每周翻译同步会:定期线上会议解答问题(时间见项目公告)
翻译成果展示与贡献者权益
多语言界面展示
目前项目已支持的语言版本包括:
各语言版本的界面示例可参考docs/images/目录下的截图,如:
贡献者权益
- 翻译贡献者名单将永久记录在项目CONTRIBUTORS.md
- 重大贡献者将受邀参与新功能内测
- 定期翻译之星评选,获得项目周边奖励
- 优先参与官方合作翻译项目
加入翻译团队
申请流程
- 填写翻译志愿者申请表(假设链接)
- 提交100字左右的试译文本(可选择任意未翻译模块)
- 通过审核后加入翻译协作组
任务分配机制
- 采用认领制:在翻译项目看板选择未分配的翻译任务
- 每个语言团队设1-2名负责人,协调翻译进度与审核
- 重要更新会提前通知翻译团队,确保多语言同步发布
沟通渠道
- 主沟通群:Discord #translation频道
- 文档库:Notion翻译知识库(仅团队成员可见)
- 月度会议:最后一个周日晚8点(UTC+8)
期待你的加入,让wiliwili跨越语言障碍,惠及全球更多玩家!如有疑问,可通过项目Issue或邮件(contact@wiliwili.app)联系维护团队。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





