4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Jayoun Lee <airjany@samsung.com>, Sewook Park <sewook7.park@samsung.com>, Jaeho Lee <jaeho81.lee@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
30 #include "appcore-internal.h"
34 void update_lang(void)
40 lang = vconf_get_str(VCONFKEY_LANGSET);
42 snprintf(language, sizeof(language), "%s:en_US:en_GB:en", lang);
43 setenv("LANGUAGE", language, 1);
44 setenv("LANG", lang, 1);
45 setenv("LC_MESSAGES", lang, 1);
46 r = setlocale(LC_ALL, "");
48 r = setlocale(LC_ALL, lang);
50 _DBG("*****appcore setlocale=%s\n", r);
56 void update_region(void)
61 region = vconf_get_str(VCONFKEY_REGIONFORMAT);
63 setenv("LC_CTYPE", region, 1);
64 setenv("LC_NUMERIC", region, 1);
65 setenv("LC_TIME", region, 1);
66 setenv("LC_COLLATE", region, 1);
67 setenv("LC_MONETARY", region, 1);
68 setenv("LC_PAPER", region, 1);
69 setenv("LC_NAME", region, 1);
70 setenv("LC_ADDRESS", region, 1);
71 setenv("LC_TELEPHONE", region, 1);
72 setenv("LC_MEASUREMENT", region, 1);
73 setenv("LC_IDENTIFICATION", region, 1);
74 r = setlocale(LC_ALL, "");
76 _DBG("*****appcore setlocale=%s\n", r);
82 static int __set_i18n(const char *domain, const char *dir)
92 r = setlocale(LC_ALL, "");
93 /* if locale is not set properly, try again to set as language base */
95 lan = vconf_get_str(VCONFKEY_LANGSET);
97 r = setlocale(LC_ALL, lan);
98 _DBG("*****appcore setlocale=%s\n", r);
103 _ERR("appcore: setlocale() error");
105 r = bindtextdomain(domain, dir);
107 _ERR("appcore: bindtextdomain() error");
109 r = textdomain(domain);
111 _ERR("appcore: textdomain() error");
116 EXPORT_API int appcore_set_i18n(const char *domainname, const char *dirname)
123 r = __set_i18n(domainname, dirname);
130 int set_i18n(const char *domainname, const char *dirname)
137 return __set_i18n(domainname, dirname);
140 EXPORT_API int appcore_get_timeformat(enum appcore_time_format *timeformat)
144 if (timeformat == NULL) {
149 r = vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, (int *)timeformat);
152 *timeformat = APPCORE_TIME_FORMAT_UNKNOWN;