计算机是如何处理中文的(九)

2.5.       编程注意事项

编程或构造一个系统前,通常需要注意国际化和本地化的问题。

维基百科上讲 [1]

国际化是指在设计软件,将软件与特定语言及地区脱钩的过程。当软件被移植到不同的语言及地区时,软件本身不用做内部工程上的改变或修正。本地化则是指当移植软件时,加上与特定区域设置有关的信息和翻译文件的过程。国际化和本地化之间的区别虽然微妙,但却很重要。国际化意味着产品有适用于任何地方的“潜力”;本地化则是为了更适合于“特定”地方的使用,而另外增添的特色。用一项产品来说,国际化只需做一次,但本地化则要针对不同的区域各做一次。 这两者之间是互补的,并且两者合起来才能让一个系统适用于各地

不同语言如何实现国际化和本地化,有些差异,表现在使用的函数和API上不一样,本质上,是没有差别的。无非是把要处理的字符串再加一层“标识”,程序中使用“标识”,输出时,使用“标识”在本地对应的字符串。所以,通常为实现国际化和本地化,就比纯粹的程序多了一些存放不同语言对应实际字符串的文件。如,linuxC编译后安装后的文件多了“*.mo”一样的文件(/)。

Linux

[hxli@localhost zh_CN]$ pwd

/usr/share/locale/zh_CN

[hxli@localhost zh_CN]$ ls LC_MESSAGES/libc.*

LC_MESSAGES/libc.mo


另外,注意一下以下常用编程语言的知识点,余下的详细知识,请查阅相关资料:

1)        C [1]C++Python2内部字符串都是使用当前系统默认编码

2)        Python3Java内部字符串用Unicode保存

3)        Ruby有一个内部变量$KCODE用来表示可识别的多字节字符串的编码,变量值为"EUC" "SJIS" "UTF8" "NONE"之一



[1] C语言国际化和本地化相关的一点知识:要打开本地语言支持(NLS),也就是说,用英语之外的语言显示程序的信息,需要一个Gettext API 的实现。有些操作系统内置了这些(比如 Linux, NetBSD, Solaris),对于其它系统,可以从 http://developer.postgresql.org/~petere/bsd-gettext/ 下载一个额外的包。如果在使用 Glibc 里面的 Gettext 实现,那么就额外需要 GNU Gettext 包,因为需要里面的几个工具程序。对于任何其它的实现,应该不需要它。

 



[1] 源自:http://zh.wikipedia.org/zh-cn/国际化与本地化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值