语言环境名称中的“修饰符”是什么?

语言环境名称中的“修饰符”是什么?

拱形维基页面说:

语言环境名称通常采用以下形式language[_territory][.codeset][@modifier]

不幸的是它没有说明什么是“修饰符”。
那个“修饰符”是什么?或者有该“修饰符”的文档吗?

答案1

修饰语没有单一的统一含义。例如,在 2000 年代初期,当欧盟部分地区从本国货币过渡到欧元时,修饰符@euro被用来指示首选货币应该是什么。

例如,在德国,如果您将区域设置设置为de_DE.UTF-82000 年代初,则使用区域设置信息来确定默认货币的银行程序可能会选择 DM 作为默认货币,但如果您将区域设置更改为de_DE.UTF-8@euro,则默认货币为 DM可能是欧元。

修饰符的另一种可能用途可能是一个正在测量系统之间转换的国家,在那里你可以有类似@si和 的东西@us。在德国,电话号码的首选格式最近发生了一些变化(即在 Unix 的生命周期中),这是语言环境的一部分(或更准确地说,是 GNU 特定的扩展),因此可以想象是控制是否使用旧格式或新格式的修饰符。

此外,在德国,有两种不同的广泛使用的文本排序顺序:

  • DIN 5007-1 将变音符号视为其基本字母(即ä与 排序相同a),将升号视为双 s(即与ß排序相同ss)。
  • “电话簿”风格将变音符号视为其“扩展”变体(即类似于äae

可以想象,这些变化可以使用修饰符来指定。

实际上,修饰符可用于指定语言、区域和代码集不够具体的任何情况,例如在一个使用相同语言的国家/地区有两种不同货币的情况。

答案2

@modifier 设置指定一个变体。编码集中的一个小补充。举个例子 :

欧洲国家长期以来一直依赖 ISO 定义。例如,一些法语(语言 fr,国家 FR)很可能通过以下方式将其代码集设置为 ISO-8859-1:

fr_FR.ISO-8859-1

然后是一种新的货币,欧元和相关的货币符号可以通过 Alt Gr E 提供,同时保留 ISO-8859-15 编码。

fr_FR.ISO-8859-1@euro

只需列出/usr/share/i18n/locales目录,您就会发现一些可用于某些 language_territory 对的其他变体(@latin、@cyrillic...)。

相关内容