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的汉化的更多相关文章

  1. window下Jira+SQL Server部署+汉化+破解

    网上很多都是jira+mysql部署的文章,由于我现在有需求要用SQL Server数据库,因此就动手试了一下,参考网上许多文章,再加上自己的几次尝试,很快也成功了,分享出来. 全文章节: 一.事前准 ...

  2. Windows下安装Confluence并破解汉化

    注:本文来源于<Windows下安装Confluence并破解汉化> 一.事前准备 1:JDK下载并安装:jdk-6u45-windows-i586.exe 2:MySQL JDBC连接驱 ...

  3. 第七章 : Git 介绍 (下)[Learn Android Studio 汉化教程]

    Learn Android Studio 汉化教程 Let’s reset even further to remove all traces of your work on the deprecat ...

  4. CentOS下Zabbix安装部署及汉化

    搭建环境:Centos6.5_x86_64,Zabbix2.4.5,epel 源 服务端: 1.安装开发软件包yum -y groupinstall "Development Tools&q ...

  5. windows下 破解 Sublime Text3 和汉化

    这货已经出到3了. windows下载,破解,使用方法: 一:破解 1: 去官网下载最新版本 http://www.sublimetext.com/3 2:下载破解器(SublimeTextKeyge ...

  6. Centos下的GitLab的安装汉化和数据备份以及管理员密码重置

    前言: 安装版本:gitlab-ce-8.8.5-ce.1.el7.x86_64.rpm 下载地址: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yu ...

  7. CentOS7系统下GitLab的安装、汉化、修改默认端口、开启发送邮箱

    一.centos7.4 下安装及汉化 =============================================== 2017/11/12_第6次修改                  ...

  8. Android开发笔记之《Window下安装Ubuntu双系统,Grub无法显示Window选项》

    解决方法是: 在terminal里面输入: sudo update-grub 会找到windows的grub 重启电脑就可以了.

  9. Ubuntu下安装sublime text3并汉化

    转载请注明出处:果冻栋吖 通过ppa安装,打开终端,输入以下命令: sudo add-apt-repository ppa:webupd8team/sublime-text- sudo apt-get ...

随机推荐

  1. Java———较大二进制文件的读、写

    由于项目需要,需要对二进制文件进行读写.转换. 文件说明:由其他程序得到的二进制文件,文件内容为:包含23543个三角形.13270个顶点的三角网所对应的721组流速矢量(u.v)文件,通俗些说,一条 ...

  2. 并发编程学习笔记(13)----ConcurrentLinkedQueue(非阻塞队列)和BlockingQueue(阻塞队列)原理

    · 在并发编程中,我们有时候会需要使用到线程安全的队列,而在Java中如果我们需要实现队列可以有两种方式,一种是阻塞式队列.另一种是非阻塞式的队列,阻塞式队列采用锁来实现,而非阻塞式队列则是采用cas ...

  3. RocketMQ学习笔记(13)----RocketMQ的Consumer消息重试

    1. 概念 Producer端重试: 生产者端的消息失败,也就是Producer往MQ上发消息没有发送成功,比如网络抖动导致生产者发送消息到MQ失败. 这种消息失败重试我们可以手动设置发送失败重试的次 ...

  4. Java基础(六)--枚举Enum

    枚举: 刚开始项目中没怎么用过,只知道能够实现作为项目中类似定义Constant的功能,然后知道枚举实现的单例模式几乎是最优雅的,所以, 想要深入完整的了解一下 1.基本特性: Enum.values ...

  5. Android studio 开发一个用户登录界面

    Android studio 开发一个用户登录界面 activity_main.xml <?xml version="1.0" encoding="utf-8&qu ...

  6. springAOP源码解析-190313

    Spring相关笔记 SpringAOP讲解 子路老师讲解 spring与aspectj的区别答:它们的区别是 spring是动态加载 aspectj是静态加载,再编译过程就已经实现切面,此时会往代码 ...

  7. 『 Luogu P3205 』 HNOI2010 合唱队

    解题思路 设置两个二维数组 $f$ 和 $g$,含义如下. $f[l][r]$ 表示在期望得到的队形中 $l\rightarrow r$ 这段区间初始队形排列的方案数,并且最后一个加入进去的是第 $l ...

  8. IN语句改写EXISTS

    -- IN SELECT T1.* FROM role_menu T1 WHERE T1.ROLEUUID IN ( SELECT T2.uuid FROM role T2 WHERE T2.UUID ...

  9. Linux 安装 MySQL 详解(rpm 包)

    说明:Linux 系统中软件的安装在 root 用户下进行,此安装方式为 rpm 包方式,安装的版本为:MySQL-5.6.25-1.linux_glibc2.5.x86_64.rpm-bundle. ...

  10. Python学习第二阶段Day2(json/pickle)、 shelve、xml、PyYAML、configparser、hashlib模块

    1.json/pickle   略. 2.shelve模块 import shelve # shelve 以key value的形式序列化,value为对象 class Foo(object): de ...