mt2503[Input Method]允许多种语言输入法在不同语言环境下都能自由切换

xiaoxiao2021-02-28  11

[DESCRIPTION] 在不同语言环境下多种语言输入法如何能自由切换(按#键)。如手机有英语、俄语两种语言,如何实现不管是英语还是俄语环境下,编辑界面都能 够出现英语的输入法(ABC和abc)和俄语的输入法(ru和RU)。 [SOLUTION] For Neptune: 在文件imm.c中定位函数MMI_imm_get_available_modes,参考以下方式修改代码: /* We get our key ready lets get the modes required */ for (index = 0; g_imeres_mode_array[index].mode != 0xff; index++) { if (g_imeres_mode_array[index].flags & desired_flags && (g_imeres_mode_array[index].writing_language == wlang || g_imeres_mode_array[index].writing_language == MMI_IMM_WRITING_LANGUAGE_ALL #ifdef __MMI_LANG_RUSSIAN__ || g_imeres_mode_array[index].writing_language == MMI_IMM_WRITING_LANGUAGE_RUSSIAN #endif )) { if (!mmi_imm_get_dictionary_state() && g_imeres_mode_array[index].flags & MMI_SMART_MODE ) { /* Skip Smart Mode */ } else { /* Store the enum value of the mode selected */ mmi_wgui_inputs_ctxt.imodes.ga_input_mode_set[index_selected++] = g_imeres_mode_array[index].mode; } } } For Pluto: 请修改文件imm.c中函数mmi_imm_get_next_mode如下: 。。。 while (g_mmi_imm_curr_allowed_input_mode[index].mode_id != IMM_INPUT_MODE_NONE) { if (gIMEModeArray[g_mmi_imm_curr_allowed_input_mode[index].index].lang_id == g_mmi_imm_curr_writing_lang || g_mmi_imm_curr_allowed_input_mode[index].mode_id == IMM_INPUT_MODE_123_SYMBOLS //这句使123输入法在任何语言环境下都能使用 || gIMEModeArray[g_mmi_imm_curr_allowed_input_mode[index].index].lang_id == IME_WRITING_LANG_ZHCN //这句使所有中文输入法在任何语言 环境下都能使用 ) { break; } index++; } 。。。 上述方法主要是在获取可用mode时将所有writing_language为指定语言(如俄语)的mode也添加到mmi_wgui_inputs_ctxt.imodes.ga_input_mode_set(For Neptune)或将其列为允许选择的选项(For Pluto)。对于Neptune项目来说,也可以在

imeres.c中将指定语言对应的输入法的writing_language设为 MMI_IMM_WRITING_LANGUAGE_ALL。

资料来源:一牛网论坛 MT2503 http://bbs.16rd.com/thread-454208-1-1.html

转载请注明原文地址: https://www.6miu.com/read-2250395.html

最新回复(0)