貢獻

本頁使用法語 (fr) 做為範例。然而,其他語言替換其 語言代碼 即可。因此,請確認把字尾 /fr 換成你正在翻譯的語言!

To see which languages are currently available, you can browse the repository:

https://projects.blender.org/blender/blender-manual-translations

Note

首先,我們假定你已經有建立好的手冊。如果你還沒有建立,請參考前面的 從這裡開始 章節。

安裝

語言檔

從您含有查驗文件代碼的目錄中,執行以下命令:

git clone https://projects.blender.org/blender/blender-manual-translations.git locale

這個步驟將建立一個 locale/fr 子目錄。

您的目錄配置應該如下:

blender-manual
   |- locale/
   |  |- fr/
   |  |  |- LC_MESSAGES/
   |- manual/

Note

When running Git from the command line (such as updating or committing), you will need to change directory to locale first rather then the blender-manual directory.

PO編輯器

編輯PO文件前,需安裝PO編輯器。我們推薦使用 Poedit 。不過,其他PO編輯器也可以。

Note

For Linux users, you will have to check with your distribution's software center for a version of Poedit. This editor is only a recommendation. There are others, such as Kate and Kwrite, that could offer syntax highlighting and basic tools for text editing, e.g. letter case transposes. Other platforms can use some text editors supporting the syntax highlighting for PO files, or allowing you to create a custom one (such as Notepad++ on Windows).

使用翻譯文件編譯

Now you can build the manual with the translation applied:

On Linux and macOS run:

make -e BF_LANG=fr

On Windows run:

set BF_LANG=fr
make html

現在你已建立好已翻譯的使用手冊。

編輯翻譯檔

Now you can edit the PO translation files, in the LC_MESSAGES folder you have two files:

  • blender_manual.po -- This is the main translation file that you will be editing.

  • sphinx.po -- This translation file is much smaller and contains translations for the website theme.

To edit these files open them up in your translation editor, i.e. Poedit. Once in your editor you will see a list of texts, each of these items represent some part of the user manual. You may need to adjust your editor to sort the list in a way that makes sense for example "by source".

You can now select an untranslated string and your editor will have an input box to add the translation. The modified .po files can now submitted as a patch or committed back to the repository.

Tip

Make sure that you Building with Translations to catch any syntax errors you may make while translating. These errors will be displayed as warnings while building the manual.

Submitting Translations

Translators who have been given commit access can commit to the main repository without needing to fork the repository.

See Commit Guidelines if this applies to you.

Fork Translation Repository

  1. Go to Blender repository and click the Fork button.

  2. Confirm the fork with the default settings.

  3. Now you will have to add your personal fork as a remote in your local git repository. Click SSH to see the correct URL, and then add it like this:

    git remote add me [email protected]:<USERNAME>/blender-manual-translations.git
    git submodule sync
    

Note

In order to push to the fork repository, you need an SSH key. If you don't already have the file ~/.ssh/id_rsa.pub, there's a simple command to generate such keys which works on Linux, macOS, and in Git Bash on Windows:

ssh-keygen

This command will generate a private key id_rsa and a public key id_rsa.pub in ~/.ssh. The private key must never be shown or sent to anyone else to avoid compromising your account, but the public key is safe to share.

The contents of ~/.ssh/id_rsa.pub can be copied and pasted into the account settings on projects.blender.org, after clicking "Add Key". Any name for the SSH key is ok.

維護

追蹤模糊字符串

手冊更新後,那些過時的翻譯將被標記為模糊。要追蹤這種狀況,您可以使用我們為此建立的工具。

你可以執行下面的命令:

make report_po_progress

該命令只會給您一個快速的摘要,然而,您可以執行以下命令以獲取更多資訊:

python tools_report/report_translation_progress.py locale/fr/

你應該得到一個檔案列表,包含一些空或者模糊字串的資訊。更多選項,請參閱:

python tools_report/report_translation_progress.py --help

更新PO檔

隨著原始手冊的修改,這個模板也需要不斷更新。注意,這個步驟是非必須的,因為管理員會定期自動更新這些po文件。這個步驟用於同步所有語言手冊為同一版本。不過,如果您需要手動更新po文件,可以使用下面的命令:

make update_po

The updated templates can then be committed to the repository.

See also

A guide how to add a new language can be found in the Adding a Language.