设置单个程序执行的语言

CW *_* II 12 environment-variables locale

完整的 C++ i18n gettext() “hello world”示例。在执行程序之前使用 export 设置 LANG 环境变量(Linux):

export LANG=es_MX.utf8
./hellogt
Run Code Online (Sandbox Code Playgroud)

有没有办法在执行 hellogt 时设置语言,就像命令行参数一样?这对于测试程序很方便。

eph*_*ent 11

在 ksh、bash 和类似的 shell 中,

LANG=es_MX.utf8 ./hellogt
Run Code Online (Sandbox Code Playgroud)

LANG=es_MX.utf8只为调用而设置./hellogt

更可移植的是,有一个程序叫做 env

env LANG=es_MX.utf8 ./hellogt
Run Code Online (Sandbox Code Playgroud)

这将设置环境变量并运行指定的程序。这适用于所有 shell,包括csh和传统的sh(不支持第一种方法)。


小智 8

你的意思是这样的:

LANG=es_MX.utf8 ./hellogt
Run Code Online (Sandbox Code Playgroud)

? 或者您的意思是您想解析命令行 (argv),找到传入的语言,并将其传递给 setlocale?