防遺忘筆記,Fedora交叉編譯window下的virt-iewer的漢化
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的漢化