projects
/
platform
/
core
/
appfw
/
app-core.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix memory leak
[platform/core/appfw/app-core.git]
/
src
/
appcore-i18n.c
diff --git
a/src/appcore-i18n.c
b/src/appcore-i18n.c
index
ef2c95b
..
3cbefcc
100644
(file)
--- a/
src/appcore-i18n.c
+++ b/
src/appcore-i18n.c
@@
-33,17
+33,21
@@
static int _set;
void update_lang(void)
{
void update_lang(void)
{
+ char language[32];
char *lang;
char *r;
lang = vconf_get_str(VCONFKEY_LANGSET);
if (lang) {
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) {
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);
}
}
free(lang);
}
@@
-68,9
+72,9
@@
void update_region(void)
setenv("LC_MEASUREMENT", region, 1);
setenv("LC_IDENTIFICATION", region, 1);
r = setlocale(LC_ALL, "");
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);
_DBG("*****appcore setlocale=%s\n", r);
- }
+
free(region);
}
}
free(region);
}
}
@@
-78,6
+82,7
@@
void update_region(void)
static int __set_i18n(const char *domain, const char *dir)
{
char *r;
static int __set_i18n(const char *domain, const char *dir)
{
char *r;
+ char *lan;
if (domain == NULL) {
errno = EINVAL;
if (domain == NULL) {
errno = EINVAL;
@@
-87,30
+92,27
@@
static int __set_i18n(const char *domain, const char *dir)
r = setlocale(LC_ALL, "");
/* if locale is not set properly, try again to set as language base */
if (r == NULL) {
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");
_ERR("appcore: setlocale() error");
- }
- //_retvm_if(r == NULL, -1, "appcore: setlocale() error");
r = bindtextdomain(domain, dir);
r = bindtextdomain(domain, dir);
- if (r == NULL)
{
+ if (r == NULL)
_ERR("appcore: bindtextdomain() error");
_ERR("appcore: bindtextdomain() error");
- }
- //_retvm_if(r == NULL, -1, "appcore: bindtextdomain() error");
r = textdomain(domain);
r = textdomain(domain);
- if (r == NULL)
{
+ if (r == NULL)
_ERR("appcore: textdomain() error");
_ERR("appcore: textdomain() error");
- }
- //_retvm_if(r == NULL, -1, "appcore: textdomain() error");
return 0;
}
return 0;
}
-
EXPORT_API int appcore_set_i18n(const char *domainname, const char *dirname)
{
int r;
EXPORT_API int appcore_set_i18n(const char *domainname, const char *dirname)
{
int r;