news 2026/8/24 2:35:33

如何给开源软件提交第一个翻译?本地化贡献完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何给开源软件提交第一个翻译?本地化贡献完整指南

如何给开源软件提交第一个翻译?本地化贡献完整指南

【免费下载链接】BambuStudioPC Software for BambuLab and other 3D printers项目地址: https://gitcode.com/GitHub_Trending/ba/BambuStudio

写给从没做过翻译贡献的你:跟着三个真实任务——修一处翻译、加一门新语言、注册可翻译字符串——走完整条流程,独立提交第一次开源软件翻译。

修一处现有翻译的完整步骤(PO 文件)

这节解决"发现一条翻译写错了,怎么修并提交"的问题,全程走完,你就熟悉本地化的整条链路了。

  1. 克隆仓库:git clone https://gitcode.com/GitHub_Trending/ba/BambuStudio(拉取全部源码和翻译文件)
  2. 找到你要修的语言目录,比如中文就是 bbl/i18n/ 下的zh_CN/BambuStudio_zh_CN.po,用 PoEdit 以"编辑翻译"模式打开
  3. 在 PoEdit 里搜到原文,改译文,保存(保存时自动生成同名.mo二进制文件)
  4. 把生成的.mo文件复制到 resources/i18n/ 对应语言目录,重命名为BambuStudio.mo(软件运行时按这个文件名加载翻译)
  5. 把改动的.po.mo两个文件一起提交到原目录

⚠️ 按钮类文案别在译文里加括号备选译法(如"切片(Slice)"),按钮会被撑宽到遮挡。 ⚠️ 界面出现乱码时别怀疑自己的译文,那多半是软件编码 bug,直接报 issue。

新增一门语言的操作清单

这节解决"项目还没有某门语言,从零建一个翻译目录"的问题。

  1. 拿基础模板:取 bbl/i18n/ 下的BambuStudio.pot(含全部待翻译原文)
  2. 在 PoEdit 里选"创建新翻译",选目标语言(如法语fr),翻译完成后得到fr.po
  3. 重命名为BambuStudio_fr.po,点保存,自动生成BambuStudio_fr.mo
  4. bbl/i18n/下新建语言子目录fr/,放入 PO 文件
  5. resources/i18n/下同样建fr/,放入BambuStudio.mo
  6. 把 PO 和 MO 一起提交

⚠️ 目录名和文件名前缀必须用同一个语言代码(fr对应BambuStudio_fr.po),对不上就加载不到。 ⚠️ 新语言不必一次译完,未翻译的条目会回退显示英文,先提交能译的部分。

写新代码时让文案可被翻译(标记宏 + 注册文件)

这节面向开发者,只讲两件事:用宏标记字符串、把文件登记进列表。

  1. 标记可翻译字符串,L()宏只负责标记,运行时由_(s)_CHB(s)取出译文:
auto message = L("This will be localized"); auto shown = _(message); // 界面显示译文
  1. 把新文件路径追加到 bbl/i18n/list.txt(xgettext只扫描这份清单里的文件,漏登记等于白写)
  2. 重新生成模板:xgettext --keyword=L --from-code=UTF-8 --no-location --debug -f bbl/i18n/list.txt -o bbl/i18n/BambuStudio.pot(按清单提取所有 L() 字符串到 POT 模板)
  3. 把新模板合并进各语言文件:msgmerge --no-wrap -N -o BambuStudio_xx.po BambuStudio_xx.po BambuStudio.pot-N表示新字符串标为未译,不做模糊匹配)
  4. msgfmt --check-format -o BambuStudio.mo BambuStudio_xx.po生成 MO 文件,同时校验占位符格式

⚠️ 动态拼接出来的字符串扫不到,运行时用L()登记标记即可,别指望xgettext能提取。

翻译红线清单

  • ✅ "filament" 等核心术语全文统一译法,别一处"耗材"一处"丝材"
  • ⚠️%1%%%这类格式占位符一个字符都别动,改了就崩溃
  • ✅ 标点跟原文走:原文没句号不加,有句号不丢
  • ⚠️ 别擅自加换行符(\n)和多余空格,尤其参数名
  • ✅ 参数描述不带单位;单位用国际单位制缩写(s不是sec
  • ⚠️ 按钮文案只留一个确定译法,括号备选会让按钮异常加宽

自测验证:跑起来确认翻译生效

这节解决"怎么确认我的改动静物见效果",PoEdit 的保存动作就是测试开关。

  1. 在 PoEdit 里保存文件,.mo即已生成
  2. 把它复制到resources/i18n/xx/并重命名BambuStudio.mo
  3. 启动 Bambu Studio,在语言设置里切到该语言,逐条核对你改过的文案
  4. 看到乱码就报 issue(软件 bug,不是译错)

下一步:提交合并后,运行第 3 节的msgmerge同步最新模板,从"未翻译"列表里挑 10 条空白条目继续译——这就是你的第二次贡献。

【免费下载链接】BambuStudioPC Software for BambuLab and other 3D printers项目地址: https://gitcode.com/GitHub_Trending/ba/BambuStudio

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 2:33:46

基于AI与规则引擎的智能报价系统:从Excel到Web应用的工程实践

1. 先搞清楚“AI报价工作台”到底要解决什么痛点如果你还在用Excel手工查表、复制粘贴、套公式来算报价,那这个“AI报价工作台”的思路,就是帮你把整个流程自动化、智能化。它不是一个现成的软件,而是一个需要你动手搭建的系统。核心痛点很简…

作者头像 李华
网站建设 2026/8/24 2:33:07

闲鱼卖家“卓美荣”案例解析:从“求关注”话术到私域流量构建

这次我们来看一个在闲鱼平台活跃的卖家“卓美荣”,以及围绕其产生的“闲鱼来的宝宝关注”现象。这不是一个技术工具或开源项目,而是一个值得分析的电商平台用户行为案例。对于技术博主和开发者而言,理解这类现象背后的流量逻辑、用户心理以及…

作者头像 李华
网站建设 2026/8/24 2:32:51

多智能体系统信任机制:形成、破裂与修复的工程实践

1. 从一次“信任危机”看多智能体系统的核心挑战 最近在调试一个由多个AI智能体协作处理复杂任务的系统时,我遇到了一个典型的“信任危机”。系统中有负责数据提取的Agent A、负责逻辑验证的Agent B和负责最终决策的Agent C。在一次常规任务中,Agent A因…

作者头像 李华
网站建设 2026/8/24 2:31:59

AI IDE深度解析:从代码补全到项目级智能体的演进与实践

如果你是一名开发者,最近可能已经感受到了某种“不对劲”——GitHub Copilot 的自动补全越来越准,Cursor 编辑器里可以直接和 AI 对话改代码,甚至一些新的 IDE 开始号称能理解整个项目上下文,帮你重构、写测试、修 Bug。这背后&am…

作者头像 李华
网站建设 2026/8/24 2:31:51

IIC总线协议详解:从硬件原理到软件调试实战

1. 项目概述:深入理解IIC总线如果你玩过单片机或者嵌入式开发,IIC这个名字大概率不会陌生。它和UART、SPI并称为嵌入式领域的“三巨头”通信协议,几乎在任何一个稍微复杂点的板子上都能找到它的身影。从读取一颗温湿度传感器,到配…

作者头像 李华