这是非常多这个问题有一点信息。 我的目标是找出安装在系统中的语言。
以下命令
locale -a
显示所有语言(格式为en_AU.utf8)。 这似乎对应于/ usr / lib / locale的内容。
此外,调用
LANG=fr_FR.utf8 locale -ck LC_IDENTIFICATION
给出包含语言名称(在本例中为法语)的特定语言环境的信息。
这似乎是/usr/lib/locale/fr_FR.utf8/LC_IDENTIFICATION中包含的信息。
有没有一种方法(也许是一个API调用)来获取这个信息? 我查看了语言环境实用程序的源代码,但它使用了一个专用结构。
我想,你可以只使用getenv(3)
来获取环境变量,因此你可能想要传递变量的名字,比如:
char *s; s = getenv("LANG"); if (s == NULL) printf("LANG is not set"); else printf(s);
感谢Yasir。 这正是我想要的:
#include <langinfo.h> char *s; s = getenv("LANG"); if (s == NULL) printf("LANG is not set"); else { setlocale(LC_ALL, s); printf(nl_langinfo(_NL_IDENTIFICATION_LANGUAGE)); }