在 Oracle Solaris 中进行应用程序国际化和本地化

退出打印视图

更新时间: 2014 年 7 月
 
 

语言环境函数

以下是与系统语言环境相关的函数:

setlocale()

设置程序语言环境

localelist()

查询已安装的语言环境

localelistfree()

释放与 localelist() 调用关联的内存

localelist() 函数用于查询系统上安装的语言环境。有关如何在 Oracle Solaris 系统上安装其他语言环境的信息,请参见International Language Environments Guide for Oracle Solaris 11.2

有关更多信息,请参见 setlocale(3C)、localelist(3C)、localelistfree(3C)、locale_alias(5)、langinfo.h(3HEAD)、nl_types.h(3HEAD) 和 environ(5) 手册页。

示例 2-1  设置程序的语言环境

以下代码片段说明如何将语言环境设置为 en_US.UTF-8

#include <locale.h>
      :
(void) setlocale(LC_ALL, "en_US.UTF-8");

注 -  如果要使用用户环境中的语言环境信息,将一个空字符串 ("") 作为参数传递给 setlocale() 函数。有关信息,请参见 setlocale(3C) 手册页和 environ(5) 手册页。
示例 2-2  查询程序的语言环境

以下代码片段说明如何查询当前语言环境。

   
#include <locale.h>
      :
char *locale;
      :
locale = setlocale(LC_ALL, NULL);

在此例中,locale 变量设置为程序的当前语言环境。

示例 2-3  使用用户环境中的语言环境设置

以下代码片段说明如何设置 env_locale 变量以使用用户环境中的语言环境设置。

   
#include <locale.h>
      :
char *env_locale;
env_locale = setlocale(LC_ALL, "");

例如,如果用户环境中的语言环境为 es_ES.UTF-8,则 env_locale 变量将设置为 es_ES.UTF-8


注 -  当此环境针对不同语言环境类别(也称复合语言环境)设置了不同值时,如果调用类别为 LC_ALL 的函数 setlocale,将返回一个字符串,其中包含针对所有类别的值(用斜杠字符 "/" 分隔)。例如:
"/es_ES.UTF-8/es_ES.UTF-8/es_ES.UTF-8/es_ES.UTF-8/es_ES.UTF-8/de_DE.UTF-8"

此字符串包括类别 LC_CTYPELC_NUMERIC,LC_TIMELC_COLLATELC_MONETARYLC_MESSAGES,其中,LC_MESSAGES 在此环境中已设置为 de_DE.UTF-8