#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;
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)
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;
}
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;
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)
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);
}
#define IM_SETTING_LIST_PACKAGE PACKAGE
#define IM_SETTING_LIST_LOCALE_DIR tzplatform_mkpath(TZ_SYS_RO_APP, PACKAGE_NAME"/res/locale")
-#define IM_SETTING_LIST_TITLE dgettext(PACKAGE, "IDS_IME_BODY_KEYBOARD")
-#define IM_SETTING_LIST_KEYBOARD_HEADER dgettext(PACKAGE, "IDS_ST_HEADER_KEYBOARDS")
-#define IM_SETTING_LIST_POPUP_TITLE dgettext(PACKAGE, "IDS_ST_BODY_ATTENTION")
-#define IM_SETTING_LIST_POPUP_CANCEL dgettext(PACKAGE, "IDS_COM_SK_CANCEL_ABB")
-#define IM_SETTING_LIST_POPUP_ENABLE dgettext(PACKAGE, "IDS_ST_BUTTON_ENABLE")
-#define IM_SETTING_LIST_VIRTUAL_KEYBOARD dgettext(PACKAGE, "IDS_ST_HEADER_VIRTUAL_KEYBOARD")
-#define IM_SETTING_LIST_DEFAULT_KEYBOARD dgettext(PACKAGE, "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB")
-#define IM_SETTING_LIST_KEYBOARD_SETTING dgettext(PACKAGE, "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB")
-#define IM_SETTING_LIST_TURNON_KEYBOARD dgettext(PACKAGE, "IDS_ST_BUTTON_TURN_ON_KEYBOARD_ABB")
-#define IM_SETTING_LIST_TURNON dgettext(PACKAGE, "IDS_ST_BUTTON_TURN_ON_ABB3")
+#define IM_SETTING_LIST_TITLE "IDS_IME_BODY_KEYBOARD"
+#define IM_SETTING_LIST_KEYBOARD_HEADER "IDS_ST_HEADER_KEYBOARDS"
+#define IM_SETTING_LIST_POPUP_TITLE "IDS_ST_BODY_ATTENTION"
+#define IM_SETTING_LIST_POPUP_CANCEL "IDS_COM_SK_CANCEL_ABB"
+#define IM_SETTING_LIST_POPUP_ENABLE "IDS_ST_BUTTON_ENABLE"
+#define IM_SETTING_LIST_VIRTUAL_KEYBOARD "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+#define IM_SETTING_LIST_DEFAULT_KEYBOARD "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+#define IM_SETTING_LIST_KEYBOARD_SETTING "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+#define IM_SETTING_LIST_TURNON_KEYBOARD "IDS_ST_BUTTON_TURN_ON_KEYBOARD_ABB"
+#define IM_SETTING_LIST_TURNON "IDS_ST_BUTTON_TURN_ON_ABB3"
#define IM_SETTING_LIST_POPUP_TEXT dgettext(PACKAGE, "IDS_ST_POP_THIS_INPUT_METHOD_MAY_BE_ABLE_TO_COLLECT_ALL_THE"\
"_TEXT_YOU_TYPE_INCLUDING_PERSONAL_DATA_LIKE_PASSWORDS_AND"\
"_CREDIT_CARD_NUMBERS_MSG")
delete cb_data;
}
+static void set_popup_message(Evas_Object *obj, int index)
+{
+ char chFormatMsg[255] = {'\0'};
+ char chPopupMsg[255] = {'\0'};
+ snprintf(chFormatMsg, sizeof(chFormatMsg), "%s", IM_SETTING_LIST_POPUP_TEXT);
+ snprintf(chPopupMsg, sizeof(chPopupMsg), chFormatMsg, g_ime_info_list[index].label);
+ elm_object_text_set(obj, chPopupMsg);
+}
+
+static void popup_lang_changed(void *data, Evas_Object *obj, void *event_info)
+{
+ int index = (int)data;
+ set_popup_message(obj, index);
+}
+
static void im_setting_list_show_popup(void *data, Evas_Object *obj, popup_ok_cb ime_setting_list_ok_callback, popup_cancel_cb ime_setting_list_cancel_callback)
{
int index = (int)reinterpret_cast<long>(data);
Evas_Object *top_widget = elm_object_top_widget_get(obj);
Evas_Object *popup = elm_popup_add(top_widget);
elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
- elm_object_part_text_set(popup, "title,text", IM_SETTING_LIST_TURNON_KEYBOARD);
+ elm_object_domain_translatable_part_text_set(popup, "title,text", PACKAGE, IM_SETTING_LIST_TURNON_KEYBOARD);
+ evas_object_smart_callback_add(popup, "language,changed", popup_lang_changed, (void *)index);
- char chFormatMsg[255] = {'\0'};
- char chPopupMsg[255] = {'\0'};
- snprintf(chFormatMsg, sizeof(chFormatMsg), "%s", IM_SETTING_LIST_POPUP_TEXT);
- snprintf(chPopupMsg, sizeof(chPopupMsg), chFormatMsg, g_ime_info_list[index].label);
- elm_object_text_set(popup, chPopupMsg);
+ set_popup_message(popup, index);
popup_cb_data *cb_data = new popup_cb_data;
cb_data->popup = popup;
cb_data->data = data;
Evas_Object *btn_cancel = elm_button_add(popup);
- elm_object_text_set(btn_cancel, IM_SETTING_LIST_POPUP_CANCEL);
+ elm_object_domain_translatable_text_set(btn_cancel, PACKAGE, IM_SETTING_LIST_POPUP_CANCEL);
elm_object_part_content_set(popup, "button1", btn_cancel);
evas_object_smart_callback_add(btn_cancel, "clicked", ime_setting_list_cancel_callback, cb_data);
Evas_Object *btn_ok = elm_button_add(popup);
- elm_object_text_set(btn_ok, IM_SETTING_LIST_TURNON);
+ elm_object_domain_translatable_text_set(btn_ok, PACKAGE, IM_SETTING_LIST_TURNON);
elm_object_part_content_set(popup, "button2", btn_ok);
evas_object_smart_callback_add(btn_ok, "clicked", ime_setting_list_ok_callback, cb_data);
return naviframe;
}
+static void gl_lang_changed(void *data, Evas_Object *obj, void *event_info)
+{
+ /* Reload ime list for getting translated IME name */
+ im_setting_list_load_ime_info();
+
+ /* Set translated active IME name */
+ snprintf(item_text[0].sub_text, sizeof(item_text[0].sub_text), "%s", g_ime_info_list[g_active_ime_index].label);
+
+ elm_genlist_realized_items_update(obj);
+}
+
static Evas_Object *im_setting_list_genlist_create(appdata *ad)
{
Evas_Object *genlist = elm_genlist_add(ad->naviframe);
ad->main_circle_genlist = eext_circle_object_genlist_add(genlist, ad->circle_surface);
eext_rotary_object_event_activated_set(ad->main_circle_genlist, EINA_TRUE);
#endif
+ evas_object_smart_callback_add(genlist, "language,changed", gl_lang_changed, NULL);
evas_object_show(genlist);
return genlist;
}
if (!text)
return NULL;
if (!strcmp(part, "elm.text")) {
- return strdup(text);
+ return strdup(dgettext(PACKAGE, text));
}
return NULL;
}
static char *im_setting_list_genlist_title_label_get(void *data, Evas_Object *obj, const char *part)
{
if (!strcmp(part, "elm.text")) {
- return strdup(IM_SETTING_LIST_TITLE);
+ return strdup(dgettext(PACKAGE, IM_SETTING_LIST_TITLE));
}
return NULL;
}
!strcmp(part, "elm.text.main.left") ||
!strcmp(part, "elm.text.main") ||
!strcmp(part, "elm.text")) {
- return strdup(item_text->main_text);
+ return strdup(dgettext(PACKAGE, item_text->main_text));
}
if (!strcmp(part, "elm.text.sub") ||
!strcmp(part, "elm.text.sub.left.bottom") ||
!strcmp(part, "elm.text.multiline") ||
!strcmp(part, "elm.text.1") ||
!strcmp(part, "elm.text.2")) {
- return strdup(item_text->sub_text);
+ return strdup(dgettext(PACKAGE, item_text->sub_text));
}
return NULL;
}
!strcmp(part, "elm.text.main") ||
!strcmp(part, "elm.text") ||
!strcmp(part, "elm.text.1")) {
- return strdup(item_text->main_text);
+ return strdup(dgettext(PACKAGE, item_text->main_text));
}
return NULL;
}
im_setting_list_set_default_keyboard_item_sel_cb,
data);
+ elm_object_item_domain_text_translatable_set(item, PACKAGE, EINA_TRUE);
+
#ifdef _WEARABLE
if (g_ime_info_list.size() <= 1) {
LOGD("The number of IME : %zu\n", g_ime_info_list.size());
ELM_GENLIST_ITEM_NONE,
im_setting_list_keyboard_setting_item_sel_cb,
ad);
+ elm_object_item_domain_text_translatable_set(item, PACKAGE, EINA_TRUE);
elm_object_item_disabled_set(item, !(g_ime_info_list[g_active_ime_index].has_option));
NULL,
NULL);
elm_genlist_item_select_mode_set(group_header_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ elm_object_item_domain_text_translatable_set(group_header_item, PACKAGE, EINA_TRUE);
#endif
}
ad->genlist,
item_style);
+ elm_object_item_domain_text_translatable_set(nf_main_item, PACKAGE, EINA_TRUE);
+
elm_naviframe_item_title_enabled_set(nf_main_item, EINA_TRUE, EINA_TRUE);
elm_naviframe_item_pop_cb_set(nf_main_item, im_setting_list_navi_item_pop_cb, ad);
elm_object_content_set(ad->conform, ad->naviframe);
#define IM_SETTING_SELECTOR_PACKAGE PACKAGE
#define IM_SETTING_SELECTOR_LOCALE_DIR tzplatform_mkpath(TZ_SYS_RO_APP, PACKAGE_NAME"/res/locale")
-#define IM_SETTING_SELECTOR_TITLE dgettext(PACKAGE, "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB")
-#define IM_SETTING_SELECT_KEYBOARD dgettext(PACKAGE, "IDS_IME_BODY_SELECT_KEYBOARD")
+#define IM_SETTING_SELECTOR_TITLE "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+#define IM_SETTING_SELECT_KEYBOARD "IDS_IME_BODY_SELECT_KEYBOARD"
static std::vector<ime_info_s> g_ime_info_list;
static Elm_Genlist_Item_Class *itc_im_selector = NULL;
ad->popup = elm_popup_add(ad->win);
elm_popup_align_set(ad->popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
evas_object_smart_callback_add(ad->popup, "block,clicked", im_setting_selector_popup_block_clicked_cb, NULL);
- elm_object_part_text_set(ad->popup, "title,text", IM_SETTING_SELECTOR_TITLE);
+ elm_object_domain_translatable_part_text_set(ad->popup, "title,text", PACKAGE, IM_SETTING_SELECTOR_TITLE);
ad->naviframe = im_setting_selector_naviframe_create(ad->win);
ad->genlist = im_setting_selector_list_create(data);
if (APP_TYPE_NORMAL == ad->app_type) {
Evas_Object *btn = elm_button_add(ad->popup);
- elm_object_text_set(btn, IM_SETTING_SELECT_KEYBOARD);
+ elm_object_domain_translatable_text_set(btn, PACKAGE, IM_SETTING_SELECT_KEYBOARD);
elm_object_part_content_set(ad->popup, "button1", btn);
evas_object_smart_callback_add(btn, "clicked", im_setting_selector_select_keyboard_cb, ad);
}
static char *
im_setting_selector_title_text_get(void *data, Evas_Object *obj, const char *part)
{
- return strdup(IM_SETTING_SELECTOR_TITLE);
+ return strdup(dgettext(PACKAGE, IM_SETTING_SELECTOR_TITLE));
}
static Evas_Object *im_setting_selector_conform_create(Evas_Object *parentWin)
elm_naviframe_item_pop_cb_set(navi_it, _naviframe_pop_cb, ad);
#ifdef _WEARABLE
- elm_atspi_accessible_name_set(ad->naviframe, IM_SETTING_SELECTOR_TITLE);
+ elm_atspi_accessible_name_set(ad->naviframe, dgettext(PACKAGE, IM_SETTING_SELECTOR_TITLE));
#endif
}
#endif