• 防遗忘笔记,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


    至此,除了安装路径要保持英文外,其它的都能够完美汉化了。:)


  • 相关阅读:
    线程 定时任务 实现思路
    Days Floating In ShenZhen(1)
    由于未能找到具有自动生成的控件来引发回发事件,导致发生错误
    在ASP.NET中使用AJAX.NET (转译自MSDN)(二)
    Every Time I Wake up I want sleep more
    漂泊在深圳的日子2
    512今日历程
    流金岁月
    对自己的思考
    关于绑定自动生成的下拉式菜单的错误
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/6872732.html
Copyright © 2020-2023  润新知