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, "");
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)
_ERR("appcore: setlocale() error");