Support language change in runtime
[platform/core/uifw/inputmethod-setting.git] / im_setting_list / input_method_setting_list_popup_view.cpp
index 300a95d..b50caab 100644 (file)
@@ -24,8 +24,7 @@
 #include <algorithm>
 #include <inputmethod_manager.h>
 
-#define IM_SETTING_LIST_POPUP_VIEW_TITLE          dgettext(PACKAGE, "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB")
-#define IM_SETTING_SELECT_KEYBOARD                dgettext(PACKAGE, "IDS_IME_BODY_SELECT_KEYBOARD")
+#define IM_SETTING_LIST_POPUP_VIEW_TITLE          "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
 
 static std::vector<ime_info_s>      g_active_ime_info_list;
 static Elm_Genlist_Item_Class       *itc_im_list = NULL;
@@ -188,6 +187,13 @@ static void im_setting_list_ime_sel_cb(void *data, Evas_Object *obj, void *event
     ecore_idler_add(_ime_select_idler_cb, ad);
 }
 
+static void gl_lang_changed(void *data, Evas_Object *obj, void *event_info)
+{
+    im_setting_list_load_active_ime_info();
+
+    elm_genlist_realized_items_update(obj);
+}
+
 static Evas_Object *im_setting_list_genlist_create(appdata *ad, Evas_Object* parent, Evas_Object* conform)
 {
     if (!parent)
@@ -204,6 +210,7 @@ static Evas_Object *im_setting_list_genlist_create(appdata *ad, Evas_Object* par
     evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
     evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
     elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE);
+    evas_object_smart_callback_add(genlist, "language,changed", gl_lang_changed, NULL);
     evas_object_show(genlist);
     return genlist;
 }
@@ -348,7 +355,7 @@ static Evas_Object *im_setting_list_popup_create(void *data)
     Evas_Object *popup = elm_popup_add(parentWin);
     elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
     evas_object_smart_callback_add(popup, "block,clicked", im_setting_list_popup_block_clicked_cb, data);
-    elm_object_part_text_set(popup, "title,text", IM_SETTING_LIST_POPUP_VIEW_TITLE);
+    elm_object_domain_translatable_part_text_set(popup, "title,text", PACKAGE, IM_SETTING_LIST_POPUP_VIEW_TITLE);
     elm_object_style_set(popup, "theme_bg");
     eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, im_setting_list_popup_view_back_cb, data);
     ad->popup = popup;
@@ -364,7 +371,7 @@ static Evas_Object *im_setting_list_popup_create(void *data)
 static char *
 im_setting_list_default_keyboard_title_text_get(void *data, Evas_Object *obj, const char *part)
 {
-    return strdup(IM_SETTING_LIST_POPUP_VIEW_TITLE);
+    return strdup(dgettext(PACKAGE, IM_SETTING_LIST_POPUP_VIEW_TITLE));
 }
 
 static Eina_Bool _pop_cb(void *data, Elm_Object_Item *it)
@@ -427,7 +434,7 @@ static void im_setting_list_screen_create(void *data)
 
     Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->naviframe, NULL, NULL, NULL, genlist, "empty");
 #ifdef _WEARABLE
-    elm_atspi_accessible_name_set(navi_it, IM_SETTING_LIST_POPUP_VIEW_TITLE);
+    elm_atspi_accessible_name_set(navi_it, dgettext(PACKAGE, IM_SETTING_LIST_POPUP_VIEW_TITLE));
 #endif
     elm_naviframe_item_pop_cb_set(navi_it, _pop_cb, ad);
 }