加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【汉化】zh_CN和zh_CH.UTF-8编码方式共存

(2011-08-05 12:11:17)
标签:

zh_cn

zh_cn.utf-8

module.info

乱码

分类: 语言
    webmin右侧很容易就能支持zh_CN和zh_CH.UTF-8,只要在相应模块的lang目录下建立zh_CN、zh_CN.UTF-8文件,分别在Windows、linux的eclipse环境编辑中文就行,或者写好zh_CN.UTF-8文件,iconv -f utf-8 -c -t WINDOWS-936 zh_CN.UTF-8 >zh_CN命令转换一下。但是webmin左侧的模块名称,需要在同一个文件module.info内支持不同的编码,难度挺高。这是因为将module.info放在 1)Windows环境下输入“desc_zh_CN=模块名称”,然后在linux环境下输入“desc_zh_CN.UTF-8=模块名称”,此时就会将“desc_zh_CN=模块名称”编码结构破坏,使其变成乱码显示在网页中,反之,2)先linux环境下输入“desc_zh_CN.UTF-8=模块名称”,然后Windows环境下输入“desc_zh_CN=模块名称”,将“desc_zh_CN.UTF-8=模块名称”编码结构破坏。
    注意:
1、linux下用vim编辑;Windows下用写字板编辑。
2、由于要将module.info移到Windows环境下编辑文字,移回linux环境时,需要用vim编辑器打开module.info,输入“:set ff=unix”,这样才能被linux环境识别编码,否则,会由于无法识别文件中类别语句,比如“category=storage”,而将模块扔到other类别中。另外,由于将zh_CN文件也移到Windows下编辑过,所以也要用vi编辑器“:set ff=unix”,否则,对程序参数的正确传递都会产生影响。发生这种情况时,开发者会钻到函数本身去研究,南辕北辙,怎么都弄不明白出错原因。所以这个必须注意。
    具体情况是:
1)情况中,“desc_zh_CN=模块名称”编码结构破坏殆尽;
2)情况中,“desc_zh_CN.UTF-8=模块名称”编码结构只破坏最后一个字的结构,即“模块名”显示正确,“称”字变成乱码。
    解决方法:
    第一步:取第二种方法,linux环境vim输入“desc_zh_CN.UTF-8=模块名称称”注意这里有两个“称”字,此时网页左侧“模块名称”显示正确,最后一个“称”字为乱码。
    第二步:Windows环境“写字板”输入“desc_zh_CN=模块名称”
    第三步:vim打开相关模块目录下的module.info文件,显示为一堆乱码,比如:
            desc_zh_CN.UTF-8=å­<98>Ã¥<82>¨å<8d>·ï¿½?
    第四步:将此行最后两个字节删除,:set if=unix、:wq保存退出。
上图:不同的编码方式,能正确显示中文“存储池”“存储卷”
    20110809补充:有时候,执行第三步了还是会多一个乱码,此时在用vi进入module.info,删除desc_zh_CN.UTF-8一行最后一个字节,wq保存退出后再查看,如此反复,可解决问题。另外,为方便定位,建议将desc_zh_CN.UTF-8一行放至文件尾,并且由于vi显示的是乱码,很多编码会直接显示空格,vi进入时,在指令模式下按"$"键(shift+4)到行尾,按"a"进入编辑模式,按回格键删除一个字节,有时会发现自己在删除一个空格,这种情况很诡异,但这么做是值得的,并且有效的,能让你的网页显示中文时不出现乱码。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有