翻譯文檔

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


Language.png 翻譯 Dolibarr 應用程式

Dolibarr的語言文件已經被翻譯成多種語言。 英語是其默認的語言,並且其內容會始終保持完整。其他語言的文檔是否完整依賴於自願者的貢獻。 本教程幫助您針對未被翻譯或者翻譯錯誤的文檔完成語言翻譯工作。 Dolibarr可以用三種不同的方式翻譯:

  1. 手動使用Transifex (官方和推薦的方法)
  2. 手動編輯語言文件
  3. 全自動:自動翻譯機

使用Transifex在線服務進行手動翻譯(推薦)

Transifex 是一個為翻譯項目提供在線平台的Web應用程式。它包括團隊和討論工具、翻譯記憶庫、詞彙表、校對和許多其他功能。 它非常容易使用,所有翻譯都可以通過Web界面或者使用TX客戶端終端上傳或下載。 Transifex 是一個開源項目,「社區版」可以免費下載和安裝,但我們將使用在線託管服務。

使用Web界面(適用於翻譯人員)

如果你想幫忙把Dolibarr翻譯成自己的語言,請進入該項目的頁面 https://www.transifex.com/dolibarr-association/dolibarr/

然後,您可以註冊一個帳戶,並請求加入目標語言的項目團隊。管理員會接受您的請求,所以請耐心等待。

一旦被接受,您就可以馬上開始翻譯了。

欲了解更多信息,請查閱網站 http://docs.transifex.com/introduction/translators/ 上的Transifex Getting Started(入門)介紹規範和網站 http://docs.transifex.com/tutorials/txeditor/ 上的web editor tutorial(編輯器嚮導)。

關於 en_US 的備註

這個Web界面不能用來翻譯原始碼的en_US語言。

對en_US語言的任何更改都必須在Dolibarr原始碼中完成,並在我們的GitHub存儲庫上使用Pull Request提交。

使用TX 命令行客戶端 (適用於管理員團隊 Category:Yoda )

這部分描述了如何從命令行中使用Transifex。然而,這是保留給Dolibarr管理員用戶(Yoda團隊)的,用於將Transifex與Dolibarr主源碼同步。

更多信息請參考Transifex 官方文檔

TX 客戶端設置

首先要安裝 TX 客戶端,作業系統使用 Debian/Ubuntu/Mint:

apt-get install python-pip
pip install transifex-client

然後你必須初始化你的TX環境。這是通過進入Dolibarr項目根目錄運行 tx init 來完成的。

cd git/dolibarr
tx init

接受覆蓋配置文件。保留Transifex實例的默認值,然後輸入您的Transifex登錄名和密碼。

在此之後,一個.transifexrc文件已經創建到您的HOME目錄,並且一個通用配置文件被創建為項目根目錄中的.tx/config。 目錄的內容看起來會是這樣的:

