void update_lang(void)
{
+ char language[32];
char *lang;
char *r;
lang = vconf_get_str(VCONFKEY_LANGSET);
if (lang) {
+ snprintf(language, sizeof(language), "%s:en_US:en_GB:en", lang);
+ setenv("LANGUAGE", language, 1);
setenv("LANG", lang, 1);
setenv("LC_MESSAGES", lang, 1);
r = setlocale(LC_ALL, "");
if (r == NULL) {
- r = setlocale(LC_ALL, vconf_get_str(VCONFKEY_LANGSET));
- _DBG("*****appcore setlocale=%s\n", r);
+ r = setlocale(LC_ALL, lang);
+ if (r != NULL)
+ _DBG("*****appcore setlocale=%s\n", r);
}
free(lang);
}
setenv("LC_MEASUREMENT", region, 1);
setenv("LC_IDENTIFICATION", region, 1);
r = setlocale(LC_ALL, "");
- if (r == NULL) {
+ if (r != NULL)
_DBG("*****appcore setlocale=%s\n", r);
- }
+
free(region);
}
}
static int __set_i18n(const char *domain, const char *dir)
{
char *r;
+ char *lan;
if (domain == NULL) {
errno = EINVAL;
r = setlocale(LC_ALL, "");
/* if locale is not set properly, try again to set as language base */
if (r == NULL) {
- r = setlocale(LC_ALL, vconf_get_str(VCONFKEY_LANGSET));
- _DBG("*****appcore setlocale=%s\n", r);
+ lan = vconf_get_str(VCONFKEY_LANGSET);
+ if (lan != NULL) {
+ r = setlocale(LC_ALL, lan);
+ _DBG("*****appcore setlocale=%s\n", r);
+ free(lan);
+ }
}
- if (r == NULL) {
+ if (r == NULL)
_ERR("appcore: setlocale() error");
- }
- //_retvm_if(r == NULL, -1, "appcore: setlocale() error");
r = bindtextdomain(domain, dir);
- if (r == NULL) {
+ if (r == NULL)
_ERR("appcore: bindtextdomain() error");
- }
- //_retvm_if(r == NULL, -1, "appcore: bindtextdomain() error");
r = textdomain(domain);
- if (r == NULL) {
+ if (r == NULL)
_ERR("appcore: textdomain() error");
- }
- //_retvm_if(r == NULL, -1, "appcore: textdomain() error");
return 0;
}
-
EXPORT_API int appcore_set_i18n(const char *domainname, const char *dirname)
{
int r;