dan*_*car 30 locale localization internationalization
en_GB和en-GB?
ISO 639-1(语言)和ISO 3166(国家)组合是否有ISO名称?
Mih*_*ita 31
区域设置标识符有多个系统.其中许多乍一看是相似的,但是当你走得更深时却不是这样:
一些例子(塞尔维亚语 - 塞尔维亚语和拉丁语,日语和日语基本排序):
把它想象成谈论颜色的不同方式(RGB,CMYB,HSV,Pantone等)
因此,-与_没有任何意义,除非你指定什么是你所使用的环境.使用-和Java不会理解它,使用_和Windows将无法理解它.ICU(以及建立在它之上的系统)同时接受-和_,但产生_风格.
没有ISO涵盖语言国家的组合.但是有ISO涵盖了各个部分(语言,国家,脚本).ISO的确切版本还取决于用于区域设置标识符的系统.
一般来说,你应该同时接受_和-,并生成只有一个("在你接受什么样的自由和严格在你发出什么")(如ICU).
如果使用其他类型的区域设置标识符与系统进行通信,则必须映射到系统或从系统映射.这将迫使你使用_或-.一些映射将是有损的(没有办法在Windows,Linux中指定备用日历;或者在7岁以上的Java中使用备用排序或脚本等)并且可能无法进行往返(有点类似于转换RGB- CMYK).
补充:不仅系统之间的东西不同,而且它们可以及时改变.例如,Java 7增加了对sr_RS和脚本的支持,Windows不断增加对更多语言环境的支持,创建新国家(苏丹分裂,俄罗斯,塞尔维亚)或消失(东德,苏联,南斯拉夫)等.
对于内部表示,您可能希望选择能够代表所有内容的最强大的表示,即UTS-35/BCP 47(也由CLDR和ICU使用).
区域设置是语言和区域(通常是国家/地区)的组合.
分隔符可以是_或-,但推荐的是破折号.
您可能正在寻找使用ISO 639-1中的语言代码和ISO 3166-1 alpha-2的区域/国家代码(通常以大写字母书写)的BCP-47标准.
您可以在http://blog.i18n.ro/simplified-locale-codes/找到有关它们的更多信息.
| 归档时间: |
|
| 查看次数: |
8161 次 |
| 最近记录: |