查看: 1109|回复: 0

[休闲话题] 漫淡网站与软件的国际化 走出国门该如何为之

[复制链接]
发表于 2010-8-26 14:44 | 显示全部楼层 |阅读模式
适合人群

本文适合于站长、创业者、项目经理、技术经理/主管等,或者准备成为这类人群的人。

为何要国际化

咱们不是天天在吵着要与国际接轨么,你还在搞中国特色怎么行呢。这是一个冠冕堂皇的话,咱们说点实际的。首先,中国的互联网生态极其恶劣,大家争相抄袭,用户不愿意为应用付费,而在欧美等国家要好得多,所以对于一些创业者者来说,从中国用户普云网吆喝,从欧美用户普云网钱,也不失为一种活下去的好办法。第二,国内竞争激烈,抄袭太多,不如另辟蹊径,直接杀入国外市场,屏蔽国内用户,单纯英文肯定满足了需求。第三,老板雄心勃勃,虽然产品只有那么一点点,但总想搞十种八种语言。不要捂着嘴笑,真有这种人,如果你是这个项目的负责人,忍着吧,谁让他给你发工资呢。

该不该国际化

对于没有决定权的人来说,可以直接忽略此段,因为方案已经定了,你需要的是执行,直接看如何国际化即可。对于复杂的项目,除非必要,否则应该慎重考虑国际化,例如像新浪这种新闻类的网站,国际化是一个很头疼的事情,倒不如分开成为两个网站。对于UGC及工具应用类的网站或软件,如果不是非常本地化的项目, 应该在项目初期就考虑国际化。虽然你现在可能只需要简体中文,但指不定你哪天强大了又需要英文等语言了,难道不成Copy再改改,那样的话后期的维护升级 将是一件异常复杂的事情?对于复杂的项目来说,我们也可以考虑将部分重要的功能拿出来国际化,比如说像一些在线商旅网站,就会把机票与酒店预订部分拿出来国际化,而像目的地指南这些内容,因为涉及到的翻译太多,就只有中文了。

如何国际化

国际化说起来也是一个很麻烦的事情,首先你得考虑到不同文化之间的差异,其次才是语言的问题,再次就是开发的层面的问题。要说文化差异这个问题,得根据具体的项目来具体分析,我打算从项目与开发的角度来谈一谈。

一、 项目应该是UTF-8的编码,其实这一点很重要,不管你是否需要国际化,都应该统一采用UTF-8的编码,并且文件名、变量、目录只能出现ASCII字符。因为许多服务器可能是英文,如果你是采用虚拟主机,那就更可能会是英文了。而且非UTF-8编码容易产生一些怪怪的问题,比如说在参数的传递上、AJAX、数据库等地方,不同编码都可能产生一些意想不到的情况。我就见过许多公司的项目采用GB2312的编码,甚至有些项目中间会用中文做枚举,虽然 现在编译器允许这做,但仍然应该使用ASCII字符。

二、多语言显示的问题,其实这个问题是比较好办的,比如说PHP会提供GetText来实现国际化,使用起来非常方便,我之前曾经专门写了一个扫描GetText函数中文本的小工具GetTextTools, 可以快速地从PHP文件中将GetText函数中的文字提取出来。Asp.Net中可以使用Resources进行解决国际化的问题,其它像Java也应 该会有自己的国际化解决方案。但从我比较喜欢使用Xml来解决国际化的问题,控制起来比较方便,在网站上我特别喜欢使用XSLT+Xml,因为这种解决方 案除了国际化之外,还有其它很多的好处。

三、数据库的问题,首先在建库的时候自然应该要国际化了,一般来说,只需要在数据库中增加语言 标识的字段即可。总之一个原则,对于全局唯一类型的,可采取增加语言附表的方式,例如全际国家名称的国际化,应当添加一个子表来实现国际化;一般情况可以 采用添加语言字段标识即可,例如文章类,不同语言的用户读取不同的文章,标识即可;还有一种复杂的,需要具体情况具体分析了,比如说一个产品,描述和图片 都不一样,但要求它们有所关系,这个需要具体分析。

四、脚本及AJAX,首先是脚本,应当将文本部分的脚本全部提取出来,不要在JS脚本中出现文本型的内容。对于Ajax,服务器返回的信息可以采用代码的方式,例如MSN的错误代码,然后JS中有一个代码与提示的对应关系。还有种方式是 服务器端根据不同的语言给出不同的提示,这种方式也是可以的。

五、样式,不同的语言样式是不一样的,起码字体与字号是不一样的,另外网页中可能还会有一些特定的图片是带有文字的,比如说有些按钮为了效果,图片上就带有文字。这个时候可以把CSS根据不同的语言放到不同的文件夹中,图片可以放到一个文件夹即可。

六、 域名及网站,如果你是一个大网站,不同语言可以采用不同国家的后缀,比如像微软的网站,不过像这种大型的网站国际化还要复杂,一般会将核心业务做成 Services的方式,因为他们不同语言的网站差异化很大。一般网站可采用子域名的方式,例如cn.iove.net表示中文,而 en.iove.net表示英文。当然也可以采用参数的方式,例如像Google的hl=zh-cn。我个人比较推荐这种方式,因为对于小网站来说,没有 必要使用子域名分散权重。但为了用户方便,可以采用子域名或者独立域名进行301重定向,例如把cn.iove.net重定向到 iove.net/?lang=zh-cn,或者把iove.fr重定向到iove.net/?lang=fr。

七、文件夹,其实这个地方容易受到忽略,一般建议语言文件放到i18n下,然后用语言代码建文件夹,例如zh-cn、en-us等。javascript和css也应该有单独的i18n文件夹,如果图片也有蛮多的不一致,建议也为它们建立i18n的文件夹。

本文来自涂雅[http://iove.net/],原文链接:http://iove.net/2729/,网站转载请注明来源于涂雅并保留原文链接,否则视为侵权。
温馨提示:
1、本内容转载于网络,版权归原作者所有!
2、本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
3、本内容若侵犯到你的版权利益,请联系我们,会尽快给予删除处理!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

客服QQ/微信
860854895 周一至周日:09:00 - 22:00
十五年老品牌,学习网上创业赚钱,首先普云网-分享创业资讯_最新网络赚钱项目资源论坛,值得信赖!
普云网-分享创业资讯_最新网络赚钱项目资源论坛 版权所有!

本站内容均转载于互联网,并不代表普云网-分享创业资讯_最新网络赚钱项目资源论坛立场!
拒绝任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论!

QQ|小黑屋|广告服务|加入vip|APP下载|手机版| 普云网 ( 鄂ICP备2023000076号-1 )

GMT+8, 2024-11-22 18:41 , Processed in 0.415550 second(s), 33 queries .

快速回复 返回顶部 返回列表