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

所以我想用Metric / SI测量,A4纸张尺寸,ISO日期格式等创建一种国际美国英语语言环境。

据我所知,语言环境在/usr/share/i18n/locales 。 我是否可以将语言环境置于此处并在选择语言环境时将其识别? 我会为此区域设置命名该文件? 我在哪里可以找到有关各种设置的文件格式和有效值的信息?

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

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

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

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

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

    • 将文件复制到/usr/share/i18n/locales/
    • 运行folowing命令生成应用程序使用的二进制文件,并进行实际测试。

       localedef -i inputfile -c -f   

    示例(使用date命令测试Asturian语言环境):

     cp ast_ES /usr/share/i18n/locales/ast_ES localedef -i ast_ES -c -f ISO-8859-15 ast_ES LANG=ast_ES date 

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

  • IBM Locale定义文档
  • glibc源中的可用语言环境文件 (单击blob链接以查看文件的内容)
  • 有关编写glibc语言环境文件的提示
  • localedef上的Glibc文档
  • 翻译Toolkit项目文档
  • 例子:
    • 提交普什图语区域
    • 提交Chuvash语言环境

编译您的语言环境:

 sudo localedef -i custom -f UTF-8 custom.UTF-8 -c -v 

其中custom是您的语言环境文件的名称,并复制/usr/share/i18n/locales/下的语言环境文件,而不是sudo locale-gen和modify /etc/environment~/.profile 。 做完!!!

 What would I name the file for this locale? 

你可以给你当地的任何名字

 Would I be able to put the locale in here and have it be recognized when choosing a locale? 

你需要在/etc/environment~/.profile提到自定义语言/etc/environment

 Where could I find information on file format and valid values for the various settings? 

您可以参考此链接以获取更多信息: 如何自定义系统区域设置? 和http://lh.2xlibre.net/locales/