【问题标题】:Selecting message language in gcc and g++在 gcc 和 g++ 中选择消息语言
【发布时间】:2010-10-26 12:58:04
【问题描述】:

我在 Linux 上使用 gcc/g++,由于我的安装是西班牙语(我的母语),gcc 以西班牙语打印警告和错误。我宁愿用英文阅读它们,原因有两个:

  1. 谷歌搜索英文消息要容易得多。
  2. 西班牙语翻译或多或少有点可怕。

有什么帮助吗?

【问题讨论】:

    标签: gcc localization g++


    【解决方案1】:

    GCC 手册页的末尾包含对其语言环境变量的概述:

    • LC_CTYPE
    • LC_MESSAGES
    • LC_ALL

    这些环境变量控制 GCC 使用本地化信息的方式,允许 GCC 与不同的国家惯例一起工作。 GCC 检查区域设置类别LC_CTYPELC_MESSAGES(如果已配置为这样做)。这些语言环境类别可以设置为您的安装支持的任何值。一个典型的值是 en_GB.UTF-8 表示在英国以 UTF-8 编码的英语。

    LC_CTYPE 环境变量指定字符分类。 GCC 使用它来确定字符串中的字符边界;这对于一些包含引号和转义字符的多字节编码是必需的,否则这些字符会被解释为字符串结尾或转义。

    LC_MESSAGES 环境变量指定要在诊断消息中使用的语言。

    如果设置了LC_ALL环境变量,它会覆盖LC_CTYPE和LC_MESSAGES的值;否则,LC_CTYPELC_MESSAGES 默认为 LANG 环境变量的值。如果这些变量均未设置,则 GCC 默认为传统的 C 英语行为。

    我这样做:

    LC_MESSAGES=C gcc-command-here
    

    【讨论】:

    • 奇怪的 LC_MESSAGES=C 对 UTF-8 中报告的错误没有影响,而 LC_ALL=C 确实起到了作用,谢谢!
    【解决方案2】:
    【解决方案3】:

    要将 gcc 翻译更改为英文,必须将环境变量 LANG 设置为英文:

    $ export LANG=zh

    将其添加到您的 .profile 文件中,它将始终为英文

    【讨论】:

    • 或者直接在 shell 中工作时不那么干扰LANG=en <CMD> [ARGS...]
    • 为确保它适用于所有程序,区域设置应包含编码,并且它必须是生成的区域设置 - locale -a 中的列表之一。例如,en_US.UTF-8 通常是一个不错的选择,但即使生成也不能保证(参见树莓派)
    猜你喜欢
    • 2021-07-13
    • 2020-07-13
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多