翻譯文檔
翻譯 Dolibarr 應用程式
Dolibarr的語言文件已經被翻譯成多種語言。 英語是其默認的語言,並且其內容會始終保持完整。其他語言的文檔是否完整依賴於自願者的貢獻。 本教程幫助您針對未被翻譯或者翻譯錯誤的文檔完成語言翻譯工作。 Dolibarr可以用三種不同的方式翻譯:
- 手動使用Transifex (官方和推薦的方法)
- 手動編輯語言文件
- 全自動:自動翻譯機
使用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函數。
將你的翻譯分發或納入到核心原始碼中
一旦你開始翻譯,分享它將是一個明智的決定,因為它可以被包含在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 上創建一個帳戶)。
翻譯Wiki上的文檔
wiki是用3種語言寫成的:英語、法語和西班牙語。
如果你想增強這些語言中的一種語言的文檔,你所要做的就是在wiki上創建一個帳戶。
然後,您可以編輯現有的頁面來糾正錯誤的翻譯或翻譯等待翻譯的頁面 Category:Page_waiting_for_translation。
如何翻譯現有頁面?
為翻譯版本創建一個新頁面。
首先為翻譯後的版本創建一個新頁面。為此,您可以訪問一個不存在的URL:例如 https://wiki.dolibarr.org/index.php/Ma_nouvelle_page_en_français
選擇的翻譯版本的頁面標題應該是原始英語頁面標題的翻譯。