如何创建新的系统区域设置

Tri*_*rby 10 locale

所以我想创建一种具有公制/SI 测量、A4 纸张尺寸、ISO 日期格式等的国际美国英语语言环境。

据我了解,语言环境在/usr/share/i18n/locales. 我是否可以将语言环境放在此处并在选择语言环境时被识别?我会为这个语言环境命名文件吗?在哪里可以找到有关各种设置的文件格式和有效值的信息?

Dav*_*lla 11

我们在 wiki 页面上有描述如何向 Ubuntu 添加新语言的文档。简而言之:

  1. 选择语言环境的名称。格式为language_REGION@modifier,其中语言ISO 639-2 两字母代码(如果前者不可用,则为三字母代码),REGIONISO 3166 代码,表示使用该语言的地区,修饰符没有设置语法并可用于指定语言环境的高级用途(例如不同的脚本)。大多数语言环境不需要修饰符。

    • 示例:bn_IN 是印度孟加拉语的语言环境,it_CH 是瑞士意大利语的语言环境。
  2. 创建一个具有该名称的文件。选择名称后,您必须使用该名称创建一个文件,该文件将包含您的语言环境的定义。请注意,如果您的语言在不同地区使用,您可能需要创建不同的文件,每个地区一个。

    • 示例:ca_AD、ca_ES、ca_FR、ca_IT 是安道尔、西班牙、法国和意大利地区使用的加泰罗尼亚语的语言环境定义。
  3. 定义语言环境。此时,您必须使用您的语言定义填充文件。语言环境定义文件有特定的语法。请参阅下面的其他资源以了解此语法以及如何定义新的语言环境。查看glibc 源中可用的语言环境文件有助于了解格式。还要记住重用:使用 copy 语句来包含来自具有相同内容的语言环境的部分。

  4. 测试语言环境定义。一旦您的语言环境文件准备就绪,您应该在本地测试它们以确保它们是正确的。基本步骤是:

    • 将文件复制到/usr/local/share/i18n/locales/

    • 运行以下命令以生成应用程序使用的二进制文件,并进行实际测试。

        localedef -i inputfile -c -f <charset> <locale>
      
      Run Code Online (Sandbox Code Playgroud)

    示例(使用 date 命令测试阿斯图里亚斯语言环境):

     cp ast_ES /usr/local/share/i18n/locales/ast_ES
     localedef -i ast_ES -c -f ISO-8859-15 ast_ES
     LANG=ast_ES date
    
    Run Code Online (Sandbox Code Playgroud)

有关创建 glibc 语言环境的其他资源:

  • 我用它来创建一个 en_SE 语言环境,以便 KDE5 和系统的其余部分具有相同的值。较新的 KDE 不支持 en_DK。 (2认同)