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)
39 lang = vconf_get_str(VCONFKEY_LANGSET);
41 setenv("LANG", lang, 1);
42 setenv("LC_MESSAGES", lang, 1);
43 r = setlocale(LC_ALL, "");
45 r = setlocale(LC_ALL, lang);
47 _DBG("*****appcore setlocale=%s\n", r);
53 void update_region(void)
58 region = vconf_get_str(VCONFKEY_REGIONFORMAT);
60 setenv("LC_CTYPE", region, 1);
61 setenv("LC_NUMERIC", region, 1);
62 setenv("LC_TIME", region, 1);
63 setenv("LC_COLLATE", region, 1);
64 setenv("LC_MONETARY", region, 1);
65 setenv("LC_PAPER", region, 1);
66 setenv("LC_NAME", region, 1);
67 setenv("LC_ADDRESS", region, 1);
68 setenv("LC_TELEPHONE", region, 1);
69 setenv("LC_MEASUREMENT", region, 1);
70 setenv("LC_IDENTIFICATION", region, 1);
71 r = setlocale(LC_ALL, "");
73 _DBG("*****appcore setlocale=%s\n", r);
79 static int __set_i18n(const char *domain, const char *dir)
88 r = setlocale(LC_ALL, "");
89 /* if locale is not set properly, try again to set as language base */
91 r = setlocale(LC_ALL, vconf_get_str(VCONFKEY_LANGSET));
92 _DBG("*****appcore setlocale=%s\n", r);
95 _ERR("appcore: setlocale() error");
97 r = bindtextdomain(domain, dir);
99 _ERR("appcore: bindtextdomain() error");
101 r = textdomain(domain);
103 _ERR("appcore: textdomain() error");
108 EXPORT_API int appcore_set_i18n(const char *domainname, const char *dirname)
115 r = __set_i18n(domainname, dirname);
122 int set_i18n(const char *domainname, const char *dirname)
129 return __set_i18n(domainname, dirname);
132 EXPORT_API int appcore_get_timeformat(enum appcore_time_format *timeformat)
136 if (timeformat == NULL) {
141 r = vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, (int *)timeformat);
144 *timeformat = APPCORE_TIME_FORMAT_UNKNOWN;