tizen 2.3.1 release tizen_2.3.1 submit/tizen_2.3.1/20150915.083237 tizen_2.3.1_release
authorjk7744.park <jk7744.park@samsung.com>
Tue, 8 Sep 2015 13:52:59 +0000 (22:52 +0900)
committerjk7744.park <jk7744.park@samsung.com>
Tue, 8 Sep 2015 13:52:59 +0000 (22:52 +0900)
97 files changed:
CMakeLists.txt [new file with mode: 0644]
LICENSE [new file with mode: 0644]
include/log.h [new file with mode: 0644]
include/logic.h [new file with mode: 0644]
include/main.h [new file with mode: 0644]
include/setting-text-input.h [new file with mode: 0644]
include/util_efl.h [new file with mode: 0644]
org.tizen.w-text-input-setting.manifest [new file with mode: 0644]
org.tizen.w-text-input-setting.rule [new file with mode: 0755]
org.tizen.w-text-input-setting.xml [new file with mode: 0644]
packaging/org.tizen.w-text-input-setting.spec [new file with mode: 0644]
po/CMakeLists.txt [new file with mode: 0644]
po/POTFILES.in [new file with mode: 0755]
po/ar.po [new file with mode: 0644]
po/as.po [new file with mode: 0644]
po/az.po [new file with mode: 0644]
po/bg.po [new file with mode: 0644]
po/bn.po [new file with mode: 0644]
po/ca.po [new file with mode: 0644]
po/cs.po [new file with mode: 0644]
po/da.po [new file with mode: 0644]
po/de.po [new file with mode: 0644]
po/el_GR.po [new file with mode: 0644]
po/en.po [new file with mode: 0644]
po/en_PH.po [new file with mode: 0644]
po/en_US.po [new file with mode: 0644]
po/es_ES.po [new file with mode: 0644]
po/es_US.po [new file with mode: 0644]
po/et.po [new file with mode: 0644]
po/eu.po [new file with mode: 0644]
po/fa.po [new file with mode: 0644]
po/fi.po [new file with mode: 0644]
po/fr.po [new file with mode: 0644]
po/fr_CA.po [new file with mode: 0644]
po/ga.po [new file with mode: 0644]
po/gl.po [new file with mode: 0644]
po/gu.po [new file with mode: 0644]
po/he.po [new file with mode: 0644]
po/hi.po [new file with mode: 0644]
po/hr.po [new file with mode: 0644]
po/hu.po [new file with mode: 0644]
po/hy.po [new file with mode: 0644]
po/id.po [new file with mode: 0644]
po/is.po [new file with mode: 0644]
po/it_IT.po [new file with mode: 0644]
po/ja_JP.po [new file with mode: 0644]
po/ka.po [new file with mode: 0644]
po/kk.po [new file with mode: 0644]
po/km.po [new file with mode: 0644]
po/kn.po [new file with mode: 0644]
po/ko_KR.po [new file with mode: 0644]
po/ky_KG.po [new file with mode: 0644]
po/lo.po [new file with mode: 0644]
po/lt.po [new file with mode: 0644]
po/lv.po [new file with mode: 0644]
po/mk.po [new file with mode: 0644]
po/ml.po [new file with mode: 0644]
po/mn_MN.po [new file with mode: 0644]
po/mr.po [new file with mode: 0644]
po/ms.po [new file with mode: 0644]
po/my.po [new file with mode: 0644]
po/nb.po [new file with mode: 0644]
po/ne.po [new file with mode: 0644]
po/nl.po [new file with mode: 0644]
po/or.po [new file with mode: 0644]
po/pa.po [new file with mode: 0644]
po/pl.po [new file with mode: 0644]
po/pt_BR.po [new file with mode: 0644]
po/pt_PT.po [new file with mode: 0644]
po/ro.po [new file with mode: 0644]
po/ru_RU.po [new file with mode: 0644]
po/si.po [new file with mode: 0644]
po/sk.po [new file with mode: 0644]
po/sl.po [new file with mode: 0644]
po/sq.po [new file with mode: 0644]
po/sr.po [new file with mode: 0644]
po/sv.po [new file with mode: 0644]
po/ta.po [new file with mode: 0644]
po/te.po [new file with mode: 0644]
po/tg_TJ.po [new file with mode: 0644]
po/th.po [new file with mode: 0644]
po/tk_TM.po [new file with mode: 0644]
po/tl.po [new file with mode: 0644]
po/tr_TR.po [new file with mode: 0644]
po/uk.po [new file with mode: 0644]
po/update-po.sh [new file with mode: 0755]
po/ur.po [new file with mode: 0644]
po/uz.po [new file with mode: 0644]
po/vi.po [new file with mode: 0644]
po/w-text-input-setting.pot [new file with mode: 0644]
po/zh_CN.po [new file with mode: 0644]
po/zh_HK.po [new file with mode: 0644]
po/zh_TW.po [new file with mode: 0644]
src/logic.c [new file with mode: 0644]
src/main.c [new file with mode: 0644]
src/setting-text-input.cpp [new file with mode: 0644]
src/util_efl.c [new file with mode: 0644]

diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644 (file)
index 0000000..6eb0f84
--- /dev/null
@@ -0,0 +1,94 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(w-text-input-setting C CXX)
+
+#FILE(GLOB_RECURSE SRC_BASIC ./src/*.c*)
+SET(SRCS
+    src/setting-text-input.cpp
+    src/main.c
+    src/logic.c
+    src/util_efl.c
+)
+
+SET(VENDOR "samsung")
+SET(PACKAGE ${PROJECT_NAME})
+SET(PKGNAME "org.tizen.${PACKAGE}")
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(BINDIR "${PREFIX}/bin")
+SET(RESDIR "${PREFIX}/res")
+SET(ICONDIR "${RESDIR}/icons")
+SET(DATADIR "/opt${PREFIX}/data")
+SET(LOCALEDIR "${RESDIR}/locale")
+SET(IMAGEDIR "${RESDIR}/images")
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+       SET(CMAKE_BUILD_TYPE "Release")
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
+
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED
+       capi-appfw-application
+       appcore-efl
+       ecore-x
+       ecore
+       evas
+       edje
+       elementary
+       dlog
+       isf
+       efl-assist
+       efl-extension
+       vconf-internal-keys
+       vconf
+)
+
+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")
+
+FIND_PROGRAM(UNAME NAMES uname)
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+IF("${ARCH}" STREQUAL "arm")
+       ADD_DEFINITIONS("-DTARGET")
+       MESSAGE("add -DTARGET")
+ENDIF("${ARCH}" STREQUAL "arm")
+
+ADD_DEFINITIONS("-DVENDOR=\"${VENDOR}\"")
+ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"")
+ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
+ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
+ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
+ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"")
+ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
+ADD_DEFINITIONS("-DIMAGEDIR=\"${IMAGEDIR}\"")
+ADD_DEFINITIONS("-DLOG_TAG=\"$PATTERN\"")
+INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/include")
+
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
+
+ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} "-lm")
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
+
+# install desktop file
+#CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/packaging/desktop ${CMAKE_BINARY_DIR}/${PKGNAME}.desktop)
+#INSTALL(FILES ${CMAKE_BINARY_DIR}/${PKGNAME}.desktop DESTINATION /opt/share/applications)
+
+# install manifest file
+CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/${PKGNAME}.xml ${CMAKE_BINARY_DIR}/${PKGNAME}.xml)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/${PKGNAME}.xml DESTINATION /usr/share/packages)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PKGNAME}.rule DESTINATION /etc/smack/accesses.d/)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/LICENSE DESTINATION /usr/share/license RENAME "${PKGNAME}")
+
+#install application HOME directory
+INSTALL(DIRECTORY DESTINATION ${DATADIR})
+ADD_SUBDIRECTORY(po)
diff --git a/LICENSE b/LICENSE
new file mode 100644 (file)
index 0000000..d645695
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,202 @@
+
+                                 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.
diff --git a/include/log.h b/include/log.h
new file mode 100644 (file)
index 0000000..c1071be
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * 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 __LOG_H__
+#define __LOG_H__
+
+#include <unistd.h>
+#include <dlog.h>
+
+#undef LOG_TAG
+#define LOG_TAG "TEXT_INPUT_SETTING"
+#define ERR(fmt, arg...) LOGE("[%s:%d] "fmt,__FUNCTION__,__LINE__,##arg)
+#define DBG(fmt, arg...) LOGD("[%s:%d] "fmt,__FUNCTION__,__LINE__,##arg)
+#define _SECURE_E(fmt, arg...) SECURE_LOGE("[%s:%d] "fmt,__FUNCTION__,__LINE__,##arg)
+#define _SECURE_D(fmt, arg...) SECURE_LOGD("[%s:%d] "fmt,__FUNCTION__,__LINE__,##arg)
+#define SECURE_ERR(str, args...)       SECURE_LOGE("%s[%d]\t " #str "\n", \
+                                       __func__, __LINE__, ##args)
+#define SECURE_DBG(str, args...)       SECURE_LOGD("%s[%d]\t " #str "\n", \
+                                       __func__, __LINE__, ##args)
+#define SECURE_INFO(str, args...)      SECURE_LOGI(#str"\n", ##args)
+
+#define retvm_if_timer(timer, expr, val, fmt, arg...) do { \
+       if(expr) { \
+               ERR(fmt, ##arg); \
+               ERR("(%s) -> %s() return", #expr, __FUNCTION__); \
+               timer = NULL; \
+               return (val); \
+       } \
+} while (0)
+
+#define retvm_if(expr, val, fmt, arg...) do { \
+       if(expr) { \
+               ERR(fmt, ##arg); \
+               ERR("(%s) -> %s() return", #expr, __FUNCTION__); \
+               return (val); \
+       } \
+} while (0)
+
+#define retv_if(expr, val) do { \
+       if(expr) { \
+               ERR("(%s) -> %s() return", #expr, __FUNCTION__); \
+               return (val); \
+       } \
+} while (0)
+
+#define retm_if(expr, fmt, arg...) do { \
+       if(expr) { \
+               ERR(fmt, ##arg); \
+               ERR("(%s) -> %s() return", #expr, __FUNCTION__); \
+               return; \
+       } \
+} while (0)
+
+#define ret_if(expr) do { \
+       if(expr) { \
+               ERR("(%s) -> %s() return", #expr, __FUNCTION__); \
+               return; \
+       } \
+} while (0)
+
+#define retif(cond, ret, str, args...) do { \
+               if (cond) { \
+                       ERR(str, ##args);\
+                       return ret;\
+               } \
+} while (0);
+
+#define goto_if(expr, val) do { \
+       if(expr) { \
+               ERR("(%s) -> goto", #expr); \
+               goto val; \
+       } \
+} while (0)
+
+#endif /* __LOG_H__ */
diff --git a/include/logic.h b/include/logic.h
new file mode 100644 (file)
index 0000000..4068cd0
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * 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 __LOGIC_H__
+#define __LOGIC_H__
+
+int _app_create(struct appdata *ad);
+void _app_terminate(struct appdata *ad);
+void reply_to_sender(void* data,int result);
+#endif /* __LOGIC_H__ */
diff --git a/include/main.h b/include/main.h
new file mode 100644 (file)
index 0000000..7a2a875
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ * 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 __MAIN_H__
+#define __MAIN_H__
+
+#include <Elementary.h>
+#include <appcore-efl.h>
+#include <app.h>
+#include <efl_assist.h>
+
+#if !defined(PACKAGE)
+#  define PACKAGE "w-text-input-setting"
+#endif
+
+#if !defined(RESDIR)
+#  define RESDIR "/usr/apps/org.tizen.w-text-input-setting/res"
+#endif
+
+#if !defined(LOCALEDIR)
+#  define LOCALEDIR RESDIR"/locale"
+#endif
+
+#if !defined(IMGDIR)
+#  define IMGDIR RESDIR"/images"
+#endif
+
+#if !defined(PKGNAME)
+#  define PKGNAME "org.tizen.w-text-input-setting"
+#endif
+
+#define S_(str) dgettext("sys_string", str)
+#define T_(str) dgettext(PACKAGE, str)
+#undef _
+#define _(str) gettext(str)
+
+#define _EDJ(x) elm_layout_edje_get(x)
+
+#define EXPORT_PUBLIC __attribute__ ((visibility ("default")))
+
+enum {
+       APP_STATE_PAUSE = 1,
+       APP_STATE_SERVICE,
+       APP_STATE_RESUME,
+       APP_STATE_TERMINATE,
+};
+
+enum {
+       APP_TYPE_SETTING = 1,
+       APP_TYPE_VERIFY,
+};
+
+struct appdata
+{
+       Evas_Object *win;
+       Evas_Object *naviframe;
+       Evas_Object *conform;
+
+       Evas_Object *list;
+
+       int app_state;
+       int app_type;
+       app_control_h source_app_control;
+       int reply_result;
+};
+
+#endif /* __MAIN_H__ */
+
diff --git a/include/setting-text-input.h b/include/setting-text-input.h
new file mode 100644 (file)
index 0000000..d3cda0a
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * 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 SETTING_TEXT_INPUT_H
+#define SETTING_TEXT_INPUT_H
+
+#include <Elementary.h>
+#include <dlog.h>
+#include "main.h"
+
+#ifdef LOG_TAG
+# undef LOG_TAG
+#endif
+#define LOG_TAG                     "TEXT_INPUT_SETTING"
+
+#define TEXT_INPUT_DEBUG(msg, args...)   LOGD(msg, ##args)
+#define TEXT_INPUT_ERROR(msg, args...)   LOGE(msg, ##args)
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+void initialize_keyboard(void *data);
+Evas_Object *create_keyboard_list(struct appdata *ad);
+void finish_keyboard();
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* SETTING_TEXT_INPUT_H */
diff --git a/include/util_efl.h b/include/util_efl.h
new file mode 100644 (file)
index 0000000..67e386a
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * 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 __UTIL_EFL_H__
+#define __UTIL_EFL_H__
+
+#include <Elementary.h>
+
+Evas_Object *_add_window(const char *name);
+Evas_Object *_add_layout(Evas_Object *parent, const char *file, const char *group);
+
+#endif /* __UTIL_EFL_H__ */
+
diff --git a/org.tizen.w-text-input-setting.manifest b/org.tizen.w-text-input-setting.manifest
new file mode 100644 (file)
index 0000000..f056702
--- /dev/null
@@ -0,0 +1,25 @@
+<manifest>
+       <define>
+               <domain name="org.tizen.w-text-input-setting" />
+       </define>
+       <request>
+               <domain name="org.tizen.w-text-input-setting" />
+       </request>
+       <assign>
+               <!-- Package manifest file -->
+               <filesystem path="/usr/share/packages/org.tizen.w-text-input-setting.xml" label="_" />
+
+               <!-- Package folder -->
+               <filesystem path="/usr/apps/org.tizen.w-text-input-setting" label="org.tizen.w-text-input-setting" />
+               <filesystem path="/usr/apps/org.tizen.w-text-input-setting/res" label="org.tizen.w-text-input-setting" />
+               <filesystem path="/usr/apps/org.tizen.w-text-input-setting/res/image" label="org.tizen.w-text-input-setting" />
+               <filesystem path="/usr/apps/org.tizen.w-text-input-setting/res/edje" label="org.tizen.w-text-input-setting" />
+
+               <!-- Executable file -->
+               <filesystem path="/usr/apps/org.tizen.w-text-input-setting/bin/w-text-input-setting" label="org.tizen.w-text-input-setting" exec_label="org.tizen.w-text-input-setting" />
+
+               <!-- Data folder -->
+               <filesystem path="/opt/usr/apps/org.tizen.w-text-input-setting" label="org.tizen.w-text-input-setting" />
+               <filesystem path="/opt/usr/apps/org.tizen.w-text-input-setting/data" label="org.tizen.w-text-input-setting" />
+       </assign>
+</manifest>
diff --git a/org.tizen.w-text-input-setting.rule b/org.tizen.w-text-input-setting.rule
new file mode 100755 (executable)
index 0000000..5b78b49
--- /dev/null
@@ -0,0 +1,41 @@
+e17 org.tizen.w-text-input-setting -w---- ------
+isf org.tizen.w-text-input-setting rw---- ------
+org.tizen.clocksetting org.tizen.w-text-input-setting r----- ------
+org.tizen.w-text-input-setting aul::launch --x--- ------
+org.tizen.w-text-input-setting device::app_logging -w---- ------
+org.tizen.w-text-input-setting device::sys_logging -w---- ------
+org.tizen.w-text-input-setting deviced r-x--- ------
+org.tizen.w-text-input-setting e17 r-x--- ------
+org.tizen.w-text-input-setting ecore::lock rwxat- ------
+org.tizen.w-text-input-setting isf rwxat- ------
+org.tizen.w-text-input-setting isf::manager -wx--- ------
+org.tizen.w-text-input-setting net-config r----- ------
+org.tizen.w-text-input-setting org.tizen.clocksetting rw---- ------
+org.tizen.w-text-input-setting org.tizen.idle-clock-digital rwx--- ------
+org.tizen.w-text-input-setting org.tizen.idle-clock-dual rwx--- ------
+org.tizen.w-text-input-setting org.tizen.idle-clock-event rwx--- ------
+org.tizen.w-text-input-setting org.tizen.idle-clock-pedometer rwx--- ------
+org.tizen.w-text-input-setting org.tizen.w-idle-clock-analog1 rwx--- ------
+org.tizen.w-text-input-setting org.tizen.w-idle-clock-analog2 rwx--- ------
+org.tizen.w-text-input-setting org.tizen.w-idle-clock-analog3 rwx--- ------
+org.tizen.w-text-input-setting org.tizen.w-idle-clock-shortcut2 rwx--- ------
+org.tizen.w-text-input-setting org.tizen.w-idle-clock-weather2 rwx--- ------
+org.tizen.w-text-input-setting org.tizen.w-text-input-setting::vconf rw---l ------
+org.tizen.w-text-input-setting pkgmgr::db r----l ------
+org.tizen.w-text-input-setting privacy-manager::db r----l ------
+org.tizen.w-text-input-setting pulseaudio rwxat- ------
+org.tizen.w-text-input-setting sound_server rw---- ------
+org.tizen.w-text-input-setting sys-assert::core rwxat- ------
+org.tizen.w-text-input-setting system::homedir rwxat- ------
+org.tizen.w-text-input-setting system::media rwxat- ------
+org.tizen.w-text-input-setting system::share rwxat- ------
+org.tizen.w-text-input-setting system::use_internet r----- ------
+org.tizen.w-text-input-setting system::vconf rwxat- ------
+org.tizen.w-text-input-setting system::vconf_inhouse rwxat- ------
+org.tizen.w-text-input-setting system::vconf_misc rw---- ------
+org.tizen.w-text-input-setting system::vconf_multimedia rw---l ------
+org.tizen.w-text-input-setting system::vconf_network rw---- ------
+org.tizen.w-text-input-setting system::vconf_privacy rw---- ------
+org.tizen.w-text-input-setting system::vconf_setting rw---l ------
+org.tizen.w-text-input-setting system::vconf_system rw---l ------
+org.tizen.w-text-input-setting xorg rw---- ------
diff --git a/org.tizen.w-text-input-setting.xml b/org.tizen.w-text-input-setting.xml
new file mode 100644 (file)
index 0000000..43ea45b
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.w-text-input-setting" version="0.0.1" install-location="internal-only" support-mode="screen-reader">
+       <label>w-text-input-setting</label>
+       <author email="jihoon48.kim@samsung.com" href="www.samsung.com">Jihoon Kim</author>
+       <description>w-text-input-setting</description>
+       <ui-application appid="org.tizen.w-text-input-setting" exec="/usr/apps/org.tizen.w-text-input-setting/bin/w-text-input-setting" nodisplay="true" multiple="false" type="capp" taskmanage="false">
+               <label>w-text-input-setting</label>
+       </ui-application>
+</manifest>
diff --git a/packaging/org.tizen.w-text-input-setting.spec b/packaging/org.tizen.w-text-input-setting.spec
new file mode 100644 (file)
index 0000000..d9b3815
--- /dev/null
@@ -0,0 +1,71 @@
+%define APP_PREFIX %{_prefix}/apps/org.tizen.w-text-input-setting
+%define APP_DATADIR /opt/usr/apps/org.tizen.w-text-input-setting/data
+
+Name: org.tizen.w-text-input-setting
+Summary: w-text-input-setting
+Version: 0.0.1
+Release: 1
+Group: Graphics & UI Framework/Input
+License: Apache-2.0
+Source0: %{name}-%{version}.tar.gz
+BuildRequires: cmake, gettext, edje-bin, coreutils
+BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(appcore-efl)
+BuildRequires: pkgconfig(ecore-x)
+BuildRequires: pkgconfig(elementary)
+BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(isf)
+BuildRequires: efl-assist-devel
+BuildRequires: efl-extension-devel
+BuildRequires: pkgconfig(vconf-internal-keys)
+BuildRequires: pkgconfig(vconf)
+BuildRequires: model-build-features
+Requires(post):/usr/bin/vconftool
+
+%description
+w-text-input-setting
+
+%prep
+%setup -q
+
+%build
+export CFLAGS="${CFLAGS} -DTIZEN_ENGINEER_MODE"
+export CXXFLAGS="${CXXFLAGS} -DTIZEN_ENGINEER_MODE"
+export FFLAGS="${FFLAGS} -DTIZEN_ENGINEER_MODE"
+CFLAGS+=" -fPIC -pie -rdynamic -Winline"
+CXXFLAGS+=" -fPIC -pie -rdynamic -Winline"
+LDFLAGS+="-Wl,--rpath=/usr/lib -Wl,--as-needed -lgcc_s";export LDFLAGS
+
+%if "%{?tizen_profile_name}" == "wearable"
+%if "%{?model_build_feature_formfactor}" == "circle"
+CFLAGS+=" -D_CIRCLE";
+CXXFLAGS+=" -D_CIRCLE";
+%endif
+%endif
+
+rm -rf CMakeFiles
+rm -rf CMakeCache.txt
+cmake . -DCMAKE_INSTALL_PREFIX=%{APP_PREFIX}
+make %{?jobs:-j%jobs}
+
+%install
+%make_install
+%define tizen_sign 1
+%define tizen_sign_base /usr/apps/org.tizen.w-text-input-setting
+%define tizen_sign_level platform
+%define tizen_author_sign 1
+%define tizen_dist_sign 1
+mkdir -p %{buildroot}%{APP_DATADIR}
+
+
+%post
+%postun
+
+%files
+%manifest org.tizen.w-text-input-setting.manifest
+%defattr(-,root,root,-)
+%attr(-,app,app) %dir %{APP_DATADIR}
+%{_datarootdir}/packages/org.tizen.w-text-input-setting.xml
+%{_sysconfdir}/smack/accesses.d/*
+%{_datarootdir}/license/*
+%{APP_PREFIX}/*
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
new file mode 100644 (file)
index 0000000..1fb42f1
--- /dev/null
@@ -0,0 +1,24 @@
+# for i18n
+
+SET(POFILES ar.po as.po az.po bg.po bn.po ca.po cs.po da.po de.po el_GR.po en_PH.po en.po en_US.po es_ES.po es_US.po et.po eu.po fa.po fi.po fr_CA.po fr.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.po nb.po ne.po nl.po or.po pa.po pl.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 ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+       SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+MESSAGE(".mo files: ${moFiles}")
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
diff --git a/po/POTFILES.in b/po/POTFILES.in
new file mode 100755 (executable)
index 0000000..73e7cfa
--- /dev/null
@@ -0,0 +1 @@
+setting-text-input.cpp
diff --git a/po/ar.po b/po/ar.po
new file mode 100644 (file)
index 0000000..dc6de76
--- /dev/null
+++ b/po/ar.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "غير متوفر"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "إدخال النص"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "ضبط لوحة المفاتيح"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "تحديد لوحة المفاتيح"
+
diff --git a/po/as.po b/po/as.po
new file mode 100644 (file)
index 0000000..6f61491
--- /dev/null
+++ b/po/as.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "উপলভ্য নহয়"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "পাঠ ইনপুট"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "কীব'ৰ্ড ছেটিংছ"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "কীবোর্ড নির্বাচন করুন"
+
diff --git a/po/az.po b/po/az.po
new file mode 100644 (file)
index 0000000..f584d13
--- /dev/null
+++ b/po/az.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "İst mümkün deyl"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Mətn girişi"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Klaviatura parametrləri"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Klaviaturanı seç"
+
diff --git a/po/bg.po b/po/bg.po
new file mode 100644 (file)
index 0000000..81b0349
--- /dev/null
+++ b/po/bg.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Не е достъпен"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Въвеж. текст"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Настройки на клавиатурата"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Изберете клавиатура"
+
diff --git a/po/bn.po b/po/bn.po
new file mode 100644 (file)
index 0000000..f9d867d
--- /dev/null
+++ b/po/bn.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "অসুলভ"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "পাঠ্য ইনপুট"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "কীবোর্ড সেটিংস"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "কীবোর্ড নির্বাচন করুন"
+
diff --git a/po/ca.po b/po/ca.po
new file mode 100644 (file)
index 0000000..c893c92
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "No disponible"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Entrada text"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Ajustaments del teclat"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Seleccionar teclat"
+
diff --git a/po/cs.po b/po/cs.po
new file mode 100644 (file)
index 0000000..586a73a
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Není k disp."
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Zadat text"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Nastavení klávesnice"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Vybrat klávesnici"
+
diff --git a/po/da.po b/po/da.po
new file mode 100644 (file)
index 0000000..400024f
--- /dev/null
+++ b/po/da.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Ikke tilg."
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Tekstindt."
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Tastaturindstillinger"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Vælg tastatur"
+
diff --git a/po/de.po b/po/de.po
new file mode 100644 (file)
index 0000000..4b74948
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Nicht verfügbar"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Texteingabe"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Tastatureinstellungen"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Tastatur auswählen"
+
diff --git a/po/el_GR.po b/po/el_GR.po
new file mode 100644 (file)
index 0000000..7d980a3
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Μη διαθέσιμο"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Εισ. κειμέν."
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Ρυθμίσεις πληκτρολογίου"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Επιλογή πληκτρολογίου"
+
diff --git a/po/en.po b/po/en.po
new file mode 100644 (file)
index 0000000..2f22d11
--- /dev/null
+++ b/po/en.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Not available"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Text input"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Keyboard settings"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Select keyboard"
+
diff --git a/po/en_PH.po b/po/en_PH.po
new file mode 100644 (file)
index 0000000..2f22d11
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Not available"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Text input"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Keyboard settings"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Select keyboard"
+
diff --git a/po/en_US.po b/po/en_US.po
new file mode 100644 (file)
index 0000000..2f22d11
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Not available"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Text input"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Keyboard settings"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Select keyboard"
+
diff --git a/po/es_ES.po b/po/es_ES.po
new file mode 100644 (file)
index 0000000..ee1f52e
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "No disponible"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Introd texto"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Ajustes del teclado"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Seleccionar teclado"
+
diff --git a/po/es_US.po b/po/es_US.po
new file mode 100644 (file)
index 0000000..af64c08
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "No disponible"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Intr. texto"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Configuración de teclado"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Seleccionar teclado"
+
diff --git a/po/et.po b/po/et.po
new file mode 100644 (file)
index 0000000..b18563b
--- /dev/null
+++ b/po/et.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Pole saadaval"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Tek. sisest."
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Klaviatuuri seaded"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Vali klaviatuur"
+
diff --git a/po/eu.po b/po/eu.po
new file mode 100644 (file)
index 0000000..d2be5c6
--- /dev/null
+++ b/po/eu.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Erabilgarri ez"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Tes. idaztea"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Teklatuaren ezarpenak"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Hautatu teklatua"
+
diff --git a/po/fa.po b/po/fa.po
new file mode 100644 (file)
index 0000000..14909dc
--- /dev/null
+++ b/po/fa.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "موجود نیست"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "ورود متن"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "تنظیمات صفحه کلید"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "انتخاب صفحه کلید"
+
diff --git a/po/fi.po b/po/fi.po
new file mode 100644 (file)
index 0000000..cff6f91
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Ei käytett."
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Tekstin syöttö"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Näppäimistön asetukset"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Valitse näppäimistö"
+
diff --git a/po/fr.po b/po/fr.po
new file mode 100644 (file)
index 0000000..d0917d2
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Indisponible"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Saisie texte"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Paramètres du clavier"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Sélectionner un clavier"
+
diff --git a/po/fr_CA.po b/po/fr_CA.po
new file mode 100644 (file)
index 0000000..d0917d2
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Indisponible"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Saisie texte"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Paramètres du clavier"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Sélectionner un clavier"
+
diff --git a/po/ga.po b/po/ga.po
new file mode 100644 (file)
index 0000000..9a31ee9
--- /dev/null
+++ b/po/ga.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Níl fáil air"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Ionchur téacs"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Socruithe eochairchláir"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Roghnaigh eochairchlár"
+
diff --git a/po/gl.po b/po/gl.po
new file mode 100644 (file)
index 0000000..437b421
--- /dev/null
+++ b/po/gl.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Non dispoñible"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Entrada txt."
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Axustes do teclado"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Seleccionar teclado"
+
diff --git a/po/gu.po b/po/gu.po
new file mode 100644 (file)
index 0000000..0b25469
--- /dev/null
+++ b/po/gu.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "ઉપલબ્ધ નથી"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "ટેક્સ્ટ દાખલ"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "કિબોર્ડ સેટિંગ્સ"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "કીબોર્ડ પસંદ કરો"
+
diff --git a/po/he.po b/po/he.po
new file mode 100644 (file)
index 0000000..053fe23
--- /dev/null
+++ b/po/he.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "לא זמין"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "קלט טקסט"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "הגדרות מקלדת"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "בחר מקלדת"
+
diff --git a/po/hi.po b/po/hi.po
new file mode 100644 (file)
index 0000000..6b47046
--- /dev/null
+++ b/po/hi.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "उपलब्ध नहीं"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "टेक्स्ट इनपुट"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "कीबोर्ड सेटिंग्स"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "कीबोर्ड चुनें"
+
diff --git a/po/hr.po b/po/hr.po
new file mode 100644 (file)
index 0000000..2a4fcde
--- /dev/null
+++ b/po/hr.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Nedostupno"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Unos teksta"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Postavke tipkovnice"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Odaberite tipkovnicu"
+
diff --git a/po/hu.po b/po/hu.po
new file mode 100644 (file)
index 0000000..4561ac4
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Nem elérhető"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Szöv.bevitel"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Billentyűzet beállításai"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Billentyűzet kiválasztása"
+
diff --git a/po/hy.po b/po/hy.po
new file mode 100644 (file)
index 0000000..19807c8
--- /dev/null
+++ b/po/hy.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Մատչելի չէ"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Տեքստ ներած."
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Ստեղնաշարի դրվածքներ"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Ընտրել ստեղնաշար"
+
diff --git a/po/id.po b/po/id.po
new file mode 100644 (file)
index 0000000..a1cc26a
--- /dev/null
+++ b/po/id.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Tidak tersedia"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Input teks"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Pengaturan keyboard"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Pilih keyboard"
+
diff --git a/po/is.po b/po/is.po
new file mode 100644 (file)
index 0000000..aeec6b1
--- /dev/null
+++ b/po/is.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Ekki í boði"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Innsl. texta"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Stillingar lyklaborðs"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Velja lyklaborð"
+
diff --git a/po/it_IT.po b/po/it_IT.po
new file mode 100644 (file)
index 0000000..770114a
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Non disponibile"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Modal. testo"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Impostazioni tastiera"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Seleziona tastiera"
+
diff --git a/po/ja_JP.po b/po/ja_JP.po
new file mode 100644 (file)
index 0000000..f4f5004
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "利用不可"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "テキスト入力"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "キーボード設定"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "キーボードを選択"
+
diff --git a/po/ka.po b/po/ka.po
new file mode 100644 (file)
index 0000000..1fa3bc0
--- /dev/null
+++ b/po/ka.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "მიუწვდომელია"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "აკრეფა"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "კლავიატურის პარამეტრები"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "აირჩიეთ კლავიატურა"
+
diff --git a/po/kk.po b/po/kk.po
new file mode 100644 (file)
index 0000000..6fee714
--- /dev/null
+++ b/po/kk.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Қол жетім. емес"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Мәтін енгізу"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Пернетақта параметрлері"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Пернетақта таңдау"
+
diff --git a/po/km.po b/po/km.po
new file mode 100644 (file)
index 0000000..5957633
--- /dev/null
+++ b/po/km.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "មិន​អាច​ប្រើ​បាន"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "ការបញ្ចូល​អត្ថបទ"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "ការកំណត់​ក្ដារចុច"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "ជ្រើស​ក្ដារចុច"
+
diff --git a/po/kn.po b/po/kn.po
new file mode 100644 (file)
index 0000000..6b5feb6
--- /dev/null
+++ b/po/kn.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "ಲಭ್ಯವಿಲ್ಲ"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "ಪಠ್ಯ ಇನ್‌ಪುಟ್‌"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "ಕೀಬೋರ್ಡ್ ಸಂಯೋಜನೆಗಳು"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "ಕೀಬೋರ್ಡ್ ಆಯ್ಕೆಮಾಡಿ"
+
diff --git a/po/ko_KR.po b/po/ko_KR.po
new file mode 100644 (file)
index 0000000..2065a1a
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "사용할 수 없음"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "텍스트 입력"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "키보드 설정"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "키보드 선택"
+
diff --git a/po/ky_KG.po b/po/ky_KG.po
new file mode 100644 (file)
index 0000000..68ad12e
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Байкалбайт"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Текст киргиз"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Клавиатура орнотуулары"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Клавиатураны тандаңыз"
+
diff --git a/po/lo.po b/po/lo.po
new file mode 100644 (file)
index 0000000..fe64a89
--- /dev/null
+++ b/po/lo.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "ບໍ່ມີຢູ່"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "ປ້ອນຂໍ້ຄວາມ"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "ຕັ້ງຄ່າຄີບອດ"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "ເລືອກຄີບອດ"
+
diff --git a/po/lt.po b/po/lt.po
new file mode 100644 (file)
index 0000000..2ecea77
--- /dev/null
+++ b/po/lt.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Neprieinamas"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Teksto įves."
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Klaviatūros nustatymai"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Pasirinkite klaviatūrą"
+
diff --git a/po/lv.po b/po/lv.po
new file mode 100644 (file)
index 0000000..ba27e19
--- /dev/null
+++ b/po/lv.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Nav pieejams"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Teksta iev."
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Tastatūras iestatījumi"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Izvēlieties tastatūru"
+
diff --git a/po/mk.po b/po/mk.po
new file mode 100644 (file)
index 0000000..793e002
--- /dev/null
+++ b/po/mk.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Недостапно"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Внесув.текст"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Поставки за тастатурата"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Изберете тастатура"
+
diff --git a/po/ml.po b/po/ml.po
new file mode 100644 (file)
index 0000000..5472f1a
--- /dev/null
+++ b/po/ml.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "ലഭ്യമല്ല"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "ടെക്സ്റ്റ്‌ ഇന്‍പുട്ട്"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "കീബോർഡ് ക്രമീകരണങ്ങൾ"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "കീബോര്‍ഡ് തിരഞ്ഞെടുക്കുക"
+
diff --git a/po/mn_MN.po b/po/mn_MN.po
new file mode 100644 (file)
index 0000000..6bc017d
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Боломжгүй"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Бичвэр оруул"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Гар товчлуурын тохиргоо"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Товчлуурт гар сонго"
+
diff --git a/po/mr.po b/po/mr.po
new file mode 100644 (file)
index 0000000..f1b817e
--- /dev/null
+++ b/po/mr.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "उपलब्‍ध नाही"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "मजकूर ईनपुट"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "कीबोर्ड सेटिंग्स"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "कीबोर्ड निवडा"
+
diff --git a/po/ms.po b/po/ms.po
new file mode 100644 (file)
index 0000000..3bcb8ea
--- /dev/null
+++ b/po/ms.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Tidak tersedia"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Input teks"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Aturan papan kekunci"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Pilih papan kekunci"
+
diff --git a/po/my.po b/po/my.po
new file mode 100644 (file)
index 0000000..df2223a
--- /dev/null
+++ b/po/my.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "မရႏိုင္ပါ"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "ျဖည့္ထည့္ထားေသာ စာသား"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "ကီးဘုတ္ သတ္မွတ္ခ်က္မ်ား"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "ကီးဘုတ္ ေရြးပါ"
+
diff --git a/po/nb.po b/po/nb.po
new file mode 100644 (file)
index 0000000..070cc94
--- /dev/null
+++ b/po/nb.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Ikke tilgj."
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Tekstinndata"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Tastaturinnstillinger"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Velg tastatur"
+
diff --git a/po/ne.po b/po/ne.po
new file mode 100644 (file)
index 0000000..7db3d4d
--- /dev/null
+++ b/po/ne.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "उपलब्ध छैन"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "पाठ इन्पुट"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "कीबोड सेटिङहरू"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "कीबोर्ड चयन गर्नुहोस्"
+
diff --git a/po/nl.po b/po/nl.po
new file mode 100644 (file)
index 0000000..a7f62fd
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Niet beschikb."
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Tekstinvoer"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Toetsenbordinstellingen"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Toetsenbord selecteren"
+
diff --git a/po/or.po b/po/or.po
new file mode 100644 (file)
index 0000000..5f8ce51
--- /dev/null
+++ b/po/or.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "ଉପଲବ୍ଧ ନାହିଁ"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "ଟେକ୍ସଟ୍ ଇନପୁଟ୍‌"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "କୀବୋର୍ଡ ସେଟିଂସ୍"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "କୀବୋର୍ଡ୍ ଚୟନ କରନ୍ତୁ"
+
diff --git a/po/pa.po b/po/pa.po
new file mode 100644 (file)
index 0000000..17b302c
--- /dev/null
+++ b/po/pa.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "ਉਪਲਬਧ ਨਹੀਂ ਹੈ"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "ਟੈਕਸਟ ਇਨਪੁਟ"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "ਕੀਬੋਰਡ ਸੈੱਟਿੰਗਸ"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "ਕੀਬੋਰਡ ਚੁਣੋ"
+
diff --git a/po/pl.po b/po/pl.po
new file mode 100644 (file)
index 0000000..2eb145c
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Niedostępne"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Wpr. tekstu"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Ustawienia klawiatury"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Wybierz klawiaturę"
+
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644 (file)
index 0000000..6e260fa
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Não disponível"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Ent. texto"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Configurações do teclado"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Selecionar teclado"
+
diff --git a/po/pt_PT.po b/po/pt_PT.po
new file mode 100644 (file)
index 0000000..f9bf032
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Indisponível"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Intro texto"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Definições do teclado"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Selecionar teclado"
+
diff --git a/po/ro.po b/po/ro.po
new file mode 100644 (file)
index 0000000..4724613
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Nedisponibil"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Introd. text"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Setări tastatură"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Selectare tastatură"
+
diff --git a/po/ru_RU.po b/po/ru_RU.po
new file mode 100644 (file)
index 0000000..edebb20
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Недоступно"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Ввод текста"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Параметры клавиатуры"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Выберите клавиатуру"
+
diff --git a/po/si.po b/po/si.po
new file mode 100644 (file)
index 0000000..caec9c7
--- /dev/null
+++ b/po/si.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "නොපවතී"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "පෙළ ආදානය"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "යතුරුපුවරු සැකසුම්"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "යතුරුපුවරුව තෝරන්න"
+
diff --git a/po/sk.po b/po/sk.po
new file mode 100644 (file)
index 0000000..b0a37ac
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Nedostupné"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Text. vstup"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Nastavenia klávesnice"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Vyberte klávesnicu"
+
diff --git a/po/sl.po b/po/sl.po
new file mode 100644 (file)
index 0000000..ccc547c
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Ni na voljo"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Vn. besedila"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Nastavitve tipkovnice"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Izberite tipkovnico"
+
diff --git a/po/sq.po b/po/sq.po
new file mode 100644 (file)
index 0000000..a327d3f
--- /dev/null
+++ b/po/sq.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Nuk disponohet"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Futja tekst"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Cilësimet e tastierës"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Përzgjidh tastierën"
+
diff --git a/po/sr.po b/po/sr.po
new file mode 100644 (file)
index 0000000..86a2506
--- /dev/null
+++ b/po/sr.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Nije dostupno"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Unos teksta"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Podešavanja tastature"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Izaberi tastaturu"
+
diff --git a/po/sv.po b/po/sv.po
new file mode 100644 (file)
index 0000000..398a3a7
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Inte tillgäng."
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Textinmatn."
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Tangentbordsinställningar"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Välj tangentbord"
+
diff --git a/po/ta.po b/po/ta.po
new file mode 100644 (file)
index 0000000..36fe8c5
--- /dev/null
+++ b/po/ta.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "கிடைக்கவில்லை"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "உரை உள்ளீடு"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "விசைப்பலகை அமைவுகள்"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "விசைப்பலகையைத் தேர்ந்தெடு"
+
diff --git a/po/te.po b/po/te.po
new file mode 100644 (file)
index 0000000..023cd66
--- /dev/null
+++ b/po/te.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "అందుబాటులో లేదు"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "టెక్స్ట్ ఇన్‌పుట్"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "కీబోర్డ్ సెట్టింగ్‌లు"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "కీబోర్డ్ ని ఎంచుకోండి"
+
diff --git a/po/tg_TJ.po b/po/tg_TJ.po
new file mode 100644 (file)
index 0000000..7307dc6
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Дастрас нест"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Вуруди матн"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Танзимоти клавиатура"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Интихоби клавиатура"
+
diff --git a/po/th.po b/po/th.po
new file mode 100644 (file)
index 0000000..aa97b5d
--- /dev/null
+++ b/po/th.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "ไม่พร้อมใช้งาน"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "การใส่ตัวอักษร"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "การตั้งค่าแป้นพิมพ์"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "เลือกแป้นพิมพ์"
+
diff --git a/po/tk_TM.po b/po/tk_TM.po
new file mode 100644 (file)
index 0000000..fd40c25
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Elýeterli däl"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Metin girizme"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Klawiatura sazlamalary"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Klawiatura saýla"
+
diff --git a/po/tl.po b/po/tl.po
new file mode 100644 (file)
index 0000000..b1bfbbb
--- /dev/null
+++ b/po/tl.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Hindi available"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Text input"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Mga setting ng keyboard"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Pumili ng keyboard"
+
diff --git a/po/tr_TR.po b/po/tr_TR.po
new file mode 100644 (file)
index 0000000..b44111f
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Kullanılamaz"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Metin girişi"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Klavye ayarları"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Klavye seçin"
+
diff --git a/po/uk.po b/po/uk.po
new file mode 100644 (file)
index 0000000..e49e63d
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Недоступно"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Введ. тексту"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Установки клавіатури"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Вибрати клавіатуру"
+
diff --git a/po/update-po.sh b/po/update-po.sh
new file mode 100755 (executable)
index 0000000..08548dd
--- /dev/null
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+PACKAGE=w-text-input-setting
+SRCROOT=../src
+POTFILES=POTFILES.in
+
+ALL_LINGUAS="hy az eu bg ca zh_CN zh_HK zh_TW hr cs da nl_NL en en_US et fi fr_FR gl ka de_DE el_GR hu is ga it_IT ja_JP kk ko_KR lv lt mk nb pl pt_PT pt_BR ro ru_RU sr sk sl es_ES es_US es_MX sv tr_TR uk uz ar zh_SG hi en_PH fr_CA fa th ur vi mn_MN"
+
+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
+
diff --git a/po/ur.po b/po/ur.po
new file mode 100644 (file)
index 0000000..722bb43
--- /dev/null
+++ b/po/ur.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "دستیاب نہیں ہے"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "ٹیکسٹ ان پٹ"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "کی بورڈ کی ترتیبات"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "کی بورڈ منتخب کریں"
+
diff --git a/po/uz.po b/po/uz.po
new file mode 100644 (file)
index 0000000..e92eb1a
--- /dev/null
+++ b/po/uz.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Mavjud emas"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Matn kirit"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Klaviatura parametrlari"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Klaviatura tanlang"
+
diff --git a/po/vi.po b/po/vi.po
new file mode 100644 (file)
index 0000000..6c29bac
--- /dev/null
+++ b/po/vi.po
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "Không có"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "Nhập văn bản"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "Cài đặt bàn phím"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "Chọn bàn phím"
+
diff --git a/po/w-text-input-setting.pot b/po/w-text-input-setting.pot
new file mode 100644 (file)
index 0000000..30c31b8
--- /dev/null
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-07-04 13:27+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: setting-text-input.cpp:217 setting-text-input.cpp:443
+msgid "Keyboard settings"
+msgstr ""
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100644 (file)
index 0000000..2cd98c6
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "不可用"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "文本输入"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "键盘设置"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "选择键盘"
+
diff --git a/po/zh_HK.po b/po/zh_HK.po
new file mode 100644 (file)
index 0000000..b289029
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "無法使用"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "文字輸入"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "鍵盤設定"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "選擇鍵盤"
+
diff --git a/po/zh_TW.po b/po/zh_TW.po
new file mode 100644 (file)
index 0000000..b289029
--- /dev/null
@@ -0,0 +1,12 @@
+msgid "IDS_SR_HEADER_NOT_AVAILABLE_ABB"
+msgstr "無法使用"
+
+msgid "IDS_ST_MBODY_TEXT_INPUT_ABB"
+msgstr "文字輸入"
+
+msgid "IDS_KPD_HEADER_KEYBOARD_SETTINGS_ABB"
+msgstr "鍵盤設定"
+
+msgid "IDS_IME_BODY_SELECT_KEYBOARD"
+msgstr "選擇鍵盤"
+
diff --git a/src/logic.c b/src/logic.c
new file mode 100644 (file)
index 0000000..b4dfaec
--- /dev/null
@@ -0,0 +1,158 @@
+/*
+ * 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 <Ecore.h>
+#include <efl_assist.h>
+#include <stdlib.h>
+
+#include "main.h"
+#include "log.h"
+#include "logic.h"
+#include "util_efl.h"
+#include "setting-text-input.h"
+
+#define BOOTING_STATE_DONE 3
+#define BUFSIZE 1024
+
+#ifdef EMULATOR_TYPE
+#define USE_ROTATION 0
+#else
+#define USE_ROTATION 0 //USE_ROTATION 1
+#endif
+
+void reply_to_sender(void* data,int result)
+{
+       retif(data == NULL, , "invalid parameter");
+
+       struct appdata *ad = (struct appdata *)data;
+
+       app_control_h app_control;
+
+       if(app_control_create(&app_control) == 0)
+       {
+               DBG("reply to caller :: app_control_reply_to_launch_request(%d)",result);
+               app_control_reply_to_launch_request(app_control, ad->source_app_control, result);
+               app_control_destroy(app_control);
+       }
+}
+
+int _cache_flush(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n");
+
+       Evas *evas = NULL;
+
+       int file_cache = -1;
+       int collection_cache = -1;
+       int image_cache = -1;
+       int font_cache = -1;
+
+       evas = evas_object_evas_get(ad->win);
+       retvm_if(evas == NULL, -1, "Evas is NULL\n");
+
+       file_cache = edje_file_cache_get();
+       collection_cache = edje_collection_cache_get();
+       image_cache = evas_image_cache_get(evas);
+       font_cache = evas_font_cache_get(evas);
+
+       edje_file_cache_set(file_cache);
+       edje_collection_cache_set(collection_cache);
+       evas_image_cache_set(evas, 0);
+       evas_font_cache_set(evas, 0);
+
+       evas_image_cache_flush(evas);
+       evas_render_idle_flush(evas);
+       evas_font_cache_flush(evas);
+
+       edje_file_cache_flush();
+       edje_collection_cache_flush();
+
+       edje_file_cache_set(file_cache);
+       edje_collection_cache_set(collection_cache);
+       evas_image_cache_set(evas, image_cache);
+       evas_font_cache_set(evas, font_cache);
+
+       return 0;
+}
+
+static int _lang_change_cb(void *event_info, void *data)
+{
+       DBG("%s : Language is changed", __func__);
+       struct appdata *ad = (struct appdata *)data;
+       retv_if(ad == NULL, -1);
+       return EXIT_SUCCESS;
+}
+
+static Evas_Object* _create_bg(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;
+}
+
+void _app_terminate(struct appdata *ad)
+{
+       DBG("%s", __func__);
+}
+
+int _app_create(struct appdata *ad)
+{
+       DBG("%s", __func__);
+       Evas_Object *win = NULL;
+
+       /* create main window */
+       if(ad->win == NULL) {
+               win = _add_window(PACKAGE);
+               retvm_if(win == NULL, -1, "Failed add window\n");
+               ad->win = win;
+               DBG("create window\n");
+       }
+
+       _create_bg(ad->win);
+
+       ad->conform = elm_conformant_add(ad->win);
+       evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(ad->win, ad->conform);
+       evas_object_show(ad->conform);
+
+       elm_win_conformant_set(ad->win, EINA_TRUE);
+
+       initialize_keyboard(ad);
+
+       ad->list = create_keyboard_list(ad);
+
+       elm_object_content_set(ad->conform, ad->list);
+
+       evas_object_show(ad->win);
+
+       /* language change callback */
+       if (appcore_set_event_callback(APPCORE_EVENT_LANG_CHANGE, _lang_change_cb, ad) < 0) {
+               ERR("Cannot register the language change callback.");
+       }
+
+       /* Apply Theme */
+       ea_theme_changeable_ui_enabled_set(EINA_TRUE);
+       return 0;
+}
diff --git a/src/main.c b/src/main.c
new file mode 100644 (file)
index 0000000..044ee19
--- /dev/null
@@ -0,0 +1,171 @@
+/*
+ * 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 <Ecore.h>
+#include <unistd.h>
+#include <errno.h>
+#include "main.h"
+#include "log.h"
+#include "logic.h"
+#include "util_efl.h"
+#include "setting-text-input.h"
+
+#ifndef EMULATOR_TYPE
+#define USE_ROTATION 0 //USE_ROTATIONS 1
+#endif
+
+static bool app_create(void *data)
+{
+       DBG("app create");
+       return true;
+}
+
+static void app_terminate(void *data)
+{
+       struct appdata *ad = data;
+
+       ad->app_state = APP_STATE_TERMINATE;
+
+       finish_keyboard();
+       _app_terminate(ad);
+
+#if USE_ROTATION
+       /* unregister rotation callback */
+       context_item_e context = CONTEXT_ITEM_AUTO_ROTATION;
+       context_unset_changed_callback(context);
+#endif
+
+       if (ad->win) {
+               evas_object_del(ad->win);
+               ad->win = NULL;
+       }
+       app_control_destroy(ad->source_app_control);
+}
+
+static void app_pause(void *data)
+{
+       DBG("%s", __func__);
+       struct appdata *ad = data;
+       retm_if(ad == NULL, "Invalid argument: appdata is NULL\n");
+
+       ad->app_state = APP_STATE_PAUSE;
+       ERR("APP PAUSE");
+}
+
+static void app_resume(void *data)
+{
+       DBG("%s", __func__);
+       struct appdata *ad = data;
+       retm_if(ad == NULL, "Invalid argument: appdata is NULL\n");
+
+       if(ad->app_state == APP_STATE_PAUSE)
+       {
+               if (ad->win) {
+                       elm_win_activate(ad->win);
+               }
+               DBG("activate");
+               ad->app_state = APP_STATE_RESUME;
+               return;
+       }
+       ad->app_state = APP_STATE_RESUME;
+}
+
+static void app_control(app_control_h app_control, void *data)
+{
+       DBG("%s", __func__);
+       struct appdata *ad = data;
+       retm_if(ad == NULL, "Invalid argument: appdata is NULL\n");
+
+       DBG("appstate %d",ad->app_state);
+       if(ad->app_state==APP_STATE_PAUSE||ad->app_state==APP_STATE_RESUME)
+       {
+               if (ad->win) {
+                       DBG("activate");
+                       elm_win_activate(ad->win);
+                       evas_object_show(ad->win);
+               }
+               ad->app_state = APP_STATE_SERVICE;
+               return;
+       }
+
+       char* type = NULL;
+       app_control_get_extra_data(app_control, "type", &type);
+
+       DBG("TYPE %s",type);
+       if(type!=NULL)
+       {
+               if(strcmp(type,"setting")==0)
+               {
+                       ad->app_type = APP_TYPE_SETTING;
+               }
+               else if(strcmp(type,"verify")==0)
+               {
+                       ad->app_type = APP_TYPE_VERIFY;
+                       DBG("VERIFY APP");
+               }
+               else
+               {
+                       ad->app_type = APP_TYPE_SETTING;
+               }
+       }
+       else
+       {
+               ad->app_type = APP_TYPE_SETTING;
+       }
+
+       app_control_clone(&(ad->source_app_control), app_control);
+
+       if(_app_create(ad) != 0){
+               ERR("_app_create() if failed\n");
+               goto END;
+       }
+
+       ad->app_state = APP_STATE_SERVICE;
+
+       if (ad->win) {
+               elm_win_activate(ad->win);
+       }
+
+END:
+       if(type!=NULL)
+               free(type);
+}
+
+int main(int argc, char *argv[])
+{
+       struct appdata ad;
+
+       app_event_callback_s event_callback;
+
+       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;
+       event_callback.low_memory = NULL;
+       event_callback.low_battery = NULL;
+       event_callback.device_orientation = NULL;
+       event_callback.language_changed = NULL;
+       event_callback.region_format_changed = NULL;
+
+       memset(&ad, 0x0, sizeof(struct appdata));
+
+       DBG("start w-text-input-setting");
+
+       return app_efl_main(&argc, &argv, &event_callback, &ad);
+}
diff --git a/src/setting-text-input.cpp b/src/setting-text-input.cpp
new file mode 100644 (file)
index 0000000..603dd5f
--- /dev/null
@@ -0,0 +1,519 @@
+/*
+ * 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
+#include <scim.h>
+#include <isf_control.h>
+#include <stdio.h>
+#include "setting-text-input.h"
+#include <glib.h>
+#include <efl_assist.h>
+#include <efl_extension.h>
+#include <scim_config_base.h>
+#include <scim_module.h>
+#include <scim_setup_module_efl.h>
+#include <vconf-internal-isf-keys.h>
+#include <vconf.h>
+
+#include "main.h"
+
+using namespace scim;
+using namespace std;
+#define SETTING_PACKAGE             "w-text-input-setting"
+#define SETTING_LOCALEDIR           "/usr/apps/org.tizen.w-text-input-setting/res/locale"
+static std::vector<String>          _names;
+static std::vector<String>          _uuids;
+static std::vector<String>          _module_names;
+static std::vector<String>          _langs;
+static std::vector<TOOLBAR_MODE_T>  _modes;
+static std::vector<String>          _sw_ise_list;
+static std::vector<String>          _sw_uuid_list;
+
+typedef enum {
+    ISE_OPTION_MODULE_EXIST_SO = 0,
+    ISE_OPTION_MODULE_EXIST_XML,
+    ISE_OPTION_MODULE_NO_EXIST
+} ISE_OPTION_MODULE_STATE;
+
+enum {
+    /* value must below 0 */
+    LABEL_TYPE_TITLE_SEPARATOR = -2,
+    LABEL_TYPE_OPTION = -1
+};
+
+static int                          _sw_ise_index = 0;
+static Evas_Object                  *_sw_radio_grp = NULL;
+
+static ConfigPointer                _config;
+static HelperAgent                  _helper_agent;
+static HelperInfo                   _helper_info("fd491a70-22f5-11e2-89f3-eb5999be869e", "ISF Setting", "", "", SCIM_HELPER_STAND_ALONE);
+static SetupModule                  *_mdl = NULL;
+static String                       _mdl_name;
+static std::vector <String>         _setup_modules;
+static Connection                   _reload_signal_connection;
+static Evas_Object                  *_mainpage_glist = NULL;
+
+struct view_data {
+    Evas_Object     *parent;
+    Evas_Object     *naviframe;
+    Evas_Object     *opt_eo;
+};
+static struct view_data *_st_view_data;
+
+static void update_mainpage_content(struct appdata *ad);
+static void add_keyboard_genlist(struct appdata *ad);
+
+static int get_all_ise_uuids()
+{
+    char **iselist = NULL;
+    int count = isf_control_get_ise_list(&iselist);
+
+    for (int i = 0; i < count; i++) {
+        if (iselist[i]) {
+            _uuids.push_back(String(iselist[i]));
+            free(iselist[i]);
+        }
+    }
+    if (iselist)
+        free(iselist);
+
+    return count;
+}
+
+static bool load_all_ise_vector()
+{
+    bool result = false;
+    int count = get_all_ise_uuids();
+    if (count <= 0) {
+        TEXT_INPUT_ERROR("get_all_ise_uuids total count:%d", count);
+        return false;
+    }
+
+    int i = 0;
+    for (i = 0; i < count; i++) {
+        char *name = NULL;
+        char *language = NULL;
+        char *module_name = NULL;
+        ISE_TYPE_T type = HARDWARE_KEYBOARD_ISE;
+        int   option    = 0;
+
+        int ret = isf_control_get_ise_info_and_module_name(_uuids[i].c_str(),
+                        &name,
+                        &language,
+                        &type,
+                        &option,
+                        &module_name);
+
+        if (ret == 0) {
+            TOOLBAR_MODE_T mode = TOOLBAR_KEYBOARD_MODE;
+            if (type == SOFTWARE_KEYBOARD_ISE)
+                mode = TOOLBAR_HELPER_MODE;
+            else
+                mode = TOOLBAR_KEYBOARD_MODE;
+
+            _modes.push_back(mode);
+            _module_names.push_back(module_name ? String(module_name) : String(""));
+            _names.push_back(name ? String(name) : String(""));
+            _langs.push_back(language ? String(language) : String(""));
+
+            result = true;
+        } else {
+            TEXT_INPUT_ERROR("isf_control_get_ise_info_and_module_name FAILED");
+        }
+
+        if (name)
+            free(name);
+        if (language)
+            free(language);
+        if (module_name)
+            free(module_name);
+    }
+
+    return result;
+}
+
+static void sort_sw_ise()
+{
+    std::sort(_sw_ise_list.begin(), _sw_ise_list.end());
+    //decoupling name and UUID
+    std::vector<String> sw_ise_list;
+    for (unsigned int i = 0; i < _sw_ise_list.size() ; i++) {
+        String str_name_uuid = _sw_ise_list[i];
+        std::vector<String> vtmp;
+        scim_split_string_list(vtmp, str_name_uuid, ':');
+        sw_ise_list.push_back(vtmp[0]);//name
+        _sw_uuid_list.push_back(vtmp[1]);//UUID
+    }
+
+    _sw_ise_list.clear();
+    for (unsigned int j = 0; j < sw_ise_list.size(); j++)
+        _sw_ise_list.push_back(sw_ise_list[j]);
+}
+
+static void sort_ise_list()
+{
+    std::vector<String> sw_uuid_list, hw_uuid_list;
+    std::vector<String> sw_ise_list, hw_ise_list;
+
+    unsigned int i = 0;
+    for (i = 0; i < _uuids.size(); i++) {
+        if (_modes[i] == TOOLBAR_HELPER_MODE){
+            sw_uuid_list.push_back(_uuids[i]);
+            sw_ise_list.push_back(_names[i]);
+        } else {
+            hw_uuid_list.push_back(_uuids[i]);
+            hw_ise_list.push_back(_names[i]);
+        }
+    }
+
+    // sort by alphabet of name
+    //compose name and UUID .
+    _sw_ise_list.clear();
+    for (unsigned int i = 0 ; i < sw_uuid_list.size(); i++) {
+        String name =  sw_ise_list [i];
+        String uuid = sw_uuid_list[i];
+        String str_name_uuid  = String(name) + String(":") + String(uuid);
+        _sw_ise_list.push_back(str_name_uuid);
+    }
+    sort_sw_ise();
+}
+
+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";
+    }
+}
+
+static bool load_ise_info()
+{
+    bool ret;
+    load_config_module();
+
+    ret = load_all_ise_vector();
+    if (ret)
+        sort_ise_list();
+
+    scim_get_setup_module_list(_setup_modules);
+
+    unsigned int i;
+    for (i = 0; i < _sw_ise_list.size(); i++)
+        LOGD("%s \n",_sw_ise_list[i].c_str());
+    return ret;
+}
+
+static char *_gl_exp_sw_label_get(void *data, Evas_Object *obj, const char *part)
+{
+    int index = (int)(data);
+    if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.1")) {
+        LOGD ("[%d] %s\n", index, _sw_ise_list[index].c_str());
+        return strdup(_sw_ise_list[index].c_str());
+    }
+    return NULL;
+}
+
+#ifdef _CIRCLE
+static char *_gl_title_label_get(void *data, Evas_Object *obj, const char *part)
+{
+    if (!strcmp(part, "elm.text")) {
+        return strdup(_("IDS_ST_MBODY_TEXT_INPUT_ABB"));
+    }
+    return NULL;
+}
+#endif
+
+static void sw_keyboard_radio_cb(void *data, Evas_Object *obj, void *event_info)
+{
+    int index = GPOINTER_TO_INT (data);
+    elm_radio_value_set(_sw_radio_grp, index);
+    _sw_ise_index = index;
+}
+
+static Evas_Object *_gl_exp_sw_icon_get(void *data, Evas_Object *obj, const char *part)
+{
+    int index = (int)(data);
+    if (!strcmp(part, "elm.icon.1") || !strcmp(part, "elm.icon")) {
+        Evas_Object *radio = elm_radio_add(obj);
+        elm_object_style_set (radio, "list");
+        elm_radio_state_value_set(radio, index);
+        if (_sw_radio_grp == NULL)
+            _sw_radio_grp = elm_radio_add(obj);
+        elm_radio_group_add(radio, _sw_radio_grp);
+        evas_object_show(radio);
+        evas_object_smart_callback_add(radio, "changed", sw_keyboard_radio_cb, (void *) (index));
+        if (_sw_ise_index == index) {
+            elm_radio_value_set(_sw_radio_grp, _sw_ise_index);
+        }
+        return radio;
+    }
+    return NULL;
+}
+
+static void _gl_sw_ise_sel(void *data, Evas_Object *obj, void *event_info)
+{
+    Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+    if (!item)
+        return;
+
+    elm_genlist_item_selected_set(item, EINA_FALSE);
+
+    _sw_ise_index = (int)(data);
+
+    elm_exit();
+}
+
+static Evas_Object *create_naviframe_layout(Evas_Object* parent)
+{
+    Evas_Object *naviframe = elm_naviframe_add(parent);
+    elm_naviframe_prev_btn_auto_pushed_set(naviframe, EINA_FALSE);
+    ea_object_event_callback_add(naviframe, EA_CALLBACK_BACK, ea_naviframe_back_cb, NULL);
+    elm_object_part_content_set(parent, "elm.swallow.content", naviframe);
+    evas_object_show(naviframe);
+
+    return naviframe;
+}
+
+static Eina_Bool back_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;
+
+    elm_exit();
+
+    return EINA_TRUE;
+}
+
+static void _timeout_exit_cb(void *data, Evas_Object *obj, void *event_info)
+{
+    evas_object_del(obj);
+    elm_exit();
+}
+
+static void show_popup()
+{
+    Evas_Object *popup = NULL;
+    popup = elm_popup_add(_st_view_data->parent);
+    evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    ea_object_event_callback_add(popup, EA_CALLBACK_BACK, _timeout_exit_cb, NULL);
+    elm_object_text_set(popup, _("IDS_SR_HEADER_NOT_AVAILABLE_ABB"));
+    elm_popup_timeout_set(popup, 3.0);
+    evas_object_smart_callback_add(popup, "timeout", _timeout_exit_cb, NULL);
+    evas_object_show(popup);
+}
+
+static void add_keyboard_genlist(struct appdata *ad) {
+    unsigned int i = 0;
+    char *active_ise_uuid = NULL;
+
+    if (_sw_ise_list.size() < 1) {
+        show_popup();
+        return;
+    }
+
+    if (_mainpage_glist == NULL) {
+        _mainpage_glist = elm_genlist_add(_st_view_data->naviframe);
+
+#ifdef _CIRCLE
+        Eext_Circle_Surface *circle_surface = eext_circle_surface_conformant_add(ad->conform);
+        eext_circle_object_genlist_add(_mainpage_glist, circle_surface);
+#endif
+    }
+    elm_genlist_block_count_set(_mainpage_glist, 14);
+    elm_genlist_mode_set(_mainpage_glist, ELM_LIST_COMPRESS);
+    elm_genlist_homogeneous_set(_mainpage_glist, EINA_TRUE);
+
+#ifdef _CIRCLE
+    /* Item Class: Title */
+    Elm_Genlist_Item_Class *gtc = elm_genlist_item_class_new();
+    gtc->item_style = "title";
+    gtc->func.text_get = _gl_title_label_get;
+    gtc->func.content_get = NULL;
+    gtc->func.del = NULL;
+#endif
+
+    /* Item Class : Keyboards */
+    Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
+    if (!itc) return;
+
+    itc->item_style = "1text.1icon.1";
+    itc->func.text_get = _gl_exp_sw_label_get;
+    itc->func.content_get = _gl_exp_sw_icon_get;
+    itc->func.del = NULL;
+
+    isf_control_get_active_ise(&active_ise_uuid);
+
+#ifdef _CIRCLE
+    /* title */
+    elm_genlist_item_append(_mainpage_glist,
+                gtc,
+                NULL,
+                NULL,
+                ELM_GENLIST_ITEM_GROUP,
+                NULL,
+                NULL);
+#endif
+
+    /* keyboard list */
+    for (i = 0; i < _sw_ise_list.size(); i++) {
+        if (String(active_ise_uuid) == _sw_uuid_list[i]) {
+            _sw_ise_index = i;
+        }
+        LOGD ("[%d] %s\n", i, _sw_ise_list[i].c_str());
+        elm_genlist_item_append(_mainpage_glist,
+            itc,
+            (void *)(i),
+            NULL,
+            ELM_GENLIST_ITEM_NONE,
+            _gl_sw_ise_sel,
+            (void *)(i));
+    }
+
+    if (active_ise_uuid) {
+        free(active_ise_uuid);
+        active_ise_uuid = NULL;
+    }
+
+    elm_genlist_item_class_free(itc);
+#ifdef _CIRCLE
+    elm_genlist_item_class_free(gtc);
+#endif
+}
+
+static void update_mainpage_content(struct appdata *ad) {
+    add_keyboard_genlist(ad);
+}
+
+static void active_ise_changed_cb(keynode_t *key, void* data)
+{
+    const char *active_ise_uuid = vconf_keynode_get_str(key);
+    if (!active_ise_uuid) return;
+
+    LOGD("Active ISE uuid : %s\n", active_ise_uuid);
+
+    for (unsigned int i = 0; i < _sw_ise_list.size(); i++) {
+        if (String(active_ise_uuid) == _sw_uuid_list[i]) {
+            _sw_ise_index = i;
+            if (_sw_radio_grp)
+                elm_radio_value_set(_sw_radio_grp, _sw_ise_index);
+
+            LOGD ("active ise index : %d\n", _sw_ise_index);
+            break;
+        }
+    }
+}
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+    void initialize_keyboard(void *data)
+    {
+        bindtextdomain(SETTING_PACKAGE, SETTING_LOCALEDIR);
+        bool loaded = load_ise_info();
+        if (!loaded) {
+            TEXT_INPUT_ERROR ("load_ise_info fail");
+            return ;
+        }
+
+        vconf_notify_key_changed (VCONFKEY_ISF_ACTIVE_KEYBOARD_UUID, active_ise_changed_cb, NULL);
+    }
+
+    Evas_Object *create_keyboard_list(struct appdata *ad)
+    {
+        _mainpage_glist = NULL;
+
+        _st_view_data = (view_data*)calloc(1, sizeof(view_data));
+        _st_view_data->parent = ad->conform;
+        if (NULL == _st_view_data->naviframe) {
+            _st_view_data->naviframe = create_naviframe_layout(ad->conform);
+        }
+
+        _mainpage_glist = elm_genlist_add(_st_view_data->naviframe);
+
+#ifdef _CIRCLE
+        Eext_Circle_Surface *circle_surface = eext_circle_surface_conformant_add(ad->conform);
+        eext_circle_object_genlist_add(_mainpage_glist, circle_surface);
+#endif
+        elm_genlist_block_count_set(_mainpage_glist, 14);
+        elm_genlist_mode_set(_mainpage_glist, ELM_LIST_COMPRESS);
+
+        update_mainpage_content(ad);
+
+        /* Add genlist to naviframe */
+        Elm_Object_Item *nf_main_item = elm_naviframe_item_push(_st_view_data->naviframe,
+#ifdef _CIRCLE
+                NULL,
+#else
+                _("IDS_ST_MBODY_TEXT_INPUT_ABB"),
+#endif
+                NULL,
+                NULL,
+                _mainpage_glist,
+                NULL);
+        elm_naviframe_item_title_enabled_set(nf_main_item, EINA_FALSE, EINA_FALSE);
+        elm_naviframe_item_pop_cb_set(nf_main_item, back_cb, _st_view_data);
+
+        return _st_view_data->naviframe;
+    }
+
+    void finish_keyboard()
+    {
+        LOGD("finish_keyboard called\n");
+        if (_sw_uuid_list.size() > 0) {
+            isf_control_set_active_ise_by_uuid(_sw_uuid_list[_sw_ise_index].c_str());
+            LOGD("active uuid: %s\n",_sw_uuid_list[_sw_ise_index].c_str());
+        }
+
+        _names.clear();
+        _uuids.clear();
+        _module_names.clear();
+        _langs.clear();
+        _modes.clear();
+        _sw_ise_list.clear();
+        _sw_uuid_list.clear();
+
+        if (_mdl) {
+            delete _mdl;
+            _mdl = NULL;
+        }
+
+        if (!_config.null()) {
+            _config->flush();
+            _config.reset();
+        }
+
+        if (_st_view_data != NULL) {
+            free(_st_view_data);
+            _st_view_data = NULL;
+        }
+    }
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/src/util_efl.c b/src/util_efl.c
new file mode 100644 (file)
index 0000000..591739e
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * 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 <Ecore.h>
+#include <Ecore_X.h>
+
+#include "main.h"
+#include "log.h"
+
+Evas_Object *_add_window(const char *name)
+{
+       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_FALSE);
+               ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+               if(w == -1 || h == -1){
+                       ERR("ecore_x_window_seiz_get() is failed\n");
+                       return NULL;
+               }
+               evas_object_resize(eo, w, h);
+               evas_object_show(eo);
+       }
+       return eo;
+}
+
+Evas_Object *_add_layout(Evas_Object *parent, const char *file,
+                            const char *group)
+{
+       DBG("%s", __func__);
+       Evas_Object *eo = NULL;
+       int r = -1;
+
+       retvm_if(parent == NULL, NULL, "Invalid argument: parent is NULL\n");
+       retvm_if(file == NULL, NULL, "Invalid argument: file is NULL\n");
+       retvm_if(group == NULL, NULL, "Invalid argument: group is NULL\n");
+
+       eo = elm_layout_add(parent);
+       retvm_if(eo == NULL, NULL, "Failed to add layout\n");
+
+       r = elm_layout_file_set(eo, file, group);
+       if (!r) {
+               ERR("Failed to set file[%s]\n", file);
+               evas_object_del(eo);
+               return NULL;
+       }
+
+       evas_object_show(eo);
+       return eo;
+}