国际化是指在设计软件,将软件与特定语言及地区脱钩的过程。当软件被移植到不同的语言及地区时,软件本身不用做内部工程上的改变或修正。本地化则是指当移植软件时,加上与特定区域设置有关的信息和翻译文件的过程。
国际化和本地化之间的区别虽然微妙,但却很重要。国际化意味着产品有适用于任何地方的“潜力”;本地化则是为了更适合于“特定”地方的使用,而另外增添的特色。用一项产品来说,国际化只需做一次,但本地化则要针对不同的区域各做一次。这两者之间是互补的,并且两者合起来才能让一个系统适用于各地。
基于他们的英文单字长度过长,常被分别简称成i18n(18意味着在“internationalization”这个单字中,i和n之间有18个字母)及L10n。使用大写的L以利区分i18n中的i和易于分辨小写l与1。
在如微软及IBM等企业中,则会使用全球化(英文:globalization)来表示此两者的合称。[1][2]在英文中,也会使用g11n做为简称。也有使用缩写GILT(globalization、internationalization、localization和translation),即“全球化、国际化、本地化和翻译”[3]。
国际化与本地化工作的焦点包括:
语言电子文件字母。当前大部分的系统都采用Unicode为标准来解决字符编码。不同的数字命名系统。书写方向。譬如德语是从左到右,而波斯语、希伯来语和阿拉伯语是由右到左。相同语言在不同地区的拼法差异,如美国英语、加拿大英语使用localization,而英国英语和澳洲英语使用localisation。文件处理上的差异,如某些文字存在大小写,其它则否。字母顺序。文字的图像表示(打印物、内含在线图片)。读法(音频)视频的字幕文化图片和颜色:这牵涉到理解和文化适宜的议题。名字和称谓政府给定的编码(如美国的社会安全码,英国的National Insurance number,爱沙尼亚的Isikukood及其它各国的身份证号码)和护照电话号码、地址和国际邮递区号货币(符号、货币标志的位置)度量衡纸张大小书写习惯日期跟时间的格式,包含各式日历。时区(在国际场合会使用世界标准时间)数字格式(小数点、分隔点的位置、分隔所用的字符)产品和服务所要面向的法规
只属于本地化的主题有:
困难[编辑]
开发软件时,国际化和本地化对开发者是一个有挑战性的任务,特别是当软件当初设计时没有考虑这个问题时。通常作法是将文本和其他环境相关的资源与程序代码相分离。这样在理想的情况下,应对变化的环境时无需修改代码,只要修改资源,从而显著简化了工作。
开发团队需要人了解其他语言和文化;而这样的人才,可能难以寻觅。而且资源的复制也可能成为维护恶梦。例如,如果某个语言中显示给用户的信息变化了,其他的翻译版本都要随之变化。Gettext之类软件库有助于解决这一问题。
区域设置(locale)[编辑]
主条目:区域设置
计算机中一套定义用户的语言、国家和用于定义用户希望在其用户界面上看到的各种可以改变的选择的参数集合。通常一个 locale 标识符至少包括一个语言标识符和一个区域标识符。
在 UNIX 和 Windows 中,locale 的控制是不同的。在 UNIX 下,通常通过环境变量来控制 locale。这些环境变量包括:LANG, LC_ALL, LC_CTYPE, LC_TIME, 等等。你可以通过改变这些环境变量来控制你的程序或者命令所表现出来的 locale,前提是这些程序或者命令必须是已经被国际化的和本地化的。在 Windows 下,你可以通过改变控制面板上的“语言/区域”中的区域的值来设定 Windows 的当前用户的 locale。
++++++++++++++++++
国際化(アメリカ英語: internationalization イギリス英語: internationalisation、i18n) は、ソフトウェアに技術的な変更を加えることなく多様な言語や地域に適合できるようにする、ソフトウェア設計の工程である。
地域化(アメリカ英語: localization イギリス英語: localisation、L10N)は、地域固有の構成部品や翻訳テキストを追加することによって、ソフトウェアを特定の地域や言語に適合させる工程である。
かつては、ソフトウェアの地域化や多言語化のために必要に応じて技術的な変更が行われてきた。しかし、このようなやり方ではソフトウェアの規模拡大や対応する言語が多くなるに従い、開発や保守に多くの時間と費用がかかるため対応が難しい。1990年代にプログラミング言語やオペレーティングシステムの国際化対応が標準化されると、ソフトウェアを予め国際化することにより、地域固有データの追加や最小限の変更で地域化が行われるようになった。
両者の概念は時々集合的にグローバライゼーション (アメリカ英語: globalization、G11N) と呼ばれる。ただし、この言葉はソフトウェア工学の範囲を越えて社会的な国際化の意味で使われることも多い。
i18n[編集]
i18nは internationalization を省略した記述法(ヌメロニム)である。読む際には元の internationalization に読み替えたり、i-eighteen-n(アイ エイティーン エヌ)などと呼んだりする。日本においては、「あいいちはちえぬ」「あいじゅうはちえぬ」と呼んだり、「国際化」に読み替えたりすることもある。
i18n の18は、internationalization の先頭の i と語尾の n の間に nternationalizatio の18文字があることに起因する。1970年代か1980年代かにDECで作られた用法といわれる[1]。大文字の I は数字の 1 と間違いやすいので一般的には小文字の i が使用される。
「地域化」は同様にたびたび L10N と略される(一般的に小文字の l は数字の 1 と間違いやすいので大文字の L が使用される)。「母国語対応」あるいは「現地語対応」(英語: national language support あるいは native language support、略語:NLS)と言う場合もある。
国際化の対象項目[編集]
一般的な国際化の対象項目を以下にあげる。
文字セット(標準の文字コードなど)文字の方向性(左から右へ、右から左へ、左に向かって上から下へ、他)文言書式数値(小数点の文字、桁区切りの文字、区切る桁数など)日時(年月日の表記の仕方、イスラム暦/グレゴリオ暦/ユダヤ暦/和暦など使用する暦の違い、他)日時情報の時差通貨情報
システム側の対応状況[編集]
Java地域化に関係するクラスを標準で装備。(java.util.Locale、java.text.DateFormat、java.text.NumberFormat など)POSIX国際化機能の標準化X/OpenXPG国際化モデルX Window SystemX Version 11 Release 5 (X11R5) で国際化機能を実装gettextプログラム中の文字列を地域化するのを支援するツール。
Comments