I18N-开篇
I18N这个说法,我在进行目前手头这个项目之前可是从来没听说过的,随着项目的深入,对I18N有了很多体会,准备抽空写一些项目经验所得,以帮助大家解决类似问题。
第一个问题,啥叫I18N?
这是我问我们头儿的第一个问题,现在想想我们头儿还是很不错的,没像很多人那样直接一套大道理先把你弄晕再说,而是用下面的解释来给我说明(大体意思,具体用词就记不住了)“在英文中,国际化(Internationalization)被缩写为I18N, 即只取首尾两个字母, 中间字母为18个”。
当时,我们头儿提出他需要一种解决方案,就是把一个常规的全英文的ASP.NET的站点,作成全中文的,或者全日文的(嘿嘿,其实这就是我能否拿到Offer的条件)。
这个问题当时一下没想出好的办法,傻傻的说“现在我还没有很好的解决办法,最笨的就是把原来ASPX页面和后台CS代码中的英文替换成中文,或者日文。”头儿笑了笑(我们头一直都面带微笑),给了我3天时间,因为我说回去Google一下,看看能不能找到好方法。还好当天晚上,在论坛上找到了用.NET Framework中的ResourceManger类I18N作Windows Form I18N的例子,但是用RM作WEB App的例子就很少了,所以心悬的,最后找老蒋确认了一下,最后才决定用ResouceManger这条路,因此就开始对它的研究了。
上面的这些文字,说白了,整套解决方案的原理就是-将原来写死在页面上的英文单词用一些变量代替,随时给这些变量赋值不就OK了么。
那I18N到底有啥作用啊?
当时,我对头儿提出的这个问题感觉到很奇怪,现在想想他的要求确实是公司实际碰到的情况。
公司搞到了一个全英文的ASP.NET站点,准备拿来用,但是需要翻译成日文。
对翻译人才来说 英文<->汉语,汉语<->日文都是OK的,满大街都能找到。如果是英文,汉语,日文,这三类语言都精通的,那可是少之又少了。就是有人力成本也太高。另外,翻译不可能精通HTML和C Sharp代码,所以让他们去代码里面找写死的英文单词是不可能的,用I18N我们程序员,可以把这些英文单词找出来放到一个地方(比如资源文件,或者TEXT文件中)。翻译搞定这些是翻译们的强项,所以一个从EN到JP的难题就可以这样解决。并且用到了每个人的强项。避开了彼此的弱项。对作OutSourcing的公司,这种方式很值得考虑哦。