.
|-- build
|-- build.xml
|-- ChangeLog
|-- COPYING
|-- COPYRIGHT
|-- dev
|-- doc
|-- .gitignore
|-- htdocs
|-- INSTALL
|-- pom.xml
|-- quickbuild.xml
|-- README
|-- README-FR
|-- README.md
|-- robots.txt
|-- scripts
|-- test
`-- .tx

當前的配置文件可以從 https://github.com/Dolibarr/dolibarr/tree/develop/.tx 下載,將其放入.tx目錄,覆蓋由 tx init 創建的配置文件。

此項目配置文件用於存儲項目的詳細信息和文件到資源的映射。

這是配置文件包含的內容的示例:

[main]
host = https://www.transifex.com
lang_map = uz: uz_UZ

[dolibarr.admin]
file_filter = htdocs/langs/<lang>/admin.lang
source_file = htdocs/langs/en_US/admin.lang
source_lang = en_US
type = MOZILLAPROPERTIES

下面是配置文件中使用的片段和選項的說明:

[main] section

在本片段中,我們有項目範圍的選項,例如:所有項目的默認transifex主機。如果需要的話,這些可以被每個資源覆蓋。

[dolibarr.resource]

source_lang: 這是資源的源語言
source_file: 這直接指向源文件
file_filter: 在這裡,我們保存用於標識特定項目下的翻譯文件的表達式。非強制性
trans.<lang>: 這用於不遵循公共命名模式的翻譯文件,並且文件表達式不能用於跟蹤它們。非強制性
host: 如果項目不使用[main]片段中指定的默認Transifex伺服器,它可以使用此選項覆蓋它。非強制性

TX 客戶端使用

一些有用的 tx 命令。

tx status

顯示翻譯狀態

tx push

用於將更改從你的計算機推送到Transifex伺服器。

tx push命令的其他選項包括:

-h - 显示命令行帮助
-l <lang> - 指定要推送哪些翻译(默认为所有)
-r <resource> - 指定要向其推送翻译的资源(默认为所有)
-f - 在不修改修改时间的情况下推送源文件
--skip - 错误时不要停止。当同时推多个文件时很有用。
-s - 将源文件推送到服务器
-t - 将翻译文件推送到服务器
--no-interactive - 强制推送时不需要用户输入。

tx pull

用於將更改從Transifex伺服器拉到您的計算機上。
tx pull命令的其他選項包括:

-h - Shows the help screen for the command
-l <lang> - Specify which translations you want to pull (defaults to all)
-r <resource> - Specify the resource for which you want to pull the translations (defaults to all)
-a - Fetch all translation files from server (even new ones)
-s - Force the fetching of the source file (default: False)
-f - Force download of translations files
--skip - Don't stop on errors. Useful when pushing many files concurrently.
--disable-overwrite - By default Transifex will fetch new translations files and replace existing ones. Use this flag if you want to disable this feature.
--minimum_perc=VALUE - Specify the minimum acceptable percentage of a translation in order to download it.

示例:

要拉取翻譯文檔,可以使用:

tx -d pull -l it_IT  # Get italian language only
tx -d pull -a   # Get all languages

要推送源文件,只需鍵入:

tx -d push -t -l it_IT [-r dolibarr.file]   # To push only a specific translation file
tx -d push -s  # To push source file

關於transifex流程的其他問題

這是一個簡短的Q&A,你也可以詢問transifex翻譯進程:

1) 同步是否按固定的時間間隔完成?

不,只有在提交了足夠的譯文時才進行翻譯。在創建最終發布包之前,它也會在beta分支上完成。

2) 是否所有的翻譯都同步到git,還是僅僅同步經過審核的翻譯。在同步完成之前我需要進行檢查嗎?

當同步完成時,transifex文件將覆蓋git中的文件,但前提是該文件至少有一條記錄被修改。 在同步完成之前,您不必進行複查。最重要的是,要知道哪些行是手動審核的,哪些行是最初使用機器人翻譯的。同步始終採用最後翻譯的版本,即使新的翻譯沒有被審核。

3) 在哪些Dolibarr版本中提供翻譯?Transifex翻譯是否也同步到維護版本?

同步總是在develop和/或beta版本上完成。 因此,transifex更改會出現在其分支在Transifex更改之後創建的所有版本中(在創建新分支之前總是進行同步)。

一旦創建了一個分支,對Transifex的新更改將僅適用於下一個分支。這樣做的原因是我們不管理Transifex上的分支/版本(目前還沒有)。

手動翻譯(不推薦)

要將Dolibarr翻譯成另一種語言,請轉到Langs目錄,並創建一個用要翻譯的語言代碼命名的文件夾/目錄(遵循現有格式,例如en_US, en_GB, es_ES, de_DE, 等)。然後將文件從現有的語言目錄(例如en_US/main.lang, en_GB/bills.lang)複製到您剛剛創建的新語言目錄中。

這些文件在每行中具有鍵/值對的格式,如下所示:

Code1 = translate phrase 1
Code2 = translate phrase 2
...
Coden = translate phrase n

如上所述,翻譯「=」右側的短語(鍵/值對的值部分),「=」左側的代碼(鍵部分)應保持不變。

可以逐個翻譯這些文件,而不必一次就把它們全部翻譯出來。

如果文件尚未被翻譯成新的語言,Dolibarr將使用英語。

要將本地化(翻譯)的字符串放入PHP代碼中,您所要做的就是加載語言文件並使用下述方法來獲取翻譯後的值,如下所示:

$langs->load("myfile"); // or use $langs->load("myfile@mymodule") if myfile.lang is inside directory htdocs/mymodule/langs/xx_XX   

print $langs->trans("CodeX")

條目類型:

CodeX = phrase X

必須存在或添加到myfile.lang文件中。

使用autotranslator.php工具自動翻譯

  • Translator OS: All
  • Tool: autotranslator.php 隨 Dolibarr 提供,位於目錄 dev/translation

當剛開始翻譯為尚未初始化的語言時,建議使用此方法。如果已經有一個可用的翻譯,但您需要添加一個丟失的鍵或糾正錯誤,請嘗試使用Transifex方法(見下文)。

要創建或更新語言代碼的所有文件,只需運行腳本:

php autotranslator.php lang_code_source lang_code_target GOOGLEAPIKEY

例如:

php autotranslator.php en_US pt_PT GOOGLEAPIKEY

使用英語(en_US)文件翻譯成葡萄牙語(pt_PT)。

此操作將創建所有不存在的文件,並更新所有現有文件。 該工具使用Google翻譯服務來查找字符串的翻譯值,因此需要從運行腳本的站點進行工作的Internet連接。此外,還需要GOOGLEAPIKEY,Google會收取使用此服務的費用(20歐元/1000000翻譯字符)。 你的PHP還必須有寫入htdocs/langs目錄的權限,並且必須有可用的curl函數。

此操作將創建所有不存在的文件,並更新所有現有文件。 該工具使用 Google translation 翻譯服務來查找字符串的翻譯值,因此運行腳本的工作站點需要有Internet連接。此外,還需要GOOGLEAPIKEY,Google會收取使用此服務的費用(20歐元/1 000 000翻譯字符)。 你的PHP還必須有寫入htdocs/langs目錄的權限,並且必須有可用的curl函數。

Language.png 將你的翻譯分發或納入到核心原始碼中

一旦你開始翻譯,分享它將是一個明智的決定,因為它可以被包含在Dolibarr的官方代碼中。 如果您保留它,當添加新術語或修改以前的術語時,其他人將無法改進它,並且您仍然必須自己管理翻譯。

如果你是通過Transifex系統翻譯的,那就沒什麼可做的了。您的翻譯將被包含在Dolibarr的下一個版本中。沒有額外的工作!從技術上講,翻譯將從Transifex導出,並由我們的開發人員導入Dolibarr,每月至少一次。

但是,如果您直接在Dolibarr文件中進行翻譯,則必須首先將這些翻譯傳輸到Transifex,然後才能將其包含在內。所以,真的,你應該一開始就翻譯成Transifex。 如果你通過Github上的Pull Request向我們發送你的翻譯,很遺憾,它會被Transifex的下一次導入所覆蓋,所以它的生命周期將是非常短暫的。

注意事項:

參考語言是en_US,並且其內容始終是完整的。您可以在htdocs/langs/en_US/文件夾中找到它。所有其他語言文件都可能是輕微或高度不完整的,具體取決於語言。

如果你正在開發一個新的模塊,你可能需要添加新的語言變量。這完全通過更新en_US語言(htdocs/langs/en_US/文件夾)完成。只需修改這些文件以添加所需的變量,並將生成的文件夾作為Pull Request的一部分發送。請參閱開發人員文檔以了解如何貢獻代碼(您需要在 https://github.com/Dolibarr/dolibarr 上創建一個帳戶)。

Language.png 翻譯Wiki上的文檔

wiki是用3種語言寫成的:英語、法語和西班牙語。

如果你想增強這些語言中的一種語言的文檔,你所要做的就是在wiki上創建一個帳戶。

然後,您可以編輯現有的頁面來糾正錯誤的翻譯或翻譯等待翻譯的頁面 Category:Page_waiting_for_translation


如何翻譯現有頁面?
為翻譯版本創建一個新頁面。

首先為翻譯後的版本創建一個新頁面。為此,您可以訪問一個不存在的URL:例如 https://wiki.dolibarr.org/index.php/Ma_nouvelle_page_en_français

選擇的翻譯版本的頁面標題應該是原始英語頁面標題的翻譯。