如何編譯與翻譯Blender中文手冊

本文詳細(xì)介紹編譯與參與Blender中文手冊翻譯步驟十绑,步驟參考官方手冊步驟脱吱,并根據(jù)實(shí)際情況,有所修改和添加。

一、軟件安裝

1. python安裝

由于目前的blender手冊源文件是rst格式的,需要用到 sphinx,而 sphinx 是作為python是作為python的一個包存在的栅哀,所以我們首先安裝python。
這里我們用的是Python 3.82版本称龙。
下載合適版本(32位或64位)后,安裝Python3鲫尊,選擇Customize Installation,記得勾選Add Python to environment variables疫向,這樣就不用手動配置環(huán)境變量了豪嚎。

Python_Installation_option.png

2. 安裝sphinx與依賴環(huán)境

打開命令行提示符(或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
requirement_installation.png

)

回車侈询,等待下載完成,關(guān)閉命令行(這個很重要扔字,后面會提到)。

3. 下載與安裝TortoiseSVN

由于blender手冊使用版本控制使用的是svn啦租,所以必須安裝一個svn客戶端,本文用到的是TortoiseSVN
下載地址如下:
https://tortoisesvn.net/downloads.html

TortoiseSVN_installation.png

選擇對應(yīng)版本軟件焊刹,安裝時選擇command line client tools 選項,其余使用默認(rèn)配置安裝虐块。

4. 安裝poedit(用于翻譯)

由于blender手冊翻譯用的是po文件俩滥,所以需要用到poedit作為翻譯工具贺奠。
poedit官網(wǎng)下載對應(yīng)版本poedit霜旧,安裝使用默認(rèn)配置即可。

二儡率、代碼下載與手冊編譯

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會自動填入儿普,默認(rèn)即可崎逃。
單擊確定,開始下載代碼眉孩,等待下載結(jié)束个绍。

2. 下載中文po翻譯文件

打開blender_docs文件夾,按shift + 右鍵浪汪,選擇在此處打開命令行窗口
在打開的命令行窗口輸入并執(zhí)行:

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文件夾打開的命令行執(zhí)行:
./make.bat

等待編譯結(jié)束广恢,編譯后的網(wǎng)頁文件位于“blender_docs\build\html”文件夾下。

en_manual.png

注:
1. 編譯過程中的警告可以忽略呀潭;
2. 如果提示“'sphinx-build' 不是內(nèi)部或外部命令袁波,也不是可運(yùn)行程序或批處理文件”瓦阐,請關(guān)閉當(dāng)前命令行,重開命令行后再運(yùn)行./make.bat篷牌。
*3. 該步驟為編譯英文手冊睡蟋,可選擇跳過。

  • 編譯中文手冊枷颊,在blender_docs文件夾打開的命令行執(zhí)行:
sphinx-build -b html -D language=zh manual/ build/zhhtml

編譯的中文手冊位于 blender_docs\build\zhhtml 文件夾下戳杀,這時你就可以在本地查看與官網(wǎng)同步的手冊了。

zh_manual.png

三夭苗、手冊翻譯與排錯

1. 手冊翻譯

