美文网首页
如何编译与翻译Blender中文手册

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

作者: NGE | 来源:发表于2017-03-26 19:46 被阅读0次

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

    一、软件安装

    1. python安装

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

    Python_Installation_option.png

    2. 安装sphinx与依赖环境

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

    pip install Sphinx==3.2.1  sphinx-intl==2.0.1  sphinx_rtd_theme==0.5.0 sphinx-panels==0.5.1
    
    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系统具体操作稍有差异,可自行摸索或参考官方手册

    相关文章

      网友评论

          本文标题:如何编译与翻译Blender中文手册

          本文链接:https://www.haomeiwen.com/subject/oqdbhttx.html