CloudCompare 漢化詳細教程

CloudCompare 是用Qt 寫的,Qt 有個配套的翻譯軟件叫Linguist,非常好用。生成對應的翻譯文件主要涉及兩個exe:lupdatelrelease,它們在Qt的bin目錄下(類似這個:C:\Qt\Qt5.8.0\5.8\msvc2015_64\bin

下面就講講官網上lupdatelrelease這兩個exe的使用方法。官網鏈接:https://doc.qt.io/qt-5/linguist-manager.html#lupdate

以下的教程,是通用的,不只是適用於CloudCompare

lupdate

lupdate負責生成ts文件,ts文件是Linguist能編輯的文件,其實是個xml格式的文件。lupdate的大概用法如下:

lupdate xxx.h xxx.cpp -ts xxx.ts xxx.ts

-ts選項的前面,是與ts文件關聯的源代碼文件,源代碼中被QObject::tr()函數包含的字符串都會被提取出來,這些纔是可以被翻譯的。-ts選項的後面,就是與即將生成的ts文件。一開始需要自己新建一個,改成.ts後綴即可。

根據它的用法,我們要生成一箇中文包,就先新建一個txt文件,然後改一下後綴,名稱可以爲:language_zh.ts,把它放到.\CloudCompare\qCC\translations\目錄下。然後再打開powershell,調用lupdate如下:

lupdate YOUR_FILE_LIST -ts language_zh.ts

上面的這個YOUR_FILE_LIST變量,就是你想關聯的源代碼的文件列表,就是一個數組,你可以用任意方式獲取它。下面就用一個powershell腳本來實現(請自行更改相應路徑)

$QT_DIR="C:\Qt\Qt5.8.0\5.8\msvc2015_64\bin"

$CC_DIR="D:\Codes\CloudCompare"
$CC_BUILD_DIR="D:\Codes\CloudCompare\Build"
$TS_DIR="D:\Codes\CloudCompare\qCC\translations"

# files need to link
$build_files=(dir $CC_BUILD_DIR -R *.h).FullName+(dir $CC_DIR -R *.cpp).FullName
$qcc_files=(dir $CC_DIR_QCC -R *.h).FullName+(dir $CC_DIR_QCC -R *.cpp).FullName
$files = $build_files+$qcc_files
$files_less = @()

foreach($f in $files)
{
    if($f.Contains("auto_gen") -or 
        $f.Contains("CMakeFiles") -or 
        $f.Contains("moc") -or 
        $f.Contains("\common\") -or 
        $f.Contains("\contrib\") -or 
        $f.Contains("\plugins\"))
    {
        continue
    }
    $files_less += $f
}

$ts_files=(dir $TS_DIR -R *.ts).FullName

# call lupdate
cd $QT_DIR
lupdate $files_less -ts $ts_files

powershell腳本可以用系統自帶的ISE編輯、運行
在這裏插入圖片描述

生成了ts文件,就可以用Linguist打開了。首次打開可以選擇地區、語言等等。這個設置後面也可以改,如下圖:
在這裏插入圖片描述

lrelease

lrelease負責生成qm文件,二進制文件,就是cc運行時需要的。lrelease使用非常簡單,後面直接跟需要發佈的ts文件。

lrelease language_zh.ts

上面就會生成與這同名的qm文件,然後放到cc能夠識別的位置就行了。

接下來大量的工作就是用Linguist翻譯……
手動翻譯可以參考一下這個中英對照表:https://blog.csdn.net/xinjiang666/article/details/100587647

如果有興趣,可以嘗試一下下面的教程

短語書,批量翻譯

短語書,批量翻譯教程:
https://doc.qt.io/qt-5/linguist-translators.html
https://het.as.utexas.edu/HET/Software/html/linguist-translators.html

某個大神寫的,用谷歌自動翻譯:https://github.com/esutton/i18n-translate-qt-ts

隨着CC版本的不斷變化,每一版都需要有對應的ts文件,否則關聯文件對應不上,但是如果我們有短語書,則可以應用到任何版本,減少一部分工作量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章