支持Unicode并不意味著應(yīng)用是國際化的
John O'Conner在他的最新Blog中介紹了在使用Unicode[1]進(jìn)行軟件國際化的過程中普遍存在的一種誤解,希望大家對有些啟示。(2008.10.14最后更新)多年以來,我已經(jīng)幫助了許多組織去國際化它們的軟件產(chǎn)品。最普遍的誤解之一就是Unicode會如何幫助它們的產(chǎn)品。有時候,客戶會錯誤地相信,支持Unicode對于國際化他們的產(chǎn)品是足夠的了。有時,他們相信"支持"Unicode只是一個單純的是或不是,行或不行的能力問題,而不認(rèn)為是在不同的場合和層次中去實現(xiàn)對Unicode的支持。
Unicode是一個字符編碼標(biāo)準(zhǔn)。它是一個很大的標(biāo)準(zhǔn),有著許多的細(xì)微差別。你的產(chǎn)品可使用許多不同的方法去實現(xiàn)"Unicode支持"。其結(jié)果就是,那些產(chǎn)品將能以不同,但通常不會是所有的方式去操縱,處理,存儲,甚至可能是展示世界上的文本。你的產(chǎn)品支持Unicode的能力并不是二元(是或不是)的;相反,你要理解到,產(chǎn)品是在各種不同層次上實現(xiàn)"Unicode支持"的。在多數(shù)簡單的情況下,你的產(chǎn)品只需正確地存儲并獲取Unicode字符。在一種更復(fù)雜的層次下,你的產(chǎn)品可能要能夠存儲,查詢或展示Unicode字符。再說一次,產(chǎn)品"支持"Unicode的能力并不能由一個單純的是或不是的答案去評判。一般來說,產(chǎn)品會以某些方式,而不是別的什么方式,去支持Unicode。
哪怕是在最復(fù)雜的層次中實現(xiàn)了Unicode支持,也不意味著你的產(chǎn)品是國際化的。國際化是使一個軟件代碼庫易于本地化的過程。國際化過程會創(chuàng)建一個產(chǎn)品,該產(chǎn)品沒有針對某個單一文化或語言的特殊偏見。該產(chǎn)品可對特定文化進(jìn)行本地化。支持Unicode是國際化工作的一個關(guān)鍵組成部分,但它也僅僅只是一個組成部分罷了。與支持Unicode一樣,你的國際化支持也有著在不同層次上的復(fù)雜度與能力。
概述之,產(chǎn)品可用不同的方式去支持Unicode。支持Unicode通常并不表示你的產(chǎn)品有能力去完成各種可能的針對Unicode的功能。相反,"支持"常意味著你可以使用Unicode,而不是別的什么東西,去做某些事情。另外,對Unicode的支持并不是國際化你的產(chǎn)品的唯一步驟。 Unicode只是其中的一個步驟,重要的一步罷了。國際化是創(chuàng)建一個易于進(jìn)行本地化的產(chǎn)品的過程,這樣的產(chǎn)品消除了文化偏見,以便在對其進(jìn)行了本地化之后仍能夠很容易地去支持另一種文化或地域。你可將Unicode作為國際化工作的一個步驟,但Unicode本身并不能創(chuàng)建一個國際化產(chǎn)品。
如果你有問題關(guān)于Unicode如何才能幫助你的產(chǎn)品,請聯(lián)系我或留下評論。如果我能幫忙,就會回復(fù)。如果我不能,我也知道誰能。
譯注
[1]Unicode是一個字符集標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)為全球書面和口頭語言,計算機(jī)平臺,或應(yīng)用程序所使用的每個字符分配了一個獨一無二的數(shù)值。Unicode包含了其它有限字符集所使用的全部字符。在Unicode之前,小字符集彼此之間分配的字符數(shù)值是不同的。Unicode統(tǒng)一了所有的其它字符集;每個字符擁有它自己的,唯一的數(shù)值。
P.S. 這段Unicode的簡介也出自于Conner的一篇Blog--What is Unicode。