【问题标题】:What is the correct environment variable to decide the display language?决定显示语言的正确环境变量是什么?
【发布时间】:2014-02-01 12:03:08
【问题描述】:

在编写程序时,什么是正确的环境变量来决定显示的菜单和对话语言?

qtikz 的实验表明LC_ALL 受到尊重(覆盖所有其他LC_ 变量)。但只要我有

LC_NUMERIC=en_US.UTF-8

qtikz 以英文显示其菜单。我觉得peculiar。但我不认为一个 Qt 程序在这方面是权威的。

我预计LANG 会有一些influence

在没有 LC_ALL 和其他 LC_* ( LC_COLLATE 、 LC_CTYPE 、 LC_MESSAGES 、 LC_MONETARY 、 LC_NUMERIC 、 LC_TIME ) 环境变量的情况下,该变量应确定母语、当地习俗和编码字符集的区域设置类别。应用程序可以使用它来确定用于错误消息和说明、整理顺序、日期格式等的语言。

“This can be used”是指应该选择LANG来设置显示语言,还是可以使用“this variables”?我的第一个猜测是,LC_MESSAGES 设置了菜单和对话框,但在我的实验中没有。

或者是否有不同的方法,大​​概涉及环境变量?

【问题讨论】:

    标签: unix localization posix lang


    【解决方案1】:

    对于合适的类别,LC_ALL 优先于 LC_...,而后者又优先于 LANG。从您的链接:


    在没有 LC_ALL 和其他 LC_*(LC_COLLATE、LC_CTYPE、LC_MESSAGES、LC_MONETARY、LC_NUMERIC、LC_TIME)环境变量的情况下,该变量应确定本地语言、当地习俗和编码字符集的区域设置类别。应用程序可以使用它来确定用于错误消息和说明、整理顺序、日期格式等的语言。

    所以 LANG 仅作为最后的手段使用。关于 LC_MESSAGES:

    LC_MESSAGES
    该变量应确定用于处理肯定和否定响应的语言环境类别以及编写消息的语言和文化约定。 [...] 此变量的其他语义(如果有)是实现定义的。

    由于对话框和菜单文本是程序消息,它们应该受到 LC_MESSAGES 类别的影响,除非设置了 LC_ALL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-22
      • 1970-01-01
      • 2021-12-18
      • 1970-01-01
      • 2010-10-31
      • 1970-01-01
      • 2018-02-17
      相关资源
      最近更新 更多