--- /dev/null
+shoum.chen <shoum.chen@samsung.com>
--- /dev/null
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(inputmethod-setting CXX)
+
+SET(HEADERS)
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(EXEC_PREFIX "\${prefix}")
+SET(INCLUDEDIR "\${prefix}/include")
+SET(VERSION 1.0)
+
+SET(PACKAGE ${PROJECT_NAME})
+SET(PKGNAME "org.tizen.${PACKAGE}")
+SET(PKGDIR "${PREFIX}/apps/${PKGNAME}")
+SET(BINDIR "${PKGDIR}/bin")
+SET(RESDIR "${PKGDIR}/res")
+#SET(ICONDIR "${RESDIR}/icons")
+SET(ICONDIR "/usr/share/icons/default/small")
+SET(DATADIR "/opt${PREFIX}/data")
+SET(LOCALEDIR "${RESDIR}/locale")
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+ SET(CMAKE_BUILD_TYPE "Release")
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+#MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
+
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED
+capi-appfw-application appcore-efl isf elementary vconf
+vconf-internal-keys efl-extension pkgmgr-info dlog
+)
+
+FOREACH(flag ${pkgs_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -fPIE")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -Wall -fPIE")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -Wall -fPIE")
+SET(CMAKE_C_FLAGS_RELEASE "-O2 -Wall -fPIE")
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -fPIE")
+SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -g -fPIE")
+
+ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
+ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"")
+ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
+ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
+ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"")
+ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
+
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE RENAME ${PKGNAME} DESTINATION /usr/share/license)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PKGNAME}.rule DESTINATION /etc/smack/accesses.d)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PKGNAME}.xml DESTINATION /usr/share/packages)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/${PKGNAME}-list.png DESTINATION ${ICONDIR})
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/${PKGNAME}-selector.png DESTINATION ${ICONDIR})
+
+ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/im_setting_list)
+ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/im_setting_selector)
+ADD_SUBDIRECTORY(po)
--- /dev/null
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
--- /dev/null
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+
+SET(SRC_LIST
+ input_method_setting_list_ui.cpp
+ input_method_setting_list.cpp
+ input_method_setting_list_popup_view.cpp
+)
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+ SET(CMAKE_BUILD_TYPE "Release")
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+
+#INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED
+ capi-appfw-application appcore-efl isf elementary vconf
+ vconf-internal-keys efl-extension pkgmgr-info dlog
+)
+
+FOREACH(flag ${pkgs_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -fPIE")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -Wall -fPIE")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -Wall -fPIE")
+SET(CMAKE_C_FLAGS_RELEASE "-O2 -Wall -fPIE")
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -fPIE")
+SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -g -fPIE")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
+
+SET(TARGET_NAME "${PROJECT_NAME}-list")
+ADD_EXECUTABLE(${TARGET_NAME} ${SRC_LIST})
+TARGET_LINK_LIBRARIES(${TARGET_NAME} ${pkgs_LDFLAGS} "-lm -pie")
+INSTALL(TARGETS ${TARGET_NAME} DESTINATION ${BINDIR})
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+#include <app.h>
+#include <unistd.h>
+#include <vconf-keys.h>
+#include <vconf.h>
+#include "input_method_setting_list.h"
+#include "input_method_setting_list_ui.h"
+
+static bool
+app_create(void *data)
+{
+ LOGD("");
+ /* Hook to take necessary actions before main event loop starts
+ Initialize UI resources and application's data
+ If this function returns true, the main loop of application starts
+ If this function returns false, the application is terminated */
+ return true;
+}
+
+static void
+app_control(app_control_h app_control, void *data)
+{
+ /* Handle the launch request. */
+ appdata *ad = (appdata *)data;
+ char* type = NULL;
+ int res;
+
+ LOGD("");
+
+ if (!ad)
+ return;
+
+ if (ad->app_state == APP_STATE_PAUSE || ad->app_state == APP_STATE_RESUME)
+ {
+ if (ad->win)
+ {
+ elm_win_activate(ad->win);
+ im_setting_list_update_window(ad);
+ }
+ ad->app_state = APP_STATE_SERVICE;
+ return;
+ }
+
+ ad->app_type = APP_TYPE_NORMAL;
+
+ res = app_control_get_extra_data(app_control, "caller", &type);
+ if (APP_CONTROL_ERROR_NONE == res && NULL != type) {
+ if (strcmp(type, "settings") == 0)
+ {
+ ad->app_type = APP_TYPE_SETTING;
+ }
+ else if (strcmp(type, "settings_no_rotation") == 0)
+ {
+ ad->app_type = APP_TYPE_SETTING_NO_ROTATION;
+ }
+ }
+
+ ad->app_state = APP_STATE_SERVICE;
+ im_setting_list_app_create(ad);
+ if (NULL != type)
+ {
+ free(type);
+ }
+}
+
+static void
+app_pause(void *data)
+{
+ appdata *ad = (appdata *)data;
+ LOGD("");
+ /* Take necessary actions when application becomes invisible. */
+
+ if (!ad)
+ return;
+ if(ad->popup)
+ {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+ ad->app_state = APP_STATE_PAUSE;
+}
+
+static void
+app_resume(void *data)
+{
+ appdata *ad = (appdata *)data;
+ LOGD("");
+ /* Take necessary actions when application becomes visible. */
+
+ if (!ad)
+ return;
+ if (ad->app_state == APP_STATE_PAUSE)
+ {
+ if (ad->win)
+ {
+ elm_win_activate(ad->win);
+ im_setting_list_update_window(ad);
+ }
+ ad->app_state = APP_STATE_RESUME;
+ return;
+ }
+ ad->app_state = APP_STATE_RESUME;
+}
+
+static void
+app_terminate(void *data)
+{
+ appdata *ad = (appdata *)data;
+ LOGD("");
+ /* Release all resources. */
+
+ if (!ad)
+ return;
+ ad->app_state = APP_STATE_TERMINATE;
+ im_setting_list_app_terminate(ad);
+}
+
+static void
+ui_app_lang_changed(app_event_info_h event_info, void *user_data)
+{
+ LOGD("");
+ /*APP_EVENT_LANGUAGE_CHANGED*/
+}
+
+static void
+ui_app_orient_changed(app_event_info_h event_info, void *user_data)
+{
+ LOGD("");
+ /*APP_EVENT_DEVICE_ORIENTATION_CHANGED*/
+}
+
+static void
+ui_app_region_changed(app_event_info_h event_info, void *user_data)
+{
+ LOGD("");
+ /*APP_EVENT_REGION_FORMAT_CHANGED*/
+}
+
+static void
+ui_app_low_battery(app_event_info_h event_info, void *user_data)
+{
+ LOGD("");
+ /*APP_EVENT_LOW_BATTERY*/
+}
+
+static void
+ui_app_low_memory(app_event_info_h event_info, void *user_data)
+{
+ LOGD("");
+ /*APP_EVENT_LOW_MEMORY*/
+}
+
+int
+main(int argc, char *argv[])
+{
+ appdata ad = {0,};
+ int ret = 0;
+
+ ui_app_lifecycle_callback_s event_callback = {0,};
+ app_event_handler_h handlers[5] = {NULL, };
+
+ event_callback.create = app_create;
+ event_callback.terminate = app_terminate;
+ event_callback.pause = app_pause;
+ event_callback.resume = app_resume;
+ event_callback.app_control = app_control;
+
+ ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, ui_app_low_battery, &ad);
+ ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, ui_app_low_memory, &ad);
+ ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, ui_app_orient_changed, &ad);
+ ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, &ad);
+ ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, ui_app_region_changed, &ad);
+
+ ret = ui_app_main(argc, argv, &event_callback, &ad);
+ if (ret != APP_ERROR_NONE) {
+ LOGW("ui_app_main failed, Err=%d\n", ret);
+ }
+
+ return ret;
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+#ifndef __INPUTMETHOD_SETTING_LIST_H__
+#define __INPUTMETHOD_SETTING_LIST_H__
+
+#include <Elementary.h>
+#include <dlog.h>
+
+#ifdef LOG_TAG
+#undef LOG_TAG
+#endif
+#define LOG_TAG "INPUTMETHOD_SETTING_LIST"
+
+enum {
+ APP_STATE_PAUSE = 1,
+ APP_STATE_SERVICE,
+ APP_STATE_RESUME,
+ APP_STATE_TERMINATE,
+};
+
+enum {
+ APP_TYPE_SETTING = 1,
+ APP_TYPE_SETTING_NO_ROTATION,
+ APP_TYPE_NORMAL,
+};
+
+typedef struct _appdata {
+ Evas_Object *win;
+ Evas_Object *conform;
+ Evas_Object *naviframe;
+ Evas_Object *genlist;
+ Evas_Object *popup;
+
+ int app_state;
+ int app_type;
+}appdata;
+
+#endif /* __INPUTMETHOD_SETTING_LIST_H__ */
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+#include "input_method_setting_list.h"
+#include "input_method_setting_list_ui.h"
+#include "input_method_setting_list_popup_view.h"
+#include <string>
+#include <efl_extension.h>
+#include <vector>
+#include <isf_control.h>
+#include <algorithm>
+
+#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")
+
+static std::vector<ime_info_s> g_active_ime_info_list;
+static Elm_Genlist_Item_Class *itc_im_list = NULL;
+static Evas_Object *group_radio = NULL;
+static int g_active_ime_id = -1;
+
+typedef struct {
+ void *data;
+ int index;
+}sel_cb_data;
+
+class ime_info_compare
+{
+ public:
+ bool operator()(const ime_info_s &first, const ime_info_s &sec)
+ {
+ return (strcasecmp(first.label, sec.label) < 0);
+ }
+};
+
+static void im_setting_list_sort_ime_info(std::vector<ime_info_s> &preinstall, std::vector<ime_info_s> &user)
+{
+ std::sort(preinstall.begin(), preinstall.end(), ime_info_compare());
+ std::sort(user.begin(), user.end(), ime_info_compare());
+ for(unsigned int i=0; i<preinstall.size(); ++i)
+ {
+ g_active_ime_info_list.push_back(preinstall[i]);
+ }
+ for(unsigned int i=0; i<user.size(); ++i)
+ {
+ g_active_ime_info_list.push_back(user[i]);
+ }
+}
+
+static void im_setting_list_load_active_ime_info(void)
+{
+ std::vector<ime_info_s> active_ime_info_list_preinstall;
+ std::vector<ime_info_s> active_ime_info_list_user;
+ g_active_ime_info_list.clear();
+ char *active_ime_appid = NULL;
+ isf_control_get_active_ime(&active_ime_appid);
+ ime_info_s *info = NULL;
+ int cnt = isf_control_get_all_ime_info(&info);
+ if (info)
+ {
+ for(int i=0; i<cnt; ++i)
+ {
+ SECURE_LOGD("%s %s %d %d %d", info[i].appid, info[i].label, info[i].is_enabled, info[i].is_preinstalled, info[i].has_option);
+ if (info[i].is_enabled && info[i].is_preinstalled)
+ {
+ active_ime_info_list_preinstall.push_back(info[i]);
+ }
+ else if (info[i].is_enabled)
+ {
+ active_ime_info_list_user.push_back(info[i]);
+ }
+ }
+ free(info);
+ }
+
+ im_setting_list_sort_ime_info(active_ime_info_list_preinstall, active_ime_info_list_user);
+ for(unsigned int i=0; i<g_active_ime_info_list.size(); ++i)
+ {
+ if (active_ime_appid && (!strcmp(active_ime_appid, g_active_ime_info_list[i].appid)))
+ {
+ g_active_ime_id = i;
+ }
+ }
+
+ if (active_ime_appid)
+ {
+ free(active_ime_appid);
+ }
+}
+
+static void im_setting_list_radio_change_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ /*save the checked ime*/
+ int index = (int)reinterpret_cast<long>(data);
+ if (index < 0 || index >= (int)g_active_ime_info_list.size()) {
+ LOGW("Wrong value. index : %d, g_active_ime_info_list.size () : %d\n", index, g_active_ime_info_list.size());
+ return;
+ }
+}
+
+static void im_setting_list_update_radio_state(Elm_Object_Item *item, Evas_Object *obj, int index)
+{
+ if (index < 0 || index >= (int)g_active_ime_info_list.size()) {
+ LOGW("Wrong value. index : %d, g_active_ime_info_list.size () : %d\n", index, g_active_ime_info_list.size());
+ return;
+ }
+
+ if (item && obj) {
+ elm_genlist_item_selected_set (item, EINA_FALSE);
+ /* Update check button */
+ Evas_Object *radio = elm_object_item_part_content_get (item, "elm.icon.right");
+ if (radio == NULL) {
+ radio = elm_object_item_part_content_get (item, "elm.icon");
+ }
+ evas_object_data_set (radio, "parent_genlist", obj);
+ elm_radio_value_set(radio, index);
+ isf_control_set_active_ime(g_active_ime_info_list[index].appid);
+ }
+}
+
+static void im_setting_list_ime_sel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ sel_cb_data * cb_data = (sel_cb_data *)data;
+ if (!cb_data)
+ return;
+ appdata *ad = (appdata *)cb_data->data;
+ if (!ad)
+ return;
+ int index = cb_data->index;
+
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ if (!item){
+ delete cb_data;
+ return;
+ }
+ im_setting_list_update_radio_state(item, obj, index);
+ im_setting_list_update_window(ad);
+
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ }
+ ad->popup = NULL;
+ delete cb_data;
+}
+
+static Evas_Object *im_setting_list_genlist_create(Evas_Object* parent)
+{
+ if (!parent)
+ return NULL;
+ Evas_Object *genlist = elm_genlist_add(parent);
+ elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+ elm_genlist_homogeneous_set (genlist, EINA_TRUE);
+ 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_show(genlist);
+ return genlist;
+}
+
+static char *im_setting_list_genlist_item_label_get(void *data, Evas_Object *obj, const char *part)
+{
+ int index = (int)reinterpret_cast<long>(data);
+ if (index < 0 || index >= (int)g_active_ime_info_list.size()) {
+ LOGW("Wrong value. index : %d, g_active_ime_info_list.size () : %d\n", index, g_active_ime_info_list.size());
+ return NULL;
+ }
+
+ if (!strcmp(part, "elm.text") ||
+ !strcmp(part, "elm.text.main") ||
+ !strcmp(part, "elm.text.main.left")) {
+ return strdup(g_active_ime_info_list[index].label);
+ }
+
+ return NULL;
+}
+
+static Evas_Object *im_setting_list_genlist_item_icon_get(void *data, Evas_Object *obj, const char *part)
+{
+ int index = (int)reinterpret_cast<long>(data);
+ if (!strcmp(part, "elm.swallow.end") ||
+ !strcmp(part, "elm.icon.2")) {
+ Evas_Object *radio = elm_radio_add(obj);
+ elm_object_style_set (radio, "list");
+ elm_radio_state_value_set(radio, index);
+ elm_radio_group_add(radio, group_radio);
+ evas_object_show(radio);
+ evas_object_smart_callback_add(radio, "changed", im_setting_list_radio_change_cb, (void *) (index));
+
+ return radio;
+ }
+ return NULL;
+}
+
+static void im_setting_list_genlist_item_class_create(void)
+{
+ itc_im_list = elm_genlist_item_class_new();
+ if (itc_im_list) {
+ itc_im_list->item_style = "type1";
+ itc_im_list->func.text_get = im_setting_list_genlist_item_label_get;
+ itc_im_list->func.content_get = im_setting_list_genlist_item_icon_get;
+ itc_im_list->func.state_get = NULL;
+ itc_im_list->func.del = NULL;
+ }
+}
+
+static Evas_Object *im_setting_list_list_create(void *data)
+{
+ appdata *ad = (appdata *)data;
+ if (!ad)
+ return NULL;
+ im_setting_list_genlist_item_class_create();
+ Evas_Object *genlist = NULL;
+ genlist = im_setting_list_genlist_create(ad->popup);
+ unsigned int i = 0;
+
+ /* keyboard list */
+ for (i = 0; i < g_active_ime_info_list.size(); i++) {
+ sel_cb_data *cb_data = new sel_cb_data;
+ cb_data->data = data;
+ cb_data->index = i;
+ elm_genlist_item_append(genlist,
+ itc_im_list,
+ (void *)(i),
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ im_setting_list_ime_sel_cb,
+ (void *)(cb_data));
+ }
+ elm_radio_value_set(group_radio, g_active_ime_id);
+
+ return genlist;
+}
+
+static void
+im_setting_list_popup_block_clicked_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
+{
+ appdata *ad = (appdata *)data;
+ if (!ad)
+ return;
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ }
+ ad->popup = NULL;
+}
+
+static void im_setting_list_popup_view_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ appdata *ad = (appdata *)data;
+ if (!ad)
+ return;
+ eext_object_event_callback_del(obj, EEXT_CALLBACK_BACK, im_setting_list_popup_view_back_cb);
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ }
+ ad->popup = NULL;
+}
+
+static Evas_Object *im_setting_list_popup_create(void *data)
+{
+ appdata *ad = (appdata *)data;
+ if (!ad || !ad->win)
+ return NULL;
+ Evas_Object *parentWin = ad->win;
+ if (NULL == group_radio)
+ {
+ group_radio = elm_radio_add(parentWin);
+ elm_radio_state_value_set(group_radio, -1);
+ }
+
+ 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_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;
+
+ Evas_Object *genlist = im_setting_list_list_create(data);
+ elm_object_content_set(popup, genlist);
+ evas_object_show(popup);
+ return popup;
+}
+
+void
+im_setting_list_popup_view_create(void *data)
+{
+ appdata *ad = (appdata *)data;
+ if (!ad || !ad->win)
+ return;
+ im_setting_list_load_active_ime_info();
+ im_setting_list_popup_create(data);
+}
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __INPUTMETHOD_SETTING_LIST_POPUP_VIEW_H
+#define __INPUTMETHOD_SETTING_LIST_POPUP_VIEW_H
+#include <Elementary.h>
+
+void im_setting_list_popup_view_create(void *data);
+
+#endif /* __INPUTMETHOD_SETTING_LIST_POPUP_VIEW_H */
+
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+#define Uses_SCIM_PANEL_AGENT
+#define Uses_SCIM_CONFIG_PATH
+#define Uses_SCIM_HELPER_MODULE
+#define Uses_SCIM_IMENGINE_MODULE
+#define Uses_SCIM_COMPOSE_KEY
+
+#include "input_method_setting_list.h"
+#include "input_method_setting_list_popup_view.h"
+#include <string>
+#include <app.h>
+#include <efl_extension.h>
+#include <vector>
+#include "isf_control.h"
+#include <scim.h>
+#include <scim_setup_module_efl.h>
+
+#define IM_SETTING_LIST_PACKAGE PACKAGE
+#define IM_SETTING_LIST_LOCALE_DIR ("/usr/apps/"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_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")
+
+
+typedef struct list_item_text_s
+{
+ char main_text[255];
+ char sub_text[255];
+} list_item_text;
+
+typedef struct popup_cb_data_s
+{
+ Evas_Object *popup;
+ void *data;
+} popup_cb_data;
+
+typedef struct gen_item_data_s
+{
+ Elm_Object_Item *gen_item;
+ int chk_status;
+} gen_item_data;
+
+typedef enum {
+ ISE_OPTION_MODULE_EXIST_SO = 0,
+ ISE_OPTION_MODULE_NO_EXIST
+} ISE_OPTION_MODULE_STATE;
+
+class ime_info_compare
+{
+ public:
+ bool operator()(const ime_info_s &first, const ime_info_s &sec)
+ {
+ return (strcasecmp(first.label, sec.label) < 0);
+ }
+};
+
+typedef void (*popup_ok_cb)(void *data, Evas_Object *obj, void *event_info);
+typedef void (*popup_cancel_cb)(void *data, Evas_Object *obj, void *event_info);
+
+static std::vector<ime_info_s> g_ime_info_list;
+static Elm_Genlist_Item_Class *itc_im_list_keyboard_list = NULL;
+static Elm_Genlist_Item_Class *itc_im_list_group = NULL;
+static Elm_Genlist_Item_Class *itc_im_list_item = NULL;
+static Elm_Genlist_Item_Class *itc_im_list_item_one_line = NULL;
+static int g_active_ime_index = -1;
+static list_item_text item_text[2];
+static std::vector<gen_item_data> g_gen_item_data;
+
+static std::vector<String> _setup_modules;
+static String _mdl_name;
+static SetupModule *_mdl = NULL;
+static ConfigPointer _config;
+static ISE_OPTION_MODULE_STATE _ise_option_module_stat = ISE_OPTION_MODULE_NO_EXIST;
+
+static Ecore_Fd_Handler *_read_handler = NULL;
+static HelperAgent _helper_agent;
+static HelperInfo _helper_info ("fd491a70-22f5-11e2-89f3-eb5999be869e", "ISF Setting", "", "", SCIM_HELPER_STAND_ALONE);
+
+void im_setting_list_update_window(void *data);
+
+static void helper_ise_reload_config(void)
+{
+ if (_helper_agent.is_connected())
+ _helper_agent.reload_config();
+}
+
+static Eina_Bool ise_option_view_set_cb(void *data, Elm_Object_Item *it)
+{
+ if (!data || !_mdl)
+ return EINA_TRUE;
+
+ _mdl->save_config(_config);
+ helper_ise_reload_config();
+
+ return EINA_TRUE;
+}
+
+static ISE_OPTION_MODULE_STATE find_ise_option_module(char *active_ime_appid)
+{
+ LOGD ("%s", active_ime_appid);
+
+ _ise_option_module_stat = ISE_OPTION_MODULE_NO_EXIST;
+
+ _mdl_name = active_ime_appid + String("-setup");
+ for (unsigned int i = 0; i < _setup_modules.size(); i++) {
+ if (_mdl_name == _setup_modules[i]) {
+ _ise_option_module_stat = ISE_OPTION_MODULE_EXIST_SO;
+ }
+ }
+
+ return _ise_option_module_stat;
+}
+
+static void im_setting_list_text_domain_set(void)
+{
+ bindtextdomain(IM_SETTING_LIST_PACKAGE, IM_SETTING_LIST_LOCALE_DIR);
+ textdomain(IM_SETTING_LIST_PACKAGE);
+}
+
+static Evas_Object *
+im_setting_list_main_window_create(const char *name, int app_type)
+{
+ Evas_Object *eo = NULL;
+ eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+ if (eo) {
+ elm_win_title_set(eo, name);
+ elm_win_borderless_set(eo, EINA_TRUE);
+ elm_win_alpha_set(eo, EINA_FALSE);
+ elm_win_conformant_set(eo, EINA_TRUE);
+ elm_win_autodel_set(eo, EINA_TRUE);
+ if (app_type != APP_TYPE_SETTING_NO_ROTATION) {
+ int rots[4] = {0, 90, 180, 270};
+ elm_win_wm_rotation_available_rotations_set(eo, rots, 4);
+ }
+ }
+ return eo;
+}
+
+static Evas_Object* im_setting_list_bg_create(Evas_Object *parent)
+{
+ Evas_Object *bg;
+ if (parent == NULL) return NULL;
+ bg = elm_bg_add(parent);
+ evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(parent, bg);
+ evas_object_show(bg);
+ return bg;
+}
+
+static void im_setting_list_sort_ime_info(std::vector<ime_info_s> &preinstall, std::vector<ime_info_s> &user)
+{
+ std::sort(preinstall.begin(), preinstall.end(), ime_info_compare());
+ std::sort(user.begin(), user.end(), ime_info_compare());
+ for(unsigned int i=0; i<preinstall.size(); ++i)
+ {
+ g_ime_info_list.push_back(preinstall[i]);
+ }
+ for(unsigned int i=0; i<user.size(); ++i)
+ {
+ g_ime_info_list.push_back(user[i]);
+ }
+}
+
+static void im_setting_list_load_ime_info(void)
+{
+ std::vector<ime_info_s> ime_info_list_preinstall;
+ std::vector<ime_info_s> ime_info_list_user;
+ ime_info_s *info = NULL;
+ g_ime_info_list.clear();
+ int cnt = isf_control_get_all_ime_info(&info);
+ if (info)
+ {
+ for(int i=0; i<cnt; ++i)
+ {
+ SECURE_LOGD("%s %s %d %d %d", info[i].appid, info[i].label, info[i].is_enabled, info[i].is_preinstalled, info[i].has_option);
+ if (info[i].is_preinstalled)
+ {
+ ime_info_list_preinstall.push_back(info[i]);
+ }
+ else
+ {
+ ime_info_list_user.push_back(info[i]);
+ }
+ }
+ free(info);
+ }
+ else
+ {
+ LOGD("isf_control_get_all_ime_info failed\n");
+ }
+ im_setting_list_sort_ime_info(ime_info_list_preinstall, ime_info_list_user);
+}
+
+static int im_setting_list_get_active_ime_index(void)
+{
+ char *active_ime_appid = NULL;
+ isf_control_get_active_ime(&active_ime_appid);
+ std::vector<ime_info_s>::iterator iter = g_ime_info_list.begin();
+ std::vector<ime_info_s>::iterator end = g_ime_info_list.end();
+ for (; iter != end; ++iter)
+ {
+ if (active_ime_appid && (!strcmp(active_ime_appid, iter->appid)))
+ {
+ break;
+ }
+ }
+ if (active_ime_appid)
+ {
+ free(active_ime_appid);
+ }
+ return (iter-g_ime_info_list.begin());
+}
+
+static void
+im_setting_list_check_popup_ok_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ popup_cb_data *cb_data = (popup_cb_data *)data;
+ if (!cb_data)
+ return;
+ int index = (int)reinterpret_cast<long>(cb_data->data);
+ if (index < 0 || index >= (int)g_ime_info_list.size()) {
+ LOGW("Wrong value. index : %d, g_ime_info_list.size() : %d\n", index, g_ime_info_list.size());
+ delete cb_data;
+ return;
+ }
+ Eina_Bool state = EINA_FALSE;
+ state = g_gen_item_data[index].chk_status;
+ isf_control_set_enable_ime(g_ime_info_list[index].appid, state);
+ evas_object_del(cb_data->popup);
+ delete cb_data;
+}
+
+static void
+im_setting_list_check_popup_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ popup_cb_data *cb_data = (popup_cb_data *)data;
+ if (!cb_data)
+ return;
+ int index = (int)reinterpret_cast<long>(cb_data->data);
+ if (index < 0 || index >= (int)g_ime_info_list.size()) {
+ LOGW("Wrong value. index : %d, g_ime_info_list.size() : %d\n", index, g_ime_info_list.size());
+ delete cb_data;
+ return;
+ }
+
+ Eina_Bool state = g_gen_item_data[index].chk_status;
+ isf_control_set_enable_ime(g_ime_info_list[index].appid, !state);
+ g_gen_item_data[index].chk_status = !state;
+ elm_genlist_item_update(g_gen_item_data[index].gen_item);
+ evas_object_del(cb_data->popup);
+ delete cb_data;
+}
+
+static void _popup_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ eext_object_event_callback_del(obj, EEXT_CALLBACK_BACK, _popup_back_cb);
+ popup_cb_data *cb_data = (popup_cb_data *)data;
+ if (!cb_data)
+ return;
+ int index = (int)reinterpret_cast<long>(cb_data->data);
+ if (index < 0 || index >= (int)g_ime_info_list.size()) {
+ LOGW("Wrong value. index : %d, g_ime_info_list.size() : %d\n", index, g_ime_info_list.size());
+ delete cb_data;
+ return;
+ }
+
+ if (g_gen_item_data[index].chk_status) {
+ im_setting_list_check_popup_cancel_cb(data, NULL, NULL);
+ }
+ else {
+ evas_object_del(cb_data->popup);
+ delete cb_data;
+ }
+}
+
+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);
+ if (index < 0 || index >= (int)g_ime_info_list.size()) {
+ LOGW("Wrong value. index : %d, g_ime_info_list.size() : %d\n", index, g_ime_info_list.size());
+ return;
+ }
+
+ 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_POPUP_TITLE);
+
+ 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);
+
+ 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_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_POPUP_ENABLE);
+ elm_object_part_content_set(popup, "button2", btn_ok);
+ evas_object_smart_callback_add(btn_ok, "clicked", ime_setting_list_ok_callback, cb_data);
+
+ eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _popup_back_cb, cb_data);
+ evas_object_show(popup);
+}
+
+static void im_setting_list_check_button_change_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ /*save the checked ime*/
+ int index = (int)reinterpret_cast<long>(data);
+ if (index < 0 || index >= (int)g_ime_info_list.size()) {
+ LOGW("Wrong value. index : %d, g_ime_info_list.size() : %d\n", index, g_ime_info_list.size());
+ return;
+ }
+
+ Eina_Bool state = g_gen_item_data[index].chk_status;
+
+ if (!state)
+ {
+ isf_control_set_enable_ime(g_ime_info_list[index].appid, state);
+ }
+ else
+ {
+ im_setting_list_show_popup(data, obj, im_setting_list_check_popup_ok_cb, im_setting_list_check_popup_cancel_cb);
+ }
+}
+
+static void
+im_setting_list_popup_ok_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ popup_cb_data *cb_data = (popup_cb_data *)data;
+ if (!cb_data)
+ return;
+ int index = (int)reinterpret_cast<long>(cb_data->data);
+ if (index < 0 || index >= (int)g_ime_info_list.size()) {
+ LOGW("Wrong value. index : %d, g_ime_info_list.size() : %d\n", index, g_ime_info_list.size());
+ delete cb_data;
+ return;
+ }
+
+ Eina_Bool state = g_gen_item_data[index].chk_status;
+ g_gen_item_data[index].chk_status = !state;
+ isf_control_set_enable_ime(g_ime_info_list[index].appid, !state);
+ elm_genlist_item_update(g_gen_item_data[index].gen_item);
+ evas_object_del(cb_data->popup);
+ delete cb_data;
+}
+
+static void
+im_setting_list_popup_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ popup_cb_data *cb_data = (popup_cb_data *)data;
+ if (!cb_data)
+ return;
+ evas_object_del(cb_data->popup);
+ delete cb_data;
+}
+
+static void im_setting_list_item_sel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ elm_genlist_item_selected_set(item, EINA_FALSE);
+
+ int index = (int)reinterpret_cast<long>(data);
+ if (index < 0 || index >= (int)g_ime_info_list.size()) {
+ LOGW("Wrong value. index : %d, g_ime_info_list.size() : %d\n", index, g_ime_info_list.size());
+ return;
+ }
+
+ if (g_ime_info_list[index].is_preinstalled || (index == g_active_ime_index))
+ {
+ return;
+ }
+
+ Evas_Object *ck = elm_object_item_part_content_get(item, "elm.swallow.end");
+ if (ck == NULL) {
+ ck = elm_object_item_part_content_get(item, "elm.icon");
+ }
+ Eina_Bool state = g_gen_item_data[index].chk_status;
+
+ if (state)
+ {
+ g_gen_item_data[index].chk_status = !state;
+ isf_control_set_enable_ime(g_ime_info_list[index].appid, !state);
+ elm_genlist_item_update(item);
+ }
+ else
+ {
+ im_setting_list_show_popup(data, obj, im_setting_list_popup_ok_cb, im_setting_list_popup_cancel_cb);
+ }
+}
+
+static void im_setting_list_set_default_keyboard_item_sel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ elm_genlist_item_selected_set(item, EINA_FALSE);
+ im_setting_list_popup_view_create(data);
+}
+
+static void im_setting_list_keyboard_setting_item_sel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ elm_genlist_item_selected_set(item, EINA_FALSE);
+ Evas_Object *option_content;
+ appdata *ad = (appdata *)data;
+ char *active_ime_appid = NULL;
+ isf_control_get_active_ime(&active_ime_appid);
+
+ if (ad && active_ime_appid && ISE_OPTION_MODULE_EXIST_SO == find_ise_option_module(active_ime_appid)) {
+ if (_mdl) {
+ delete _mdl;
+ _mdl = NULL;
+ }
+
+ if (_mdl_name.length() > 0)
+ _mdl = new SetupModule(String(_mdl_name));
+
+ if (_mdl == NULL || !_mdl->valid()) {
+ free(active_ime_appid);
+ return;
+ } else {
+ LOGD("keyboard option window is showing");
+ _mdl->load_config(_config);
+ option_content = _mdl->create_ui(ad->conform, ad->naviframe);
+
+ Elm_Object_Item *it = elm_naviframe_item_push (ad->naviframe, IM_SETTING_LIST_KEYBOARD_SETTING, NULL, NULL, option_content, NULL);
+ elm_naviframe_item_pop_cb_set (it, ise_option_view_set_cb, ad);
+ }
+ }
+ else {
+ isf_control_open_ime_option_window();
+ }
+ if (active_ime_appid)
+ free(active_ime_appid);
+}
+
+static void
+_elm_win_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ Evas_Coord w = -1, h = -1;
+ Evas_Object *conform = (Evas_Object*)data;
+ if (conform) {
+ evas_object_geometry_get(obj, NULL, NULL, &w, &h);
+ if (w > 0 && h > 0) {
+ evas_object_resize(conform, w, h);
+ }
+ }
+}
+
+static Evas_Object *im_setting_list_conform_create(Evas_Object *parentWin)
+{
+ Evas_Object *conform = elm_conformant_add(parentWin);
+ elm_win_indicator_mode_set(parentWin, ELM_WIN_INDICATOR_SHOW);
+ elm_win_indicator_opacity_set(parentWin, ELM_WIN_INDICATOR_OPAQUE);
+ evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(conform, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ Evas_Object *bg = elm_bg_add(conform);
+ elm_object_style_set(bg, "indicator/headerbg");
+ elm_object_part_content_set(conform, "elm.swallow.indicator_bg", bg);
+ evas_object_show(bg);
+
+ Evas_Coord w = -1, h = -1;
+ elm_win_screen_size_get(parentWin, NULL, NULL, &w, &h);
+ if (w > 0 && h > 0) {
+ evas_object_resize(conform, w, h);
+ }
+ evas_object_event_callback_add(parentWin, EVAS_CALLBACK_RESIZE, _elm_win_resize_cb, conform);
+ evas_object_show(conform);
+ return conform;
+}
+
+static Evas_Object *im_setting_list_naviframe_create(Evas_Object* parent)
+{
+ Evas_Object *naviframe = elm_naviframe_add(parent);
+ elm_naviframe_prev_btn_auto_pushed_set(naviframe, EINA_TRUE);
+ eext_object_event_callback_add(naviframe, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL);
+ evas_object_size_hint_weight_set(naviframe, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(naviframe, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_object_part_content_set(parent, "elm.swallow.content", naviframe);
+ evas_object_show(naviframe);
+ return naviframe;
+}
+
+static Evas_Object *im_setting_list_genlist_create(Evas_Object* parent)
+{
+ Evas_Object *genlist = elm_genlist_add(parent);
+ elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+ evas_object_show(genlist);
+ return genlist;
+}
+
+static char *im_setting_list_genlist_group_label_get(void *data, Evas_Object *obj, const char *part)
+{
+ char *text = (char *)data;
+ if (!text)
+ return NULL;
+ if (!strcmp(part, "elm.text")) {
+ return strdup(text);
+ }
+ return NULL;
+}
+
+static char *im_setting_list_genlist_keyboard_list_item_label_get(void *data, Evas_Object *obj, const char *part)
+{
+ int index = (int)reinterpret_cast<long>(data);
+ if (index < 0 || index >= (int)g_ime_info_list.size()) {
+ LOGW("Wrong value. index : %d, g_ime_info_list.size() : %d\n", index, g_ime_info_list.size());
+ return NULL;
+ }
+
+ if (!strcmp(part, "elm.text.main.left.top") ||
+ !strcmp(part, "elm.text.main.left") ||
+ !strcmp(part, "elm.text.main") ||
+ !strcmp(part, "elm.text") ||
+ !strcmp(part, "elm.text.1")) {
+ return strdup(g_ime_info_list[index].label);
+ }
+ return NULL;
+}
+
+static Evas_Object *im_setting_list_genlist_keyboard_list_item_icon_get(void *data, Evas_Object *obj, const char *part)
+{
+ int index = (int)reinterpret_cast<long>(data);
+ if (index < 0 || index >= (int)g_ime_info_list.size()) {
+ LOGW("Wrong value. index : %d, g_ime_info_list.size() : %d\n", index, g_ime_info_list.size());
+ return NULL;
+ }
+
+ if (!strcmp(part, "elm.swallow.end")) {
+ Evas_Object *ck = elm_check_add(obj);
+ elm_object_style_set(ck, "on&off");
+ elm_object_disabled_set(ck, g_ime_info_list[index].is_preinstalled || (index == g_active_ime_index));
+ elm_check_state_set(ck, g_gen_item_data[index].chk_status);
+ evas_object_propagate_events_set(ck, EINA_FALSE);
+ evas_object_size_hint_align_set(ck, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_check_state_pointer_set(ck, (Eina_Bool *)(&(g_gen_item_data[index].chk_status)));
+ evas_object_pass_events_set(ck, EINA_TRUE);
+ evas_object_smart_callback_add(ck, "changed", im_setting_list_check_button_change_cb, (void *)(index));
+ evas_object_show(ck);
+ return ck;
+ }
+ return NULL;
+}
+
+static char *im_setting_list_genlist_item_label_get(void *data, Evas_Object *obj, const char *part)
+{
+ list_item_text *item_text = (list_item_text *)data;
+ if (!item_text)
+ return NULL;
+ if (!strcmp(part, "elm.text.main.left.top") ||
+ !strcmp(part, "elm.text.main.left") ||
+ !strcmp(part, "elm.text.main") ||
+ !strcmp(part, "elm.text") ||
+ !strcmp(part, "elm.text.1")) {
+ return strdup(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.2")) {
+ return strdup(item_text->sub_text);
+ }
+ return NULL;
+}
+
+static char *im_setting_list_genlist_item_one_line_label_get(void *data, Evas_Object *obj, const char *part)
+{
+ list_item_text *item_text = (list_item_text *)data;
+ if (!item_text)
+ return NULL;
+ if (!strcmp(part, "elm.text.main.left.top") ||
+ !strcmp(part, "elm.text.main.left") ||
+ !strcmp(part, "elm.text.main") ||
+ !strcmp(part, "elm.text") ||
+ !strcmp(part, "elm.text.1")) {
+ return strdup(item_text->main_text);
+ }
+ return NULL;
+}
+
+static void im_setting_list_genlist_item_class_create(int app_type)
+{
+ if (NULL == itc_im_list_group)
+ {
+ itc_im_list_group = elm_genlist_item_class_new();
+ if (itc_im_list_group)
+ {
+ itc_im_list_group->item_style = "group_index";
+ itc_im_list_group->func.text_get = im_setting_list_genlist_group_label_get;
+ itc_im_list_group->func.content_get = NULL;
+ itc_im_list_group->func.state_get = NULL;
+ itc_im_list_group->func.del = NULL;
+ }
+ }
+
+ if (NULL == itc_im_list_keyboard_list)
+ {
+ itc_im_list_keyboard_list = elm_genlist_item_class_new();
+ if (itc_im_list_keyboard_list)
+ {
+#ifdef _MOBILE
+ itc_im_list_keyboard_list->item_style = "type1";
+#else
+ itc_im_list_keyboard_list->item_style = "1text.1icon.1";
+#endif
+ itc_im_list_keyboard_list->func.text_get = im_setting_list_genlist_keyboard_list_item_label_get;
+ itc_im_list_keyboard_list->func.content_get = im_setting_list_genlist_keyboard_list_item_icon_get;
+ itc_im_list_keyboard_list->func.state_get = NULL;
+ itc_im_list_keyboard_list->func.del = NULL;
+ }
+ }
+
+ if (app_type == APP_TYPE_SETTING || app_type == APP_TYPE_SETTING_NO_ROTATION)
+ {
+ if (NULL == itc_im_list_item)
+ {
+ itc_im_list_item = elm_genlist_item_class_new();
+ if (itc_im_list_item)
+ {
+#ifdef _MOBILE
+ itc_im_list_item->item_style = "type1";
+#else
+ itc_im_list_item->item_style = "2text";
+#endif
+ itc_im_list_item->func.text_get = im_setting_list_genlist_item_label_get;
+ itc_im_list_item->func.content_get = NULL;
+ itc_im_list_item->func.state_get = NULL;
+ itc_im_list_item->func.del = NULL;
+ }
+ }
+
+ if (NULL == itc_im_list_item_one_line)
+ {
+ itc_im_list_item_one_line = elm_genlist_item_class_new();
+ if (itc_im_list_item_one_line)
+ {
+#ifdef _MOBILE
+ itc_im_list_item_one_line->item_style = "type1";
+#else
+ itc_im_list_item_one_line->item_style = "1text";
+#endif
+ itc_im_list_item_one_line->func.text_get = im_setting_list_genlist_item_one_line_label_get;
+ itc_im_list_item_one_line->func.content_get = NULL;
+ itc_im_list_item_one_line->func.state_get = NULL;
+ itc_im_list_item_one_line->func.del = NULL;
+ }
+ }
+ }
+}
+
+static void im_setting_list_add_ime(void *data) {
+ appdata *ad = (appdata *)data;
+ int i = 0;
+ if (!ad)
+ return;
+ im_setting_list_genlist_item_class_create(ad->app_type);
+
+ if (NULL != ad->genlist)
+ {
+ elm_genlist_clear(ad->genlist);
+ }
+
+ g_active_ime_index = im_setting_list_get_active_ime_index();
+ if (g_active_ime_index < 0 || g_active_ime_index >= (int)g_ime_info_list.size()) {
+ LOGW("Wrong value. g_active_ime_index : %d, g_ime_info_list.size() : %d\n", g_active_ime_index, g_ime_info_list.size());
+ return;
+ }
+
+ memset(&item_text, 0, sizeof(item_text));
+ Elm_Object_Item *group_header_item = NULL;
+ if (ad->app_type == APP_TYPE_SETTING || ad->app_type == APP_TYPE_SETTING_NO_ROTATION)
+ {
+ /* Default keyboard selector */
+ snprintf(item_text[0].main_text, sizeof(item_text[0].main_text), "%s", IM_SETTING_LIST_DEFAULT_KEYBOARD);
+ snprintf(item_text[0].sub_text, sizeof(item_text[0].sub_text), "%s", g_ime_info_list[g_active_ime_index].label);
+ elm_genlist_item_append(ad->genlist,
+ itc_im_list_item,
+ (void *)&item_text[0],
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ im_setting_list_set_default_keyboard_item_sel_cb,
+ data);
+
+ /* Keyboard settings */
+ snprintf(item_text[1].main_text, sizeof(item_text[1].main_text), "%s", IM_SETTING_LIST_KEYBOARD_SETTING);
+ Elm_Object_Item *item = elm_genlist_item_append(ad->genlist,
+ itc_im_list_item_one_line,
+ (void *)&item_text[1],
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ im_setting_list_keyboard_setting_item_sel_cb,
+ data);
+
+ elm_object_item_disabled_set(item, !(g_ime_info_list[g_active_ime_index].has_option));
+ }
+
+ /* Keyboards group */
+ group_header_item = elm_genlist_item_append(ad->genlist,
+ itc_im_list_group,
+ IM_SETTING_LIST_KEYBOARD_HEADER,
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ NULL,
+ NULL);
+ elm_genlist_item_select_mode_set(group_header_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ /* keyboard list */
+ int info_list_size = g_ime_info_list.size();
+ for (i = 0; i < info_list_size; i++) {
+ gen_item_data item_data;
+
+ if (g_ime_info_list[i].is_preinstalled || (i == g_active_ime_index)) {
+ item_data.chk_status = EINA_TRUE;
+ }
+ else {
+ item_data.chk_status = g_ime_info_list[i].is_enabled;
+ }
+ g_gen_item_data.push_back(item_data);
+
+ Elm_Object_Item *item = elm_genlist_item_append(ad->genlist,
+ itc_im_list_keyboard_list,
+ (void *)(i),
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ im_setting_list_item_sel_cb,
+ (void *)(i));
+
+ if (g_ime_info_list[i].is_preinstalled || (i == g_active_ime_index)) {
+ elm_object_item_disabled_set(item, EINA_TRUE);
+ }
+
+ g_gen_item_data[i].gen_item = item;
+ }
+}
+
+static Eina_Bool im_setting_list_navi_item_pop_cb(void *data, Elm_Object_Item *it)
+{
+ static bool in_exit = false;
+ if (in_exit)
+ return EINA_TRUE;
+ in_exit = true;
+ if (data == NULL)
+ return EINA_TRUE;
+ ui_app_exit();
+ return EINA_TRUE;
+}
+
+static void im_setting_list_navi_back_btn_call_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ evas_object_smart_callback_del(obj, "clicked", im_setting_list_navi_back_btn_call_cb);
+ ui_app_exit();
+}
+
+Evas_Object *im_setting_list_list_create(void *data)
+{
+ appdata *ad = (appdata *)data;
+ if (!ad)
+ return NULL;
+ ad->conform = im_setting_list_conform_create(ad->win);
+ ad->naviframe = im_setting_list_naviframe_create(ad->conform);
+ ad->genlist = im_setting_list_genlist_create(ad->naviframe);
+ im_setting_list_add_ime(ad);
+
+ /* Add genlist to naviframe */
+ Evas_Object *back_btn = elm_button_add(ad->naviframe);
+ elm_object_style_set(back_btn, "naviframe/back_btn/default");
+ evas_object_smart_callback_add(back_btn, "clicked", im_setting_list_navi_back_btn_call_cb, NULL);
+ Elm_Object_Item *nf_main_item = elm_naviframe_item_push(ad->naviframe,
+ IM_SETTING_LIST_TITLE,
+ back_btn,
+ NULL,
+ ad->genlist,
+ NULL);
+ 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);
+
+ return ad->genlist;
+}
+
+void im_setting_list_app_terminate(void *data)
+{
+ g_ime_info_list.clear();
+ g_gen_item_data.clear();
+ if (NULL != itc_im_list_keyboard_list)
+ {
+ elm_genlist_item_class_free(itc_im_list_keyboard_list);
+ itc_im_list_keyboard_list = NULL;
+ }
+
+ if (NULL != itc_im_list_group)
+ {
+ elm_genlist_item_class_free(itc_im_list_group);
+ itc_im_list_group = NULL;
+ }
+
+ if (NULL != itc_im_list_item)
+ {
+ elm_genlist_item_class_free(itc_im_list_item);
+ itc_im_list_item = NULL;
+ }
+
+ if (_read_handler) {
+ _helper_agent.close_connection();
+ ecore_main_fd_handler_del(_read_handler);
+ _read_handler = NULL;
+ }
+
+ ConfigBase::set(0);
+}
+
+void im_setting_list_update_window(void *data)
+{
+ appdata *ad = (appdata *)data;
+ if (!ad)
+ return;
+ im_setting_list_load_ime_info();
+ im_setting_list_add_ime(ad);
+}
+
+static void load_config_module(void)
+{
+ _config = ConfigBase::get(true, "socket");
+ if (_config.null()) {
+ std::cerr << "Create dummy config!!!\n";
+ _config = new DummyConfig();
+ if (_config.null()) {
+ std::cerr << "Can not create Config Object!\n";
+ }
+ }
+}
+
+/**
+ * @brief Handler function for HelperAgent input.
+ *
+ * @param user_data Data to pass when it is called.
+ * @param fd_handler The Ecore Fd handler.
+ *
+ * @return ECORE_CALLBACK_RENEW
+ */
+static Eina_Bool helper_agent_input_handler(void *user_data, Ecore_Fd_Handler *fd_handler)
+{
+ if (fd_handler == _read_handler && _helper_agent.has_pending_event()) {
+ if (!_helper_agent.filter_event()) {
+ LOGD ("helper_agent.filter_event() failed!!!\n");
+ }
+ } else {
+ LOGD ("helper_agent.has_pending_event() failed!!!\n");
+ }
+
+ return ECORE_CALLBACK_RENEW;
+}
+
+void
+im_setting_list_app_create(void *data)
+{
+ appdata *ad = (appdata *)data;
+ if (!ad)
+ return;
+ im_setting_list_text_domain_set();
+ ad->win = im_setting_list_main_window_create(PACKAGE, ad->app_type);
+ im_setting_list_bg_create(ad->win);
+ im_setting_list_load_ime_info();
+
+ load_config_module();
+ scim_get_setup_module_list(_setup_modules);
+
+ /* Connect PanelAgent by HelperAgent */
+ String display_name = String(":13");
+ const char *p = getenv("DISPLAY");
+ if (p != NULL)
+ display_name = String(p);
+
+ int id = _helper_agent.open_connection(_helper_info, display_name);
+ if (id == -1) {
+ LOGD("open_connection failed!!!!!!\n");
+ } else {
+ int fd = _helper_agent.get_connection_number();
+ if (fd >= 0)
+ _read_handler = ecore_main_fd_handler_add (fd, ECORE_FD_READ, helper_agent_input_handler, NULL, NULL, NULL);
+ }
+
+ im_setting_list_list_create(ad);
+ evas_object_show(ad->win);
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __INPUTMETHOD_SETTING_LIST_UI_H
+#define __INPUTMETHOD_SETTING_LIST_UI_H
+
+#define INPUT_METHOD_SETTING_DEBUG(msg, args...) LOGD(msg, ##args)
+#define INPUT_METHOD_SETTING_ERROR(msg, args...) LOGE(msg, ##args)
+
+void im_setting_list_app_create(void *data);
+void im_setting_list_app_terminate(void *data);
+void im_setting_list_update_window(void *data);
+
+#endif /* __INPUTMETHOD_SETTING_LIST_UI_H */
--- /dev/null
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+
+SET(SRC_LIST
+ input_method_setting_selector_ui.cpp
+ input_method_setting_selector.cpp
+)
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+ SET(CMAKE_BUILD_TYPE "Release")
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+
+#INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED
+ capi-appfw-application appcore-efl isf elementary vconf
+ vconf-internal-keys efl-extension pkgmgr-info dlog
+)
+
+FOREACH(flag ${pkgs_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -fPIE")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -Wall -fPIE")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -Wall -fPIE")
+SET(CMAKE_C_FLAGS_RELEASE "-O2 -Wall -fPIE")
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -fPIE")
+SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -g -fPIE")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
+
+SET(TARGET_NAME "${PROJECT_NAME}-selector")
+ADD_EXECUTABLE(${TARGET_NAME} ${SRC_LIST})
+TARGET_LINK_LIBRARIES(${TARGET_NAME} ${pkgs_LDFLAGS} "-lm -pie")
+INSTALL(TARGETS ${TARGET_NAME} DESTINATION ${BINDIR})
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+#include <app.h>
+#include <unistd.h>
+#include <vconf-keys.h>
+#include <vconf.h>
+#include "input_method_setting_selector.h"
+#include "input_method_setting_selector_ui.h"
+
+static bool
+app_create(void *data)
+{
+ LOGD("");
+ /* Hook to take necessary actions before main event loop starts
+ Initialize UI resources and application's data
+ If this function returns true, the main loop of application starts
+ If this function returns false, the application is terminated */
+
+ return true;
+}
+
+static void
+app_control(app_control_h app_control, void *data)
+{
+ /* Handle the launch request. */
+ appdata *ad = (appdata *)data;
+
+ LOGD("");
+
+ if (!ad)
+ return;
+
+ ad->app_type = APP_TYPE_NORMAL;
+ ad->app_state = APP_STATE_SERVICE;
+ im_setting_selector_app_create(ad);
+}
+
+static void
+app_pause(void *data)
+{
+ appdata *ad = (appdata *)data;
+ LOGD("");
+ /* Take necessary actions when application becomes invisible. */
+
+ if (!ad)
+ return;
+ ad->app_state = APP_STATE_PAUSE;
+ im_setting_selector_app_pause(ad);
+}
+
+static void
+app_resume(void *data)
+{
+ appdata *ad = (appdata *)data;
+ LOGD("");
+ /* Take necessary actions when application becomes visible. */
+
+ if (!ad)
+ return;
+ ad->app_state = APP_STATE_RESUME;
+}
+
+static void
+app_terminate(void *data)
+{
+ appdata *ad = (appdata *)data;
+ LOGD("");
+ /* Release all resources. */
+
+ if (!ad)
+ return;
+ ad->app_state = APP_STATE_TERMINATE;
+ im_setting_selector_app_terminate(ad);
+}
+
+static void
+ui_app_lang_changed(app_event_info_h event_info, void *user_data)
+{
+ LOGD("");
+ /*APP_EVENT_LANGUAGE_CHANGED*/
+}
+
+static void
+ui_app_orient_changed(app_event_info_h event_info, void *user_data)
+{
+ LOGD("");
+ /*APP_EVENT_DEVICE_ORIENTATION_CHANGED*/
+}
+
+static void
+ui_app_region_changed(app_event_info_h event_info, void *user_data)
+{
+ LOGD("");
+ /*APP_EVENT_REGION_FORMAT_CHANGED*/
+}
+
+static void
+ui_app_low_battery(app_event_info_h event_info, void *user_data)
+{
+ LOGD("");
+ /*APP_EVENT_LOW_BATTERY*/
+}
+
+static void
+ui_app_low_memory(app_event_info_h event_info, void *user_data)
+{
+ LOGD("");
+ /*APP_EVENT_LOW_MEMORY*/
+}
+
+int
+main(int argc, char *argv[])
+{
+ appdata ad = {0,};
+ int ret = 0;
+
+ ui_app_lifecycle_callback_s event_callback = {0,};
+ app_event_handler_h handlers[5] = {NULL, };
+
+ event_callback.create = app_create;
+ event_callback.terminate = app_terminate;
+ event_callback.pause = app_pause;
+ event_callback.resume = app_resume;
+ event_callback.app_control = app_control;
+
+ ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, ui_app_low_battery, &ad);
+ ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, ui_app_low_memory, &ad);
+ ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, ui_app_orient_changed, &ad);
+ ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, &ad);
+ ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, ui_app_region_changed, &ad);
+
+ ret = ui_app_main(argc, argv, &event_callback, &ad);
+ if (ret != APP_ERROR_NONE) {
+ LOGW("ui_app_main failed, Err=%d\n", ret);
+ }
+
+ return ret;
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+#ifndef __INPUTMETHOD_SETTING_SELECTOR_H__
+#define __INPUTMETHOD_SETTING_SELECTOR_H__
+
+#include <Elementary.h>
+#include <dlog.h>
+#include <app.h>
+
+#ifdef LOG_TAG
+#undef LOG_TAG
+#endif
+#define LOG_TAG "INPUTMETHOD_SETTING_SELECTOR"
+
+enum {
+ APP_STATE_PAUSE = 1,
+ APP_STATE_SERVICE,
+ APP_STATE_RESUME,
+ APP_STATE_TERMINATE,
+};
+
+enum {
+ APP_TYPE_SETTING = 1,
+ APP_TYPE_SETTING_NO_ROTATION,
+ APP_TYPE_NORMAL,
+};
+
+typedef struct _appdata {
+ Evas_Object *win;
+ Evas_Object *conform;
+ Evas_Object *naviframe;
+ Evas_Object *genlist;
+ Evas_Object *popup;
+
+ int app_state;
+ int app_type;
+}appdata;
+
+#endif /*__INPUTMETHOD_SETTING_SELECTOR_H__*/
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+#include "input_method_setting_selector.h"
+#include <string>
+#include <app.h>
+#include <efl_extension.h>
+#include <vector>
+#include <isf_control.h>
+#include <app_control.h>
+#include <algorithm>
+
+#define IM_SETTING_SELECTOR_PACKAGE PACKAGE
+#define IM_SETTING_SELECTOR_LOCALE_DIR ("/usr/apps/"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")
+
+static std::vector<ime_info_s> g_ime_info_list;
+static Elm_Genlist_Item_Class *itc_im_selector = NULL;
+static Evas_Object *group_radio = NULL;
+static int g_active_ime_id = -1;
+
+typedef struct {
+ void *data;
+ int index;
+}sel_cb_data;
+
+class ime_info_compare
+{
+ public:
+ bool operator()(const ime_info_s &first, const ime_info_s &sec)
+ {
+ return (strcasecmp(first.label, sec.label) < 0);
+ }
+};
+
+static void im_setting_selector_text_domain_set(void)
+{
+ bindtextdomain(IM_SETTING_SELECTOR_PACKAGE, IM_SETTING_SELECTOR_LOCALE_DIR);
+ textdomain(IM_SETTING_SELECTOR_PACKAGE);
+}
+
+static Evas_Object *
+im_setting_selector_main_window_create(const char *name)
+{
+ int rots[4] = {0, 90, 180, 270};
+ Evas_Object *eo = NULL;
+ int w = -1, h = -1;
+ eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+
+ if (eo) {
+ elm_win_title_set(eo, name);
+ elm_win_borderless_set(eo, EINA_TRUE);
+ elm_win_alpha_set(eo, EINA_TRUE);
+ elm_win_conformant_set(eo, EINA_TRUE);
+ elm_win_autodel_set(eo, EINA_TRUE);
+ elm_win_wm_rotation_available_rotations_set(eo, rots, 4);
+ elm_win_screen_size_get(eo, NULL, NULL, &w, &h);
+ if (w > 0 && h > 0) {
+ evas_object_resize(eo, w, h);
+ }
+ }
+ return eo;
+}
+
+static void im_setting_selector_sort_ime_info(std::vector<ime_info_s> &preinstall, std::vector<ime_info_s> &user)
+{
+ std::sort(preinstall.begin(), preinstall.end(), ime_info_compare());
+ std::sort(user.begin(), user.end(), ime_info_compare());
+ for(unsigned int i=0; i<preinstall.size(); ++i)
+ {
+ g_ime_info_list.push_back(preinstall[i]);
+ }
+ for(unsigned int i=0; i<user.size(); ++i)
+ {
+ g_ime_info_list.push_back(user[i]);
+ }
+}
+
+static void im_setting_selector_load_ime_info(void)
+{
+ std::vector<ime_info_s> ime_info_list_preinstall;
+ std::vector<ime_info_s> ime_info_list_user;
+ g_ime_info_list.clear();
+ char *active_ime_appid = NULL;
+ isf_control_get_active_ime(&active_ime_appid);
+ ime_info_s *info = NULL;
+ int cnt = isf_control_get_all_ime_info(&info);
+ if (info)
+ {
+ for(int i=0; i<cnt; ++i)
+ {
+ SECURE_LOGD("%s %s %d %d %d", info[i].appid, info[i].label, info[i].is_enabled, info[i].is_preinstalled, info[i].has_option);
+ if (info[i].is_enabled && info[i].is_preinstalled)
+ {
+ ime_info_list_preinstall.push_back(info[i]);
+ }
+ else if (info[i].is_enabled)
+ {
+ ime_info_list_user.push_back(info[i]);
+ }
+ }
+ free(info);
+ }
+
+ im_setting_selector_sort_ime_info(ime_info_list_preinstall, ime_info_list_user);
+ for(unsigned int i=0; i<g_ime_info_list.size(); ++i)
+ {
+ if (active_ime_appid && (!strcmp(active_ime_appid, g_ime_info_list[i].appid)))
+ {
+ g_active_ime_id = i;
+ }
+ }
+
+ if (active_ime_appid)
+ {
+ free(active_ime_appid);
+ }
+}
+
+static void im_setting_selector_show_ime_list(void)
+{
+ int ret;
+ app_control_h app_control;
+ const char *app_id = "org.tizen.inputmethod-setting-list";
+ ret = app_control_create(&app_control);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ LOGD("app_control_create returned %d", ret);
+ return;
+ }
+
+ ret = app_control_set_operation(app_control, APP_CONTROL_OPERATION_DEFAULT);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ LOGD("app_control_set_operation returned %d", ret);
+ app_control_destroy(app_control);
+ return;
+ }
+
+ ret = app_control_set_app_id(app_control, app_id);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ LOGD("app_control_set_app_id returned %d", ret);
+ app_control_destroy(app_control);
+ return;
+ }
+
+ ret = app_control_send_launch_request(app_control, NULL, NULL);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ LOGD("app_control_send_launch_request returned %d, %s\n", ret, get_error_message(ret));
+ app_control_destroy(app_control);
+ return;
+ }
+ app_control_destroy(app_control);
+}
+
+static void im_setting_selector_select_keyboard_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ /* call input method list application*/
+ im_setting_selector_show_ime_list();
+}
+
+static void im_setting_selector_radio_change_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ /*save the checked ime*/
+ int index = (int)reinterpret_cast<long>(data);
+ if (index < 0 || index >= (int)g_ime_info_list.size()) {
+ LOGW("Wrong value. index : %d, g_ime_info_list.size() : %d\n", index, g_ime_info_list.size());
+ return;
+ }
+}
+
+static void im_setting_selector_update_radio_state(Elm_Object_Item *item, Evas_Object *obj, int index)
+{
+ if (index < 0 || index >= (int)g_ime_info_list.size()) {
+ LOGW("Wrong value. index : %d, g_ime_info_list.size() : %d\n", index, g_ime_info_list.size());
+ return;
+ }
+
+ if (item && obj) {
+ elm_genlist_item_selected_set(item, EINA_FALSE);
+ /* Update check button */
+ Evas_Object *radio = elm_object_item_part_content_get(item, "elm.swallow.end");
+ if (radio == NULL) {
+ radio = elm_object_item_part_content_get(item, "elm.icon");
+ }
+ evas_object_data_set(radio, "parent_genlist", obj);
+ elm_radio_value_set(radio, index);
+ isf_control_set_active_ime(g_ime_info_list[index].appid);
+ }
+}
+
+static void im_setting_selector_ime_sel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ sel_cb_data * cb_data = (sel_cb_data *)data;
+ if (!cb_data)
+ return;
+ int index = cb_data->index;
+
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ if (!item)
+ return;
+ im_setting_selector_update_radio_state(item, obj, index);
+
+ delete cb_data;
+ ui_app_exit();
+}
+
+static Evas_Object *im_setting_selector_genlist_create(Evas_Object* parent)
+{
+ Evas_Object *genlist = elm_genlist_add(parent);
+ elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+ elm_genlist_homogeneous_set(genlist, EINA_TRUE);
+ 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_show(genlist);
+ return genlist;
+}
+
+static char *im_setting_selector_genlist_item_label_get(void *data, Evas_Object *obj, const char *part)
+{
+ int index = (int)reinterpret_cast<long>(data);
+ if (index < 0 || index >= (int)g_ime_info_list.size()) {
+ LOGW("Wrong value. index : %d, g_ime_info_list.size() : %d\n", index, g_ime_info_list.size());
+ return NULL;
+ }
+
+ if (!strcmp(part, "elm.text") ||
+ !strcmp(part, "elm.text.main") ||
+ !strcmp(part, "elm.text.main.left")) {
+ return strdup(g_ime_info_list[index].label);
+ }
+
+ return NULL;
+}
+
+static Evas_Object *im_setting_selector_genlist_item_icon_get(void *data, Evas_Object *obj, const char *part)
+{
+ int index = (int)(data);
+ if (!strcmp(part, "elm.swallow.end") ||
+ !strcmp(part, "elm.icon.2")) {
+ Evas_Object *radio = elm_radio_add(obj);
+ elm_object_style_set(radio, "list");
+ elm_radio_state_value_set(radio, index);
+ elm_radio_group_add(radio, group_radio);
+ evas_object_show(radio);
+ evas_object_smart_callback_add(radio, "changed", im_setting_selector_radio_change_cb, (void *) (index));
+
+ return radio;
+ }
+ return NULL;
+}
+
+static void im_setting_selector_genlist_item_class_create(void)
+{
+ itc_im_selector = elm_genlist_item_class_new();
+ if (itc_im_selector) {
+ itc_im_selector->item_style = "type1";
+ itc_im_selector->func.text_get = im_setting_selector_genlist_item_label_get;
+ itc_im_selector->func.content_get = im_setting_selector_genlist_item_icon_get;
+ itc_im_selector->func.state_get = NULL;
+ itc_im_selector->func.del = NULL;
+ }
+}
+
+static void im_setting_selector_add_ime(void *data) {
+ appdata *ad = (appdata *)data;
+ unsigned int i = 0;
+ if (!ad)
+ return;
+ im_setting_selector_genlist_item_class_create();
+
+ /* keyboard list */
+ for (i = 0; i < g_ime_info_list.size(); i++) {
+ sel_cb_data *cb_data = new sel_cb_data;
+ cb_data->data = data;
+ cb_data->index = i;
+ elm_genlist_item_append(ad->genlist,
+ itc_im_selector,
+ (void *)(i),
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ im_setting_selector_ime_sel_cb,
+ (void *)(cb_data));
+ }
+ elm_radio_value_set(group_radio, g_active_ime_id);
+}
+
+Evas_Object *im_setting_selector_list_create(void *data)
+{
+ appdata *ad = (appdata *)data;
+ if (!ad)
+ return NULL;
+ ad->genlist = im_setting_selector_genlist_create(ad->popup);
+ im_setting_selector_add_ime(ad);
+ return ad->genlist;
+}
+
+static Evas_Object *im_setting_selector_naviframe_create(Evas_Object* parent)
+{
+ Evas_Object *naviframe = elm_naviframe_add(parent);
+ elm_naviframe_prev_btn_auto_pushed_set(naviframe, EINA_TRUE);
+ eext_object_event_callback_add(naviframe, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL);
+ evas_object_size_hint_weight_set(naviframe, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(naviframe, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_object_part_content_set(parent, "elm.swallow.content", naviframe);
+ evas_object_show(naviframe);
+ return naviframe;
+}
+
+static Eina_Bool im_setting_list_navi_item_pop_cb(void *data, Elm_Object_Item *it)
+{
+ static bool in_exit = false;
+ if (in_exit)
+ return EINA_TRUE;
+ in_exit = true;
+ if (data == NULL)
+ return EINA_TRUE;
+ ui_app_exit();
+ return EINA_TRUE;
+}
+
+static void
+im_setting_selector_popup_block_clicked_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
+{
+ evas_object_del(obj);
+ ui_app_exit();
+}
+
+Evas_Object *im_setting_selector_popup_create(void *data)
+{
+ appdata *ad = (appdata *)data;
+ if (!ad)
+ return NULL;
+ if (NULL == group_radio)
+ {
+ group_radio = elm_radio_add(ad->win);
+ elm_radio_state_value_set(group_radio, -1);
+ }
+ 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_style_set(ad->popup, "theme_bg");
+
+ ad->naviframe = im_setting_selector_naviframe_create(ad->win);
+ ad->genlist = im_setting_selector_list_create(data);
+
+ Evas_Object *back_btn = elm_button_add(ad->naviframe);
+ elm_object_style_set(back_btn, "naviframe/back_btn/default");
+ Elm_Object_Item *nf_main_item = elm_naviframe_item_push(ad->naviframe,
+ NULL,
+ back_btn,
+ NULL,
+ NULL,
+ NULL);
+ elm_naviframe_item_pop_cb_set(nf_main_item, im_setting_list_navi_item_pop_cb, ad);
+
+ 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_part_content_set(ad->popup, "button1", btn);
+ evas_object_smart_callback_add(btn, "clicked", im_setting_selector_select_keyboard_cb, ad);
+ }
+
+ elm_object_content_set(ad->popup, ad->genlist);
+ evas_object_show(ad->popup);
+ return ad->popup;
+}
+
+void
+im_setting_selector_app_create(void *data)
+{
+ appdata *ad = (appdata *)data;
+ if (!ad)
+ return;
+ im_setting_selector_text_domain_set();
+ ad->win = im_setting_selector_main_window_create(PACKAGE);
+ im_setting_selector_load_ime_info();
+ im_setting_selector_popup_create(ad);
+
+ evas_object_show(ad->win);
+}
+
+void
+im_setting_selector_app_pause(void *data)
+{
+ ui_app_exit();
+}
+
+void im_setting_selector_app_terminate(void *data)
+{
+ g_ime_info_list.clear();
+ if (NULL != itc_im_selector)
+ {
+ elm_genlist_item_class_free(itc_im_selector);
+ itc_im_selector = NULL;
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __INPUTMETHOD_SETTING_SELECTOR_UI_H
+#define __INPUTMETHOD_SETTING_SELECTOR_UI_H
+
+#define INPUT_METHOD_SETTING_DEBUG(msg, args...) LOGD(msg, ##args)
+#define INPUT_METHOD_SETTING_ERROR(msg, args...) LOGE(msg, ##args)
+
+void im_setting_selector_app_create(void *data);
+void im_setting_selector_app_pause(void *data);
+void im_setting_selector_app_terminate(void *data);
+
+#endif /* __INPUTMETHOD_SETTING_SELECTOR_UI_H */
+
--- /dev/null
+<manifest>
+ <define>
+ <domain name="org.tizen.inputmethod-setting" />
+ </define>
+ <request>
+ <domain name="org.tizen.inputmethod-setting" />
+ </request>
+ <assign>
+ <!-- Package manifest file -->
+ <filesystem path="/usr/share/locale/*" label="_"/>
+ <filesystem path="/usr/share/packages/org.tizen.inputmethod-setting.xml" label="_" />
+
+ <!-- Package folder -->
+ <filesystem path="/usr/apps/org.tizen.inputmethod-setting" label="org.tizen.inputmethod-setting" />
+ <filesystem path="/usr/apps/org.tizen.inputmethod-setting/res" label="org.tizen.inputmethod-setting" />
+ <filesystem path="/usr/apps/org.tizen.inputmethod-setting/res/image" label="org.tizen.inputmethod-setting" />
+ <filesystem path="/usr/share/icons/default/small/org.tizen.inputmethod-setting-list.png" label="_"/>
+ <filesystem path="/usr/share/icons/default/small/org.tizen.inputmethod-setting-selector.png" label="_"/>
+
+ <!-- Executable file -->
+ <filesystem path="/usr/apps/org.tizen.inputmethod-setting/bin/inputmethod-setting-list" label="org.tizen.inputmethod-setting" exec_label="org.tizen.inputmethod-setting" />
+
+ <filesystem path="/usr/apps/org.tizen.inputmethod-setting/bin/inputmethod-setting-selector" label="org.tizen.inputmethod-setting" exec_label="org.tizen.inputmethod-setting" />
+ </assign>
+</manifest>
--- /dev/null
+org.tizen.inputmethod-setting system::homedir arwxt
+org.tizen.inputmethod-setting sys-assert::core arwxt
+org.tizen.inputmethod-setting isf rwx
+org.tizen.inputmethod-setting isf::manager rwx
+org.tizen.inputmethod-setting xorg rwx
+org.tizen.inputmethod-setting tizen::vconf::display rl
+org.tizen.inputmethod-setting tizen::vconf::public::r::platform::rw rw
+org.tizen.inputmethod-setting tizen::vconf::public::r rl
+org.tizen.inputmethod-setting tizen::vconf::camcorder rl
+org.tizen.inputmethod-setting tizen::vconf::setting::admin rl
+org.tizen.inputmethod-setting tizen::vconf::setting rl
+org.tizen.inputmethod-setting org.tizen.inputmethod-setting-list::private rw---- ------
+org.tizen.inputmethod-setting aul::launch --x--- ------
+org.tizen.inputmethod-setting org.tizen.indicator rwx
+org.tizen.inputmethod-setting pkgmgr::db rl
+org.tizen.inputmethod-setting system::share rx
+org.tizen.inputmethod-setting org.tizen.indicator_shm r
+org.tizen.inputmethod-setting pulseaudio rw
+org.tizen.inputmethod-setting device::app_logging rw
+org.tizen.inputmethod-setting device::sys_logging rw
+org.tizen.inputmethod-setting ecore::lock rwx
+isf org.tizen.inputmethod-setting w
+
+org.tizen.inputmethod-setting-list system::homedir arwxt
+org.tizen.inputmethod-setting-list system::share rx
+org.tizen.inputmethod-setting-list sys-assert::core arwxt
+org.tizen.inputmethod-setting-list isf rwx
+org.tizen.inputmethod-setting-list isf::manager rwx
+org.tizen.inputmethod-setting-list xorg rwx
+org.tizen.inputmethod-setting-list tizen::vconf::public::r::platform::rw rw
+org.tizen.inputmethod-setting-list tizen::vconf::public::r rl
+org.tizen.inputmethod-setting-list ecore::lock rwx
+org.tizen.inputmethod-setting-list org.tizen.inputmethod-setting::private rw---- ------
+
+org.tizen.inputmethod-setting-selector system::homedir arwxt
+org.tizen.inputmethod-setting-selector system::share rx
+org.tizen.inputmethod-setting-selector sys-assert::core arwxt
+org.tizen.inputmethod-setting-selector isf rwx
+org.tizen.inputmethod-setting-selector isf::manager rwx
+org.tizen.inputmethod-setting-selector xorg rwx
+org.tizen.inputmethod-setting-selector tizen::vconf::public::r::platform::rw r
+org.tizen.inputmethod-setting-selector tizen::vconf::public::r rl
+org.tizen.inputmethod-setting-selector ecore::lock rwx
+org.tizen.inputmethod-setting-selector org.tizen.inputmethod-setting::private rw---- ------
+org.tizen.inputmethod-setting-selector org.tizen.inputmethod-setting-list rwx
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.inputmethod-setting" version="0.4.29" install-location="internal-only">
+ <label>Keyboard setting</label>
+ <author email="shoum.chen@samsung.com" href="www.samsung.com">Shuoming Chen</author>
+ <description>Keyboard setting Application</description>
+ <ui-application appid="org.tizen.inputmethod-setting-list" launch_mode="caller" exec="/usr/apps/org.tizen.inputmethod-setting/bin/inputmethod-setting-list" hw-acceleration="on" nodisplay="true" multiple="false" type="capp" taskmanage="false" process-pool="true">
+ <category name="http://tizen.org/category/ime-list"/>
+ <icon>/usr/share/icons/default/small/org.tizen.inputmethod-setting-list.png</icon>
+ <label>IME List</label>
+ <label xml:lang="en-us">IME List</label>
+ </ui-application>
+
+ <ui-application appid="org.tizen.inputmethod-setting-selector" launch_mode="single" exec="/usr/apps/org.tizen.inputmethod-setting/bin/inputmethod-setting-selector" hw-acceleration="on" nodisplay="true" multiple="false" type="capp" taskmanage="false" process-pool="true">
+ <category name="http://tizen.org/category/ime-selector"/>
+ <icon>/usr/share/icons/default/small/org.tizen.inputmethod-setting-selector.png</icon>
+ <label>IME Selector</label>
+ <label xml:lang="en-us">IME Selector</label>
+ </ui-application>
+
+ <privileges>
+ <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+ </privileges>
+</manifest>
--- /dev/null
+Name: org.tizen.inputmethod-setting
+Summary: Input Method Setting Application
+Version: 0.4.29
+Release: 1
+Group: Graphics & UI Framework/Input
+License: Apache-2.0
+Source0: %{name}-%{version}.tar.gz
+
+%if "%{?tizen_profile_name}" == "tv"
+ExcludeArch: %{arm} %ix86 x86_64
+%endif
+
+%if "%{?tizen_profile_name}" == "wearable"
+ExcludeArch: %{arm} %ix86 x86_64
+%endif
+
+BuildRequires: gettext-tools
+BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(appcore-efl)
+BuildRequires: pkgconfig(isf)
+BuildRequires: pkgconfig(elementary)
+BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(vconf)
+BuildRequires: pkgconfig(vconf-internal-keys)
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(pkgmgr-info)
+BuildRequires: cmake
+BuildRequires: efl-extension-devel
+
+%description
+Setting Application for ISF.
+
+%prep
+%setup -q -n %{name}-%{version}
+
+%build
+export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE"
+export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE"
+export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
+export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
+
+%if "%{?tizen_profile_name}" == "mobile"
+CFLAGS+=" -D_MOBILE";
+CXXFLAGS+=" -D_MOBILE";
+%endif
+
+%if "%{?tizen_profile_name}" == "wearable"
+CFLAGS+=" -D_WEARABLE";
+CXXFLAGS+=" -D_WEARABLE";
+%endif
+
+rm -rf CMakeFiles
+rm -rf CMakeCache.txt
+cmake . -DCMAKE_INSTALL_PREFIX=/usr
+make %{?jobs:-j%jobs}
+
+%post
+/sbin/ldconfig
+
+mkdir -p /usr/apps/org.tizen.inputmethod-setting/bin
+mkdir -p /usr/apps/org.tizen.inputmethod-setting/res
+
+%postun -p /sbin/ldconfig
+
+%install
+rm -rf %{buildroot}
+
+%make_install
+mkdir -p %{buildroot}/usr/share/license
+
+%files
+%manifest org.tizen.inputmethod-setting.manifest
+%{_sysconfdir}/smack/accesses.d/*
+%defattr(-,root,root,-)
+/usr/apps/org.tizen.inputmethod-setting/bin/*
+/usr/apps/org.tizen.inputmethod-setting/res/locale/*/LC_MESSAGES/inputmethod-setting.mo
+/usr/share/license/*
+/usr/share/packages/org.tizen.inputmethod-setting.xml
+/usr/share/icons/default/small/*
--- /dev/null
+# for i18n
+
+#SET(POFILES en_US.po en_GB.po ja.po ko.po zh_CN.po)
+#SET(POFILES en.po ko_KR.po)
+SET(POFILES ar.po as.po az.po be_BY.po bg.po bn.po bn_BD.po ca.po cs.po da.po de.po el_GR.po en.po en_PH.po en_US.po es_ES.po es_US.po et.po eu.po fa.po fi.po fr.po fr_CA.po ga.po gl.po gu.po he.po hi.po hr.po hu.po hy.po id.po is.po it_IT.po ja_JP.po ka.po kk.po km.po kn.po ko_KR.po ky_KG.po lo.po lt.po lv.po mk.po ml.po mn_MN.po mr.po ms.po my_MM.po my_ZG.po nb.po ne.po nl.po or.po pa.po pl.po pl_SP.po pt_BR.po pt_PT.po ro.po ru_RU.po si.po sk.po sl.po sq.po sr.po sv.po ta.po te.po tg_TJ.po th.po tk_TM.po tl.po tr_TR.po uk.po ur.po uz.po vi.po zh_CN.po zh_HK.po zh_TW.po)
+
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+ SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+ MESSAGE("PO: ${pofile}")
+ GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+ GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+ SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${moFile}
+ COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+ DEPENDS ${absPofile}
+ )
+ INSTALL(FILES ${moFile}
+ DESTINATION ${RESDIR}/locale/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+ SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+MESSAGE(".mo files: ${moFiles}")
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
--- /dev/null
+text_input_setting_efl.cpp
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "لوحات المفاتيح"
+
+msgid "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"
+msgstr "يمكن لطريقة الإدخال هذه جمع كل النصوص التي تطبعها، بما في ذلك البيانات الشخصية مثل كلمات المرور وأرقام بطاقات الائتمان. مصدرها تطبيق %s. انقر فوق تفعيل لتفعيل طريقة الإدخال هذه."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "ضبط لوحة المفاتيح"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "تفعيل"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "إلغاء"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "انتباه"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "لوحة المفاتيح الظاهرية"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "لوحة المفاتيح"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "تحديد لوحة المفاتيح"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "لوحة المفاتيح الافتراضية"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "কীব'ৰ্ড"
+
+msgid "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"
+msgstr "পাছৱৰ্ডৰ নিচিনা ব্যক্তিগত ডাটা আৰু ক্ৰেডিট কাৰ্ড নম্বৰ অন্তৰ্ভুক্ত কৰি আপুনি টাইপ কৰা সকলো পাঠ সংগ্ৰহ কৰিবলৈ এই ইনপুট পদ্ধতি সক্ষম হ'ব পাৰে৷ এইটো %s এপ্লিকেশ্বনৰ পৰা আহে৷ এই ইনপুট পদ্ধতি সক্ষম কৰিবলৈ সক্ষম কৰক টিপক৷"
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "কীব'ৰ্ড ছেটিংছ"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "সক্ষম"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "বাতিল"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "মনোযোগ"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "ভাৰ্ছুৱেল কীব'ৰ্ড"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "কীব'ৰ্ড"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "কীবোর্ড নির্বাচন করুন"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "ডিফ'ল্ট কীব'ৰ্ড"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Klaviaturalar"
+
+msgid "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"
+msgstr "Bu daxiletmə üsulu parollar və kredit kartı nömrələri kimi şəxsi məlumatlar da daxil olmaqla sizin yazdığının bütün mətni əldə edə bilər. Bu, %s proqramından gəlir. Bu daxiletmə rejimini aktiv etmək üçün Aktivləşdir vurun."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Klaviatura parametrləri"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Qoş"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Ləğv et"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Diqqət"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtual klaviatura"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Klaviatura"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Klaviaturanı seç"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Defolt klaviatura"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Клавіятуры"
+
+msgid "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"
+msgstr "Гэты спосаб уводу можа збіраць увесь тэкст, які ўводзіцца, у тым ліку персанальныя даныя, напрыклад, паролі і нумары крэдытных карт. Яго забяспечвае праграма %s. Націсніце «Уключыць», каб уключыць спосаб уводу."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Keyboard settings"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Уключыць"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Скас."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Увага"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Віртуальная клавіятура"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Клавіятура"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Выбраць клавіятуру"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Стандартная клавіятура"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Клавиатури"
+
+msgid "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"
+msgstr "Този метод за въвеждане вероятно може да събере всичкия написан от вас текст, включително лични данни, като пароли и номера на кредитни карти. Това идва от приложението %s. Докоснете „Активиране“, за да активирате този метод на въвеждане."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Настройки на клавиатурата"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Разрешаване"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Отказ"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Внимание"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Виртуална клавиатура"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Клавиатура"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Изберете клавиатура"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Клавиатура по подразбиране"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "কীবোর্ডগুলি"
+
+msgid "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"
+msgstr "এই ইনপুট পদ্ধতিটি ব্যক্তিগত তথ্য যেমন পাসওয়ার্ডগুলি ও ক্রেডিট কার্ড নম্বরগুলি সহ আপনার লেখা সমস্ত পাঠ্য সংগ্রহ করতে সমর্থ হতে পারে। এটি %s অ্যাপ্লিকেশন থেকে আসে। এই ইনপুট পদ্ধতি সক্ষম করতে সক্ষম করুন ট্যাপ করুন।"
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "কীবোর্ড সেটিংস"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "সক্ষম"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "বাতিল"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "সজাগ হন"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "ভার্চুয়াল কীবোর্ড"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "কীবোর্ড"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "কীবোর্ড নির্বাচন করুন"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "ডিফল্ট কীবোর্ড"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "কীবোর্ডসমূহ"
+
+msgid "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"
+msgstr "এই ইনপুট পদ্ধতি ব্যক্তিগত তথ্য যেমন পাসওয়ার্ড ও ক্রেডিট কার্ডের নম্বরসহ আপনার লেখা সব টেক্সট হয়তো সংগ্রহ করতে পারে৷ এটি %s অ্যাপ্লিকেশন থেকে এসেছে৷ এই ইনপুট পদ্ধতি সক্রিয় করতে ‘সক্রিয় করুন’ অপশনে ট্যাপ করুন৷"
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "কিবোর্ড সেটিংস"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "সক্রিয়"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "বাতিল"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "মনোযোগ দিন"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "ভার্চুয়াল কিবোর্ড"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "কিবোর্ড"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Select keyboard"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "ডিফল্ট কিবোর্ড"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Teclats"
+
+msgid "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"
+msgstr "Aquest mètode d'entrada pot recopilar tots els textos que escrigui, incloent-hi les dades personals com ara les contrasenyes i els números de la targeta de crèdit. Ve de l'aplicació %s. Toqui Activar per activar aquest mètode d'entrada."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Ajustaments del teclat"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Activar"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Canc"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Atenció"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Teclat virtual"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Teclat"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Seleccionar teclat"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Teclat predeterminat"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Klávesnice"
+
+msgid "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"
+msgstr "Tato metoda zadávání může ukládat veškerý zadávaný text včetně osobních dat, např. hesel a čísel kreditních karet. Pochází z aplikace %s. Tuto metodu zadávání zapnete klepnutím na tlačítko Zapnout."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Nastavení klávesnice"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Povolit"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Zruš."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Pozor"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtuální klávesnice"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Klávesnice"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Vybrat klávesnici"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Výchozí klávesnice"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Tastaturer"
+
+msgid "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"
+msgstr "Denne indtastningsmetode kan være i stand til at indsamle al tekst, du skriver, inklusive personlige data såsom adgangskoder og kreditkortnumre. Den kommer fra applikationen %s. Tryk på Aktiver for at aktivere denne indtastningsmetode."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Tastaturindstillinger"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Aktivér"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Afbr."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Bemærk!"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtuelt tastatur"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Tastatur"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Vælg tastatur"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Standardtastatur"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Tastaturen"
+
+msgid "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"
+msgstr "Die Eingabemethode kann den von Ihnen eingegebenen Text, einschließlich persönliche Daten, wie Passwörter und Kreditkartennummern, sammeln. Sie stammt von der Anwendung %s. Auf „Aktivieren“ tippen, um diese Eingabemethode zu aktivieren."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Tastatureinstellungen"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Aktivieren"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Abbr."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Achtung"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtuelle Tastatur"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Tastatur"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Tastatur auswählen"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Standardtastatur"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Πληκτρολόγια"
+
+msgid "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"
+msgstr "Η μέθοδος εισαγωγής μπορεί να συλλέγει όλα όσα πληκτρολογείτε, συμπεριλαμβανομένων προσωπικών δεδομένων, όπως κωδικοί πρόσβασης και αριθμοί πιστωτικών καρτών. Προέρχεται από την εφαρμογή του %s. Πατήστε «Ενεργοποίηση» για να ενεργοποιηθεί αυτή η μέθοδος εισαγωγής."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Ρυθμίσεις πληκτρολογίου"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Ενεργό"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Άκυρο"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Προσοχή"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Εικονικό πληκτρολόγιο"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Πληκτρολόγιο"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Επιλογή πληκτρολογίου"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Προεπιλεγμένο πληκτρολόγιο"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Keyboards"
+
+msgid "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"
+msgstr "This input method may be able to collect all the text you type, including personal data like passwords and credit card numbers. It comes from the %s application. Tap Enable to enable this input method."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Keyboard settings"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Enable"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Attention"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtual keyboard"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Keyboard"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Select keyboard"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Default keyboard"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Keyboards"
+
+msgid "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"
+msgstr "This input method may be able to collect all the text you type, including personal data like passwords and credit card numbers. It comes from the %s application. Tap Enable to enable this input method."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Keyboard settings"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Enable"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Attention"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtual keyboard"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Keyboard"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Select keyboard"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Default keyboard"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Keyboards"
+
+msgid "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"
+msgstr "This input method may be able to collect all the text you type, including personal data like passwords and credit card numbers. It comes from the %s application. Tap Turn on to turn on this input method."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Keyboard settings"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Turn on"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Cancel"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Attention"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtual keyboard"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Keyboard"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Select keyboard"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Default keyboard"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Teclados"
+
+msgid "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"
+msgstr "Este método de entrada puede recopilar todo el texto que escriba, incluidos datos personales como contraseñas o números de tarjeta de crédito. Viene con la aplicación %s. Pulse Activar para activar este método de entrada."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Ajustes del teclado"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Habilitar"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Atención"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Teclado virtual"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Teclado"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Seleccionar teclado"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Teclado predeterminado"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Teclados"
+
+msgid "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"
+msgstr "Es posible que este método de introducción almacene el contenido introducido, que incluye información personal como las contraseñas y números de tarjetas de crédito. La función proviene de la aplicación %s. Pulse Activar para activar este método de introducción."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Ajustes del teclado"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Activar"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Atención"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Teclado virtual"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Teclado"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Seleccionar teclado"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Teclado predeterminado"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Klaviatuurid"
+
+msgid "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"
+msgstr "See sisestusmeetod võib koguda teie sisestatud teksti, sealhulgas isiklikke andmeid nagu paroolid ja krediitkaardi numbrid. See tuleb rakendusest %s. Toksake käsku Aktiveeri, et aktiveerida see sisestusviis."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Klaviatuuri seaded"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Luba"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Tühis."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Tähelepanu!"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtuaalne klaviatuur"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Klahvistik"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Vali klaviatuur"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Vaikeklaviatuur"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Teklatuak"
+
+msgid "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"
+msgstr "Baliteke sarrera metodo honek idazten duzun testua biltzeko gai izatea, pasahitzak eta kreditu txartelen zenbakiak bezalako datu pertsonalak barne. %s aplikaziotik dator. Ukitu Gaitu sarrera metodo hau gaitzea."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Teklatuaren ezarpenak"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Gaitu"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Ezez."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Oharra"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Teklatu birtuala"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Teklatua"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Hautatu teklatua"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Lehenetsitako teklatua"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "صفحه کلیدها"
+
+msgid "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"
+msgstr "این روش ورودی میتواند کل متنی که تایپ میکنید، شامل دادههای شخصی مانند رمزهای ورود و شمارههای کارت اعتباری را جمعآوری نماید. این اطلاعات از برنامه %s میآیند. برای فعال کردن این روش ورودی، روی فعال کردن ضربه بزنید."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "تنظیمات صفحه کلید"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "فعال"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "لغو"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "توجه"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "صفحه کلید مجازی"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "صفحه کلید"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "انتخاب صفحه کلید"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "صفحهکلید پیشفرض"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Näppäimistöt"
+
+msgid "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"
+msgstr "Tämä syöttötapa pystyy mahdollisesti keräämään kaikki kirjoittamasi tiedot, myös henkilökohtaiset tiedot, kuten salasanat ja luottokorttinumerot. Se kuuluu sovellukseen %s. Ota tämä syöttötapa käyttöön napauttamalla Ota käyttöön."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Näppäimistön asetukset"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Päälle"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Per."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Huomio"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtuaalinen näppäimistö"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Näppäimistö"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Valitse näppäimistö"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Oletusnäppäimistö"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Claviers"
+
+msgid "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"
+msgstr "Ce mode de saisie peut collecter tout le texte saisi, notamment les données personnelles telles que les mots de passe et les numéros de carte de crédit. Cela vient de l'application %s. Appuyez sur Activer pour activer ce mode de saisie."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Paramètres du clavier"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Activer"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Annul."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Attention"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Clavier virtuel"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Clavier"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Sélectionner un clavier"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Clavier par défaut"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Claviers"
+
+msgid "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"
+msgstr "Ce mode de saisie peut collecter tout le texte saisi, notamment les données personnelles telles que les mots de passe et les numéros de carte de crédit. Cela vient de l'application %s. Touchez Activer pour activer ce mode de saisie."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Paramètres du clavier"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Activer"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Annuler"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Attention"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Clavier tactile"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Clavier"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Sélectionner un clavier"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Clavier par défaut"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Eochairchláir"
+
+msgid "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"
+msgstr "Is féidir go mbeidh an modh ionchuir seo in ann an téacs uile a chlóscríobhfaidh tú a bhailiú, lena n-áirítear sonraí pearsanta amhail pasfhocail agus uimhreacha cárta creidmheasa. Is as an bhfeidhmchlár %s é. Tapáil Cumasaigh leis an modh ionchuir seo a chumasú."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Socruithe eochairchláir"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Cumasaigh"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Cealú"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Aire"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Eochairchlár fíorúil"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Eochairchlár"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Roghnaigh eochairchlár"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Eochairchlár réamhshocraithe"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Teclados"
+
+msgid "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"
+msgstr "É posible que este método de introdución recompile todo o texto que escribas, incluídos os datos persoais como os contrasinais e os números das tarxetas de crédito. Procede da aplicación %s. Toca Activar para activar este método de introdución."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Axustes do teclado"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Activar"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Atención"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Teclado virtual"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Teclado"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Seleccionar teclado"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Teclado predeterminado"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "કીબોર્ડ્સ"
+
+msgid "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"
+msgstr "આ ઇનપુટ પદ્ધતિ પાસવર્ડ્સ અને ક્રેડિટ કાર્ડ નંબરો જેવી વ્યક્તિગત માહિતી સહિત તમે ટાઇપ કરો તે બધા ટેક્સ્ટને એકત્ર કરવા માટે સમર્થ હોઈ શકે છે. તે %s એપ્લિકેશનમાંથી આવે છે. આ ઇનપુટ પદ્ધતિને સક્ષમ કરવા માટે સક્ષમ કરો ટેપ કરો."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "કિબોર્ડ સેટિંગ્સ"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "સક્ષમ કરો"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "રદ કરો"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "સાવધાન"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "આભાસી કીબોર્ડ"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "કીબોર્ડ"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "કીબોર્ડ પસંદ કરો"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "મૂળભૂત કીબોર્ડ"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "מקלדות"
+
+msgid "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"
+msgstr "ייתכן ששיטת הזנה זו תוכל לאסוף את כל הטקסט שאתה מקליד, כולל נתונים אישיים כמו סיסמאות ומספרי כרטיסי אשראי. מגיע מהיישום %s. הקש על 'הפעל' כדי להפעיל שיטת הזנה זו."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "הגדרות מקלדת"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "הפעל"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "ביטול"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "שים לב"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "מקלדת וירטואלית"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "מקלדת"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "בחר מקלדת"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "מקלדת ברירת מחדל"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "कीबोर्ड्स"
+
+msgid "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"
+msgstr "हो सकता है, यह इनपुट पद्धति आपके द्वारा लिखे गए सभी टेक्स्ट को एकत्रित करने में समर्थ है, जिसमें व्यक्तिगत डाटा जैसे कि पासवर्ड्स और क्रेडिट कार्ड नंबर्स शामिल हैं। यह %s एप्लीकेशन से आते हैं। इस इनपुट पद्धति को सक्षम करने के लिए सक्षम करें पर टैप करें।"
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "कीबोर्ड सेटिंग्स"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "सक्षम"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "रद्द"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "ध्यान दें"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "वर्चुअल कीबोर्ड"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "कीबोर्ड"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "कीबोर्ड चुनें"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "डिफॉल्ट कीबोर्ड"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Tipkovnice"
+
+msgid "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"
+msgstr "Ovaj način unosa može skupljati sav uneseni tekst, uključujući osobne podatke kao npr. šifre i brojeve kreditnih kartica. Pripada aplikaciji %s. Dodirnite Omogući da biste omogućili ovaj način unosa."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Postavke tipkovnice"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Uključi"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Prekid"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Pozor"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtualna tipkovnica"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Tipkovnica"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Odaberite tipkovnicu"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Zadana tipkovnica"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Billentyűzetek"
+
+msgid "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"
+msgstr "Ez a beviteli mód képes lehet minden bevitt szöveg begyűjtésére, beleértve a személyes adatokat, például a jelszavakat és a bankkártyaszámokat is. A funkciót a(z) %s alkalmazás biztosítja. A beviteli mód bekapcsolásához érintse meg a Bekapcsolás gombot."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Billentyűzet beállításai"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Engedélyezés"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Mégse"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Figyelem"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtuális billentyűzet"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Billentyűzet"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Billentyűzet kiválasztása"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Alapértelmezett billentyűzet"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Ստեղնաշարեր"
+
+msgid "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"
+msgstr "Այս ներածման եղանակը կկարողանա հավաքել Ձեր մուտքագրած ամբողջ տեքստը, ներառյալ անձնական տվյալները, ինչպիսիք են գաղտնաբառերը և վարկային քարտի համարները: Դա արդյունք է %s ծրագրի: Թակեք «Ընձեռել»՝ այս ներածման եղանակն ընձեռելու համար:"
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Ստեղնաշարի դրվածքներ"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Ակտիվացնլ"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Չեղկլ"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Ուշադրություն"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Վիրտուալ ստեղնաշար"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Ստեղնաշար"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Ընտրել ստեղնաշար"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Կանխադրված ստեղնաշար"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Keyboard"
+
+msgid "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"
+msgstr "Metode input ini mungkin dapat mengumpulkan semua teks yang Anda ketik, termasuk data pribadi seperti kata sandi dan nomor kartu kredit. Metode ini datang dari aplikasi %s. Ketuk Aktifkan untuk mengaktifkan metode input ini."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Pengaturan keyboard"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Aktif"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Batal"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Perhatian"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Keyboard virtual"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Papan tombol"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Pilih keyboard"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Keyboard default"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Lyklaborð"
+
+msgid "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"
+msgstr "Þessi innsláttaraðferð getur hugsanlega safnað öllum texta sem þú slærð inn, þar á meðal persónulegum gögnum á borð við lykilorð og kreditkortanúmer. Hún fylgir forritinu „%s“. Pikkaðu á „Kveikja“ til að kveikja á þessari innsláttaraðferð."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Stillingar lyklaborðs"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Gera virkt"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Hætta við"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Athuga"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Sýndarlyklaborð"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Lyklaborð"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Velja lyklaborð"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Sjálfgefið lyklaborð"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Tastiere"
+
+msgid "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"
+msgstr "Questo metodo di inserimento può raccogliere tutto il testo digitato, inclusi dati personali come password e numeri di carte di credito. Deriva dall'applicazione %s. Toccate Attiva per attivare questo metodo di inserimento."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Impostazioni tastiera"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Attiva"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Ann."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Attenzione"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Tastiera virtuale"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Tastiera"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Seleziona tastiera"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Tastiera predefinita"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "キーボード"
+
+msgid "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"
+msgstr "この入力方法は、パスワードやクレジットカード番号などの個人データを含め、入力された全てのテキストが収集される場合があります。これは%sアプリケーションが原因です。この入力方法を有効にするには、[有効]をタップします。"
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "キーボード設定"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "有効"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "キャンセル"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "注意"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "仮想キーボード"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "キーボード"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "キーボードを選択"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "標準キーボード"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "კლავიატურები"
+
+msgid "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"
+msgstr "ტექსტის შედგენის ამ მეთოდით შეგიძლიათ, შეაგროვოთ თქვენ მიერ აკრეფილი ყველა ტექსტი, პერსონალური მონაცემების ჩათვლით, როგორიცაა პაროლები და საკრედიტო ბარათების ნომრები. ეს მოდის %s აპლიკაციიდან. ინფორმაციის შეყვანის მეთოდის ჩასართავად, შეეხეთ ჩართვის ნიშანს."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "კლავიატურის პარამეტრები"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "ჩართვა"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "გაუქმ."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "ყურადღება"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "ვირტუალური კლავიატურა"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "კლავიატურა"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "აირჩიეთ კლავიატურა"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "ნაგულისხმევი კლავიატურა"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Пернетақталар"
+
+msgid "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"
+msgstr "Бұл енгізу әдісі арқылы құпия сөздер мен несие карта нөмірлері сияқты жеке деректерді қамтитын енгізілген барлық мәтінді жинауға болады. Ол %s қолданбасынан алынады. Осы енгізу әдісін қосу үшін, “Қосу” түймесін түртіңіз."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Пернетақта параметрлері"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Қосу"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Тоқт"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Назар аударыңыз"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Виртуалды пернетақта"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Пернетақта"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Пернетақта таңдау"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Әдепкі пернетақта"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "ក្ដារចុច"
+
+msgid "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"
+msgstr "វិធីបញ្ចូលនេះអាចប្រមូលអត្ថបទទាំងអស់ដែលអ្នកវាយ រួមទាំងទិន្នន័យផ្ទាល់ខ្លួន ដូចជាពាក្យសម្ងាត់ និង លេខបណ្ណឥណទាន។ វាបានមកពីកម្មវិធី %s។ ប៉ះ បើកប្រើ ដើម្បីបើកប្រើវិធីបញ្ចូលនេះ។"
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "ការកំណត់ក្ដារចុច"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "បើក"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "បោះបង់"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "ប្រុងប្រយ័ត្ន"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "ក្ដារចុចនិម្មិត"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "ក្ដារចុច"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "ជ្រើសក្ដារចុច"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "ក្ដារចុចលំនាំដើម"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "ಕೀಬೋರ್ಡ್ಗಳು"
+
+msgid "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"
+msgstr "ಪಾಸ್ವರ್ಡ್ಗಳು ಮತ್ತು ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ ಸಂಖ್ಯೆಗಳ ರೀತಿಯ ವೈಯಕ್ತಿಕ ಡೇಟಾ ಸೇರಿದಂತೆ, ನೀವು ಟೈಪ್ ಮಾಡುವ ಎಲ್ಲಾ ಪಠ್ಯವನ್ನು ಸಂಗ್ರಹಿಸಿಕೊಳ್ಳಲು ಈ ಇನ್ಪುಟ್ ವಿಧಾನಕ್ಕೆ ಸಾಧ್ಯವಾಗಬಹುದು. ಇದು %s ಅನ್ವಯಿಸುವಿಕೆಯಿಂದ ಬರುತ್ತದೆ. ಈ ಇನ್ಪುಟ್ ವಿಧಾನವನ್ನು ಶಕ್ತಗೊಳಿಸಲು ಶಕ್ತಗೊಳಿಸಿ ಅನ್ನು ತಟ್ಟಿ."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "ಕೀಬೋರ್ಡ್ ಸಂಯೋಜನೆಗಳು"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "ಶಕ್ತಗೊಳಿಸು"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "ರದ್ದು"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "ಗಮನಿಸಿ"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "ವರ್ಚುವಲ್ ಕೀಬೋರ್ಡ್"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "ಕೀಬೋರ್ಡ್"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "ಕೀಬೋರ್ಡ್ ಆಯ್ಕೆಮಾಡಿ"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "ಡೀಫಾಲ್ಟ್ ಕೀಬೋರ್ಡ್"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "키보드"
+
+msgid "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"
+msgstr "%s 앱의 입력 방식은 비밀번호 또는 신용카드 번호와 같은 개인정보를 포함하여 입력한 내용을 모두 수집할 수 있습니다. 이 입력 방식을 실행하려면 [실행]을 누르세요."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "키보드 설정"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "실행"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "취소"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "주의"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "가상 키보드"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "키보드"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "키보드 선택"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "기본 키보드"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Клавиатуралар"
+
+msgid "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"
+msgstr "Бул жазуу ыкмасы сиз жазган бардык текстти чогулта алат, сызсөздөр жана насыя карта номерлери сыяктуу жеке маалыматтарды дагы. Бул %s колдонмодон келет. Бул жазуу ыкмасын Иштетүүгө, иштетүүнү басыңыз."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Клавиатура орнотуулары"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Иштетүү"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Артка"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Көңүл буруңуз"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Виртуалдык клавиатура"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Ариптакта"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Клавиатураны тандаңыз"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Баштапкы клавиатура"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "ບັນດາຄີບອດ"
+
+msgid "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"
+msgstr "ວິທີປ້ອນຂໍ້ມູນນີ້ອາດສາມາດເກັບກຳຂໍ້ຄວາມທັງໝົດທີ່ພິມດີດ, ລວມທັງ ຂໍ້ມູນສ່ວນຕົວ ເຊັ່ນ ລະຫັດຜ່ານແລະເລກບັດຄຣິດິດ. ມັນມາຈາກ ແອພລິເຄຊັນ %s. ແຕະເປີດໃຊ້ງານເພື່ອເປີດໃຊ້ງານ ວິທີການປ້ອນຂໍ້ມູນນີ້."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "ຕັ້ງຄ່າຄີບອດ"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "ເປີດໃຫ້ໃຊ້ງານໄດ້"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "ຍົກເລີກ"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "ຂໍ້ຄວນຄຳນຶງ"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "ຄີບອດສະເໝືອນ"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "ຄີບອດ"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "ເລືອກຄີບອດ"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "ຄີບອດມາດຕະຖານ"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Klaviatūros"
+
+msgid "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"
+msgstr "Gali būti, kad šiuo įvesties būdu galima surinkti informaciją apie visą jūsų įvestą tekstą, taip pat asmeninius duomenis, pvz., slaptažodžius ir kredito kortelių numerius. Tai programos %s sudedamoji dalis. Bakstelėkite „Įjungti“ ir įjunkite šį įvesties metodą."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Klaviatūros nustatymai"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Įjungti"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Atš."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Dėmesio"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtualioji klaviatūra"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Klaviatūra"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Pasirinkite klaviatūrą"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Numatytoji klaviatūra"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Tastatūras"
+
+msgid "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"
+msgstr "Šī ievades metode var apkopot visu jūsu ievadīto tekstu, tostarp personiskos datus, piemēram, paroles un kredītkaršu numurus. Šis pakalpojums ir iekļauts programmā %s. Pieskarieties pie Aktivizēt, lai aktivizētu šo ievades metodi."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Tastatūras iestatījumi"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Aktivizēt"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Atcelt"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Uzmanību"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtuālā tastatūra"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Tastatūra"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Izvēlieties tastatūru"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Noklusējuma tastatūra"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Тастатури"
+
+msgid "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"
+msgstr "Овој начин на внесување може да регистрира сѐ што внесувате, вклучувајќи и лични податоци како лозинки и броеви на кредитни картички. Потекнува од апликацијата %s. Допрете Вклучи за да го вклучите овој начин на внесување."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Поставки за тастатурата"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Вклучи"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Откажи"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Внимание"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Виртуелна тастатура"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Тастатура"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Изберете тастатура"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Основна тастатура"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "കീബോര്ഡുകള്"
+
+msgid "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"
+msgstr "പാസ്വേഡുകളും ക്രെഡിറ്റ് കാർഡ് നമ്പറുകളും പോലുള്ള വ്യക്തിഗത ഡാറ്റ ഉൾപ്പെടെ, നിങ്ങൾ ടൈപ്പ് ചെയ്യുന്ന എല്ലാ ടെക്സ്റ്റും ശേഖരിക്കാൻ ഈ ഇൻപുട്ട് രീതിക്ക് സാധിച്ചേക്കും. ഇത് ലഭ്യമാക്കുന്നത് %s ആപ്ലിക്കേഷനാണ്. ഈ ഇൻപുട്ട് രീതി പ്രാപ്തമാക്കുന്നതിന് പ്രാപ്തമാക്കുക എന്നതിൽ സ്പർശിക്കുക."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "കീബോർഡ് ക്രമീകരണങ്ങൾ"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "പ്രാപ്തം"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "റദ്ദാ."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "ശ്രദ്ധിക്കുക"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "വെര്ച്വല് കീബോര്ഡ്"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "കീബോര്ഡ്"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "കീബോര്ഡ് തിരഞ്ഞെടുക്കുക"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "ഡിഫോൾട്ട് കീബോർഡ്"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Гар"
+
+msgid "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"
+msgstr "Энэ бичих арга нь таны бичсэн бүх бичвэр, эдгээрийн дотор нууц үг, картны дугаар зэрэг хувийн өгөгдлийг цуглуулж чадна. Энэ нь %s хэрэглүүрээс гарна. Идэвхжүүл дээр товшиж энэ бичих аргыг идэвхжүүл."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Гар товчлуурын тохиргоо"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Идэвхжүүл"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Цуцлах"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Хэнд"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Хийсвэр товчлуурт гар"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Гар товчлуур"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Товчлуурт гар сонго"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Өгөгдмөл гар товчлуур"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "कीबोर्ड्स"
+
+msgid "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"
+msgstr "ही निविष्ट पद्धत कदाचित, पासवर्ड्स आणि क्रेडिट कार्ड क्रमांकांसारखा व्यक्तिगत डेटा मिळून आपण टाइप केलेला सर्व मजकूर गोळा करण्यात सक्षम असेल. हे %s अनुप्रयोगावरून मिळते. ही निविष्ट पद्धत सक्षम करण्यासाठी सक्षम करा टॅप करा."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "कीबोर्ड सेटिंग्स"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "सक्रिय"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "रद्द"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "लक्ष द्या"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "आभासी कीबोर्ड"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "कीबोर्ड"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "कीबोर्ड निवडा"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "डिफॉल्ट कीबोर्ड"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Papan kekunci"
+
+msgid "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"
+msgstr "Kaedah input ini boleh mengumpul semua teks yang anda taip, termasuklah data peribadi seperti kata laluan dan nombor kad kredit. Ia datang daripada aplikasi %s. Ketik Aktifkan untuk mengaktfikan kaedah input ini."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Aturan papan kekunci"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Aktif"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Batal"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Perhatian"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Papan kekunci maya"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Papan kekunci"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Pilih papan kekunci"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Papan kekunci lalai"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "ကီးဘုတ်များ"
+
+msgid "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"
+msgstr "ဤဖြည့်စရာ နည်းလမ်းသည် စကားဝှက်များနှင့် အကြွေးဝယ်ကဒ် နံပါတ်များကဲ့သို့ ကိုယ်ရေးသီးသန့် ဒေတာများအပါအဝင် သင်ရိုက်ထည့်သည့် စာသားအားလုံးကို ကောက်ယူသွားနိုင်သည်။ ၄င်းသည် %s အပလီကေးရှင်းမှ ပေါ်လာသည်။ ဤဖြည့်စရာ နည်းလမ်းကိုဖွင့်ရန် ဖွင့်ပါကို နှိပ်ပါ။"
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Keyboard settings"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "စတင်လုပ်ဆောင်ပါ"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "ပယ်ဖျက်"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "သတိ"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtual keyboard"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "ကီးဘုတ်"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "ကီးဘုတ် ရွေးပါ"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "မူရင်းပါပုံစံ ကီးဘုတ်"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "ကီးဘုတ္မ်ား"
+
+msgid "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"
+msgstr "ဤျဖည့္စရာ နည္းလမ္းသည္ စကားဝွက္မ်ားႏွင့္ အေႂကြးဝယ္ကဒ္ နံပါတ္မ်ားကဲ့သို႔ ကိုယ္ေရးသီးသန္႔ ေဒတာမ်ားအပါအဝင္ သင္႐ိုက္ထည့္သည့္ စာသားအားလုံးကို ေကာက္ယူသြားႏိုင္သည္။ ၄င္းသည္ %s အပလီေကးရွင္းမွ ေပၚလာသည္။ ဤျဖည့္စရာ နည္းလမ္းကိုဖြင့္ရန္ ဖြင့္ပါကို ႏွိပ္ပါ။"
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "ကီးဘုတ္ သတ္မွတ္ခ်က္မ်ား"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "စတင္လုပ္ေဆာင္ပါ"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "ပယ္ဖ်က္"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "သတိ"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "ပုံရိပ္ေယာင္ ကီးဘုတ္"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "ကီးဘုတ္"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "ကီးဘုတ္ ေရြးပါ"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "မူရင္းပါပုံစံ ကီးဘုတ္"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Tastaturer"
+
+msgid "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"
+msgstr "Det kan hende at denne inndatametoden kan klare å innhente all teksten du skriver inn, inkludert personlige data som passord og kredittkortnumre. Den kommer fra %s-appen. Trykk på Aktiver for å aktivere denne inndatametoden."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Tastaturinnstillinger"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Aktiver"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Avbryt"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "OBS!"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtuelt tastatur"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Tastatur"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Velg tastatur"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Standardtastatur"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "कीबोर्डहरू"
+
+msgid "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"
+msgstr "यो इन्पुट पद्धति पासवर्ड र क्रेडिट कार्ड नम्बरहरू जस्ता व्यक्तिगत डाटा लगायत तपाईले टाइप गरेको सबै पाठ सङ्कलन गर्न सक्षम हुन सक्छ। यो %s अनुप्रयोगबाट आउँछ। यो इन्पुट पद्धति सक्षम गर्न सक्षम गर्नुहोस् ट्याप गर्नुहोस्।"
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "कीबोड सेटिङहरू"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "सक्षम पार्नुहोस्"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "रद्द"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "ध्यान दिनुहोस्"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "भर्चुअल कीबोर्ड"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "कीबोर्ड"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "कीबोर्ड चयन गर्नुहोस्"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "पूर्वनिर्धारित कीबोर्ड"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Toetsenborden"
+
+msgid "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"
+msgstr "Met deze invoermethode wordt mogelijk alle ingevoerde tekst verzameld, met inbegrip van persoonlijke gegevens als wachtwoorden en creditcardnummers. Dit is afkomstig van de applicatie %s. Tik op Inschakelen om deze invoermethode in te schakelen."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Toetsenbordinstellingen"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Aanzetten"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Annul."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Let op"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtueel toetsenbord"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Toetsenbord"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Toetsenbord selecteren"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Standaard toetsenbord"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "କୀବୋର୍ଡଗୁଡିକ"
+
+msgid "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"
+msgstr "ଏହି ଇନପୁଟ୍ ପଦ୍ଧତି ଆପଣ ଟାଇପ୍ କରିବା ସମସ୍ତ ଟେକ୍ସଟ୍, ଯାହା ବ୍ୟକ୍ତିଗତ ଡାଟା ଯେପରିକି ପାସୱାର୍ଡ୍ ଏବଂ କ୍ରେଡିଟ୍ କାର୍ଡ୍ ନମ୍ବରଗୁଡିକ ଅନ୍ତର୍ଭୁକ୍ତ କରି ସମସ୍ତ ସଂଗ୍ରହ କରିବାରେ ସମର୍ଥ ହୋଇଥାଏ। ଏହା %s ଆପ୍ଲିକେସନରୁ ଆସିଥାଏ। ଏହି ଇନପୁଟ୍ ପଦ୍ଧତି ସକ୍ଷମ କରିବାକୁ ସକ୍ଷମ ଟ୍ୟାପ୍ କରନ୍ତୁ।"
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "କୀବୋର୍ଡ ସେଟିଂସ୍"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "ସକ୍ଷମ"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "ବାତିଲ୍"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "ସତର୍କତା"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "ଭର୍ଚୁଆଲ୍ କୀବୋର୍ଡ୍"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "କୀବୋର୍ଡ୍"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "କୀବୋର୍ଡ୍ ଚୟନ କରନ୍ତୁ"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "ଡିଫଲ୍ଟ କୀବୋର୍ଡ"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "ਕੀਬੋਰਡਸ"
+
+msgid "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"
+msgstr "ਇਹ ਇਨਪੁਟ ਵਿਧੀ ਤੁਹਾਡੇ ਵਿਅਕਤੀਗਤ ਡੈਟਾ ਜਿਵੇਂ ਪਾਸਵਰਡਸ ਅਤੇ ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਨੰਬਰਸ ਸਮੇਤ ਤੁਹਾਡੇ ਦੁਆਰਾ ਟਾਈਪ ਕੀਤਾ ਜਾਣ ਵਾਲਾ ਸਾਰਾ ਟੈਕਸਟ ਇਕੱਠਾ ਕਰ ਸਕਦੀ ਹੈ। ਇਹ %s ਅਨੁਪ੍ਰਯੋਗ ਨਾਲ ਹੁੰਦਾ ਹੈ। ਇਸ ਇਨਪੁਟ ਵਿਧੀ ਨੂੰ ਸਮਰੱਥ ਕਰਨ ਲਈ ਸਮਰੱਥ ਕਰੋ ਤੇ ਟੈਪ ਕਰੋ।"
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "ਕੀਬੋਰਡ ਸੈੱਟਿੰਗਸ"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "ਸਮੱਰਥ"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "ਰੱਦ"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "ਧਿਆਨ ਦਿਉ"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "ਵਰਚੁਅਲ ਕੀਬੋਰਡ"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "ਕੀਬੋਰਡ"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "ਕੀਬੋਰਡ ਚੁਣੋ"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "ਡਿਫਾੱਲਟ ਕੀਬੋਰਡ"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Klawiatury"
+
+msgid "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"
+msgstr "Ta metoda wprowadzania może mieć możliwość gromadzenia całego wpisywanego tekstu, łącznie z takimi danymi osobistymi, jak hasła i numery kart kredytowych. Pochodzi ona z aplikacji %s. Dotknij przycisku Włącz, aby włączyć tę metodę wprowadzania."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Ustawienia klawiatury"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Włącz"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Anul."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Uwaga"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Wirtualna klawiatura"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Klawiatura"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Wybierz klawiaturę"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Klawiatura domyślna"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Klawiatury"
+
+msgid "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"
+msgstr "Ta metoda wprowadzania może mieć możliwość gromadzenia całego wpisywanego tekstu, łącznie z takimi danymi osobistymi, jak hasła i numery kart kredytowych. Pochodzi ona z aplikacji %s. Dotknij przycisku Włącz, aby włączyć tę metodę wprowadzania."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Nasztalowania tastatury"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Włōncz"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Anul."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Pozōr"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Wirtualna klawiatura"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Tastatura"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Wybierz klawiaturę"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Tastatura dōmyślnŏ"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Teclados"
+
+msgid "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"
+msgstr "Este método de entrada pode acumular todo o texto digitado, incluindo dados pessoais como senhas e números de cartão de crédito. Ele acompanha o aplicativo %s. Toque em Ativar para ativar este método de entrada."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Configurações do teclado"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Ativar"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Atenção"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Teclado virtual"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Teclado"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Selecionar teclado"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Teclado padrão"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Teclados"
+
+msgid "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"
+msgstr "Este método de introdução pode ser capaz de recolher todos os textos que introduzir, incluindo dados pessoais, tais como palavras-passe e números de cartões de crédito. É fornecido pela aplicação %s. Toque em Activar para activar este método de introdução."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Definições do teclado"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Activar"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Canc."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Atenção"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Teclado virtual"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Teclado"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Selecionar teclado"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Teclado padrão"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Tastaturi"
+
+msgid "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"
+msgstr "Această metodă de introducere poate colecta toate textele pe care le tastaţi, inclusiv date personale, cum ar fi parolele şi numerele cărţilor de credit. Provine de la aplicaţia %s. Atingeţi Activare pentru a activa metoda de introducere."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Setări tastatură"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Activare"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Anul."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Atenţie"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Tastatură virtuală"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Tastatură"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Selectare tastatură"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Tastatură implicită"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Клавиатуры"
+
+msgid "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"
+msgstr "При использовании этого метода ввода для приложения %s может собираться весь вводимый текст, включая личную информацию, такую как пароли и номера кредитных карт. Коснитесь кнопки “Включить”, чтобы включить этот метод ввода."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Параметры клавиатуры"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Включить"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Отмена"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Внимание"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Виртуальная клавиатура"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Клавиатура"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Выберите клавиатуру"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Клавиатура по умолчанию"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "යතුරු පුවරු"
+
+msgid "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"
+msgstr "මෙම ආදාන ක්රමයට මුරපද සහ ණයපත් අංක වැනි පුද්ගලික දත්ත ඇතුළුව, ඔබ ටයිප් කරන පෙළ සියල්ල එකතු කර ගැනීමට හැකි වනු ඇත. එය %s යෙදුමෙන් පැමිණේ. මෙම ආදාන ක්රමය සක්රිය කිරීමට සක්රිය කරන්න තට්ටු කරන්න."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "යතුරුපුවරු සැකසුම්"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "සක්රිය ක."
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "අ.ක."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "අවධානය යොමු කරන්න"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "අතථ්ය යතුරු පුවරුව"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "යතුරු පුවරුව"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "යතුරුපුවරුව තෝරන්න"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "පෙරනිමි යතුරු පුවරුව"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Klávesnice"
+
+msgid "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"
+msgstr "Táto metóda vstupu môže byť schopná zaznamenávať všetok text, ktorý zadáte, vrátane osobných údajov, ako sú heslá a čísla kreditných kariet. Pochádza z aplikácie %s. Ťuknutím na položku Zapnúť môžete zapnúť túto metódu vstupu."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Nastavenia klávesnice"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Povoliť"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Zruš."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Pozor"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtuálna klávesnica"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Klávesnica"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Vyberte klávesnicu"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Predvolená klávesnica"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Tipkovnice"
+
+msgid "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"
+msgstr "Ta način vnosa lahko zbere celotno vneseno besedilo, vključno z osebnimi podatki, kot so gesla in številke kreditnih kartic. Ta način vnosa uporablja aplikacija %s. Pritisnite Omogoči, da omogočite ta način vnosa."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Nastavitve tipkovnice"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Omogoči"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Prekliči"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Pozor"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Navidezna tipkovnica"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Tipkovnica"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Izberite tipkovnico"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Privzeta tipkovnica"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Tastierat"
+
+msgid "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"
+msgstr "Kjo mënyrë futjeje mund të jetë në gjendje të mbledhë krejt tekstin që ti shtyp, përfshi të dhënat personale si fjalëkalimet dhe të dhënat e kartave të kreditit. Ajo vjen nga aplikacioni %s. Trokit mbi Aftëso, për ta aftësuar këtë mënyrë futjeje."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Cilësimet e tastierës"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Aktivizo"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Anullo"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Kujdes"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Tastiera virtuale"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Butona"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Përzgjidh tastierën"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Tastiera e parazgjedhur"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Tastature"
+
+msgid "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"
+msgstr "Ovaj način unosa možda može da prikuplja sav tekst koji se unosi, uključujući i lične podatke kao što su lozinke i brojevi kreditnih kartica. On potiče od aplikacije %s. Kucni na opciju Omogući da bi omogućio/la ovaj način unosa."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Podešavanja tastature"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Omogući"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Otkaži"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Pažnja"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtuelna tastatura"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Tastatura"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Izaberi tastaturu"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Podrazumevana tastatura"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Tangentbord"
+
+msgid "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"
+msgstr "Den här inmatningsmetoden kan samla in alla texter du skriver, inklusive privata uppgifter som lösenord och kreditkortsnummer. Den kommer från programmet %s. Tryck på Aktivera om du vill aktivera inmatningsmetoden."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Tangentbordsinställningar"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Aktivera"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Avbryt"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Obs!"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtuellt tangentbord"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Tangentbord"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Välj tangentbord"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Standardtangentbord"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "விசைப்பலகைகள்"
+
+msgid "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"
+msgstr "இந்த உள்ளீட்டு முறையால், கடவுச்சொற்கள் மற்றும் கடனட்டை எண்கள் போன்ற தனிப்பட்ட தரவு உட்பட நீங்கள் தட்டச்சு செய்த அனைத்து உரையும் சேகரிக்க இயலும். %s பயன்பாட்டிலிருந்து இது வருகிறது. இந்த உள்ளீட்டு முறையை செயல்படுத்த செயல்படுத்தவும் என்பதை டேப் செய்க."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "விசைப்பலகை அமைவுகள்"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "செ.படுத்துக"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "ரத்து"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "கவனம்"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "மெய்நிகர் விசைப்பலகை"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "விசைப்பலகை"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "விசைப்பலகையைத் தேர்ந்தெடு"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "டீஃபால்ட் விசைப்பலகை"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "కీబోర్డ్లు"
+
+msgid "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"
+msgstr "ఈ ఇన్పుట్ పాస్వర్డ్లు మరియు క్రెడిట్ కార్డ్ నంబర్ల వంటి వ్యక్తిగత డేటాతో సహా, మీరు టైప్ చేసే ప్రతిదాన్ని సేకరించవచ్చు. ఇది %s అప్లికేషన్ నుండి వస్తుంది. ఈ ఇన్పుట్ పద్దతిని ప్రారంభించడానికి ప్రారంభించు ట్యాప్ చేయండి."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "కీబోర్డ్ సెట్టింగ్లు"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "ఎనేబుల్ చేయి"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "రద్దు"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "అటెన్షన్"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "వర్చువల్ కీబోర్డ్"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "కీబోర్డు"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "కీబోర్డ్ ని ఎంచుకోండి"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "డిఫాల్ట్ కీబోర్డు"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Клавиатураҳо"
+
+msgid "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"
+msgstr "Ин усули вуруд метавонад ҳамаи матни чидаи шуморо ҷамъ оварад, аз ҷумла маълумоти шахсиро, аз қабили паролҳо ва рақами кортҳои қарзӣ. Он аз барномаи %s меояд. Барои фаъол кардани ин усули вуруд, Фаъол карданро зарба занед."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Танзимоти клавиатура"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Фаъол к-н"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Бекор к."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Таваҷҷӯҳ"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Клавиатураи виртуалӣ"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Клавиатура"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Интихоби клавиатура"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Клавиатураи стандартӣ"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "แป้นพิมพ์"
+
+msgid "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"
+msgstr "วิธีเขียนนี้อาจสามารถรวบรวมข้อความทั้งหมดที่คุณพิมพ์ รวมทั้งข้อมูลส่วนตัว เช่น รหัสผ่าน และหมายเลขบัตรเครดิตได้ มาจากแอพพลิเคชั่น %s สัมผัส เปิดใช้งาน เพื่อเปิดใช้งานวิธีเขียนนี้"
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "การตั้งค่าแป้นพิมพ์"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "เปิดใช้งาน"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "ยกเลิก"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "โปรดทราบ"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "แป้นพิมพ์เสมือน"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "แป้นพิมพ์"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "เลือกแป้นพิมพ์"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "แป้นพิมพ์เริ่มต้น"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Klawiaturalar"
+
+msgid "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"
+msgstr "Bu giriziş usuly ähli ýazýan tekstiňizi, şol sanda parollar we kredit kart belgileri ýaly şahsy maglumatlary ýygnap biler. Ol %s goýmasyndan gelýär. Bu giriziş usulyny işletmek üçin, Işlet-e basyň."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Klawiatura sazlamalary"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Işlet"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Goýbolsun et"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Üns beriň"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Wirtual klawiatura"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Klawiatura"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Klawiatura saýla"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Standart klawiatura"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Mga Keyboard"
+
+msgid "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"
+msgstr "Magagawa ng paraan ng pag-input na ito na tipunin ang lahat ng teksto na nai-type mo, kasama na ang mga personal na data gaya ng mga password at mga numero ng credit card. Nagmula ito sa %s application. I-tap ang Enable para paganahin ang paraan ng pag-input na ito."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Mga setting ng keyboard"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Paganahin"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Knsla"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Atensyon"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtual na keyboard"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Keyboard"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Pumili ng keyboard"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Default na keyboard"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Klavyeler"
+
+msgid "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"
+msgstr "Bu giriş yöntemi, şifreler ve kredi kartı numaraları gibi kişisel veriler dahil olmak üzere yazdığınız tüm metinleri toplayabilir. %s uygulamasından geliyor. Bu giriş yöntemini etkinleştirmek için Etkinleştir öğesine dokunun."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Klavye ayarları"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Etkinleştir"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "İptal"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Dikkat"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Sanal klavye"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Klavye"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Klavye seçin"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Varsayılan klavye"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Клавіатури"
+
+msgid "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"
+msgstr "При використанні цього методу вводу весь текст, що вводиться, може збиратися для програми %s, зокрема особиста інформація, така як паролі й номери кредитних карт. Торкніться кнопки «Ввімкнути», щоб застосувати цей метод вводу."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Установки клавіатури"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Увімкнути"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Скасувати"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Увага"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Віртуальна клавіатура"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Клавіатура"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Вибрати клавіатуру"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Стандартна клавіатура"
+
--- /dev/null
+#!/bin/sh
+
+PACKAGE=inputmethod-setting
+SRCROOT=../src
+POTFILES=POTFILES.in
+
+ALL_LINGUAS="ar as az be_BY bg bn bn_BD ca cs da de el_GR en en_PH en_US es_ES es_US et eu fa fi fr fr_CA ga gl gu he hi hr hu hy id is it_IT ja_JP ka kk km kn ko_KR ky_KG lo lt lv mk ml mn_MN mr ms my_MM my_ZG nb ne nl or pa pl pl_SP pt_BR pt_PT ro ru_RU si sk sl sq sr sv ta te tg_TJ th tk_TM tl tr_TR uk ur uz vi zh_CN zh_HK zh_TW"
+
+XGETTEXT=/usr/bin/xgettext
+MSGMERGE=/usr/bin/msgmerge
+
+echo -n "Make ${PACKAGE}.pot "
+if [ ! -e $POTFILES ] ; then
+ echo "$POTFILES not found"
+ exit 1
+fi
+
+$XGETTEXT --default-domain=${PACKAGE} --directory=${SRCROOT} \
+ --add-comments --keyword=_ --keyword=_T --files-from=$POTFILES \
+&& test ! -f ${PACKAGE}.po \
+ || (rm -f ${PACKAGE}.pot && mv ${PACKAGE}.po ${PACKAGE}.pot)
+
+if [ $? -ne 0 ]; then
+ echo "error"
+ exit 1
+else
+ echo "done"
+fi
+
+for LANG in $ALL_LINGUAS; do
+ echo "$LANG : "
+
+ if [ ! -e $LANG.po ] ; then
+ cp ${PACKAGE}.pot ${LANG}.po
+ echo "${LANG}.po created"
+ else
+ if $MSGMERGE ${LANG}.po ${PACKAGE}.pot -o ${LANG}.new.po ; then
+ if cmp ${LANG}.po ${LANG}.new.po > /dev/null 2>&1; then
+ rm -f ${LANG}.new.po
+ else
+ if mv -f ${LANG}.new.po ${LANG}.po; then
+ echo ""
+ else
+ echo "msgmerge for $LANG.po failed: cannot move $LANG.new.po to $LANG.po" 1>&2
+ rm -f ${LANG}.new.po
+ exit 1
+ fi
+ fi
+ else
+ echo "msgmerge for $LANG failed!"
+ rm -f ${LANG}.new.po
+ fi
+ fi
+ echo ""
+done
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "کی بورڈز"
+
+msgid "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"
+msgstr "اس ان پٹ طریقہ سے ہو سکتا ہے آپ کے ذریعے ٹائپ کیا ہوا تمام متن جمع کیا جا سکتا ہے، بشمول ذاتی ڈیٹا جیسا کہ پاس ورڈز اور کریڈٹ کارڈوں کے نمبر۔ یہ %s ایپلیکیشن سے آیا ہے۔ اس ان پٹ طریقہ کو اہل کرنے کے لیے اہل کریں پر تھپکی دیں۔"
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "کی بورڈ کی ترتیبات"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "فعال"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "منسوخ"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "توجہ"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "مجازی کی بورڈ"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "کی بورڈ"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "کی بورڈ منتخب کریں"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "ڈیفالٹ کی بورڈ"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Klaviaturalar"
+
+msgid "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"
+msgstr "Ushbu kiritish usuli Siz tergan barcha matnlarni to‘plashi mumkin, jumladan, parollar va kredit kartochka raqamlari kabi shaxsiy ma’lumotlarni ham. Bu %s ilovasidan kelib chiqadi. Ushbu kiritish usulini yoqish uchun Yoqish tugmasiga teging."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Klaviatura parametrlari"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Yoqish"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Bek/q."
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Diqqat"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Virtual klaviatura"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Klaviatura"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Klaviatura tanlang"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Birlamchi klaviatura"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "Bàn phím"
+
+msgid "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"
+msgstr "Cách nhập này có thể thu thập tất cả văn bản bạn nhập vào, bao gồm dữ liệu cá nhân như mật mã và số thẻ tín dụng. Nó đến từ ứng dụng %s. Chạm Bật để bật cách nhập này."
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Cài đặt bàn phím"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "Bật"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "Thoát"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "Chú ý"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "Bàn phím ảo"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "Bàn phím"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Chọn bàn phím"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "Bàn phím mặc định"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "键盘"
+
+msgid "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"
+msgstr "该输入法可能能够收集您键入的所有文本,包括密码和信用卡号等个人数据。它来自于 %s 应用程序。点击启用以启用该输入法。"
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "键盘设置"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "启动"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "注意"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "虚拟键盘"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "键盘"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "选择键盘"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "默认键盘"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "鍵盤"
+
+msgid "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"
+msgstr "此輸入方法可能可以蒐集您輸入的所有文字,包括密碼與信用卡號等個人數據。此方法來自於 %s 應用程式。輕觸啟用以啟用此輸入方法。"
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "鍵盤設定"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "啟用"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "注意"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "虛擬鍵盤"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "鍵盤"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "選擇鍵盤"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "預設鍵盤"
+
--- /dev/null
+msgid "IDS_ST_HEADER_KEYBOARDS"
+msgstr "鍵盤"
+
+msgid "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"
+msgstr "此輸入法可能會蒐集您輸入的所有文字,包括如密碼與信用卡號等個人資料。輸入法來自 %s 應用程式。請輕觸啟用來啟用此輸入法。"
+
+msgid "IDS_IME_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "鍵盤設定"
+
+msgid "IDS_ST_BUTTON_ENABLE"
+msgstr "啟用"
+
+msgid "IDS_COM_SK_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_ST_BODY_ATTENTION"
+msgstr "注意"
+
+msgid "IDS_ST_HEADER_VIRTUAL_KEYBOARD"
+msgstr "虛擬鍵盤"
+
+msgid "IDS_IME_BODY_KEYBOARD"
+msgstr "鍵盤"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "選擇鍵盤"
+
+msgid "IDS_ST_HEADER_DEFAULT_KEYBOARD_ABB"
+msgstr "預設鍵盤"
+