Add translate localized text feature 77/68077/2 accepted/tizen/common/20160504.125308 accepted/tizen/ivi/20160503.093018 accepted/tizen/mobile/20160503.092925 accepted/tizen/tv/20160503.092945 accepted/tizen/wearable/20160503.092956 submit/tizen/20160503.003646
authorHyunho Kang <hhstark.kang@samsung.com>
Mon, 2 May 2016 06:10:46 +0000 (15:10 +0900)
committerHyunho Kang <hhstark.kang@samsung.com>
Mon, 2 May 2016 06:34:37 +0000 (15:34 +0900)
Change-Id: Iba312066d8cba9c946b5c81b0dbdc29b28ccde88
Signed-off-by: Hyunho Kang <hhstark.kang@samsung.com>
src/main.c
src/notification_service.c

index 7a2c470..05c4a7b 100755 (executable)
@@ -31,6 +31,7 @@
 #include <vconf.h>
 #include <Ecore.h>
 #include <dlog.h>
+#include <locale.h>
 
 #include "debug.h"
 #include "util.h"
 #include "notification_service.h"
 #include "badge_service.h"
 
+static void lang_key_changed_cb(keynode_t *node EINA_UNUSED, void *first)
+{
+       char *lang;
+       char *r;
+
+       lang = vconf_get_str(VCONFKEY_LANGSET);
+       if (lang) {
+               setenv("LANG", lang, 1);
+               setenv("LC_MESSAGES", lang, 1);
+               r = setlocale(LC_ALL, "");
+               if (r == NULL) {
+                       r = setlocale(LC_ALL, lang);
+                       if (r != NULL)
+                               DbgPrint("setlocale = %s", r);
+               }
+               DbgPrint("setlocale = %s", r);
+               free(lang);
+       }
+}
+
 static inline int app_create(void)
 {
        int ret;
 
+       ret = vconf_notify_key_changed(VCONFKEY_LANGSET, lang_key_changed_cb, NULL);
+       if (ret < 0)
+               DbgPrint("VCONFKEY_LANGSET notify key chenaged: %d\n", ret);
+
+       lang_key_changed_cb(NULL, NULL);
+
        ret = shortcut_service_init();
        if (ret < 0)
                DbgPrint("shortcut: %d\n", ret);
index f87dbb7..0a2913a 100755 (executable)
@@ -261,7 +261,7 @@ static int _add_noti(GVariant **reply_body, notification_h noti)
                return ret;
        }
 
-       body = notification_ipc_make_gvariant_from_noti(noti);
+       body = notification_ipc_make_gvariant_from_noti(noti, true);
        if (body == NULL) {
                ErrPrint("cannot make gvariant to noti");
                return NOTIFICATION_ERROR_OUT_OF_MEMORY;
@@ -328,7 +328,7 @@ static int _update_noti(GVariant **reply_body, notification_h noti)
        if (ret != NOTIFICATION_ERROR_NONE)
                return ret;
 
-       body = notification_ipc_make_gvariant_from_noti(noti);
+       body = notification_ipc_make_gvariant_from_noti(noti, true);
        if (body == NULL) {
                ErrPrint("cannot make gvariant to noti");
                return NOTIFICATION_ERROR_IO_ERROR;
@@ -390,7 +390,7 @@ int notification_load_noti_by_tag(GVariant *parameters, GVariant **reply_body)
                DbgPrint("notification_noti_get_by_tag ret : %d", ret);
                print_noti(noti);
 
-               *reply_body = notification_ipc_make_gvariant_from_noti(noti);
+               *reply_body = notification_ipc_make_gvariant_from_noti(noti, true);
                notification_free(noti);
 
                if (*reply_body == NULL) {
@@ -421,7 +421,7 @@ int notification_load_noti_by_priv_id(GVariant *parameters, GVariant **reply_bod
                DbgPrint("notification_noti_get_by_priv_id ret : %d", ret);
                print_noti(noti);
 
-               *reply_body = notification_ipc_make_gvariant_from_noti(noti);
+               *reply_body = notification_ipc_make_gvariant_from_noti(noti, true);
                notification_free(noti);
 
                if (*reply_body == NULL) {
@@ -460,7 +460,7 @@ int notification_load_grouping_list(GVariant *parameters, GVariant **reply_body)
                list_iter = notification_list_get_head(get_list);
                do {
                        noti = notification_list_get_data(list_iter);
-                       body = notification_ipc_make_gvariant_from_noti(noti);
+                       body = notification_ipc_make_gvariant_from_noti(noti, true);
                        g_variant_builder_add(builder, "(v)", body);
 
                        list_iter = notification_list_get_next(list_iter);
@@ -610,7 +610,7 @@ int notification_load_detail_list(GVariant *parameters, GVariant **reply_body)
                list_iter = notification_list_get_head(get_list);
                do {
                        noti = notification_list_get_data(list_iter);
-                       body = notification_ipc_make_gvariant_from_noti(noti);
+                       body = notification_ipc_make_gvariant_from_noti(noti, true);
                        if (body) {
                                g_variant_builder_add(builder, "(v)", body);
                                list_iter = notification_list_get_next(list_iter);