1. 程式人生 > >防遺忘筆記,Fedora交叉編譯window下的virt-iewer的漢化

防遺忘筆記,Fedora交叉編譯window下的virt-iewer的漢化

正常 後來 效果 cal 方法 dir 文件中 通過 應用

1. 漢化代碼裏的資源

virtviewer使用的是gettex的方案是標準的linux裏國際化的方案。按道理僅僅須要改動virtualviewer/po/zh_CN.po的文件。

編譯。

然後確認在代碼裏設置好正確的locale。綁定好正確的textdomain就能夠了。

查看irtviewer的代碼,在 virt-viewer-util.c裏的virt_viewer_util_ini有對應的設置

可是,改動了zh_CN.po並編譯安裝後,發現沒有效果。。

???

後來發現是virtviewer的一個bug。

通過打印,發現

bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR);

bind的是LOCALE_DIR /usr/share/locale。 這個地址在window上是找不到的。

因此須要針對window在設置新的地址 “appdir/../share/locale/”

改動完了後。就能夠看到window上也顯示正常的中文了 :)


2. 漢化安裝包安裝過程。

首先改動

virtualview/data/virt-viewer.wxs.in 中的

<Product Id="*"

Name="VirtViewer @VERSION@@BUILDID@ ($(var.ArchString))"
Manufacturer="$(env.MANUFACTURER)"
Version="$(var.Version)"
UpgradeCode="$(var.UpgradeCode)"

Language="1033">

改為

<Product Id="*"
Name="VirtViewer @VERSION@@BUILDID@ ($(var.ArchString))"
Manufacturer="$(env.MANUFACTURER)"
Version="$(var.Version)"
UpgradeCode="$(var.UpgradeCode)"
Language="2052"
Codepage="936">

Language="1033" 改為 Language="2052" 再 加入 Codepage="936"

理論上能夠改動這個文件中對應的MENUDIR等,全然漢化的。可是改動了之後發現安裝包不能工作。

在window下提示破損。

時間原因,沒有細致查看為什麽,預計是改動時用的UTF-8編碼,可是安裝是是依照GBK編碼解析。所以出錯了。

採用了第三步,後期漢化的方法繞過了這個問題。

3. 在window上改動安裝包,完整漢化

步驟:
用orca.exe(一個window出的能夠改動msi文件的應用)手動改動
1. 改動Shortcur的Name
2. 改動Property的Manufacturer,ProductName,APPHELPLINK,APPURLINFOABOUT
3. 改動Directory中的INSTALLDIR(須要保持英文名。所以不改動),MENUDIR
4. 改動LaunchCondition中的Description


至此,除了安裝路徑要保持英文外,其它的都能夠完美漢化了。:)


防遺忘筆記,Fedora交叉編譯window下的virt-iewer的漢化