如何编译与翻译Blender中文手册

0.055字数 2268阅读 2350

本文详细介绍编译与参与Blender中文手册翻译步骤,步骤参考官方手册步骤,并根据实际情况,有所修改和添加。

一、软件安装

1. python安装

由于目前的blender手册源文件是rst格式的,需要用到 sphinx,而 sphinx 是作为python是作为python的一个包存在的,所以我们首先安装python。
这里我们用的是Python 3.74版本。
下载合适版本(32位或64位)后,安装Python3,选择Customize Installation,记得勾选Add Python to environment variables,这样就不用手动配置环境变量了。

Python_Installation_option.png

2. 安装sphinx与依赖环境

打开命令行提示符(或PowerShell),输入:

pip install Sphinx==1.8.5  sphinx-intl==0.9.11  sphinx_rtd_theme==0.4.3
requirement_installation.png

)

回车,等待下载完成,关闭命令行(这个很重要,后面会提到)。

3. 下载与安装TortoiseSVN

由于blender手册使用版本控制使用的是svn,所以必须安装一个svn客户端,本文用到的是TortoiseSVN
下载地址如下:
https://tortoisesvn.net/downloads.html

TortoiseSVN_installation.png

选择对应版本软件,安装时选择command line client tools 选项,其余使用默认配置安装。

4. 安装poedit(用于翻译)

由于blender手册翻译用的是po文件,所以需要用到poedit作为翻译工具。
poedit官网下载对应版本poedit,安装使用默认配置即可。

二、代码下载与手册编译

1. 下载手册代码

打开选择存放代码的文件夹,右键单击,选择SVN Checkout...

svn_checkout_menu.png

在弹出的对话框中的URL of repository文本框中输入:

https://svn.blender.org/svnroot/bf-manual/trunk/blender_docs
svn_checkout.png

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”文件夹下。

en_manual.png

注:
1. 编译过程中的警告可以忽略;
2. 如果提示“'sphinx-build' 不是内部或外部命令,也不是可运行程序或批处理文件”,请关闭当前命令行,重开命令行后再运行make.bat

  • 编译中文手册,在blender_docs文件夹打开的命令行执行:
sphinx-build -b html -D language=zh manual/ build/zhhtml

编译的中文手册位于 blender_docs\build\zhhtml 文件夹下,这时你就可以在本地查看与官网同步的手册了。

zh_manual.png

三、手册翻译与排错

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. 翻译检查与排错

  • 错误: 这是第一次定义的位置
    如果翻译保存时报错错误: 这是第一次定义的位置:

    save_error1.png

    可选择菜单编目 --> 清楚已删除的翻译(P),清楚翻译即可排错。
    error1_troubleshooting.png

  • 错误: 不像 "msgid" , "msgstr" 不是有效的Python格式字符串 。
    如果翻译保存时报错错误: 不像 "msgid" , "msgstr" 不是有效的Python格式字符串。:

    save_error2.png

    使用文本编辑器打开该po文件,找到错误行对应位置,删除#, python-format这一行重新保存即可。

  • 警告:头部缺少文件头"Language"
    如果翻译保存时报错警告:头部缺少文件头"Language"

    language_warning.png

    重新选择语言即可:
    language_warning1.png

    language_selection.png

  • 编译并检查错误
    按照前述编译中文手册步骤,编译中文手册,并打开所翻译页面,检查并修正翻译文字格式错误。

小技巧
检查错误过程中,可能需要频繁执行编译手册命令,以确认修改结果是否正确。在命令行窗口重复输入命令就显得过于麻烦了。我们可以在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

patch_generate.png

在弹出的对话框中点击OK
patch_dialog1.png

在弹出的目录选择对话框选择当前目录,点击保存

patch_dialog2.png

然后就会生成一个 introduction.po.patch 的文件了。

  • 提交patch文件
    打开下面的网址:
    https://developer.blender.org/differential/diff/create/
    按照下面图片的要求,填入内容或上传文件,然后点击Create diff
    creat_diff.png

    点击Continue
    continue.png

    依照图示输入或选择,然后点击Save
    save.png

    以上步骤完成后,提交的翻译就等待审查和提交了。
    注:如果没有https://developer.blender.org/ 账号的,需要自己申请一个。

2. 直接提交

目前Blendercn社区已成立手册翻译组,志愿负责中文手册的翻译与维护,翻译组QQ群号:620831153,欢迎加入。
目前本人(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后,该文件有更新的情况下,建议升级依赖包。

requirements.txt change Log

升级方法有以下两种:

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系统具体操作稍有差异,可自行摸索或参考官方手册

推荐阅读更多精彩内容