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

ill*_*ate 7 character-encoding locale

拱门维基页面说:

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

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

Jör*_*tag 9

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

\n

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

\n

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

\n

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

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

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

\n

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

\n


MC6*_*020 7

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

\n

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

\n
fr_FR.ISO-8859-1\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
fr_FR.ISO-8859-1@euro\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

  • 这读起来有些令人困惑。如果我理解正确的话,你是说“fr_FR.ISO-8859-15”会在欧元存在之前使用,而“fr_FR.ISO-8859-15@euro”会在欧元出现之后使用。但是,[ISO-8859-15](https://wikipedia.org/wiki/ISO/IEC_8859-15)只是在欧元之后创建的,这就是这种字符编码的全部意义。它主要只是[ISO-8859-1](https://wikipedia.org/wiki/ISO/IEC_8859-1)和[货币符号](https://wikipedia.org/wiki/Currency_sign_(typography)) “¤” 替换为欧元符号“€”。 (2认同)