之前在很多地方都能见到I18N,特别是open source里面。I18N就是Internationalization的缩写,其原因是I和n之间一共有18个字母。
下面这些地方会需要I18N
- Displaying characters for the users' native languages.
- Inputing characters for the users' native languages.
- Handling files written in popular encodings that are used for the users' native languages.
- Using characters from the users' native languages for file names and other items.
- Printing out characters from the users' native languages.
- Displaying messages by the program in the users' native languages.
- Formatting input and output of numbers, dates, money, etc., in a way that obeys customs of the users' native cultures.
- Classifying and sorting characters, in a way that obey customs of the users' native cultures.
- Using typesetting and hyphenation rules appropriate for the users' native languages.
当然除了I18N还有L10N(localization) 和M17N (multilingualization),这3个之间有什么区别呢,举例说明。
L10N支持2种语言,英文和另外一种语言(例如中文);
I18N支持多种语言,但是同一时间只能是英文和一种选定的语言,例如英文+中文、英文+德文、英文+韩文等等;
M17N可以在同一时间支持多种语言,例如你可以在一个页面里看到中文、英文、德文和韩文。