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)
36 char *lang = vconf_get_str(VCONFKEY_LANGSET);
38 setenv("LANG", lang, 1);
39 setenv("LC_MESSAGES", lang, 1);
40 char *r = setlocale(LC_ALL, "");
42 r = setlocale(LC_ALL, lang);
44 _DBG("*****appcore setlocale=%s\n", r);
51 void update_region(void)
56 region = vconf_get_str(VCONFKEY_REGIONFORMAT);
58 setenv("LC_CTYPE", region, 1);
59 setenv("LC_NUMERIC", region, 1);
60 setenv("LC_TIME", region, 1);
61 setenv("LC_COLLATE", region, 1);
62 setenv("LC_MONETARY", region, 1);
63 setenv("LC_PAPER", region, 1);
64 setenv("LC_NAME", region, 1);
65 setenv("LC_ADDRESS", region, 1);
66 setenv("LC_TELEPHONE", region, 1);
67 setenv("LC_MEASUREMENT", region, 1);
68 setenv("LC_IDENTIFICATION", region, 1);
69 r = setlocale(LC_ALL, "");
71 _DBG("*****appcore setlocale=%s\n", r);
77 static int __set_i18n(const char *domain, const char *dir)
86 r = setlocale(LC_ALL, "");
87 /* if locale is not set properly, try again to set as language base */
89 char *lang = vconf_get_str(VCONFKEY_LANGSET);
90 r = setlocale(LC_ALL, lang);
92 _DBG("*****appcore setlocale=%s\n", r);
99 _ERR("appcore: setlocale() error");
101 //_retvm_if(r == NULL, -1, "appcore: setlocale() error");
103 r = bindtextdomain(domain, dir);
105 _ERR("appcore: bindtextdomain() error");
107 //_retvm_if(r == NULL, -1, "appcore: bindtextdomain() error");
109 r = textdomain(domain);
111 _ERR("appcore: textdomain() error");
113 //_retvm_if(r == NULL, -1, "appcore: textdomain() error");
119 EXPORT_API int appcore_set_i18n(const char *domainname, const char *dirname)
126 r = __set_i18n(domainname, dirname);
133 int set_i18n(const char *domainname, const char *dirname)
140 return __set_i18n(domainname, dirname);
143 EXPORT_API int appcore_get_timeformat(enum appcore_time_format *timeformat)
147 if (timeformat == NULL) {
152 r = vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, (int *)timeformat);
155 *timeformat = APPCORE_TIME_FORMAT_UNKNOWN;