手冊翻譯只需使用poedit打開前述步驟中下載的po文件信卡,逐行翻譯即可傍菇。
手冊翻譯注意事項如下:

  • 斜體與粗體
    markdown語法規(guī)則一樣,左右加*表示斜體丢习,左右加**表示粗體:
    the *Rigid Body* settings **will not** be linked in since they are associated with their scene's world.
    經(jīng)解析后淮悼,在手冊中顯示為:
    the Rigid Body settings will not be linked in since they are associated with their scene's world.
    如果***前后有字符,需各保留1空格袜腥,所以該句子翻譯為:
    *剛體* 設(shè)置 **不會** 被關(guān)聯(lián),因為它們是從屬于場景世界的鲤屡。

  • 頁內(nèi)鏈接
    頁內(nèi)鏈接使用 `頁內(nèi)小標(biāo)題名`_ 為標(biāo)識符福侈,如果 ` 前后有字符(后面可直接緊跟逗號,句號)役首,需各保留1空格; 頁內(nèi)小標(biāo)題名 需翻譯衡奥,且與錨點(diǎn)位置中文一致远荠。

所以,
`Switching Select Mode`_
譯為
`切換選擇模式`_

  • 手冊內(nèi)鏈接
    手冊內(nèi)鏈接使用:doc::ref: 為標(biāo)識符档址,如果:doc:前或:ref: 前,第二個`后有字符(后面可直接緊跟逗號守伸,句號),需各保留1空格尼摹;尖括號 <> 中間鏈接不要翻譯, < 左側(cè)保留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: 是預(yù)定義好的錨點(diǎn),還有一類無尖括號情形無需翻譯。

    所以诗轻,
    You can change the options of the object in the :ref:`ui-undo-redo-adjust-last-operation` panel just after creating it: 翻譯為:
    用戶可以在創(chuàng)建物體后在 :ref:`ui-undo-redo-adjust-last-operation` 面板中更改該物體的選項:

  • 菜單
    菜單使用:menuselection:為標(biāo)識符,如果:menuselection:前或第二個 ` 后有字符(包括逗號吏颖,句號等),需各保留1空格半醉;菜單文字參照軟件界面(UI)翻譯劝术。
    所以,

Menu: :menuselection:`File --> Append or Link`翻譯為:
菜單: :menuselection:`文件 --> 追加 或 關(guān)聯(lián)`

  • 快捷鍵
    快捷鍵使用:kbd:為標(biāo)識符养晋,如果: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文件,找到錯誤行對應(yīng)位置牙勘,刪除#, python-format這一行重新保存即可所禀。

  • 警告:頭部缺少文件頭"Language"
    如果翻譯保存時報錯警告:頭部缺少文件頭"Language"

    language_warning.png

    重新選擇語言即可:
    language_warning1.png

    language_selection.png

  • 編譯并檢查錯誤
    按照前述編譯中文手冊步驟色徘,編譯中文手冊,并打開所翻譯頁面褂策,檢查并修正翻譯文字格式錯誤。

小技巧
檢查錯誤過程中斤寂,可能需要頻繁執(zhí)行編譯手冊命令,以確認(rèn)修改結(jié)果是否正確罗侯。在命令行窗口重復(fù)輸入命令就顯得過于麻煩了溪猿。我們可以在blender_docs文件夾下新建一個build.bat的腳本,簡化操作诊县。
build.bat內(nèi)容如下 :

@echo off
sphinx-build -b html -D language=zh manual/ build/zhhtml
pause

四、翻譯提交

1. 提交patch:

在沒有申請官方提交權(quán)限時垂睬,需本地生成 patch 文件,并提交patch驹饺。
下面以我自己翻譯的 /about 目錄下的 introduction.po 為例,介紹如何提交翻譯鱼炒。

  • 生成patch文件
    選擇 ‘introduction.po’ 文件,右鍵單擊昔瞧,選擇TortoiseSVN --> Create patch

patch_generate.png

在彈出的對話框中點(diǎn)擊OK菩佑。
patch_dialog1.png

在彈出的目錄選擇對話框選擇當(dāng)前目錄,點(diǎn)擊保存

patch_dialog2.png

然后就會生成一個 introduction.po.patch 的文件了酬荞。

  • 提交patch文件
    打開下面的網(wǎng)址:
    https://developer.blender.org/differential/diff/create/
    按照下面圖片的要求瞧哟,填入內(nèi)容或上傳文件,然后點(diǎn)擊Create diff
    creat_diff.png

    點(diǎn)擊Continue
    continue.png

    依照圖示輸入或選擇咧党,然后點(diǎn)擊Save陨亡。
    save.png

    以上步驟完成后,提交的翻譯就等待審查和提交了聪舒。
    注:如果沒有https://developer.blender.org/ 賬號的虐急,需要自己申請一個。

2. 直接提交

目前Blendercn社區(qū)已成立手冊翻譯組止吁,志愿負(fù)責(zé)中文手冊的翻譯與維護(hù)燎悍,歡迎加入。
目前本人(NGE)與kidux均有手冊提交權(quán)限谈山,如果嫌提交patch流程麻煩,可以加入翻譯組畴椰,將po文件交給我們代為提交。
同時斜脂,手冊翻譯組鼓勵成員向官方申請?zhí)峤粰?quán)限,自行提交翻譯帚戳。

五、依賴包升級

blender_docs文件夾下有一個requirements.txt文件偏友,其中列出了python依賴包和版本清單蚂踊,打開后,內(nèi)容如下:

Sphinx==1.6.2
sphinx-intl==0.9.9
sphinx_rtd_theme==0.2.5b1

當(dāng)svn update后犁钟,該文件有更新的情況下,建議升級依賴包迈勋。

requirements.txt change Log

升級方法有以下兩種:

1. 命令行升級

打開命令行窗口醋粟,輸入:
pip install --upgrade Sphinx sphinx-intl sphinx_rtd_theme
回車,即可在線升級依賴包米愿。

2. 腳本升級所有python包

新建一個文本文件,打開并添加內(nèi)容如下:

import pip
from subprocess import call
 
for dist in pip.get_installed_distributions():
    call("pip install --upgrade " + dist.project_name, shell=True)

改名為upgrade.py较鼓,雙擊運(yùn)行該腳本,即可一次升級電腦內(nèi)安裝的所有python包博烂。

期待看完本文的你可以參與到Blender中文手冊翻譯工作中來漱竖。

注:本文所有操作適用于Windows系統(tǒng),linux與macos系統(tǒng)具體操作稍有差異馍惹,可自行摸索或參考官方手冊玛界。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脚仔,一起剝皮案震驚了整個濱河市舆绎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吕朵,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件硫嘶,死亡現(xiàn)場離奇詭異梧税,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)第队,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門凳谦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人尸执,你說我怎么就攤上這事“砘澹” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵掂之,是天一觀的道長竭鞍。 經(jīng)常有香客問我橄镜,道長,這世上最難降的妖魔是什么洽胶? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任裆馒,我火速辦了婚禮喷好,結(jié)果婚禮上读跷,老公的妹妹穿的比我還像新娘。我一直安慰自己效览,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布哆键。 她就那樣靜靜地躺著瘦锹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪弯院。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天识补,我揣著相機(jī)與錄音辫红,去河邊找鬼。 笑死贴妻,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的澎胡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼攻谁,長吁一口氣:“原來是場噩夢啊……” “哼戚宦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起受楼,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎艳汽,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體河狐,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡馋艺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了丈钙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡劫笙,死狀恐怖星岗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情俏橘,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布寥掐,位于F島的核電站,受9級特大地震影響百炬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜污它,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一衫贬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧固惯,春花似錦、人聲如沸缝呕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽栈暇。三九已至,卻和暖如春源祈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背手销。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工女轿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留焊切,地道東北人兽埃。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓柄错,卻偏偏與公主長得像苦酱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子疫萤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容