X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fwidget-i18n.c;h=c739dd8e6d57736c11530f45644e952929325cf0;hb=c8b6d7c69aa6227d6f288349379c89f9a20fb48e;hp=91804e264b0bd02a2052c2c39d366d177dd5b563;hpb=f23e0188ab8db88c7d98391f1e4b451a8cd02951;p=platform%2Fcore%2Fappfw%2Fappcore-widget.git diff --git a/src/widget-i18n.c b/src/widget-i18n.c index 91804e2..c739dd8 100755 --- a/src/widget-i18n.c +++ b/src/widget-i18n.c @@ -31,6 +31,8 @@ #include "widget-log.h" #include "widget-private.h" +#define PATH_LOCALE "locale" + void _update_lang(void) { char *r; @@ -80,10 +82,27 @@ void _update_region(void) } } +static int __get_locale_resource_dir(char *locale_dir, int size) +{ + const char *res_path; + + res_path = aul_get_app_resource_path(); + if (res_path == NULL) { + _E("Failed to get resource path"); + return -1; + } + + snprintf(locale_dir, size, "%s" PATH_LOCALE, res_path); + if (access(locale_dir, R_OK) != 0) + return -1; + + return 0; +} + static int __set_i18n(const char *domain) { char *r; - char dirname[PATH_MAX] = {0, }; + char locale_dir[PATH_MAX]; char *lang; if (domain == NULL) { @@ -91,8 +110,8 @@ static int __set_i18n(const char *domain) return -1; } - snprintf(dirname, PATH_MAX, "%s/res/locale", aul_get_app_root_path()); - _D("locale dir: %s", dirname); + __get_locale_resource_dir(locale_dir, sizeof(locale_dir)); + _D("locale dir: %s", locale_dir); r = setlocale(LC_ALL, ""); /* if locale is not set properly, try again to set as language base */ @@ -108,7 +127,7 @@ static int __set_i18n(const char *domain) if (r == NULL) _E("appcore: setlocale() error"); - r = bindtextdomain(domain, dirname); + r = bindtextdomain(domain, locale_dir); if (r == NULL) _E("appcore: bindtextdomain() error");