static unsigned int get_ise_index (const String uuid);
static bool set_active_ise (const String &uuid, bool launch_ise);
static bool update_ise_list (std::vector<String> &list);
-static void update_ise_locale ();
+static void update_ise_locale (const char *lang = NULL);
#ifdef HAVE_NOTIFICATION
static void delete_notification (NotificationData *noti_data);
static void create_notification (NotificationData *noti_data);
static void show_ime_selector_notification (void);
#endif
-static void set_language_and_locale (void);
+static void set_language_and_locale (const char *lang_str);
static void app_control_launch (const char *app_id);
/////////////////////////////////////////////////////////////////////////////
}
#ifdef HAVE_VCONF
-static void update_ise_locale ()
+static void update_ise_locale (const char *language)
{
- char *lang_str = vconf_get_str (VCONFKEY_LANGSET);
- if (lang_str && _locale_string.compare(lang_str) == 0) {
- free (lang_str);
- return;
+ String strLang;
+
+ if (language) {
+ strLang = String (language);
}
+ else {
+ char *lang_str = vconf_get_str (VCONFKEY_LANGSET);
+ if (lang_str && _locale_string.compare(lang_str) == 0) {
+ free (lang_str);
+ return;
+ }
- LOGD ("update all ISE names according to display language\n");
- set_language_and_locale ();
+ strLang = String (lang_str);
+
+ if (lang_str) {
+ free (lang_str);
+ }
+ }
+
+ LOGD ("update all ISE names according to display language : %s\n", strLang.c_str ());
+ set_language_and_locale (strLang.c_str ());
bool need_to_init_db = false;
#ifdef HAVE_PKGMGR_INFO
_initialize_ime_info ();
}
- if (lang_str) {
- isf_db_update_disp_lang(lang_str);
- _locale_string = String (lang_str);
- free (lang_str);
+ if (strLang.length () > 0) {
+ isf_db_update_disp_lang (strLang.c_str ());
+ _locale_string = strLang;
}
}
*
* @return void
*/
-static void set_language_and_locale (void)
+static void set_language_and_locale (const char *lang_str)
{
SCIM_DEBUG_MAIN (3) << __FUNCTION__ << "...\n";
char language[256];
-#ifdef HAVE_VCONF
- char *lang_str = vconf_get_str (VCONFKEY_LANGSET);
-
if (lang_str) {
+ LOGD ("language : %s\n", lang_str);
#if ISF_BUILD_CANDIDATE_UI
elm_language_set (lang_str);
#endif /* CANDIDATE */
setenv ("LANGUAGE", language, 1);
setenv ("LANG", lang_str, 1);
setlocale (LC_MESSAGES, lang_str);
- free (lang_str);
} else {
setenv ("LANG", "en_US.utf8", 1);
setlocale (LC_MESSAGES, "en_US.utf8");
}
-#endif /* HAVE_VCONF */
}
/**
{
SCIM_DEBUG_MAIN (3) << __FUNCTION__ << "...\n";
- set_language_and_locale ();
+ char *lang_str = vconf_keynode_get_str (key);
+ LOGD ("lang : %s\n", lang_str);
+ set_language_and_locale (lang_str);
/* Update all ISE names according to display language */
update_ise_locale ();
*/
static void keyboard_mode_changed_cb (keynode_t *key, void* data)
{
- int val;
- if (vconf_get_bool (VCONFKEY_ISF_HW_KEYBOARD_INPUT_DETECTED, &val) == 0 && val == 0) {
+ bool val = vconf_keynode_get_bool (key);
+
+ if (val == 0) {
_info_manager->reset_keyboard_ise ();
change_keyboard_mode (TOOLBAR_HELPER_MODE);
_info_manager->update_input_panel_event (ECORE_IMF_INPUT_PANEL_GEOMETRY_EVENT, 0);
String config_name = String ("simple");
String display_name = String ();
char buf[256] = {0};
+ char *lang_str = NULL;
#ifdef HAVE_ECOREX
Ecore_Event_Handler *xclient_message_handler = NULL;
load_config ();
check_time ("load_config");
- set_language_and_locale ();
-
#ifdef HAVE_VCONF
+ lang_str = vconf_get_str (VCONFKEY_LANGSET);
+ set_language_and_locale (lang_str);
+ if (lang_str)
+ free (lang_str);
+
/* Add callback function for input language and display language */
vconf_notify_key_changed (VCONFKEY_LANGSET, display_language_changed_cb, NULL);
vconf_notify_key_changed (VCONFKEY_ISF_HW_KEYBOARD_INPUT_DETECTED, keyboard_mode_changed_cb, NULL);
}
static void
-get_input_language ()
+set_input_language (const char *input_lang_str)
{
unsigned int i;
- char *input_lang_str = vconf_get_str (VCONFKEY_ISF_INPUT_LANGUAGE);
- if (!input_lang_str) return;
- LOGD ("language %s", input_lang_str);
input_lang = INPUT_LANG_OTHER;
for (i = 0; i < (sizeof (__language_infos) / sizeof (__language_infos[0])); i++) {
break;
}
}
-
- free (input_lang_str);
}
static void autoperiod_allow_changed_cb (keynode_t *key, void* data)
static void input_language_changed_cb (keynode_t *key, void* data)
{
- get_input_language ();
+ char *input_lang = vconf_keynode_get_str (key);
+ if (input_lang) {
+ set_input_language (input_lang);
+ LOGD("input lang : %s\n", input_lang);
+ }
}
static Eina_Bool
register_key_handler ();
/* get input language vconf value */
- get_input_language ();
+ char *input_lang_str = vconf_get_str (VCONFKEY_ISF_INPUT_LANGUAGE);
+ if (input_lang_str) {
+ set_input_language (input_lang_str);
+ free (input_lang_str);
+ }
#ifdef HAVE_VCONF
/* get autoperiod allow vconf value */