本文详细介绍编译与参与Blender中文手册翻译步骤,步骤参考官方手册步骤,并根据实际情况,有所修改和添加。
一、软件安装
1. python安装
由于目前的blender手册源文件是rst
格式的,需要用到 sphinx,而 sphinx 是作为python是作为python的一个包存在的,所以我们首先安装python。
这里我们用的是Python 3.82版本。
下载合适版本(32位或64位)后,安装Python3,选择Customize Installation
,记得勾选Add Python to environment variables
,这样就不用手动配置环境变量了。
2. 安装sphinx与依赖环境
打开命令行提示符(或PowerShell),输入:
pip install Jinja2==3.1.2 Pygments==2.13.0 docutils==0.17.1 snowballstemmer==2.2.0 babel==2.10.3 requests==2.27.1 sphinx-intl==2.0.1 sphinx_rtd_theme==1.0.0 sphinx-autobuild==2021.3.14
)
回车,等待下载完成,关闭命令行(这个很重要,后面会提到)。
3. 下载与安装TortoiseSVN
由于blender手册使用版本控制使用的是svn,所以必须安装一个svn客户端,本文用到的是TortoiseSVN。
下载地址如下:
https://tortoisesvn.net/downloads.html
选择对应版本软件,安装时选择
command line client tools
选项,其余使用默认配置安装。
4. 安装poedit(用于翻译)
由于blender手册翻译用的是po
文件,所以需要用到poedit作为翻译工具。
在poedit官网下载对应版本poedit,安装使用默认配置即可。
二、代码下载与手册编译
1. 下载手册代码
打开选择存放代码的文件夹,右键单击,选择SVN Checkout...
在弹出的对话框中的
URL of repository
文本框中输入:
https://svn.blender.org/svnroot/bf-manual/trunk/blender_docs
Checkout directory
会自动填入,默认即可。
单击确定,开始下载代码,等待下载结束。
2. 下载中文po翻译文件
打开blender_docs
文件夹,按shift + 右键,选择在此处打开命令行窗口
在打开的命令行窗口输入并执行:
svn checkout https://svn.blender.org/svnroot/bf-manual-translations/trunk/blender_docs/locale/zh-hans locale/zh
此操作下载中文po
文件,更新的po
文件位于blender_docs\locale\zh
文件夹下。
3. 编译手册
- 编译英文手册,在
blender_docs
文件夹打开的命令行执行:
./make.bat
等待编译结束,编译后的网页文件位于“blender_docs\build\html”文件夹下。
注:
1. 编译过程中的警告可以忽略;
2. 如果提示“'sphinx-build' 不是内部或外部命令,也不是可运行程序或批处理文件”,请关闭当前命令行,重开命令行后再运行./make.bat
。
*3. 该步骤为编译英文手册,可选择跳过。
- 编译中文手册,在
blender_docs
文件夹打开的命令行执行:
sphinx-build -b html -D language=zh manual/ build/zhhtml
编译的中文手册位于 blender_docs\build\zhhtml
文件夹下,这时你就可以在本地查看与官网同步的手册了。
三、手册翻译与排错
1. 手册翻译
手册翻译只需使用poedit打开前述步骤中下载的po
文件,逐行翻译即可。
手册翻译注意事项如下:
斜体与粗体
与markdown
语法规则一样,左右加*
表示斜体,左右加**
表示粗体:
the *Rigid Body* settings **will not** be linked in since they are associated with their scene's world.
经解析后,在手册中显示为:
the Rigid Body settings will not be linked in since they are associated with their scene's world.
如果*
或**
前后有字符,需各保留1空格,所以该句子翻译为:
*刚体* 设置 **不会** 被关联,因为它们是从属于场景世界的。
页内链接
页内链接使用`页内小标题名`_
为标识符,如果 ` 前后有字符(后面可直接紧跟逗号,句号),需各保留1空格; 页内小标题名 需翻译,且与锚点位置中文一致。
所以,
`Switching Select Mode`_
译为
`切换选择模式`_
-
手册内链接
手册内链接使用:doc:
或:ref:
为标识符,如果:doc:
前或:ref:
前,第二个`
后有字符(后面可直接紧跟逗号,句号),需各保留1空格;尖括号<>
中间链接不要翻译,<
左侧保留1空格。所以,
see :doc:`relative paths </data_system/files/relative_paths>`.
翻译为:
见 :doc:`相对路径 </data_system/files/relative_paths>` 。
:ref:`Fake User <data-system-datablock-fake-user>`.
翻译为:
:ref:`伪用户 <data-system-datablock-fake-user>` 。
:ref:
是预定义好的锚点,还有一类无尖括号情形无需翻译。所以,
You can change the options of the object in the :ref:`ui-undo-redo-adjust-last-operation` panel just after creating it:
翻译为:
用户可以在创建物体后在 :ref:`ui-undo-redo-adjust-last-operation` 面板中更改该物体的选项:
菜单
菜单使用:menuselection:
为标识符,如果:menuselection:
前或第二个 ` 后有字符(包括逗号,句号等),需各保留1空格;菜单文字参照软件界面(UI)翻译。
所以,
Menu: :menuselection:`File --> Append or Link`
翻译为:
菜单: :menuselection:`文件 --> 追加 或 关联`
- 快捷键
快捷键使用:kbd:
为标识符,如果:kbd:
前或第二个 ` 后有字符(包括逗号,句号等),需各保留1空格;快捷键无需翻译。
所以,
Hotkey: :kbd:`Shift-F1` or :kbd:`Ctrl-Alt-O`
翻译为:
快捷键: :kbd:`Shift-F1` 或者 :kbd:`Ctrl-Alt-O`
2. 翻译检查与排错
-
错误: 这是第一次定义的位置
如果翻译保存时报错错误: 这是第一次定义的位置
:
可选择菜单编目 --> 清楚已删除的翻译(P)
,清楚翻译即可排错。
-
错误: 不像 "msgid" , "msgstr" 不是有效的Python格式字符串 。
如果翻译保存时报错错误: 不像 "msgid" , "msgstr" 不是有效的Python格式字符串。
:
使用文本编辑器打开该po文件,找到错误行对应位置,删除#, python-format
这一行重新保存即可。 -
警告:头部缺少文件头"Language"
如果翻译保存时报错警告:头部缺少文件头"Language"
:
重新选择语言即可:
编译并检查错误
按照前述编译中文手册步骤,编译中文手册,并打开所翻译页面,检查并修正翻译文字与格式错误。
小技巧
检查错误过程中,可能需要频繁执行编译手册命令,以确认修改结果是否正确。在命令行窗口重复输入命令就显得过于麻烦了。我们可以在blender_docs
文件夹下新建一个build.bat
的脚本,简化操作。
build.bat
内容如下 :
@echo off
sphinx-build -b html -D language=zh manual/ build/zhhtml
pause
四、翻译提交
1. 提交patch:
在没有申请官方提交权限时,需本地生成 patch
文件,并提交patch
。
下面以我自己翻译的 /about
目录下的 introduction.po
为例,介绍如何提交翻译。
- 生成patch文件
选择 ‘introduction.po’ 文件,右键单击,选择TortoiseSVN --> Create patch
在弹出的对话框中点击
OK
。在弹出的目录选择对话框选择当前目录,点击
保存
:
然后就会生成一个
introduction.po.patch
的文件了。
- 提交patch文件
打开下面的网址:
https://developer.blender.org/differential/diff/create/
按照下面图片的要求,填入内容或上传文件,然后点击Create diff
点击Continue
依照图示输入或选择,然后点击Save
。
以上步骤完成后,提交的翻译就等待审查和提交了。
注:如果没有https://developer.blender.org/ 账号的,需要自己申请一个。
2. 直接提交
目前Blendercn社区已成立手册翻译组,志愿负责中文手册的翻译与维护,欢迎加入。
目前本人(NGE)与kidux均有手册提交权限,如果嫌提交patch流程麻烦,可以加入翻译组,将po
文件交给我们代为提交。
同时,手册翻译组鼓励成员向官方申请提交权限,自行提交翻译。
五、依赖包升级
blender_docs
文件夹下有一个requirements.txt
文件,其中列出了python依赖包和版本清单,打开后,内容如下:
Sphinx==1.6.2
sphinx-intl==0.9.9
sphinx_rtd_theme==0.2.5b1
当svn update
后,该文件有更新的情况下,建议升级依赖包。
升级方法有以下两种:
1. 命令行升级
打开命令行窗口,输入:
pip install --upgrade Sphinx sphinx-intl sphinx_rtd_theme
回车,即可在线升级依赖包。
2. 脚本升级所有python包
新建一个文本文件,打开并添加内容如下:
import pip
from subprocess import call
for dist in pip.get_installed_distributions():
call("pip install --upgrade " + dist.project_name, shell=True)
改名为upgrade.py
,双击运行该脚本,即可一次升级电脑内安装的所有python包。
期待看完本文的你可以参与到Blender中文手册翻译工作中来。
注:本文所有操作适用于Windows系统,linux与macos系统具体操作稍有差异,可自行摸索或参考官方手册。