summaryrefslogtreecommitdiff
path: root/wearable
diff options
context:
space:
mode:
authorJihoon Jung <jh8801.jung@samsung.com>2016-05-12 17:45:19 +0900
committerJihoon Jung <jh8801.jung@samsung.com>2016-05-13 11:25:35 +0900
commit4d6215f92a9c91602c07c696bdbe28477a0d3b5a (patch)
tree4e9afb5e8a295f55e56491a068c04f5ef1652b32 /wearable
parent377ca9574fe62e2c561d69ee3e63faff3ed5881c (diff)
downloadug-nfc-efl-4d6215f92a9c91602c07c696bdbe28477a0d3b5a.tar.gz
ug-nfc-efl-4d6215f92a9c91602c07c696bdbe28477a0d3b5a.tar.bz2
ug-nfc-efl-4d6215f92a9c91602c07c696bdbe28477a0d3b5a.zip
Mobile & Wearable profile migration for NFC setting UIsubmit/tizen/20160513.023151
Signed-off-by: Jihoon Jung <jh8801.jung@samsung.com> Change-Id: Ie994df70517b8ea72283d16b98a169f61108d324
Diffstat (limited to 'wearable')
-rwxr-xr-xwearable/CMakeLists.txt41
-rw-r--r--wearable/app/CMakeLists.txt50
-rw-r--r--wearable/app/data/CMakeLists.txt9
-rw-r--r--wearable/app/data/edc/nfc-setting-app.edc279
-rw-r--r--wearable/app/data/images/b_setting_payment_help_image.pngbin0 -> 10470 bytes
-rw-r--r--wearable/app/data/images/tw_ic_popup_btn_check.pngbin0 -> 1331 bytes
-rw-r--r--wearable/app/data/images/tw_list_fadeout_right_masking.#.pngbin0 -> 1059 bytes
-rw-r--r--wearable/app/include/nsa-debug.h144
-rwxr-xr-xwearable/app/include/nsa-main.h86
-rw-r--r--wearable/app/include/nsa-popup.h51
-rwxr-xr-xwearable/app/include/nsa-string.h56
-rw-r--r--wearable/app/include/nsa-ui-widget.h44
-rw-r--r--wearable/app/include/nsa-util.h95
-rwxr-xr-xwearable/app/include/nsa-view.h44
-rwxr-xr-xwearable/app/src/nsa-main.c418
-rwxr-xr-xwearable/app/src/nsa-popup.c152
-rw-r--r--wearable/app/src/nsa-ui-widget.c180
-rwxr-xr-xwearable/app/src/nsa-view-main.c596
-rwxr-xr-xwearable/app/src/nsa-view-tap-n-pay.c918
-rwxr-xr-xwearable/org.tizen.nfc-setting-app.xml17
-rw-r--r--wearable/po/CMakeLists.txt108
-rw-r--r--wearable/po/ar.po18
-rw-r--r--wearable/po/as.po18
-rw-r--r--wearable/po/az.po18
-rw-r--r--wearable/po/be_BY.po18
-rw-r--r--wearable/po/bg.po18
-rw-r--r--wearable/po/bn.po18
-rw-r--r--wearable/po/bn_BD.po18
-rw-r--r--wearable/po/ca.po18
-rw-r--r--wearable/po/cs.po18
-rw-r--r--wearable/po/da.po18
-rw-r--r--wearable/po/de.po18
-rw-r--r--wearable/po/el_GR.po18
-rw-r--r--wearable/po/en.po18
-rw-r--r--wearable/po/en_PH.po18
-rw-r--r--wearable/po/en_US.po18
-rw-r--r--wearable/po/es_ES.po18
-rw-r--r--wearable/po/es_US.po18
-rw-r--r--wearable/po/et.po18
-rw-r--r--wearable/po/eu.po18
-rw-r--r--wearable/po/fa.po18
-rw-r--r--wearable/po/fi.po18
-rw-r--r--wearable/po/fr.po18
-rw-r--r--wearable/po/fr_CA.po18
-rw-r--r--wearable/po/ga.po18
-rw-r--r--wearable/po/gl.po18
-rw-r--r--wearable/po/gu.po18
-rw-r--r--wearable/po/he.po18
-rw-r--r--wearable/po/hi.po18
-rw-r--r--wearable/po/hr.po18
-rw-r--r--wearable/po/hu.po18
-rw-r--r--wearable/po/hy.po18
-rw-r--r--wearable/po/id.po18
-rw-r--r--wearable/po/is.po18
-rw-r--r--wearable/po/it_IT.po18
-rw-r--r--wearable/po/ja_JP.po18
-rw-r--r--wearable/po/ka.po18
-rw-r--r--wearable/po/kk.po18
-rw-r--r--wearable/po/km.po18
-rw-r--r--wearable/po/kn.po18
-rw-r--r--wearable/po/ko_KR.po18
-rw-r--r--wearable/po/ky_KG.po18
-rw-r--r--wearable/po/lo.po18
-rw-r--r--wearable/po/lt.po18
-rw-r--r--wearable/po/lv.po18
-rw-r--r--wearable/po/mk.po18
-rw-r--r--wearable/po/ml.po18
-rw-r--r--wearable/po/mn_MN.po18
-rw-r--r--wearable/po/mr.po18
-rw-r--r--wearable/po/ms.po18
-rw-r--r--wearable/po/my_MM.po18
-rw-r--r--wearable/po/my_ZG.po18
-rw-r--r--wearable/po/nb.po18
-rw-r--r--wearable/po/ne.po18
-rw-r--r--wearable/po/nl.po18
-rw-r--r--wearable/po/or.po18
-rw-r--r--wearable/po/pa.po18
-rw-r--r--wearable/po/pl.po18
-rw-r--r--wearable/po/pl_SP.po18
-rw-r--r--wearable/po/pt_BR.po18
-rw-r--r--wearable/po/pt_PT.po18
-rw-r--r--wearable/po/ro.po18
-rw-r--r--wearable/po/ru_RU.po18
-rw-r--r--wearable/po/si.po18
-rw-r--r--wearable/po/sk.po18
-rw-r--r--wearable/po/sl.po18
-rw-r--r--wearable/po/sq.po18
-rw-r--r--wearable/po/sr.po18
-rw-r--r--wearable/po/sv.po18
-rw-r--r--wearable/po/ta.po18
-rw-r--r--wearable/po/te.po18
-rw-r--r--wearable/po/tg_TJ.po18
-rw-r--r--wearable/po/th.po18
-rw-r--r--wearable/po/tk_TM.po18
-rw-r--r--wearable/po/tl.po18
-rw-r--r--wearable/po/tr_TR.po18
-rw-r--r--wearable/po/uk.po18
-rw-r--r--wearable/po/ur.po18
-rw-r--r--wearable/po/uz.po18
-rw-r--r--wearable/po/vi.po18
-rw-r--r--wearable/po/zh_CN.po18
-rw-r--r--wearable/po/zh_HK.po18
-rw-r--r--wearable/po/zh_TW.po18
103 files changed, 4764 insertions, 0 deletions
diff --git a/wearable/CMakeLists.txt b/wearable/CMakeLists.txt
new file mode 100755
index 0000000..fd4ca87
--- /dev/null
+++ b/wearable/CMakeLists.txt
@@ -0,0 +1,41 @@
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(BINDIR "${PREFIX}/bin")
+SET(RESDIR "${PREFIX}/res")
+SET(LOCALEDIR "${RESDIR}/locale")
+SET(IMGDIR "${RESDIR}/images")
+SET(EDJDIR "${RESDIR}/edje")
+SET(ICONDIR "${CMAKE_SHARE_PREFIX}/icons/default/small")
+SET(XMLDIR "${CMAKE_SHARE_PREFIX}/packages")
+SET(DATADIR "${CMAKE_DATA_PREFIX}")
+SET(TABLEDIR "${PREFIX}/shared/res/tables")
+
+ADD_DEFINITIONS("-DPACKAGE=\"nfc-setting-app\"")
+ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
+ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
+ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
+ADD_DEFINITIONS("-DIMGDIR=\"${IMGDIR}\"")
+ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
+ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"")
+ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"")
+ADD_DEFINITIONS("-DTABLEDIR=\"${TABLEDIR}\"")
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+ SET(CMAKE_BUILD_TYPE "Debug")
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
+
+#------- for development --------
+ADD_DEFINITIONS("-DNSA_LOG_LEVEL_2")
+#--------------------------------
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror-implicit-function-declaration")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_C_FLAGS_RELEASE "-O2")
+
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/org.tizen.nfc-setting-app.xml DESTINATION /usr/share/packages/)
+
+# source file
+ADD_SUBDIRECTORY(app)
+ADD_SUBDIRECTORY(po)
+
+# End of a file
diff --git a/wearable/app/CMakeLists.txt b/wearable/app/CMakeLists.txt
new file mode 100644
index 0000000..7f6ffc3
--- /dev/null
+++ b/wearable/app/CMakeLists.txt
@@ -0,0 +1,50 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(nfc-setting-app C)
+
+SET(SRCS
+src/nsa-main.c
+src/nsa-popup.c
+src/nsa-ui-widget.c
+src/nsa-view-main.c
+src/nsa-view-tap-n-pay.c
+)
+
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
+
+# include library +
+SET(dependents "glib-2.0 elementary efl-extension pkgmgr-info dlog vconf capi-appfw-application capi-network-nfc")
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs_app REQUIRED
+${dependents}
+)
+# include library -
+
+FOREACH(flag ${pkgs_app_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE -Wl,-rpath,${LIBDIR}")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+
+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("-fpie")
+MESSAGE("CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
+
+ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_app_LDFLAGS} "-pie")
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
+
+# install image
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/images/b_setting_payment_help_image.png DESTINATION ${IMGDIR})
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/images/tw_ic_popup_btn_check.png DESTINATION ${IMGDIR})
+
+ADD_SUBDIRECTORY(data)
diff --git a/wearable/app/data/CMakeLists.txt b/wearable/app/data/CMakeLists.txt
new file mode 100644
index 0000000..915c822
--- /dev/null
+++ b/wearable/app/data/CMakeLists.txt
@@ -0,0 +1,9 @@
+ADD_CUSTOM_TARGET(${PROJECT_NAME}.edj
+ COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images
+ ${CMAKE_CURRENT_SOURCE_DIR}/edc/${PROJECT_NAME}.edc ${PROJECT_NAME}.edj
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/edc/${PROJECT_NAME}.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} ${PROJECT_NAME}.edj)
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.edj DESTINATION ${EDJDIR})
+
+# End of a file
diff --git a/wearable/app/data/edc/nfc-setting-app.edc b/wearable/app/data/edc/nfc-setting-app.edc
new file mode 100644
index 0000000..b76f4e9
--- /dev/null
+++ b/wearable/app/data/edc/nfc-setting-app.edc
@@ -0,0 +1,279 @@
+
+// Layout - No Item
+#define TITLE_TEXT_SIZE_W 226
+#define TITLE_TEXT_SIZE_H 39
+#define TITLE_FONT_SIZE 39
+#define HELP_TEXT_SIZE_W 232
+#define HELP_TEXT_SIZE_H 42
+#define HELP_FONT_SIZE 42
+#define LR_PADDING_SIZE 33
+#define DESC_LR_PADDING_SIZE 64
+#define IMAGE_SIZE_W 294
+#define IMAGE_SIZE_H 122
+#define IMAGE_PADDING_H 5
+#define TITLE_LR_PADDING_SIZE 67
+#define TITLE_TOP_PADDING_SIZE 60
+#define TITLE_BOTTOM_PADDING_SIZE 7
+
+#define STYLE_TAG_MATCH \
+ tag: "match" "+ color=#ffffff color_class=T0212";
+
+collections {
+
+ base_scale: 1.3;
+
+ styles {
+ style { name: "nocontent_style";
+ base: "font=Tizen:style=Regular font_size="HELP_FONT_SIZE" align=center color=#FFFFFF color_class=AT017 text_class=AT017 wrap=mixed";
+ }
+
+ style { name: "nocontent_title_style";
+ //base: "font=Tizen:style=Bold font_size="TITLE_TEXT_SIZE_H" align=center color=#FFFFFF color_class=T012 text_class=T012 ellipsis=1.0";
+ base: "font=Tizen:style=Bold font_size="TITLE_TEXT_SIZE_H" align=center color=#FFFFFF color_class=T012 text_class=T012 wrap=mixed";
+ STYLE_TAG_MATCH
+ }
+ }
+
+ group { name: "tap_n_pay/nocontents";
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+
+ part { name: "title_top_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 TITLE_TOP_PADDING_SIZE;
+ max: -1 TITLE_TOP_PADDING_SIZE;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "bg"; }
+ rel2 { relative: 1.0 0.0; to: "bg"; }
+ }
+ }
+
+ part { name: "title_left_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: TITLE_LR_PADDING_SIZE 0;
+ max: TITLE_LR_PADDING_SIZE -1;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 { relative: 0.0 0.0; to: "bg"; }
+ rel2 { relative: 0.0 0.0; to: "bg"; }
+ }
+ }
+
+ part { name: "title_right_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: TITLE_LR_PADDING_SIZE 0;
+ max: TITLE_LR_PADDING_SIZE -1;
+ fixed: 1 0;
+ align: 1.0 0.0;
+ rel1 { relative: 1.0 0.0; to: "bg"; }
+ rel2 { relative: 1.0 0.0; to: "bg"; }
+ }
+ }
+
+ part { name: "title_bottom_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 TITLE_BOTTOM_PADDING_SIZE;
+ max: -1 TITLE_BOTTOM_PADDING_SIZE;
+ fixed: 0 1;
+ align: 0.0 0.0;
+ rel1 {relative: 0.0 1.0; to: "elm.text.title"; }
+ rel2 {relative: 1.0 1.0; to: "elm.text.title"; }
+ }
+ }
+
+ part { name: "elm.text.title";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: TITLE_TEXT_SIZE_W TITLE_TEXT_SIZE_H;
+ max: TITLE_TEXT_SIZE_W TITLE_TEXT_SIZE_H;
+ fixed: 1 1;
+ rel1 {
+ to_x: "title_left_padding";
+ to_y: "title_top_padding";
+ relative: 1.0 1.0;
+ }
+ rel2 {
+ to_x: "title_right_padding";
+ to_y: "title_top_padding";
+ relative: 0.0 1.0;
+ }
+ fixed: 0 1;
+ align: 0.5 0;
+ }
+ }
+
+ part {
+ name: "left_padding";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: LR_PADDING_SIZE 0;
+ max: LR_PADDING_SIZE -1;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 {
+ to: "bg";
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ to: "bg";
+ relative: 0.0 0.0;
+ }
+ }
+ }
+
+ part {
+ name: "right_padding";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: LR_PADDING_SIZE 0;
+ max: LR_PADDING_SIZE -1;
+ fixed: 1 0;
+ align: 1.0 0.0;
+ rel1 {
+ to: "bg";
+ relative: 1.0 0.0;
+ }
+ rel2 {
+ to: "bg";
+ relative: 1.0 0.0;
+ }
+ }
+ }
+
+ part { name: "elm.swallow.icon";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: IMAGE_SIZE_W IMAGE_SIZE_H;
+ max: IMAGE_SIZE_W IMAGE_SIZE_H;
+ fixed: 1 1;
+ rel1 {
+ to_x: "left_padding";
+ to_y: "title_bottom_padding";
+ relative: 1.0 1.0;
+ }
+ rel2 {
+ to_x: "right_padding";
+ to_y: "title_bottom_padding";
+ relative: 0.0 1.0;
+ }
+ fixed: 0 1;
+ align: 0.5 0.0;
+ }
+ }
+
+ part { name: "image_bottom_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 IMAGE_PADDING_H;
+ max: -1 IMAGE_PADDING_H;
+ rel1 {
+ to: "elm.swallow.icon";
+ relative: 0.0 1.0;
+ }
+ rel2 {
+ to: "elm.swallow.icon";
+ relative: 1.0 1.0;
+ }
+ fixed: 0 1;
+ align: 0.5 0.0;
+ }
+ }
+
+ part {
+ name: "desc_left_padding";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: DESC_LR_PADDING_SIZE 0;
+ max: DESC_LR_PADDING_SIZE -1;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ rel1 {
+ to: "bg";
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ to: "bg";
+ relative: 0.0 0.0;
+ }
+ }
+ }
+
+ part {
+ name: "desc_right_padding";
+ type: SPACER;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: DESC_LR_PADDING_SIZE 0;
+ max: DESC_LR_PADDING_SIZE -1;
+ fixed: 1 0;
+ align: 1.0 0.0;
+ rel1 {
+ to: "bg";
+ relative: 1.0 0.0;
+ }
+ rel2 {
+ to: "bg";
+ relative: 1.0 0.0;
+ }
+ }
+ }
+
+ part { name: "elm.text";
+ type: TEXTBLOCK;
+ description { state: "default" 0.0;
+ min: HELP_TEXT_SIZE_W HELP_TEXT_SIZE_H;
+ max: HELP_TEXT_SIZE_W -1;
+ fixed: 1 0;
+ rel1 {
+ to_x: "desc_left_padding";
+ to_y: "image_bottom_padding";
+ relative: 1.0 1.0;
+ }
+ rel2 {
+ to_x: "desc_right_padding";
+ to_y: "bg";
+ relative: 0.0 1.0;
+ offset: 0 -41;
+ }
+ align: 0.5 0.0;
+ color_class: "AT017";
+ text {
+ style: "nocontent_style";
+ min: 0 1;
+ max: 0 1;
+ }
+ }
+ }
+ }
+ }
+} // collections
+
diff --git a/wearable/app/data/images/b_setting_payment_help_image.png b/wearable/app/data/images/b_setting_payment_help_image.png
new file mode 100644
index 0000000..ca87894
--- /dev/null
+++ b/wearable/app/data/images/b_setting_payment_help_image.png
Binary files differ
diff --git a/wearable/app/data/images/tw_ic_popup_btn_check.png b/wearable/app/data/images/tw_ic_popup_btn_check.png
new file mode 100644
index 0000000..3dce121
--- /dev/null
+++ b/wearable/app/data/images/tw_ic_popup_btn_check.png
Binary files differ
diff --git a/wearable/app/data/images/tw_list_fadeout_right_masking.#.png b/wearable/app/data/images/tw_list_fadeout_right_masking.#.png
new file mode 100644
index 0000000..ab615ca
--- /dev/null
+++ b/wearable/app/data/images/tw_list_fadeout_right_masking.#.png
Binary files differ
diff --git a/wearable/app/include/nsa-debug.h b/wearable/app/include/nsa-debug.h
new file mode 100644
index 0000000..39e13e0
--- /dev/null
+++ b/wearable/app/include/nsa-debug.h
@@ -0,0 +1,144 @@
+/*
+ * Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of
+ * SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall
+ * use it only in accordance with the terms of the license agreement
+ * you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability
+ * of the software, either express or implied, including but not
+ * limited to the implied warranties of merchantability, fitness for
+ * a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as
+ * a result of using, modifying or distributing this software or its derivatives.
+
+ */
+
+
+#ifndef __NFC_SETTING_APP_DEBUG_H__
+#define __NFC_SETTING_APP_DEBUG_H__
+
+#include <dlog.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+#define COLOR_RED "\033[0;31m"
+#define COLOR_GREEN "\033[0;32m"
+#define COLOR_BROWN "\033[0;33m"
+#define COLOR_BLUE "\033[0;34m"
+#define COLOR_PURPLE "\033[0;35m"
+#define COLOR_CYAN "\033[0;36m"
+#define COLOR_LIGHTBLUE "\033[0;37m"
+#define COLOR_END "\033[0;m"
+
+#ifdef LOG_TAG
+#undef LOG_TAG
+#endif
+
+#define LOG_TAG "NFC_SETTING_APP"
+
+#define NSA_ENABLE_DLOG
+
+#ifdef NSA_ENABLE_DLOG
+#if defined(NSA_LOG_LEVEL_1)
+#define NSA_BEGIN()
+#define NSA_END()
+#define NSA_DEBUG(fmt, ...)
+#define NSA_DEBUG_ERR(fmt, ...) \
+ do { \
+ LOGE(COLOR_RED" " fmt COLOR_END, ##__VA_ARGS__); \
+ } while (0)
+#elif defined(NSA_LOG_LEVEL_2)
+#define NSA_BEGIN()
+#define NSA_END()
+#define NSA_DEBUG(fmt, ...) \
+ do { \
+ LOGD(COLOR_BROWN" " fmt COLOR_END, ##__VA_ARGS__); \
+ } while (0)
+#define NSA_DEBUG_ERR(fmt, ...) \
+ do { \
+ LOGE(COLOR_RED" " fmt COLOR_END, ##__VA_ARGS__); \
+ } while (0)
+#elif defined(NSA_LOG_LEVEL_3)
+#define NSA_BEGIN() \
+ do { \
+ LOGD(COLOR_BLUE" BEGIN >>>>"COLOR_END); \
+ } while (0)
+#define NSA_END() \
+ do { \
+ LOGD(COLOR_BLUE" END <<<<"COLOR_END); \
+ } while (0)
+#define NSA_DEBUG(fmt, ...) \
+ do { \
+ LOGD(COLOR_BROWN" " fmt COLOR_END, ##__VA_ARGS__); \
+ } while (0)
+#define NSA_DEBUG_ERR(fmt, ...) \
+ do { \
+ LOGE(COLOR_RED" " fmt COLOR_END, ##__VA_ARGS__); \
+ } while (0)
+#endif
+#else
+#define NSA_BEGIN() \
+ do { \
+ printf("\n [%s: %s: %d] : BEGIN >>>> %s() \n", APPNAME, \
+ rindex(__FILE__, '/')+1, __LINE__ , __FUNCTION__); \
+ } while (0)
+
+#define NSA_END() \
+ do { \
+ printf("\n [%s: %s: %d]: END <<<< %s()\n", APPNAME, \
+ rindex(__FILE__, '/')+1, __LINE__ , __FUNCTION__); \
+ } while (0)
+#define NSA_DEBUG(fmt, ...) \
+ do { \
+ printf("\n [%s: %s: %s(): %d] " fmt"\n", APPNAME, \
+ rindex(__FILE__, '/')+1, __FUNCTION__, __LINE__, \
+ ##__VA_ARGS__); \
+ } while (0)
+#define NSA_DEBUG_ERR(fmt, ...) \
+ do { \
+ printf("\n [%s: %s: %s(): %d] " fmt"\n", APPNAME, \
+ rindex(__FILE__, '/')+1, __FUNCTION__, __LINE__, \
+ ##__VA_ARGS__); \
+ } while (0)
+#endif
+
+#define ret_if(expr) \
+ do { \
+ if (__builtin_expect(expr, 0)) { \
+ NSA_DEBUG_ERR("(%s) ", #expr); \
+ return; \
+ } \
+ } while (0)
+#define retm_if(expr, fmt, arg...) \
+ do { \
+ if (__builtin_expect(expr, 0)) { \
+ NSA_DEBUG_ERR("(%s) " fmt, #expr, ##arg); \
+ return; \
+ } \
+ } while (0)
+#define retv_if(expr, val)\
+ do { \
+ if (__builtin_expect(expr, 0)) { \
+ NSA_DEBUG_ERR("(%s) ", #expr); \
+ return (val);\
+ } \
+ } while (0)
+#define retvm_if(expr, val, fmt, arg...) \
+ do { \
+ if (__builtin_expect(expr, 0)) { \
+ NSA_DEBUG_ERR("(%s) " fmt, #expr, ##arg); \
+ return (val);\
+ } \
+ } while (0)
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* __NFC_SETTING_APP_DEBUG_H__ */ \ No newline at end of file
diff --git a/wearable/app/include/nsa-main.h b/wearable/app/include/nsa-main.h
new file mode 100755
index 0000000..ed13912
--- /dev/null
+++ b/wearable/app/include/nsa-main.h
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of
+ * SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall
+ * use it only in accordance with the terms of the license agreement
+ * you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability
+ * of the software, either express or implied, including but not
+ * limited to the implied warranties of merchantability, fitness for
+ * a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as
+ * a result of using, modifying or distributing this software or its derivatives.
+
+ */
+
+
+#ifndef __NFC_SETTING_APP_MAIN_H__
+#define __NFC_SETTING_APP_MAIN_H__
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <string.h>
+#include <Elementary.h>
+#include <efl_extension.h>
+#include <glib.h>
+#include <app.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+/* Package */
+#define APPNAME PACKAGE
+#define GRP_MAIN "main"
+#define ICON_PATH RESDIR"/icons"
+#define IMAGES_PATH IMGDIR
+#define TABLE_PATH TABLEDIR
+#define EDJ_FILE EDJDIR"/"APPNAME".edj"
+
+typedef enum {
+ NSA_ERROR = -1,
+ NSA_OK = 0
+} nsa_result_e;
+
+typedef enum {
+ NSA_OP_NONE = -1,
+ NSA_OP_NFC = 0,
+ NSA_OP_NFC_HELP = 1,
+ NSA_OP_SBEAM = 2,
+ NSA_OP_SBEAM_HELP = 3,
+ NSA_OP_TAP_N_PAY = 4
+} nsa_operation_type;
+
+struct appdata {
+ Evas_Object *win_main;
+ Evas_Object *ly_main;
+ Evas_Object *bg;
+ Evas_Object *conform;
+ Eext_Circle_Surface *circle_surface;
+ Evas_Object *navi_frame;
+ Evas_Object *popup;
+ Elm_Object_Item *base_navi_it;
+ GArray *circle_obj_list;
+ int circle_obj_list_idx;
+
+ nsa_operation_type op_type;
+
+ /* changeable UI */
+ Eina_List *color_table;
+ Eina_List *font_table;
+
+ app_control_h caller_appctrl;
+};
+
+inline Evas_Object *nsa_get_main_window(void);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*__NFC_SETTING_APP_MAIN_H__*/
diff --git a/wearable/app/include/nsa-popup.h b/wearable/app/include/nsa-popup.h
new file mode 100644
index 0000000..257e4c0
--- /dev/null
+++ b/wearable/app/include/nsa-popup.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of
+ * SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall
+ * use it only in accordance with the terms of the license agreement
+ * you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability
+ * of the software, either express or implied, including but not
+ * limited to the implied warranties of merchantability, fitness for
+ * a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as
+ * a result of using, modifying or distributing this software or its derivatives.
+
+ */
+
+
+#ifndef __NFC_SETTING_APP_POPUP_H__
+#define __NFC_SETTING_APP_POPUP_H__
+
+#include <Elementary.h>
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef void (*_POPUP_USER_RESP_CB)(void *data, Evas_Object *obj,
+ void *event_info);
+
+
+/************************** API **************************/
+Evas_Object *nsa_create_popup_text_1button(
+ Evas_Object *parent,
+ const char *text,
+ const char *btn1_image_path,
+ _POPUP_USER_RESP_CB response_cb,
+ void *data);
+
+Evas_Object *nsa_create_toast_popup(Evas_Object *parent,
+ const char *text);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* __NFC_SETTING_APP_POPUP_H__ */
+
diff --git a/wearable/app/include/nsa-string.h b/wearable/app/include/nsa-string.h
new file mode 100755
index 0000000..479959a
--- /dev/null
+++ b/wearable/app/include/nsa-string.h
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of
+ * SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall
+ * use it only in accordance with the terms of the license agreement
+ * you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability
+ * of the software, either express or implied, including but not
+ * limited to the implied warranties of merchantability, fitness for
+ * a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as
+ * a result of using, modifying or distributing this software or its derivatives.
+
+ */
+
+
+#ifndef __NFC_SETTING_APP_STRING_H__
+#define __NFC_SETTING_APP_STRING_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+/* Buffer length for Text */
+#define POPUP_TEXT_SIZE 1024
+#define LABEL_TEXT_SIZE 1024
+
+#define _(s) gettext(s)
+
+/////////////////////////////////////////////////////////////////////////////
+// NFC SETTING START ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+/* Registered string in STMS NFC */
+#define IDS_NFC_NFC \
+ _("WDS_ST_MBODY_NFC_ABB")
+#define IDS_TAP_AND_PAY \
+ _("WDS_ST_MBODY_TAP_AND_PAY_ABB")
+#define IDS_NO_INSTALLED_PAYMENT_APPS \
+ _("WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB")
+#define IDS_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS \
+ _("WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS")
+#define IDS_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS \
+ _("WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS")
+#define IDS_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB \
+ _("WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB")
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*__NFC_SETTING_APP_STRING_H__*/
diff --git a/wearable/app/include/nsa-ui-widget.h b/wearable/app/include/nsa-ui-widget.h
new file mode 100644
index 0000000..14761d0
--- /dev/null
+++ b/wearable/app/include/nsa-ui-widget.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of
+ * SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall
+ * use it only in accordance with the terms of the license agreement
+ * you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability
+ * of the software, either express or implied, including but not
+ * limited to the implied warranties of merchantability, fitness for
+ * a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as
+ * a result of using, modifying or distributing this software or its derivatives.
+
+ */
+
+
+#ifndef __NFC_SETTING_APP_UI_WIDGET_H__
+#define __NFC_SETTING_APP_UI_WIDGET_H__
+
+#include <stdbool.h>
+#include <Elementary.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+/************************** API **************************/
+Evas_Object *nsa_create_main_layout(Evas_Object *parent);
+Evas_Object *nsa_create_theme_layout(Evas_Object *parent,
+ const char *clas, const char *group, const char *style);
+Evas_Object *nsa_create_bg(Evas_Object *parent);
+Evas_Object* nsa_create_conformant(Evas_Object *parent);
+Evas_Object* nsa_create_edj_layout(Evas_Object* parent,
+ char *edc_path);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* __NFC_SETTING_APP_UI_WIDGET_H__ */
diff --git a/wearable/app/include/nsa-util.h b/wearable/app/include/nsa-util.h
new file mode 100644
index 0000000..427cd06
--- /dev/null
+++ b/wearable/app/include/nsa-util.h
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of
+ * SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall
+ * use it only in accordance with the terms of the license agreement
+ * you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability
+ * of the software, either express or implied, including but not
+ * limited to the implied warranties of merchantability, fitness for
+ * a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as
+ * a result of using, modifying or distributing this software or its derivatives.
+
+ */
+
+#ifndef __NFC_SETTING_APP_UTIL_H__
+#define __NFC_SETTING_APP_UTIL_H__
+
+#include <stdint.h>
+#include <glib.h>
+#include <assert.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+#define _EDJ(obj) elm_layout_edje_get(obj)
+
+#define GET_SAFE_STRING(x) ((x) != NULL ? (x) : "NULL")
+#define STRING_AND_SIZE(x) (x), strlen((x))
+#define NULL_TO_EMPTY_STRING(x) (((x) != NULL) ? (x) : "")
+
+#define MAX_HEAP_SIZE 5*1024*1024
+
+/************************** API **************************/
+#define NSA_MEM_MALLOC(ptr, no_elements, type) \
+ do { \
+ if ((gint)(no_elements) <= 0) { \
+ ptr = NULL;\
+ } else if (MAX_HEAP_SIZE < (gint)(no_elements)*sizeof(type)) { \
+ assert(0);\
+ } else { \
+ ptr = (type *)g_malloc0((gint)(no_elements)*sizeof(type)); \
+ assert(ptr); \
+ } \
+ } while (0)
+
+#define NSA_MEM_STRDUP(ptr, str) \
+ do { \
+ if ((str) != NULL) { \
+ ptr = g_strdup((const char *)(str)); \
+ assert(ptr); \
+ } else { \
+ (ptr) = NULL; \
+ } \
+ } while (0)
+
+#define NSA_MEM_STRNDUP(ptr, str, buf_size) \
+ do { \
+ if ((str) != NULL && (buf_size) >= 0) { \
+ ptr = g_strndup((const char *)(str), (buf_size)); \
+ assert(ptr); \
+ } else { \
+ (ptr) = NULL; \
+ } \
+ } while (0)
+
+#define NSA_MEM_MEMDUP(ptr, src, buf_size) \
+ do { \
+ if ((src) != NULL && (buf_size) >= 0) { \
+ ptr = g_malloc0((buf_size)); \
+ assert(ptr); \
+ memcpy((ptr), (void *)(src), (buf_size)); \
+ } else { \
+ (ptr) = NULL; \
+ } \
+ } while (0)
+
+#define NSA_MEM_FREE(ptr) \
+ do { \
+ if (ptr != NULL) { \
+ g_free(ptr); \
+ ptr = NULL; \
+ } \
+ } while (0)
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* __NFC_SETTING_APP_UTIL_H__ */
diff --git a/wearable/app/include/nsa-view.h b/wearable/app/include/nsa-view.h
new file mode 100755
index 0000000..410e0a0
--- /dev/null
+++ b/wearable/app/include/nsa-view.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of
+ * SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall
+ * use it only in accordance with the terms of the license agreement
+ * you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability
+ * of the software, either express or implied, including but not
+ * limited to the implied warranties of merchantability, fitness for
+ * a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as
+ * a result of using, modifying or distributing this software or its derivatives.
+
+ */
+
+
+#ifndef __NFC_SETTING_APP_VIEW_H__
+#define __NFC_SETTING_APP_VIEW_H__
+
+#include <Evas.h>
+#include <Ecore.h>
+#include <Elementary.h>
+#include <efl_extension.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+int _nsa_view_main_create(void *data);
+void _nsa_view_main_destroy(void *data);
+
+int _nsa_view_tap_n_pay_create(void *data);
+void _nsa_view_tap_n_pay_destroy(void *data);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*__NFC_SETTING_APP_VIEW_H__*/
+
diff --git a/wearable/app/src/nsa-main.c b/wearable/app/src/nsa-main.c
new file mode 100755
index 0000000..d6f229e
--- /dev/null
+++ b/wearable/app/src/nsa-main.c
@@ -0,0 +1,418 @@
+/*
+ * Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of
+ * SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall
+ * use it only in accordance with the terms of the license agreement
+ * you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability
+ * of the software, either express or implied, including but not
+ * limited to the implied warranties of merchantability, fitness for
+ * a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as
+ * a result of using, modifying or distributing this software or its derivatives.
+
+ */
+
+
+#include <nfc.h>
+#include <vconf.h>
+#include "nsa-main.h"
+#include "nsa-view.h"
+#include "nsa-debug.h"
+#include "nsa-util.h"
+#include "nsa-ui-widget.h"
+#include "nsa-popup.h"
+
+#define UG_NFC_APPCONTROL_TIZEN \
+ "http://tizen.org/appcontrol/operation/setting/nfc"
+#define SETTING_TYPE_NFC "nfc"
+#define SETTING_TYPE_TAP_N_PAY "tap_n_pay"
+
+#define NFC_SETTING_APP_ID \
+ "org.tizen.nfc-setting-app"
+
+static struct appdata ad;
+
+
+static void __tts_vconf_key_changed (keynode_t *key,
+ void *data)
+{
+ int boolval = 0;
+
+ NSA_DEBUG("__tts_vconf_key_changed");
+
+
+ if(VCONF_OK != vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS,
+ &boolval)) {
+ NSA_DEBUG_ERR("vconf_get_bool failed");
+ } else {
+ NSA_DEBUG("boolval[%d]", boolval);
+
+ if (boolval)
+ elm_exit();
+ }
+}
+
+static void __win_del(void *data, Evas_Object *obj, void *event)
+{
+ elm_exit();
+}
+
+static Evas_Object* __nsa_main_create_win(const char *name)
+{
+ Evas_Object *eo;
+ int w, h;
+
+ retv_if(name == NULL, NULL);
+
+ NSA_BEGIN();
+
+#if defined(PROCESS_POOL)
+ eo = (Evas_Object *)app_get_preinitialized_window(name);
+ if (eo == NULL) {
+ NSA_DEBUG_ERR("get window fail");
+ eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+ }
+#else
+ eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+#endif
+ retv_if(eo == NULL, NULL);
+
+ if (eo) {
+ elm_win_title_set(eo, name);
+ evas_object_smart_callback_add(eo, "delete,request", __win_del,
+ NULL);
+ elm_win_screen_size_get(eo, NULL, NULL, &w, &h);
+ evas_object_resize(eo, w, h);
+ }
+
+ NSA_END();
+ return eo;
+}
+
+static int __parse_service(app_control_h service, void *data)
+{
+ struct appdata *ad = (struct appdata *)data;
+ char *operation = NULL;
+ char *app_id = NULL;
+ char *ex_data = NULL;
+
+ retv_if(ad == NULL, NSA_ERROR);
+
+ app_control_get_operation(service, &operation);
+ app_control_get_app_id(service, &app_id);
+ app_control_get_extra_data(service, "type", &ex_data);
+
+ NSA_DEBUG("operation [%s] >>>>> ", GET_SAFE_STRING(operation));
+ NSA_DEBUG("app_id [%s] >>>>> ", GET_SAFE_STRING(app_id));
+ NSA_DEBUG("extra data [%s] >>>>> ", GET_SAFE_STRING(ex_data));
+
+ ad->op_type = NSA_OP_NONE;
+ if (!ex_data) {
+ NSA_DEBUG_ERR("extra data is NULL");
+ goto end;
+ }
+
+ if (strncmp(operation, UG_NFC_APPCONTROL_TIZEN,
+ strlen(UG_NFC_APPCONTROL_TIZEN)) == 0) {
+
+ /* launched by app-control */
+ if (strncmp(ex_data, SETTING_TYPE_NFC,
+ strlen(SETTING_TYPE_NFC)) == 0) {
+ ad->op_type = NSA_OP_NFC;
+ } else if (strncmp(ex_data, SETTING_TYPE_TAP_N_PAY,
+ strlen(SETTING_TYPE_TAP_N_PAY)) == 0) {
+ ad->op_type = NSA_OP_TAP_N_PAY;
+ }
+ } else if (strncmp(operation, APP_CONTROL_OPERATION_DEFAULT,
+ strlen(APP_CONTROL_OPERATION_DEFAULT)) == 0) {
+
+ if (!app_id) {
+ NSA_DEBUG_ERR("app_id is NULL");
+ goto end;
+ }
+
+ if (strncmp(app_id, NFC_SETTING_APP_ID,
+ strlen(NFC_SETTING_APP_ID)) != 0) {
+ NSA_DEBUG_ERR("app_id is wrong");
+ goto end;
+ }
+ if (strncmp(ex_data, SETTING_TYPE_NFC,
+ strlen(SETTING_TYPE_NFC)) == 0) {
+ ad->op_type = NSA_OP_NFC;
+ } else if (strncmp(ex_data, SETTING_TYPE_TAP_N_PAY,
+ strlen(SETTING_TYPE_TAP_N_PAY)) == 0) {
+ ad->op_type = NSA_OP_TAP_N_PAY;
+ }
+ }
+
+end:
+ NSA_MEM_FREE(operation);
+ NSA_MEM_FREE(app_id);
+ NSA_MEM_FREE(ex_data);
+
+ if (ad->op_type == NSA_OP_NONE)
+ return NSA_ERROR;
+ else
+ return NSA_OK;
+}
+
+static int __launch_nfc_setting(void *data)
+{
+ if (NFC_ERROR_NONE != nfc_manager_initialize())
+ NSA_DEBUG_ERR("nfc_manager_initialize FAIL!!!!");
+
+ return _nsa_view_main_create(data);
+}
+
+static int __launch_tap_n_pay_setting(void *data)
+{
+ if (NFC_ERROR_NONE != nfc_manager_initialize())
+ NSA_DEBUG_ERR("nfc_manager_initialize FAIL!!!!");
+
+ return _nsa_view_tap_n_pay_create(data);
+}
+
+
+static void __rot_changed_cb(void *data, Evas_Object *obj, void *event)
+{
+ struct appdata *ad = (struct appdata *)data;
+ int angle;
+
+ ret_if(ad == NULL);
+
+ angle = elm_win_rotation_get(ad->win_main);
+ elm_win_rotation_with_resize_set(ad->win_main, angle);
+
+ NSA_DEBUG("angle[%d]", angle);
+}
+
+static int __transient_app_cb(void *data)
+{
+ NSA_DEBUG("__transient_app_cb");
+
+ return 0;
+}
+
+static void __reply_svc_requests(app_control_h src_svc)
+{
+ app_control_h service;
+ int ret;
+
+ app_control_create(&service);
+ ret_if(service == NULL);
+
+ ret = app_control_reply_to_launch_request(service, src_svc,
+ APP_CONTROL_RESULT_SUCCEEDED);
+ if (ret != APP_CONTROL_ERROR_NONE)
+ NSA_DEBUG_ERR("app_control_reply_to_launch_request failed");
+
+ app_control_destroy(service);
+}
+
+void _nsa_main_lang_changed(void *data)
+{
+ struct appdata *ad = (struct appdata *)data;
+ ret_if(ad == NULL);
+
+ NSA_BEGIN();
+
+ /* To do */
+
+ NSA_END();
+}
+
+void _nsa_main_region_changed(void* data)
+{
+ NSA_BEGIN();
+
+ NSA_END();
+}
+
+int _nsa_main_keydown_cb(void *data, int type, void *event)
+{
+ struct appdata *ad = (struct appdata *)data;
+ Ecore_Event_Key *ev = (Ecore_Event_Key *)event;
+
+ retv_if(ad == NULL, NSA_ERROR);
+ retv_if(ev == NULL, NSA_ERROR);
+
+ NSA_BEGIN();
+
+ NSA_END();
+
+ return EXIT_FAILURE;
+}
+
+bool _nsa_main_app_create(void *user_data)
+{
+ struct appdata *ad = (struct appdata *)user_data;
+
+ NSA_DEBUG("_nsa_main_app_create start");
+
+ retv_if(ad == NULL, false);
+
+ bindtextdomain("setting-nfc-efl", "/usr/apps/org.tizen.nfc-setting-app/res/locale");
+ textdomain("setting-nfc-efl");
+
+ /* set scale */
+ elm_app_base_scale_set(1.3);
+
+ /* create window */
+ ad->win_main = __nsa_main_create_win(APPNAME);
+ retv_if(ad->win_main == NULL, false);
+ evas_object_show(ad->win_main);
+
+ /* create conformant */
+ ad->conform = nsa_create_conformant(ad->win_main);
+ retv_if(ad->conform == NULL, false);
+ ad->circle_surface = eext_circle_surface_conformant_add(ad->conform);
+
+ /* create bg */
+ ad->bg = nsa_create_bg(ad->conform);
+ retv_if(ad->bg == NULL, false);
+
+ /* create base layout */
+ ad->ly_main = nsa_create_main_layout(ad->conform);
+ retv_if(ad->ly_main == NULL, false);
+ elm_object_content_set(ad->conform, ad->ly_main);
+ elm_win_conformant_set(ad->win_main, EINA_TRUE);
+
+ /* create naviframe */
+ ad->navi_frame = elm_naviframe_add(ad->ly_main);
+ retv_if(ad->navi_frame == NULL, false);
+ elm_object_part_content_set(ad->ly_main, "elm.swallow.content",
+ ad->navi_frame);
+ evas_object_show(ad->navi_frame);
+
+ /* enable rotation */
+ if (elm_win_wm_rotation_supported_get(ad->win_main)) {
+ int rots[4] = { 0, 90, 180, 270 };
+ elm_win_wm_rotation_available_rotations_set(ad->win_main,
+ (const int *)&rots, 4);
+ evas_object_smart_callback_add(ad->win_main,
+ "wm,rotation,changed", __rot_changed_cb, ad);
+ } else {
+ NSA_DEBUG_ERR("elm_win_wm_rotation_supported_get failed");
+ }
+
+ /* create circle_obj_list */
+ ad->circle_obj_list = g_array_new(FALSE, FALSE, sizeof(Evas_Object *));
+ ad->circle_obj_list_idx = -1;
+
+ NSA_DEBUG("_nsa_main_app_create end");
+
+ return true;
+}
+
+void _nsa_main_app_terminate(void *user_data)
+{
+ struct appdata *ad = (struct appdata *)user_data;
+ ret_if(ad == NULL);
+
+ NSA_DEBUG("_nsa_main_app_terminate start");
+
+ /* The request from setting team */
+ __reply_svc_requests(ad->caller_appctrl);
+
+ /* unset nfc client + */
+ if (nfc_manager_deinitialize() != NFC_ERROR_NONE)
+ NSA_DEBUG_ERR("nfc_manager_deinitialize failed");
+ /* unset nfc client - */
+
+ if (VCONF_OK != vconf_ignore_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS,
+ __tts_vconf_key_changed)) {
+ NSA_DEBUG_ERR("vconf_ignore_key_changed error");
+ }
+
+ g_array_free(ad->circle_obj_list, FALSE);
+
+ NSA_DEBUG("_nsa_main_app_terminate end");
+}
+
+void _nsa_main_app_pause(void *user_data)
+{
+ struct appdata *ad = (struct appdata *)user_data;
+ ret_if(ad == NULL);
+
+ NSA_DEBUG("_nsa_main_app_pause start");
+
+ NSA_DEBUG("_nsa_main_app_pause end");
+}
+
+void _nsa_main_app_resume(void *user_data)
+{
+ struct appdata *ad = (struct appdata *)user_data;
+ ret_if(ad == NULL);
+
+ NSA_DEBUG("_nsa_main_app_resume start");
+
+ NSA_DEBUG("_nsa_main_app_resume end");
+}
+
+void _nsa_main_app_service(app_control_h service, void *user_data)
+{
+ struct appdata *ad = (struct appdata *)user_data;
+ int result = NSA_ERROR;
+
+ NSA_DEBUG("_nsa_main_app_service start");
+
+ ret_if(ad == NULL);
+
+ /* parse service data */
+ /*
+ result = __parse_service(service, ad);
+ if (result != NSA_OK) {
+ NSA_DEBUG_ERR("__parse_service failed[%d]", result);
+
+ elm_exit();
+ return;
+ }
+ */
+ ad->op_type = NSA_OP_NFC;
+
+ /* launch nss */
+ if (ad->op_type == NSA_OP_NFC){
+ result = __launch_nfc_setting(ad);
+ } else {
+ result = __launch_tap_n_pay_setting(ad);
+ }
+ if (result != NSA_OK) {
+ NSA_DEBUG_ERR("__launch_nfc_setting failed[%d]", result);
+
+ elm_exit();
+ return;
+ }
+
+ elm_win_activate(ad->win_main);
+
+ /* the service will be used when app is terminated */
+ app_control_clone(&(ad->caller_appctrl), service);
+
+ NSA_DEBUG("_nss_main_app_service end");
+}
+
+int main(int argc, char* argv[])
+{
+ NSA_DEBUG("main start");
+
+ ui_app_lifecycle_callback_s event_callback = {0,};
+
+ event_callback.create = _nsa_main_app_create;
+ event_callback.terminate = _nsa_main_app_terminate;
+ event_callback.pause = _nsa_main_app_pause;
+ event_callback.resume = _nsa_main_app_resume;
+ event_callback.app_control = _nsa_main_app_service;
+
+ return ui_app_main(argc, argv, &event_callback, &ad);
+}
+
+inline Evas_Object *nsa_get_main_window(void)
+{
+ return ad.win_main;
+}
+
diff --git a/wearable/app/src/nsa-popup.c b/wearable/app/src/nsa-popup.c
new file mode 100755
index 0000000..62bd6c9
--- /dev/null
+++ b/wearable/app/src/nsa-popup.c
@@ -0,0 +1,152 @@
+/*
+ * Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of
+ * SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall
+ * use it only in accordance with the terms of the license agreement
+ * you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability
+ * of the software, either express or implied, including but not
+ * limited to the implied warranties of merchantability, fitness for
+ * a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as
+ * a result of using, modifying or distributing this software or its derivatives.
+
+ */
+
+
+#include <efl_extension.h>
+#include "nsa-popup.h"
+#include "nsa-debug.h"
+
+#define POPUP_AUTO_TIMEOUT_SEC 3.0
+
+static void __popup_block_clicked_cb(void *data, Evas_Object *obj,
+ void *event_info)
+{
+ ret_if(obj == NULL);
+
+ elm_popup_dismiss(obj);
+}
+
+static void __popup_hide_cb(void *data, Evas_Object *obj,
+ void *event_info)
+{
+ ret_if(obj == NULL);
+
+ elm_popup_dismiss(obj);
+}
+
+static void __popup_hide_finished_cb(void *data, Evas_Object *obj,
+ void *event_info)
+{
+ ret_if(obj == NULL);
+
+ evas_object_del(obj);
+}
+
+static void __popup_timeout_cb(void *data, Evas_Object *obj,
+ void *event_info)
+{
+ ret_if(obj == NULL);
+
+ evas_object_del(obj);
+}
+
+Evas_Object *nsa_create_popup_text_1button(
+ Evas_Object *parent,
+ const char *text,
+ const char *btn1_image_path,
+ _POPUP_USER_RESP_CB response_cb,
+ void *data)
+{
+ Evas_Object *popup;
+ Evas_Object *btn;
+ Evas_Object *icon;
+ Evas_Object *layout;
+
+ retv_if(parent == NULL, NULL);
+ retv_if(text == NULL, NULL);
+ retv_if(btn1_image_path == NULL, NULL);
+ retv_if(response_cb == NULL, NULL);
+
+ popup = elm_popup_add(parent);
+ retv_if(popup == NULL, NULL);
+ elm_object_style_set(popup, "circle");
+
+// uxt_popup_set_rotary_event_enabled(popup, EINA_TRUE);
+
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK,
+ __popup_hide_cb, NULL);
+ evas_object_smart_callback_add(popup, "dismissed",
+ __popup_hide_finished_cb, NULL);
+
+ layout = elm_layout_add(popup);
+ retv_if(layout == NULL, NULL);
+ elm_layout_theme_set(layout, "layout", "popup",
+ "content/circle/buttons1");
+
+ elm_object_part_text_set(layout, "elm.text", text);
+ elm_object_content_set(popup, layout);
+
+ btn = elm_button_add(popup);
+ retv_if(btn == NULL, NULL);
+ elm_object_style_set(btn, "popup/circle");
+ evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_access_info_set(btn, ELM_ACCESS_INFO, "Cancel");
+ elm_object_part_content_set(popup, "button1", btn);
+ evas_object_smart_callback_add(btn, "clicked", response_cb, data);
+
+ icon = elm_image_add(btn);
+ retv_if(icon == NULL, NULL);
+ elm_image_file_set(icon, btn1_image_path, NULL);
+ evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_object_part_content_set(btn, "elm.swallow.content", icon);
+ evas_object_show(icon);
+
+ evas_object_show(popup);
+
+ return popup;
+}
+
+Evas_Object *nsa_create_toast_popup(Evas_Object *parent,
+ const char *text)
+{
+ Evas_Object *toast;
+
+ NSA_BEGIN();
+
+ toast = elm_popup_add(parent);
+ retv_if(toast == NULL, NULL);
+
+ elm_object_style_set(toast, "toast/circle");
+ elm_popup_orient_set(toast, ELM_POPUP_ORIENT_BOTTOM);
+ evas_object_size_hint_weight_set(toast, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ eext_object_event_callback_add(toast, EEXT_CALLBACK_BACK,
+ __popup_hide_cb, NULL);
+ evas_object_smart_callback_add(toast, "dismissed",
+ __popup_hide_finished_cb, NULL);
+ elm_object_part_text_set(toast, "elm.text", text);
+
+ evas_object_smart_callback_add(toast, "block,clicked",
+ __popup_block_clicked_cb, NULL);
+
+ elm_popup_timeout_set(toast, 2.0);
+ evas_object_smart_callback_add(toast, "timeout", __popup_timeout_cb,
+ NULL);
+
+ evas_object_show(toast);
+ NSA_END();
+
+ return toast;
+}
+
+
diff --git a/wearable/app/src/nsa-ui-widget.c b/wearable/app/src/nsa-ui-widget.c
new file mode 100644
index 0000000..b110401
--- /dev/null
+++ b/wearable/app/src/nsa-ui-widget.c
@@ -0,0 +1,180 @@
+/*
+ * Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of
+ * SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall
+ * use it only in accordance with the terms of the license agreement
+ * you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability
+ * of the software, either express or implied, including but not
+ * limited to the implied warranties of merchantability, fitness for
+ * a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as
+ * a result of using, modifying or distributing this software or its derivatives.
+
+ */
+
+
+#include <app.h>
+#include "nsa-main.h"
+#include "nsa-ui-widget.h"
+#include "nsa-debug.h"
+#include "nsa-util.h"
+
+
+Evas_Object *nsa_create_main_layout(Evas_Object *parent)
+{
+ Evas_Object *layout;
+
+ retv_if(parent == NULL, NULL);
+
+ NSA_BEGIN();
+
+ layout = elm_layout_add(parent);
+ retv_if(layout == NULL, NULL);
+
+ elm_object_focus_set(layout, EINA_FALSE);
+ elm_layout_theme_set(layout, "layout", "application", "default");
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ evas_object_show(layout);
+
+ NSA_END();
+
+ return layout;
+}
+
+Evas_Object *nsa_create_theme_layout(Evas_Object *parent,
+ const char *clas, const char *group, const char *style)
+{
+ Evas_Object *layout;
+
+ retv_if(parent == NULL, NULL);
+
+ NSA_BEGIN();
+
+ layout = elm_layout_add(parent);
+ retv_if(layout == NULL, NULL);
+
+ elm_object_focus_set(layout, EINA_FALSE);
+ elm_layout_theme_set(layout, clas, group, style);
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ evas_object_show(layout);
+
+ NSA_END();
+
+ return layout;
+}
+
+Evas_Object *nsa_create_bg(Evas_Object *parent)
+{
+ Evas_Object *bg;
+#if defined(PROCESS_POOL)
+ Evas_Object *win;
+#endif
+
+ retv_if(parent == NULL, NULL);
+
+ NSA_BEGIN();
+
+#if defined(PROCESS_POOL)
+ win = (Evas_Object *)app_get_preinitialized_window(PACKAGE);
+ if (win == parent) {
+ bg = app_get_preinitialized_background();
+ if (bg == NULL) {
+ NSA_DEBUG_ERR("get bg fail");
+ bg = elm_bg_add(parent);
+ }
+ } else {
+ NSA_DEBUG_ERR("win is different");
+ bg = elm_bg_add(parent);
+ }
+#else
+ bg = elm_bg_add(parent);
+#endif
+ retv_if(bg == NULL, NULL);
+
+ evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(parent, bg);
+
+ evas_object_show(bg);
+
+ NSA_END();
+
+ return bg;
+}
+
+Evas_Object *nsa_create_conformant(Evas_Object *parent)
+{
+ Evas_Object *conform;
+#if defined(PROCESS_POOL)
+ Evas_Object *win;
+#endif
+
+ retv_if(parent == NULL, NULL);
+
+ NSA_BEGIN();
+
+#if defined(PROCESS_POOL)
+ win = (Evas_Object *)app_get_preinitialized_window(PACKAGE);
+ if (win == parent) {
+ conform = (Evas_Object *)app_get_preinitialized_conformant();
+ if (conform == NULL) {
+ NSA_DEBUG_ERR("get conform fail");
+ conform = elm_conformant_add(parent);
+ }
+ } else {
+ NSA_DEBUG_ERR("win is different");
+ conform = elm_conformant_add(parent);
+ }
+#else
+ conform = elm_conformant_add(parent);
+#endif
+ retv_if(conform == NULL, NULL);
+
+ evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(parent, conform);
+
+ evas_object_show(conform);
+
+ NSA_END();
+
+ return conform;
+}
+
+Evas_Object* nsa_create_edj_layout(Evas_Object* parent,
+ char *edc_path)
+{
+ Evas_Object *layout;
+
+ NSA_BEGIN();
+
+ retv_if(parent == NULL, NULL);
+
+ layout = elm_layout_add(parent);
+ retv_if(layout == NULL, NULL);
+
+ elm_object_focus_set(layout, EINA_FALSE);
+
+ if(edc_path != NULL)
+ elm_layout_file_set(layout, EDJ_FILE, edc_path);
+
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ evas_object_show(layout);
+
+ NSA_END();
+
+ return layout;
+}
+
+
diff --git a/wearable/app/src/nsa-view-main.c b/wearable/app/src/nsa-view-main.c
new file mode 100755
index 0000000..9764176
--- /dev/null
+++ b/wearable/app/src/nsa-view-main.c
@@ -0,0 +1,596 @@
+/*
+ * Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of
+ * SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall
+ * use it only in accordance with the terms of the license agreement
+ * you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability
+ * of the software, either express or implied, including but not
+ * limited to the implied warranties of merchantability, fitness for
+ * a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as
+ * a result of using, modifying or distributing this software or its derivatives.
+
+ */
+
+
+#include <app.h>
+#include <nfc.h>
+#include <vconf.h>
+#include <pkgmgr-info.h>
+#include "nsa-view.h"
+#include "nsa-main.h"
+#include "nsa-debug.h"
+#include "nsa-util.h"
+#include "nsa-ui-widget.h"
+#include "nsa-popup.h"
+#include "nsa-string.h"
+
+
+typedef enum {
+ T_NFC = 0,
+ T_TAP_N_PAY,
+
+ T_MAX
+} nfc_setting_type_e;
+
+typedef struct {
+ Elm_Object_Item *obj_item[T_MAX];
+ Evas_Object *nf;
+ bool isProgressing;
+
+ struct appdata *ad;
+} main_view_data_t;
+
+static main_view_data_t *view_data;
+static char *payment_handler;
+
+///////////////////////////////////////////////////////////////////////////////
+
+static Eina_Bool __back_clicked_cb(void *data, Elm_Object_Item *it)
+{
+ main_view_data_t *vd = (main_view_data_t *)data;
+
+ NSA_DEBUG("__back_clicked_cb");
+
+ if (vd != NULL) {
+ struct appdata *ad = vd->ad;
+
+ _nsa_view_main_destroy(ad);
+ }
+
+ ui_app_exit();
+
+ return EINA_FALSE;
+}
+
+#if 0
+static void __MDM_restriced_popup_response_cb(void *data,
+ Evas_Object *obj, void *event_info)
+{
+ main_view_data_t *vd = (main_view_data_t *)data;
+ struct appdata *ad;
+
+ ret_if(vd == NULL);
+
+ ad = (struct appdata *)vd->ad;
+ ret_if(ad == NULL);
+
+ ret_if(ad == NULL);
+ ret_if(ad->popup == NULL);
+
+ NSA_DEBUG("__MDM_restriced_popup_response_cb");
+
+ elm_popup_dismiss(ad->popup);
+}
+#endif
+
+static main_view_data_t *__get_view_data()
+{
+ return view_data;
+}
+
+static void __set_view_data(main_view_data_t *data)
+{
+ view_data = data;
+}
+
+static void __get_payment_handler(char **handler)
+{
+ char *appid;
+
+ NSA_MEM_FREE(*handler);
+
+ appid = vconf_get_str(VCONFKEY_NFC_PAYMENT_HANDLERS);
+
+ if (appid != NULL) {
+ pkgmgrinfo_pkginfo_h pkginfo = NULL;
+ char *label = NULL;
+ int ret;
+
+ ret = pkgmgrinfo_pkginfo_get_pkginfo(appid, &pkginfo);
+ if (ret != 0) {
+ return;
+ }
+
+ ret = pkgmgrinfo_pkginfo_get_label(pkginfo, &label);
+ if (ret != 0) {
+ pkgmgrinfo_pkginfo_destroy_pkginfo(pkginfo);
+ return;
+ } else {
+ NSA_MEM_STRDUP(*handler, label);
+ if (*handler != NULL)
+ NSA_DEBUG("text: %s", *handler);
+
+ pkgmgrinfo_pkginfo_destroy_pkginfo(pkginfo);
+ }
+ }
+}
+
+static void __update_onoff_obj(void *data)
+{
+ main_view_data_t *vd = (main_view_data_t *)data;
+ Elm_Object_Item *it;
+
+ ret_if(vd == NULL);
+
+ it = vd->obj_item[T_NFC];
+ ret_if(it == NULL);
+
+ NSA_DEBUG("__update_onoff_obj");
+
+ /* V1.9 : instead of toast popup, disable item during operation */
+ elm_object_item_disabled_set(it, false);
+ elm_genlist_item_fields_update(it, "*",
+ ELM_GENLIST_ITEM_FIELD_CONTENT);
+}
+
+static void __update_tap_and_pay_obj(bool activated, void *data)
+{
+ main_view_data_t *vd = (main_view_data_t *)data;
+ Elm_Object_Item *it;
+
+ ret_if(vd == NULL);
+
+ it = vd->obj_item[T_TAP_N_PAY];
+ ret_if(it == NULL);
+
+ /* V2.1 */
+ if (activated) {
+ elm_object_item_disabled_set(it, false);
+ } else {
+ elm_object_item_disabled_set(it, true);
+ }
+ elm_genlist_item_fields_update(it, "*",
+ ELM_GENLIST_ITEM_FIELD_TEXT);
+}
+
+static void __handle_nfc_activation_completed_event(bool activated,
+ main_view_data_t *data)
+{
+ main_view_data_t *vd = (main_view_data_t *)data;
+
+ ret_if(vd == NULL);
+
+
+ NSA_DEBUG("activated [%d]", activated);
+
+ /* update ui */
+ __update_onoff_obj(vd);
+ __update_tap_and_pay_obj(activated, vd);
+}
+
+static void __nfc_vconf_key_changed (keynode_t *key, void *data)
+{
+ main_view_data_t *vd = (main_view_data_t *)data;
+ int boolval = 0;
+ bool activated;
+
+ g_assert(vd != NULL);
+
+ if (VCONF_OK != vconf_get_bool(VCONFKEY_NFC_STATE, &boolval)) {
+ activated = false;
+ } else {
+ if (boolval) {
+ activated = true;
+ } else {
+ activated = false;
+ }
+ }
+
+ NSA_DEBUG("boolval %d", boolval);
+ NSA_DEBUG("nfc mode %s ", activated ? "ON" : "OFF");
+
+ if (!vd->isProgressing) {
+ __handle_nfc_activation_completed_event(activated, vd);
+ }
+}
+
+static void __payment_handler_vconf_key_changed (keynode_t *key,
+ void *data)
+{
+ main_view_data_t *vd = (main_view_data_t *)data;
+
+ NSA_DEBUG("__payment_handler_vconf_key_changed");
+
+ /* Get changed payment handler */
+ __get_payment_handler(&payment_handler);
+
+ /* update tap and pay */
+ if (nfc_manager_is_activated()) {
+ __update_tap_and_pay_obj(true, vd);
+ } else {
+ __update_tap_and_pay_obj(false, vd);
+}
+}
+
+/* called when ifself performs activation */
+/* vd->isProgressing is set by itself */
+static void __nfc_activation_completed_cb(nfc_error_e error,
+ void *user_data)
+{
+ main_view_data_t *vd = (main_view_data_t *)user_data;;
+ bool activated;
+
+ g_assert(vd != NULL);
+
+ /* handle error cases */
+ if (error != NFC_ERROR_NONE) {
+ NSA_DEBUG_ERR("__nfc_activation_completed_cb failed");
+ }
+
+ /* update ui after activation is completed */
+ if (vd->isProgressing) {
+ vd->isProgressing = false;
+ activated = nfc_manager_is_activated();
+
+ __handle_nfc_activation_completed_event(activated, vd);
+ }
+}
+
+/* called when someone performs activation except for itself */
+static void __nfc_activation_changed_cb(bool activated , void *user_data)
+{
+ main_view_data_t *vd = (main_view_data_t *)user_data;
+
+ g_assert(vd != NULL);
+
+ NSA_DEBUG("nfc mode %s ", activated ? "ON" : "OFF");
+
+ if (!vd->isProgressing) {
+ __handle_nfc_activation_completed_event(activated, vd);
+ }
+}
+
+static void __change_nfc_onoff_setting(void *data)
+{
+ main_view_data_t *vd = (main_view_data_t *)data;
+ int result;
+ bool activated;
+ Elm_Object_Item *it;
+
+ ret_if(vd == NULL);
+
+ NSA_BEGIN();
+
+ /* V1.9 : instead of toast popup, disable item during operation */
+ it = vd->obj_item[T_NFC];
+ if(it != NULL)
+ elm_object_item_disabled_set(it, true);
+
+ activated = nfc_manager_is_activated();
+
+ result = nfc_manager_set_activation(!activated,
+ __nfc_activation_completed_cb, vd);
+ ret_if(result != NFC_ERROR_NONE);
+
+ vd->isProgressing = true;
+
+ NSA_END();
+}
+
+static void __gl_list_clicked_cb(void *data, Evas_Object *obj,
+ void *event_info)
+{
+ Elm_Object_Item* it = (Elm_Object_Item *)event_info;
+ struct appdata *ad;
+ main_view_data_t *vd;
+ int index;
+
+ index = (int) data;
+
+ vd = __get_view_data();
+ ret_if(vd == NULL);
+
+ ad = vd->ad;
+ ret_if(ad == NULL);
+
+ elm_genlist_item_selected_set(it, EINA_FALSE);
+
+ NSA_DEBUG("__gl_list_clicked_cb");
+
+#ifdef MDM_PHASE_2
+ if(!__is_nfc_allowed(ad)) {
+ __update_onoff_obj(vd);
+
+ /* show popup */
+#if 0
+ ad->popup = nsa_create_popup_text_1button(
+ ad->ly_main,
+ IDS_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB,
+ IMAGES_PATH"/tw_ic_popup_btn_check.png",
+ __MDM_restriced_popup_response_cb,
+ (void *)vd);
+#else
+ nsa_create_toast_popup(ad->ly_main,
+ IDS_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB);
+#endif
+ return;
+ }
+#endif
+
+ if (index == T_NFC) {
+ __change_nfc_onoff_setting(vd);
+ } else if (index == T_TAP_N_PAY){
+ _nsa_view_tap_n_pay_create(ad);
+ } else {
+ return ;
+ }
+}
+
+static Evas_Object *__gl_content_get_on_off(void *data, Evas_Object *obj,
+ const char *part)
+{
+ main_view_data_t *vd;
+ Evas_Object *check;
+ int boolval = 0;
+ int index;
+
+ index = (int) data;
+
+ vd = __get_view_data();
+ retv_if(vd == NULL, NULL);
+
+ if (!strcmp(part, "elm.icon")) {
+ check = elm_check_add(obj);
+ retv_if(check == NULL, NULL);
+ elm_access_object_unregister(check);
+ elm_object_style_set(check, "on&off/list");
+
+ if (index == T_NFC) {
+ if (VCONF_OK != vconf_get_bool(VCONFKEY_NFC_STATE, &boolval)) {
+ elm_check_state_set(check, EINA_FALSE);
+ } else {
+ if (boolval) {
+ elm_check_state_set(check, EINA_TRUE);
+ } else {
+ elm_check_state_set(check, EINA_FALSE);
+ }
+ }
+ }
+ evas_object_size_hint_align_set(check, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_propagate_events_set(check, EINA_FALSE);
+ evas_object_repeat_events_set(check, EINA_TRUE);
+
+ return check;
+ } else {
+ return NULL;
+ }
+}
+
+static char *__gl_text_get_title(void *data, Evas_Object *obj,
+ const char *part)
+{
+ //NSA_DEBUG("part:%s", part);
+
+ if (!strcmp(part, "elm.text")) {
+ return strdup(IDS_NFC_NFC);
+ } else {
+ return NULL;
+ }
+}
+
+static char *__gl_text_get(void *data, Evas_Object *obj,
+ const char *part)
+{
+ int index = (int)data;
+
+ //NSA_DEBUG("index:%d", index);
+ //NSA_DEBUG("part:%s", part);
+
+ if (!strcmp(part, "elm.text")) {
+ if (index == T_NFC) {
+ return strdup(IDS_NFC_NFC);
+ } else if (index == T_TAP_N_PAY){
+ return strdup(IDS_TAP_AND_PAY);
+ } else {
+ return NULL;
+ } // elm.text.2
+ } else if (!strcmp(part, "elm.text.1")) {
+ if (index == T_TAP_N_PAY) {
+ if (payment_handler != NULL)
+ return strdup(payment_handler);
+ else
+ return NULL;
+ } else {
+ return NULL;
+ }
+ } else {
+ return NULL;
+ }
+}
+
+static Evas_Object *__create_nfc_setting_list(void *data)
+{
+ main_view_data_t *vd = (main_view_data_t *)data;
+ struct appdata *ad;
+ Evas_Object *genlist;
+ Elm_Genlist_Item_Class *itc_title, *itc_on_off, *itc_list;
+ Evas_Object *circle_obj;
+ int i;
+
+ retv_if(vd == NULL, NULL);
+
+ ad = vd->ad;
+ retv_if(ad == NULL, NULL);
+
+ /* make genlist */
+ genlist = elm_genlist_add(vd->nf);
+ retv_if(genlist == NULL, NULL);
+
+ /* set genlist property */
+ elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+// elm_genlist_homogeneous_set(genlist, EINA_TRUE);
+// uxt_genlist_set_bottom_margin_enabled(genlist, EINA_TRUE);
+
+ circle_obj = eext_circle_object_genlist_add(genlist,
+ ad->circle_surface);
+ eext_circle_object_genlist_scroller_policy_set(circle_obj,
+ ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+ eext_rotary_object_event_activated_set(circle_obj, EINA_TRUE);
+ g_array_append_val(ad->circle_obj_list, circle_obj);
+ ad->circle_obj_list_idx ++;
+ NSA_DEBUG("ad->circle_obj_list_idx %d", ad->circle_obj_list_idx);
+ NSA_DEBUG("circle_obj 0x%p", circle_obj);
+
+ /* create genlist class + */
+ itc_title = elm_genlist_item_class_new();
+ itc_title->item_style = "title";
+ itc_title->func.text_get = __gl_text_get_title;
+ itc_title->func.content_get = NULL;
+ itc_title->func.del = NULL;
+
+ itc_on_off = elm_genlist_item_class_new();
+ itc_on_off->item_style = "1text.1icon.1";
+ itc_on_off->func.text_get = __gl_text_get;
+ itc_on_off->func.content_get = __gl_content_get_on_off;
+ itc_on_off->func.state_get = NULL;
+ itc_on_off->func.del = NULL;
+
+ itc_list = elm_genlist_item_class_new();
+ __get_payment_handler(&payment_handler);
+ if (payment_handler != NULL)
+ itc_list->item_style = "2text";
+ else
+ itc_list->item_style = "1text";
+ itc_list->func.text_get = __gl_text_get;
+ itc_list->func.content_get = NULL;
+ itc_list->func.state_get = NULL;
+ itc_list->func.del = NULL;
+ /* create genlist class - */
+
+ /* ADD: ITEM */
+ elm_genlist_item_append(genlist,
+ itc_title, NULL,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ NULL, NULL);
+
+ for (i = 0; i < T_MAX; i++) {
+ Elm_Genlist_Item_Class *itc;
+
+ if (i == T_NFC)
+ itc = itc_on_off;
+ else
+ itc = itc_list;
+
+ vd->obj_item[i] = elm_genlist_item_append(genlist,
+ itc, (void *)i,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __gl_list_clicked_cb, (void *)i);
+ }
+
+ elm_genlist_item_class_free(itc_title);
+ elm_genlist_item_class_free(itc_on_off);
+ elm_genlist_item_class_free(itc_list);
+
+ /* V2.1 */
+ if (!nfc_manager_is_activated())
+ __update_tap_and_pay_obj(false, vd);
+
+ evas_object_show(genlist);
+
+ return genlist;
+}
+
+int _nsa_view_main_create(void *data)
+{
+ struct appdata *ad = (struct appdata *)data;
+ main_view_data_t *vd;
+ Evas_Object *list;
+
+ /* create data */
+ NSA_MEM_MALLOC(vd, 1, main_view_data_t);
+ retv_if(vd == NULL, NSA_ERROR);
+ __set_view_data(vd);
+ vd->ad = ad;
+
+ /* set appdata to main view data */
+ vd->nf = ad->navi_frame;
+
+ /* Draw UI */
+ list = __create_nfc_setting_list(vd);
+ retv_if(list == NULL, NSA_ERROR);
+
+ /* Push navifreme + */
+ eext_object_event_callback_add(vd->nf, EEXT_CALLBACK_BACK,
+ eext_naviframe_back_cb, NULL);
+
+ ad->base_navi_it = elm_naviframe_item_push(
+ vd->nf,
+ NULL,
+ NULL,
+ NULL,
+ list,
+ "empty");
+ elm_naviframe_item_pop_cb_set(ad->base_navi_it, __back_clicked_cb,
+ vd);
+ /* Push navifreme - */
+
+ /* register nfc callback */
+ nfc_manager_set_activation_changed_cb(
+ __nfc_activation_changed_cb, vd);
+
+ if (VCONF_OK != vconf_notify_key_changed(VCONFKEY_NFC_STATE,
+ __nfc_vconf_key_changed, vd)) {
+ NSA_DEBUG_ERR("vconf_notify_key_changed error");
+ }
+
+ if (VCONF_OK != vconf_notify_key_changed(VCONFKEY_NFC_PAYMENT_HANDLERS,
+ __payment_handler_vconf_key_changed, vd)) {
+ NSA_DEBUG_ERR("vconf_notify_key_changed error");
+ }
+
+ return NSA_OK;
+}
+
+void _nsa_view_main_destroy(void *data)
+{
+ struct appdata *ad;
+
+ __set_view_data(NULL);
+
+ /* unregister nfc callback */
+ nfc_manager_unset_activation_changed_cb();
+
+ if (VCONF_OK != vconf_ignore_key_changed(VCONFKEY_NFC_STATE,
+ __nfc_vconf_key_changed)) {
+ NSA_DEBUG_ERR("vconf_notify_key_changed error");
+ }
+
+ if (VCONF_OK != vconf_ignore_key_changed(VCONFKEY_NFC_PAYMENT_HANDLERS,
+ __payment_handler_vconf_key_changed)) {
+ NSA_DEBUG_ERR("vconf_ignore_key_changed error");
+ }
+
+ ad = (struct appdata *)data;
+ ret_if(ad == NULL);
+}
+
+
diff --git a/wearable/app/src/nsa-view-tap-n-pay.c b/wearable/app/src/nsa-view-tap-n-pay.c
new file mode 100755
index 0000000..c9a0df7
--- /dev/null
+++ b/wearable/app/src/nsa-view-tap-n-pay.c
@@ -0,0 +1,918 @@
+/*
+ * Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of
+ * SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall
+ * use it only in accordance with the terms of the license agreement
+ * you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability
+ * of the software, either express or implied, including but not
+ * limited to the implied warranties of merchantability, fitness for
+ * a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as
+ * a result of using, modifying or distributing this software or its derivatives.
+
+ */
+
+
+#include <app.h>
+#include <nfc.h>
+#include <vconf.h>
+#include <pkgmgr-info.h>
+#include "nsa-view.h"
+#include "nsa-main.h"
+#include "nsa-debug.h"
+#include "nsa-util.h"
+#include "nsa-ui-widget.h"
+#include "nsa-popup.h"
+#include "nsa-string.h"
+
+#define APP_CONTROL_DEFAULT_CHANGED \
+ "http://tizen.org/appcontrol/operation/nfc/card_emulation/default_changed"
+
+#define MAX_AIDS_COUNT 50
+
+typedef struct {
+ Evas_Object *nf;
+ Evas_Object *genlist;
+ Evas_Object *radio_main;
+ struct appdata *ad;
+} tap_and_pay_view_data_t;
+
+typedef struct {
+ GArray *list;
+ int index;
+ Elm_Object_Item *it;
+ void *data;
+} item_data_t;
+
+typedef struct {
+ char *appid;
+ int aid_count;
+} wallet_info_t;
+
+typedef enum {
+ T_PAYMENT = 0,
+ T_OTHERS,
+
+ T_MAX
+} tap_and_pay_wallet_type_e;
+
+
+static int payment_wallet_cnt;
+static int other_wallet_cnt;
+
+static GArray *payment_wallet_list;
+static GArray *other_wallet_list;
+
+static Eina_Bool __back_clicked_cb(void *data, Elm_Object_Item *it)
+{
+ tap_and_pay_view_data_t *vd = (tap_and_pay_view_data_t *)data;
+
+ NSA_DEBUG("__back_clicked_cb");
+
+ if (vd != NULL) {
+ struct appdata *ad = vd->ad;
+
+ _nsa_view_tap_n_pay_destroy(ad);
+
+ if (ad->circle_obj_list_idx < 0) {
+ ui_app_exit();
+
+ return EINA_FALSE;
+ }
+ }
+
+ return EINA_TRUE;
+}
+
+static void __max_AID_popup_response_cb(void *data,
+ Evas_Object *obj, void *event_info)
+{
+ item_data_t *item = (item_data_t *)data;
+ tap_and_pay_view_data_t *vd;
+ struct appdata *ad;
+ const char *vconf_key;
+ char *wallet_handler;
+
+ vd = (tap_and_pay_view_data_t *)item->data;
+ ret_if(vd == NULL);
+
+ ad = (struct appdata *)vd->ad;
+ ret_if(ad == NULL);
+
+ ret_if(ad == NULL);
+ ret_if(ad->popup == NULL);
+
+ NSA_DEBUG("__max_AID_popup_response_cb");
+
+ /* restore default handler */
+ if (item->list == payment_wallet_list) {
+ vconf_key = VCONFKEY_NFC_PAYMENT_HANDLERS;
+ } else {
+ vconf_key = VCONFKEY_NFC_OTHER_HANDLERS;
+ }
+ wallet_handler = vconf_get_str(vconf_key);
+ if (wallet_handler == NULL || payment_wallet_list == NULL) {
+ NSA_DEBUG_ERR("vconf_get_str error");
+ } else {
+ int i;
+
+ for (i = 0; i < payment_wallet_cnt; i++) {
+ wallet_info_t *winfo;
+
+ winfo = g_array_index(item->list, wallet_info_t *, i);
+ if (!winfo)
+ continue;
+
+ if (strlen(wallet_handler) > 0 &&
+ strcmp(winfo->appid, wallet_handler) == 0) {
+ NSA_DEBUG("matched, [%s]", winfo->appid);
+
+ if (vd->radio_main != NULL)
+ elm_radio_value_set(vd->radio_main, i);
+ }
+ }
+ }
+ NSA_MEM_FREE(wallet_handler);
+
+ elm_popup_dismiss(ad->popup);
+
+ if (ad->circle_obj_list_idx >= 0) {
+ Evas_Object *circle_obj;
+
+ circle_obj = g_array_index(ad->circle_obj_list, Evas_Object *,
+ ad->circle_obj_list_idx);
+ eext_rotary_object_event_activated_set(circle_obj, EINA_TRUE);
+ NSA_DEBUG("restore circle object 0x%p", circle_obj);
+ }
+}
+
+static void __add_item_to_wallet_list(const char *item, int aid_count,
+ int *wallet_count, GArray **list)
+{
+ int wcount;
+ GArray *wlist;
+ wallet_info_t *winfo;
+
+ wcount = *wallet_count;
+ wlist = *list;
+
+ if (wlist == NULL) {
+ wlist = g_array_new(FALSE, FALSE, sizeof(wallet_info_t *));
+ *list = wlist;
+ }
+
+ NSA_MEM_MALLOC(winfo, 1, wallet_info_t);
+ ret_if(winfo == NULL);
+ NSA_MEM_STRDUP(winfo->appid, item);
+ winfo->aid_count = aid_count;
+
+ g_array_append_val(wlist, winfo);
+
+ wcount++;
+ *wallet_count = wcount;
+
+ NSA_DEBUG("Done");
+}
+
+static bool __registered_handler_cb(const char *handler, int count,
+ void *user_data)
+{
+ if (handler) {
+ int type = (int)user_data;
+
+ NSA_DEBUG("package name: [%s]", handler);
+ NSA_DEBUG("AID number: [%d]", count);
+
+ if (type == T_PAYMENT) {
+ __add_item_to_wallet_list(handler, count,
+ &payment_wallet_cnt, &payment_wallet_list);
+ } else if (type == T_OTHERS) {
+ __add_item_to_wallet_list(handler, count,
+ &other_wallet_cnt, &other_wallet_list);
+ } else {
+ NSA_DEBUG_ERR("wallet type error");
+ return true;
+ }
+ }
+
+ return true;
+}
+
+static void __get_wallet_info(void)
+{
+ NSA_DEBUG("__get_wallet_info");
+/*
+ nfc_se_foreach_registered_handlers(NFC_CARD_EMULATION_CATEGORY_PAYMENT,
+ __registered_handler_cb, (void *)T_PAYMENT);
+*/
+ /* To Do */
+#if 0
+ nfc_se_foreach_registered_handlers(NFC_CARD_EMULATION_CATEGORY_OTHER,
+ __registered_handler_cb, (void *)T_OTHERS);
+#endif
+}
+
+static int __get_payment_wallet_list_cnt(void)
+{
+ NSA_DEBUG("__get_payment_wallet_list_cnt [%d]", payment_wallet_cnt);
+
+ return payment_wallet_cnt;
+}
+
+static int __get_other_wallet_list_cnt(void)
+{
+ NSA_DEBUG("__get_other_wallet_list_cnt [%d]", other_wallet_cnt);
+
+ return other_wallet_cnt;
+}
+
+static char* __decorated_text_effect_get(int size,
+ const char* color_code, const char* text, const char* align)
+{
+ char* decorated = NULL;
+ Eina_Strbuf* buf = NULL;
+ int r = 0;
+ int g = 0;
+ int b = 0;
+ int a = 0;
+
+ if(color_code == NULL)
+ return NULL;
+
+ if(text == NULL)
+ return g_strdup("");
+
+// uxt_theme_get_color(color_code, &r, &g, &b, &a, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+
+ buf = eina_strbuf_new();
+
+ if(align == NULL) {
+ eina_strbuf_append_printf(buf,
+ "<font_size=%d><color=#%02x%02x%02x%02x>%s</color></font_size>",
+ size, r, g, b, a, text);
+ } else {
+ eina_strbuf_append_printf(buf,
+ "<font_size=%d align=%s><color=#%02x%02x%02x%02x>%s</color></font_size>",
+ size, align, r, g, b, a, text);
+ }
+
+ decorated = eina_strbuf_string_steal(buf);
+ eina_strbuf_free(buf);
+
+ return decorated;
+}
+
+static Evas_Object *__create_no_contents_ly(void *data)
+{
+ tap_and_pay_view_data_t *vd = (tap_and_pay_view_data_t *)data;
+ struct appdata *ad;
+ Evas_Object *sc;
+ Evas_Object *ly;
+ Evas_Object *image;
+ Evas_Object *circle_obj;
+ Evas_Object *label;
+ char *title_markup;
+ char *title;
+
+ retv_if(vd == NULL, NULL);
+ retv_if(vd->nf == NULL, NULL);
+
+ ad = vd->ad;
+ retv_if(ad == NULL, NULL);
+
+ sc = elm_scroller_add(vd->nf);
+ evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(sc, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_scroller_single_direction_set(sc, ELM_SCROLLER_SINGLE_DIRECTION_HARD);
+ elm_object_style_set(sc, "effect");
+ evas_object_show(sc);
+
+ /* create layout */
+ ly = nsa_create_edj_layout(sc, "tap_n_pay/nocontents");
+ retv_if(ly == NULL, NULL);
+
+ /* create image object */
+ image = elm_image_add(ly);
+ retv_if(image == NULL, NULL);
+ elm_image_file_set(image,
+ IMAGES_PATH"/b_setting_payment_help_image.png", NULL);
+// uxt_theme_object_set_color(image, "AO018");
+ elm_object_part_content_set(ly, "elm.swallow.icon", image);
+
+ /* set help text */
+ elm_object_part_text_set(ly, "elm.text",
+ IDS_NO_INSTALLED_PAYMENT_APPS);
+
+ /* get title text */
+ title_markup = elm_entry_utf8_to_markup(IDS_TAP_AND_PAY);
+ title = __decorated_text_effect_get(30, "T012", title_markup, "center");
+ NSA_MEM_FREE(title_markup);
+
+ /* make title label */
+ label = elm_label_add(ly);
+ evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(label, EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_object_style_set(label, "slide_roll");
+ elm_label_wrap_width_set(label, 226);
+ elm_label_slide_duration_set(label, 3);
+ elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_AUTO);
+ elm_label_ellipsis_set(label, EINA_TRUE);
+
+ /* set title text */
+ elm_object_text_set(label, title);
+
+ /* start title sliding */
+ elm_label_slide_go(label);
+
+ /* set title label to layout */
+ elm_object_part_content_set(ly, "elm.text.title", label);
+ evas_object_show(label);
+ NSA_MEM_FREE(title);
+
+ evas_object_show(ly);
+
+ elm_object_content_set(sc, ly);
+
+ /* disable old circle object */
+ if (ad->circle_obj_list_idx >= 0) {
+ circle_obj = g_array_index(ad->circle_obj_list, Evas_Object *,
+ ad->circle_obj_list_idx);
+ NSA_DEBUG("old circle_obj 0x%p", circle_obj);
+ }
+
+ /* enable new circle object */
+ circle_obj = eext_circle_object_scroller_add(sc,
+ ad->circle_surface);
+ eext_circle_object_scroller_policy_set(circle_obj,
+ ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+ eext_rotary_object_event_activated_set(circle_obj, EINA_TRUE);
+ g_array_append_val(ad->circle_obj_list, circle_obj);
+ ad->circle_obj_list_idx ++;
+ NSA_DEBUG("new circle_obj 0x%p", circle_obj);
+ NSA_DEBUG("ad->circle_obj_list_idx %d", ad->circle_obj_list_idx);
+
+ return sc;
+}
+
+static char *__get_launch_app_id(char *pkgid)
+{
+ pkgmgrinfo_pkginfo_h pkginfo = NULL;
+ char *main_appid = NULL;
+ int ret;
+
+ retv_if(pkgid == NULL, NULL);
+
+ NSA_DEBUG("__get_launch_app_id [%s]", pkgid);
+
+ ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &pkginfo);
+ if (ret != 0) {
+ return strdup(pkgid);
+ }
+
+ ret = pkgmgrinfo_pkginfo_get_mainappid(pkginfo, &main_appid);
+ if (ret == 0) {
+ return strdup(main_appid);
+ } else {
+ return strdup(pkgid);
+ }
+}
+
+static void __launch_application(char *appid)
+{
+ app_control_h service;
+ int ret;
+
+ ret_if(appid == NULL);
+
+ NSA_DEBUG("__launch_application [%s]", appid);
+
+ app_control_create(&service);
+ ret_if(service == NULL);
+
+ ret = app_control_set_operation(service, APP_CONTROL_DEFAULT_CHANGED);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ NSA_DEBUG_ERR("app_control_set_operation failed[%d]", ret);
+ goto END;
+ }
+
+ ret = app_control_set_app_id(service, appid);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ NSA_DEBUG_ERR("app_control_set_app_id failed[%d]", ret);
+ goto END;
+ }
+
+ ret = app_control_send_launch_request(service, NULL, NULL);
+ if(ret != APP_CONTROL_ERROR_NONE) {
+ NSA_DEBUG_ERR("app_control_send_launch_request failed[%d]", ret);
+ }
+
+END:
+ app_control_destroy(service);
+}
+
+
+static bool __set_default_wallet(item_data_t *item)
+{
+ char *new_wallet = NULL;
+ char *old_wallet = NULL;
+ wallet_info_t *winfo;
+ const char *vconf_key;
+ bool duplicate = false;
+
+ retv_if(item == NULL, false);
+ retv_if(item->list == NULL, false);
+
+
+ winfo = g_array_index(item->list, wallet_info_t *, item->index);
+ retv_if(winfo == NULL, false);
+ new_wallet = winfo->appid;
+
+ if (item->list == payment_wallet_list) {
+ vconf_key = VCONFKEY_NFC_PAYMENT_HANDLERS;
+ } else {
+ vconf_key = VCONFKEY_NFC_OTHER_HANDLERS;
+ }
+ NSA_DEBUG("vconf_key [%s]", vconf_key);
+
+ old_wallet = vconf_get_str(vconf_key);
+ if (old_wallet != NULL) {
+ if (strlen(new_wallet) > 0 &&
+ strcmp(old_wallet, new_wallet) == 0) {
+ duplicate = true;
+ NSA_DEBUG("Same wallet is selected!");
+ }
+ NSA_MEM_FREE(old_wallet);
+ }
+
+ if (!duplicate) {
+ int ret;
+ char *launch_app_id = NULL;
+
+ /* check if there are more than 50 AIDs */
+ if (winfo->aid_count > MAX_AIDS_COUNT) {
+ tap_and_pay_view_data_t *vd;
+ struct appdata *ad;
+
+ vd = (tap_and_pay_view_data_t *)item->data;
+ retv_if(vd == NULL, false);
+
+ ad = (struct appdata *)vd->ad;
+ retv_if(ad == NULL, false);
+
+ /* initialize radio button */
+ if (vd->radio_main != NULL)
+ elm_radio_value_set(vd->radio_main, -1);
+
+ /* show max popup */
+ ad->popup = nsa_create_popup_text_1button(
+ ad->ly_main,
+ IDS_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS,
+ IMAGES_PATH"/tw_ic_popup_btn_check.png",
+ __max_AID_popup_response_cb,
+ (void *)item);
+
+ return false;
+ }
+
+
+ ret = vconf_set_str(vconf_key, new_wallet);
+ if (ret != VCONF_OK) {
+ NSA_DEBUG_ERR("error vconf_set_str");
+
+ return false;
+ }
+
+ /* get launch app id */
+ launch_app_id = __get_launch_app_id(new_wallet);
+
+ /* launch app */
+ __launch_application(launch_app_id);
+
+ return true;
+ }
+
+ return false;
+}
+
+static void __radio_clicked_cb(void *data, Evas_Object *obj,
+ void *event_info)
+{
+ int index = 0;
+
+ index = elm_radio_value_get(obj);
+ NSA_DEBUG("selected value for the group:%d", index);
+
+ /* When radio is clicked, we don't need to call __set_default_wallet */
+ /* Because __gl_list_clicked_cb is called, too */
+}
+
+static void __gl_list_clicked_cb(void *data, Evas_Object *obj,
+ void *event_info)
+{
+ Elm_Object_Item* it = (Elm_Object_Item *)event_info;
+ item_data_t *item = (item_data_t *)data;
+ Evas_Object *radio_main = evas_object_data_get(obj, "payment_rdg");
+
+ elm_genlist_item_selected_set(it, EINA_FALSE);
+
+ ret_if(item == NULL);
+ ret_if(radio_main == NULL);
+
+ NSA_DEBUG("selected value for the group:%d", item->index);
+
+ if (__set_default_wallet(item)) {
+ elm_radio_value_set(radio_main, item->index);
+
+ NSA_DEBUG("__set_default_wallet success");
+ } else {
+ NSA_DEBUG_ERR("set default wallet failed");
+ }
+}
+
+static Evas_Object *__gl_content_get(void *data, Evas_Object *obj,
+ const char *part)
+{
+ if (!strcmp(part, "elm.icon")) {
+ item_data_t *item = (item_data_t *) data;
+ char *wallet_handler;
+ Evas_Object *radio_main;
+ Evas_Object *radio;
+
+ retv_if(item == NULL, NULL);
+
+ radio_main = evas_object_data_get(obj, "payment_rdg");
+ retv_if(radio_main == NULL, NULL);
+
+ radio = elm_radio_add(obj);
+ retv_if(radio == NULL, NULL);
+
+ NSA_DEBUG("item->index [%d]", item->index);
+
+ elm_object_style_set(radio, "list");
+ elm_radio_state_value_set(radio, item->index);
+ elm_radio_group_add(radio, radio_main);
+ evas_object_smart_callback_add(radio, "changed",
+ __radio_clicked_cb, (void *)item);
+
+ if (item->list == payment_wallet_list) {
+ wallet_handler = vconf_get_str(VCONFKEY_NFC_PAYMENT_HANDLERS);
+ } else {
+ wallet_handler = vconf_get_str(VCONFKEY_NFC_OTHER_HANDLERS);
+ }
+
+ if (wallet_handler == NULL) {
+ NSA_DEBUG_ERR("vconf_get_str error");
+ } else {
+ wallet_info_t *winfo;
+ char *appid;
+
+ winfo = g_array_index(item->list, wallet_info_t *,
+ item->index);
+ retv_if(winfo == NULL, NULL);
+ appid = winfo->appid;
+ if (strlen(wallet_handler) > 0 &&
+ strcmp(appid, wallet_handler) == 0) {
+ NSA_DEBUG("matched, [%s]", appid);
+
+ elm_radio_value_set(radio_main, item->index);
+ elm_genlist_item_bring_in(item->it,
+ ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
+ }
+ NSA_MEM_FREE(wallet_handler);
+ }
+
+ return radio;
+ } else {
+ return NULL;
+ }
+}
+
+static char *__gl_text_get_title(void *data, Evas_Object *obj,
+ const char *part)
+{
+ //NSA_DEBUG("part:%s", part);
+
+ if (!strcmp(part, "elm.text")) {
+ return strdup(IDS_TAP_AND_PAY);
+ } else {
+ return NULL;
+ }
+}
+
+static char *__gl_text_get_group(void *data, Evas_Object *obj,
+ const char *part)
+{
+ int index = (int) data;
+
+ NSA_DEBUG("part: %s", part);
+ NSA_DEBUG("index: %d", index);
+
+ if (!strcmp(part, "elm.text")) {
+ if (index == T_PAYMENT)
+ return strdup("Payment");
+ else if (index == T_OTHERS)
+ return strdup("Others");
+ else
+ return NULL;
+ } else {
+ return NULL;
+ }
+}
+
+
+static char *__gl_text_get(void *data, Evas_Object *obj,
+ const char *part)
+{
+ NSA_DEBUG("part: %s", part);
+
+ if (!strcmp(part, "elm.text")) {
+ item_data_t *item = (item_data_t *) data;
+ wallet_info_t *winfo;
+ char *appid;
+
+ retv_if(item == NULL, NULL);
+
+ winfo = g_array_index(item->list, wallet_info_t *,
+ item->index);
+ retv_if(winfo == NULL, NULL);
+ appid = winfo->appid;
+ if (appid != NULL) {
+ pkgmgrinfo_pkginfo_h pkginfo = NULL;
+ char *label = NULL;
+ int ret;
+
+ NSA_DEBUG("pkg id: %s", appid);
+
+ ret = pkgmgrinfo_pkginfo_get_pkginfo(appid, &pkginfo);
+ if (ret != 0) {
+ NSA_DEBUG_ERR("ret [%d]", ret);
+ return NULL;
+ }
+
+ ret = pkgmgrinfo_pkginfo_get_label(pkginfo, &label);
+ if (ret != 0) {
+ pkgmgrinfo_pkginfo_destroy_pkginfo(pkginfo);
+ return NULL;
+ } else {
+ char *text = NULL;
+
+ NSA_MEM_STRDUP(text, label);
+ if (text != NULL)
+ NSA_DEBUG("text: %s", text);
+
+ pkgmgrinfo_pkginfo_destroy_pkginfo(pkginfo);
+ return text;
+ }
+ } else {
+ return NULL;
+ }
+ } else {
+ return NULL;
+ }
+}
+
+static void __add_group_n_list_to_genlist(Evas_Object *genlist,
+ Elm_Genlist_Item_Class *itc_group,
+ Elm_Genlist_Item_Class *itc_list,
+ tap_and_pay_wallet_type_e type, int count, void *data)
+{
+ int index;
+ GArray *list;
+
+#if 0
+ Elm_Object_Item *parent;
+
+ /* add payment group */
+ parent = elm_genlist_item_append(genlist,
+ itc_group, (void *)type,
+ NULL, ELM_GENLIST_ITEM_GROUP,
+ NULL, NULL);
+
+ elm_genlist_item_select_mode_set(parent,
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+#endif
+
+ if (type == T_PAYMENT) {
+ NSA_DEBUG("T_PAYMENT");
+ list = payment_wallet_list;
+ } else {
+ NSA_DEBUG("T_OTHERS");
+ list = other_wallet_list;
+ }
+
+ /* add payment wallet list */
+ for (index = 0; index < count; index++) {
+ item_data_t *item;
+
+ NSA_MEM_MALLOC(item, 1, item_data_t);
+
+ item->list = list;
+ item->index = index;
+ item->it = elm_genlist_item_append(genlist,
+ itc_list, (void *)item,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ __gl_list_clicked_cb, (void *)item);
+ item->data = data;
+ }
+}
+
+static Evas_Object *__create_tap_and_pay_list(void *data)
+{
+ tap_and_pay_view_data_t *vd = (tap_and_pay_view_data_t *)data;
+ struct appdata *ad;
+ Evas_Object *genlist;
+ Elm_Genlist_Item_Class *itc_title, *itc_group, *itc_list;
+ Evas_Object *circle_obj;
+ int count;
+
+ retv_if(vd == NULL, NULL);
+
+ ad = vd->ad;
+ retv_if(ad == NULL, NULL);
+
+ /* make genlist */
+ genlist = elm_genlist_add(vd->nf);
+ retv_if(genlist == NULL, NULL);
+
+ /* set genlist property */
+ elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+// uxt_genlist_set_bottom_margin_enabled(genlist, EINA_TRUE);
+
+ /* disable old circle object */
+ if (ad->circle_obj_list_idx >= 0) {
+ circle_obj = g_array_index(ad->circle_obj_list, Evas_Object *,
+ ad->circle_obj_list_idx);
+ NSA_DEBUG("old circle_obj 0x%p", circle_obj);
+ }
+
+ /* enable new circle object */
+ circle_obj = eext_circle_object_genlist_add(genlist,
+ ad->circle_surface);
+ eext_circle_object_genlist_scroller_policy_set(circle_obj,
+ ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+ eext_rotary_object_event_activated_set(circle_obj, EINA_TRUE);
+ g_array_append_val(ad->circle_obj_list, circle_obj);
+ ad->circle_obj_list_idx ++;
+ NSA_DEBUG("new circle_obj 0x%p", circle_obj);
+ NSA_DEBUG("ad->circle_obj_list_idx %d", ad->circle_obj_list_idx);
+
+ /* create genlist class + */
+ itc_title = elm_genlist_item_class_new();
+ itc_title->item_style = "title";
+ itc_title->func.text_get = __gl_text_get_title;
+ itc_title->func.content_get = NULL;
+ itc_title->func.del = NULL;
+
+ itc_group = elm_genlist_item_class_new();
+ itc_group->item_style = "groupindex";
+ itc_group->func.text_get = __gl_text_get_group;
+ itc_group->func.content_get = NULL;
+ itc_group->func.del = NULL;
+
+ itc_list = elm_genlist_item_class_new();
+ itc_list->item_style = "1text.1icon.1";
+ itc_list->func.text_get = __gl_text_get;
+ itc_list->func.content_get = __gl_content_get;
+ itc_list->func.state_get = NULL;
+ itc_list->func.del = NULL;
+ /* create genlist class - */
+
+ /* ADD: ITEM */
+ elm_genlist_item_append(genlist,
+ itc_title, NULL,
+ NULL, ELM_GENLIST_ITEM_NONE,
+ NULL, NULL);
+
+ if ((count = __get_payment_wallet_list_cnt())) {
+ Evas_Object *radio_main;
+
+ __add_group_n_list_to_genlist(genlist, itc_group,
+ itc_list, T_PAYMENT, count, vd);
+
+ /*make radio group */
+ radio_main = elm_radio_add(genlist);
+ elm_radio_state_value_set(radio_main, -1);
+ elm_radio_value_set(radio_main, -1);
+ evas_object_data_set(genlist, "payment_rdg", radio_main);
+ vd->radio_main = radio_main;
+ }
+
+ if ((count = __get_other_wallet_list_cnt())) {
+ __add_group_n_list_to_genlist(genlist, itc_group,
+ itc_list, T_OTHERS, count, vd);
+ }
+
+
+ /* TO DO: get wallet lists*/
+
+ elm_genlist_item_class_free(itc_title);
+ elm_genlist_item_class_free(itc_group);
+ elm_genlist_item_class_free(itc_list);
+
+ evas_object_show(genlist);
+
+ vd->genlist = genlist;
+
+ return genlist;
+}
+
+
+int _nsa_view_tap_n_pay_create(void *data)
+{
+ struct appdata *ad = (struct appdata *)data;
+ tap_and_pay_view_data_t *vd;
+ Evas_Object *layout;
+ int count;
+
+ /* create data */
+ NSA_MEM_MALLOC(vd, 1, tap_and_pay_view_data_t);
+ retv_if(vd == NULL, NSA_ERROR);
+ vd->ad = ad;
+
+ /* set appdata to main view data */
+ vd->nf = ad->navi_frame;
+
+ /* get wallet info */
+ __get_wallet_info();
+
+ /* Draw UI */
+ count = (__get_payment_wallet_list_cnt() +
+ __get_other_wallet_list_cnt());
+ if (count == 0) {
+ layout = __create_no_contents_ly(vd);
+ retv_if(layout == NULL, NSA_ERROR);
+ } else {
+ layout = __create_tap_and_pay_list(vd);
+ retv_if(layout == NULL, NSA_ERROR);
+ }
+
+ /* Push navifreme + */
+ eext_object_event_callback_add(vd->nf, EEXT_CALLBACK_BACK,
+ eext_naviframe_back_cb, NULL);
+
+ ad->base_navi_it = elm_naviframe_item_push(
+ vd->nf,
+ NULL,
+ NULL,
+ NULL,
+ layout,
+ "empty");
+ elm_naviframe_item_pop_cb_set(ad->base_navi_it, __back_clicked_cb,
+ vd);
+ /* Push navifreme - */
+
+ return NSA_OK;
+}
+
+void _nsa_view_tap_n_pay_destroy(void *data)
+{
+ struct appdata *ad = (struct appdata *)data;
+ Evas_Object *circle_obj;
+
+ ret_if(ad == NULL);
+
+ /* remove current circle object */
+ circle_obj = g_array_index(ad->circle_obj_list, Evas_Object *,
+ ad->circle_obj_list_idx);
+ NSA_DEBUG("current view circle_obj 0x%p", circle_obj);
+ g_array_remove_index(ad->circle_obj_list, ad->circle_obj_list_idx--);
+
+ /* restore circle object */
+ if (ad->circle_obj_list_idx >= 0) {
+ circle_obj = g_array_index(ad->circle_obj_list, Evas_Object *,
+ ad->circle_obj_list_idx);
+ eext_rotary_object_event_activated_set(circle_obj, EINA_TRUE);
+ NSA_DEBUG("restored view circle_obj 0x%p", circle_obj);
+ }
+
+ /* free wallet list info */
+ if (payment_wallet_list != NULL) {
+ int i;
+
+ for (i = 0; i < payment_wallet_cnt; i++) {
+ wallet_info_t *winfo = NULL;
+
+ winfo = g_array_index(payment_wallet_list,
+ wallet_info_t *, i);
+ NSA_MEM_FREE(winfo->appid);
+ NSA_MEM_FREE(winfo);
+ }
+
+ g_array_free(payment_wallet_list, FALSE);
+ payment_wallet_list = NULL;
+ payment_wallet_cnt = 0;
+ }
+
+ NSA_DEBUG("ad->circle_obj_list_idx %d", ad->circle_obj_list_idx);
+}
+
+
diff --git a/wearable/org.tizen.nfc-setting-app.xml b/wearable/org.tizen.nfc-setting-app.xml
new file mode 100755
index 0000000..7f9d57c
--- /dev/null
+++ b/wearable/org.tizen.nfc-setting-app.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.nfc-setting-app" version="0.0.2" install-location="internal-only" api-version="2.3.1">
+ <label>NFC Setting</label>
+ <author email="junyong.sim@samsung.com" href="www.samsung.com">Junyong Sim</author>
+ <description>NFC Setting App</description>
+ <ui-application appid="org.tizen.nfc-setting-app" exec="/usr/apps/org.tizen.nfc-setting-app/bin/nfc-setting-app" nodisplay="true" multiple="false" type="capp" taskmanage="false" mainapp="true" process-pool="true" hw-acceleration="use-GL">
+ <label>NFC</label>
+ <app-control>
+ <operation name="http://tizen.org/appcontrol/operation/setting/nfc"/>
+ </app-control>
+ </ui-application>
+ <privileges>
+ <privilege>http://tizen.org/privilege/nfc</privilege>
+ <privilege>http://tizen.org/privilege/nfc.admin</privilege>
+ <privilege>http://tizen.org/privilege/nfc.cardemulation</privilege>
+ </privileges>
+</manifest>
diff --git a/wearable/po/CMakeLists.txt b/wearable/po/CMakeLists.txt
new file mode 100644
index 0000000..aff048c
--- /dev/null
+++ b/wearable/po/CMakeLists.txt
@@ -0,0 +1,108 @@
+# for i18n
+PROJECT(setting-nfc-efl C)
+
+SET(POFILES
+ ar.po
+ as.po
+ az.po
+ be_BY.po
+ bg.po
+ bn.po
+ bn_BD.po
+ ca.po
+ cs.po
+ da.po
+ de.po
+ el_GR.po
+ en.po
+ en_PH.po
+ en_US.po
+ es_ES.po
+ es_US.po
+ et.po
+ eu.po
+ fa.po
+ fi.po
+ fr.po
+ fr_CA.po
+ ga.po
+ gl.po
+ gu.po
+ he.po
+ hi.po
+ hr.po
+ hu.po
+ hy.po
+ id.po
+ is.po
+ it_IT.po
+ ja_JP.po
+ ka.po
+ kk.po
+ km.po
+ kn.po
+ ko_KR.po
+ ky_KG.po
+ lo.po
+ lt.po
+ lv.po
+ mk.po
+ ml.po
+ mn_MN.po
+ mr.po
+ ms.po
+ my_MM.po
+ my_ZG.po
+ nb.po
+ ne.po
+ nl.po
+ or.po
+ pa.po
+ pl.po
+ pl_SP.po
+ pt_BR.po
+ pt_PT.po
+ ro.po
+ ru_RU.po
+ si.po
+ sk.po
+ sl.po
+ sq.po
+ sr.po
+ sv.po
+ ta.po
+ te.po
+ tg_TJ.po
+ th.po
+ tk_TM.po
+ tl.po
+ tr_TR.po
+ uk.po
+ ur.po
+ uz.po
+ vi.po
+ zh_CN.po
+ zh_HK.po
+ zh_TW.po
+)
+
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+ SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+ MESSAGE("PO: ${pofile}")
+ GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+ GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+ SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${moFile}
+ COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+ DEPENDS ${absPofile}
+ )
+ INSTALL(FILES ${moFile}
+ DESTINATION ${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/wearable/po/ar.po b/wearable/po/ar.po
new file mode 100644
index 0000000..4acf6f4
--- /dev/null
+++ b/wearable/po/ar.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "انقر وادفع"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "ما من تطبيقات دفع مُثبّتة"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "يتعذر تحديد تطبيق الدفع مع أكثر من ٥٠ بطاقة مسجّلة."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "تم تسجيل إحدى البطاقات في %1$s وكان قد تم تسجيلها في %2$s. يتعذر استخدام هذه البطاقة في %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "تمنع سياسة الحماية استخدام NFC."
+
diff --git a/wearable/po/as.po b/wearable/po/as.po
new file mode 100644
index 0000000..46f39d7
--- /dev/null
+++ b/wearable/po/as.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "টিপক আৰু পৰিশোধ"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "ইনষ্টল কৰা কোনো পৰিশোধ এপ্প্‌চ নাই"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50 খন পঞ্জীকৃত কাৰ্ডতকৈ অধিকৰ সৈতে পৰিশোধ এপ চয়ন কৰাত অক্ষম৷"
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s-ত পঞ্জীকৃত এখন কাৰ্ড ইতিমধ্যে %2$s-ত পঞ্জীকৃত আছিল৷ এই কাৰ্ড %3$s-ত ব্যৱহাৰ কৰিব নোৱাৰি৷"
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "নিৰাপত্তা নীতিয়ে NFC-ৰ ব্যৱহাৰ প্ৰতিৰোধ কৰে৷"
+
diff --git a/wearable/po/az.po b/wearable/po/az.po
new file mode 100644
index 0000000..1f737b5
--- /dev/null
+++ b/wearable/po/az.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Vur və ödə"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Quraşdırılmış ödəniş proqramı yoxd"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50-dən çox qeydiyyatdan keçmiş kartla seçilən ödəniş proqramını aktivləşdirmək olmadı."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s-da qeydiyyatdan keçirilən kartların biri artıq %2$s-da qeydiyyatdan keçirilmişdir. Bu kart %3$s-da istifadə edilə bilməz."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Təhlükəsizlik siyasəti NFC-dan istifad qarşısını alır."
+
diff --git a/wearable/po/be_BY.po b/wearable/po/be_BY.po
new file mode 100644
index 0000000..a8ec740
--- /dev/null
+++ b/wearable/po/be_BY.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Аплата дотыкам"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Няма ўсталяваных праграм аплаты"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Немагчыма выбраць праграму для аплаты з больш чым 50 зарэгістраванымі картамі."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Адна з карт, зарэгістраваных у %1$s, была таксама зарэгістравана ў %2$s. Гэту карту нельга выкарыстоўваць у %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Палітыка бяспекі забараняе выкарыстанне NFC."
+
diff --git a/wearable/po/bg.po b/wearable/po/bg.po
new file mode 100644
index 0000000..6097a7d
--- /dev/null
+++ b/wearable/po/bg.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Док. и плащане"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Няма инстал. приложения за плащане"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Не може да се избере приложение за плащане с повече от 50 регистрирани карти."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Една от картите, регистрирани в %1$s, вече е била регистрирана в %2$s. Тази карта не може да се използва в %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Политиката за защита предотвратява използването на NFC."
+
diff --git a/wearable/po/bn.po b/wearable/po/bn.po
new file mode 100644
index 0000000..4444352
--- /dev/null
+++ b/wearable/po/bn.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "ট্যাপ ও প্রদান"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "কোনও ইনস্টল থাকা প্রদান অ্যাপ নেই"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50টির বেশি নিবন্ধিত কার্ডের সাথে প্রদান অ্যাপ নির্বাচন করতে অক্ষম।"
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s-এ নিবন্ধিত কার্ডগুলির একটি ইতিমধ্যেই %2$s-এ নিবন্ধিত হয়েছে। এই কার্ডটিকে %3$s-এ ব্যবহার করা যাবে না।"
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "সুরক্ষা নীতি NFC-এর ব্যবহার আটকায়।"
+
diff --git a/wearable/po/bn_BD.po b/wearable/po/bn_BD.po
new file mode 100644
index 0000000..2ad2be3
--- /dev/null
+++ b/wearable/po/bn_BD.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "ট্যাপ করে পেমেন্ট"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "কোনো পেমেন্ট অ্যাপ ইনস্টল করা নেই"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50টির বেশি নিবন্ধিত কার্ডসহ পেমেন্ট অ্যাপ নির্বাচন করতে অক্ষম৷"
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s-এ নিবন্ধিত কার্ডগুলোর একটি ইতোমধ্যে %2$s-এ নিবন্ধিত আছে৷ এই কার্ডটি %3$s-এ ব্যবহার করা যাবে না৷"
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "নিরাপত্তা নীতি NFC-এর ব্যবহার প্রতিরোধ করে।"
+
diff --git a/wearable/po/ca.po b/wearable/po/ca.po
new file mode 100644
index 0000000..8db822d
--- /dev/null
+++ b/wearable/po/ca.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Tocar i pagar"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Cap aplicació pagament instal·lada"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "No es pot seleccionar l'aplicació de pagament amb més de 50 targetes registrades."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Una de les targetes registrades a %1$s ja estava registrada a %2$s. Aquesta targeta no es pot utilitzar a %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "La política de seguretat evita l'ús d'NFC."
+
diff --git a/wearable/po/cs.po b/wearable/po/cs.po
new file mode 100644
index 0000000..7540c4d
--- /dev/null
+++ b/wearable/po/cs.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Klepn. a zapl."
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Žádné platební aplikace"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Není možné vybrat platební aplikaci s více než 50 registrovanými kartami."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Jedna z karet zaregistrovaných v %1$s již byla zaregistrována v %2$s. Tuto kartu nelze použít v %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Zásady zabezpečení neumožňují použití NFC."
+
diff --git a/wearable/po/da.po b/wearable/po/da.po
new file mode 100644
index 0000000..9cf6518
--- /dev/null
+++ b/wearable/po/da.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Tryk og betal"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Ingen installerede betalingsapps"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Kan ikke vælge betalingsapp med mere end 50 registrerede kort."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Et af de registrerede kort i %1$s var allerede registreret i %2$s. Dette kort kan ikke bruges i %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Sikkerhedspolitikken forhindrer brug af NFC."
+
diff --git a/wearable/po/de.po b/wearable/po/de.po
new file mode 100644
index 0000000..bf1828b
--- /dev/null
+++ b/wearable/po/de.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Tippen und zahlen"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Keine installierten Zahlungs-Apps"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Eine Zahlungs-App mit mehr als 50 registrierten Karten kann nicht ausgewählt werden."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Eine der in %1$s registrierten Karten war bereits in %2$s registriert. Diese Karte kann in %3$s nicht verwendet werden."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Sicherheitsrichtlinie verhindert die Verwendung von NFC."
+
diff --git a/wearable/po/el_GR.po b/wearable/po/el_GR.po
new file mode 100644
index 0000000..7737238
--- /dev/null
+++ b/wearable/po/el_GR.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Πατ. και πληρ."
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Δεν υπάρχ. εγκατεστ. εφαρμ. πληρ."
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Δεν είναι δυνατή η επιλογή εφαρμογής πληρωμών με περισσότερες από 50 καταχωρισμένες κάρτες."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Μία από τις κάρτες που καταχωρίσατε στην εφαρμογή %1$s ήταν ήδη καταχωρισμένη στην εφαρμογή %2$s. Η κάρτα δεν μπορεί να χρησιμοποιηθεί στην εφαρμογή %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Η πολιτική ασφαλείας δεν επιτρέπει τη χρήση του NFC."
+
diff --git a/wearable/po/en.po b/wearable/po/en.po
new file mode 100644
index 0000000..c3705fc
--- /dev/null
+++ b/wearable/po/en.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Tap and pay"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "No installed payment apps"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Unable to select payment app with more than 50 registered cards."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "One of the cards registered in %1$s was already registered in %2$s. This card cannot be used in %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Security policy prevents use of NFC."
+
diff --git a/wearable/po/en_PH.po b/wearable/po/en_PH.po
new file mode 100644
index 0000000..c3705fc
--- /dev/null
+++ b/wearable/po/en_PH.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Tap and pay"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "No installed payment apps"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Unable to select payment app with more than 50 registered cards."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "One of the cards registered in %1$s was already registered in %2$s. This card cannot be used in %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Security policy prevents use of NFC."
+
diff --git a/wearable/po/en_US.po b/wearable/po/en_US.po
new file mode 100644
index 0000000..c3705fc
--- /dev/null
+++ b/wearable/po/en_US.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Tap and pay"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "No installed payment apps"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Unable to select payment app with more than 50 registered cards."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "One of the cards registered in %1$s was already registered in %2$s. This card cannot be used in %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Security policy prevents use of NFC."
+
diff --git a/wearable/po/es_ES.po b/wearable/po/es_ES.po
new file mode 100644
index 0000000..be6b576
--- /dev/null
+++ b/wearable/po/es_ES.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Pulsar y pagar"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Sin aplicaciones de pago instaladas"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "No se puede seleccionar la aplicación de pago con más de 50 tarjetas registradas."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Una de las tarjetas registradas en %1$s ya estaba registrada en %2$s. Dicha tarjeta no se puede utilizar en %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "La política de seguridad impide el uso de NFC."
+
diff --git a/wearable/po/es_US.po b/wearable/po/es_US.po
new file mode 100644
index 0000000..9120990
--- /dev/null
+++ b/wearable/po/es_US.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Pulsar y pagar"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Sin aplicaciones de pago instaladas"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "No es posible seleccionar una aplicación de pago con más de 50 tarjetas registradas."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Una de las tarjetas registradas en %1$s ya se registró en %2$s. No es posible usar esta tarjeta en %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "La política de seguridad impide el uso de NFC."
+
diff --git a/wearable/po/et.po b/wearable/po/et.po
new file mode 100644
index 0000000..0f5bf6a
--- /dev/null
+++ b/wearable/po/et.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Toksa ja maksa"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Ühtegi makserak. pole installitud"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Ei saa valida makserakendust rohkem kui 50 registreeritud kaardiga."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Üks rakenduses %1$s registreeritud kaart oli juba registreeritud rakenduses %2$s. Seda kaarti ei saa kasutada rakenduses %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Turvalisuse poliis takistab NFC kasutamist."
+
diff --git a/wearable/po/eu.po b/wearable/po/eu.po
new file mode 100644
index 0000000..c50e4c0
--- /dev/null
+++ b/wearable/po/eu.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Ukitu eta ord."
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Ez dago ordaintzeko aplikaziorik"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Ezin da hautatu ordaintzeko aplikazioa erregistratutako 50 txartelarekin baino gehiagorekin."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s aplikazioan erregistratutako txarteletako bat %2$s aplikazioan erregistratuta dago jada. Txartel hau ez da %3$s aplikazioan erabiliko."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Segurtasun politikak NFC erabiltzea galarazten du."
+
diff --git a/wearable/po/fa.po b/wearable/po/fa.po
new file mode 100644
index 0000000..b7585c3
--- /dev/null
+++ b/wearable/po/fa.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "ضربه و پرداخت"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "برنامه پرداخت نصب شده‌ای وجود ندارد"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "انتخاب برنامه پرداخت با بیشتر از ۵۰ کارت ثبت شده ممکن نیست."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "یکی از کارت‌های ثبت شده در %1$s قبلاً در %2$s ثبت شده است. استفاده از این کارت در %3$s ممکن نیست."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "سیاست امنیتی از استفاده از NFC جلوگیری می‌کند."
+
diff --git a/wearable/po/fi.po b/wearable/po/fi.po
new file mode 100644
index 0000000..68b5462
--- /dev/null
+++ b/wearable/po/fi.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Napauta ja maksa"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Asennettuja maksusovelluksia ei ole"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Maksusovellusta, jossa on yli 50 rekisteröityä korttia, ei voi valita."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Yksi sovellukseen %1$s rekisteröidyistä korteista oli jo rekisteröity sovellukseen %2$s. Tätä korttia ei voi käyttää sovelluksessa %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Suojauskäytäntö estää NFC:n käytön."
+
diff --git a/wearable/po/fr.po b/wearable/po/fr.po
new file mode 100644
index 0000000..f95e2be
--- /dev/null
+++ b/wearable/po/fr.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Paiement NFC"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Aucune appli. de paiement installée"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Impossible de sélectionner une application de paiement sur laquelle plus de 50 cartes ont été enregistrées."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Une des cartes enregistrées dans %1$s a déjà été enregistrée dans %2$s. Cette carte ne peut pas être utilisée dans %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "La politique de sécurité empêche l'utilisation de NFC."
+
diff --git a/wearable/po/fr_CA.po b/wearable/po/fr_CA.po
new file mode 100644
index 0000000..f95e2be
--- /dev/null
+++ b/wearable/po/fr_CA.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Paiement NFC"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Aucune appli. de paiement installée"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Impossible de sélectionner une application de paiement sur laquelle plus de 50 cartes ont été enregistrées."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Une des cartes enregistrées dans %1$s a déjà été enregistrée dans %2$s. Cette carte ne peut pas être utilisée dans %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "La politique de sécurité empêche l'utilisation de NFC."
+
diff --git a/wearable/po/ga.po b/wearable/po/ga.po
new file mode 100644
index 0000000..bddc48f
--- /dev/null
+++ b/wearable/po/ga.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Tapáil agus íoc"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Níl aon f.chláir íoc. suiteáilte"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Ní féidir feidhmchlár íocaíochta a roghnú le níos mó ná 50 cárta cláraithe."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Bhí ceann de na cártaí a bhí cláraithe in %1$s cláraithe in %2$s cheana féin. Ní féidir an cárta seo a úsáid in %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Cuireann an beartas slándála bac ar úsáid NFC."
+
diff --git a/wearable/po/gl.po b/wearable/po/gl.po
new file mode 100644
index 0000000..90f701f
--- /dev/null
+++ b/wearable/po/gl.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Tocar e pagar"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Non hai aplicac. de pago instalada"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Non se pode seleccionar a aplicación de pagamento con máis de 50 tarxetas rexistradas."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Unha das tarxetas rexistradas en %1$s xa estaba rexistrada en %2$s. Esta tarxeta non se pode usar en %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "A política de seguridade impide o uso de NFC."
+
diff --git a/wearable/po/gu.po b/wearable/po/gu.po
new file mode 100644
index 0000000..c2a46e3
--- /dev/null
+++ b/wearable/po/gu.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "ટેપ કરો અને ચલાવો"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "કોઇ ચૂકવણી એપ્સ ઇન્સ્ટોલ કરેલ નથી"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50 નોંધાયેલ કાર્ડ્સ કરવા વધુ સાથેની ચુકવણી એપ્લિકેશન પસંદ કરવામાં અસમર્થ."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s માં નોંધાયેલમાંથી એક કાર્ડ પહેલાથી %2$s માં નોંધાયેલ છે. આ કાર્ડનો ઉપયોગ %3$s માં કરી શકાતો નથી."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "સુરક્ષા નીતિ NFC ના ઉપયોગને અટકાવે છે."
+
diff --git a/wearable/po/he.po b/wearable/po/he.po
new file mode 100644
index 0000000..7a0592b
--- /dev/null
+++ b/wearable/po/he.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "הקש ושלם"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "אין יישומי תשלומים מותקנים"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "לא ניתן לבחור יישום תשלום עם יותר מ-50 כרטיסים רשומים."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "אחד מהכרטיסים שנרשמו ב-%1$s כבר היה רשום ב-%2$s. לא ניתן להשתמש בכרטיס זה ב-%3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "מדיניות האבטחה מונעת שימוש ב-NFC."
+
diff --git a/wearable/po/hi.po b/wearable/po/hi.po
new file mode 100644
index 0000000..0ac1b7e
--- /dev/null
+++ b/wearable/po/hi.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "टैप व भुगतान करें"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "कोई स्थापित भुगतान एप्स नहीं हैं"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50 से अधिक पंजीकृत कार्ड्स के साथ भुगतान एप चुनने में असमर्थ।"
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s में पंजीकृत किए गए कार्ड्स में से एक कार्ड पहले से %2$s में पंजीकृत है। इस कार्ड का उपयोग %3$s में नहीं किया जा सकता।"
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "सुरक्षा नीति NFC के उपयोग को रोकती है।"
+
diff --git a/wearable/po/hr.po b/wearable/po/hr.po
new file mode 100644
index 0000000..7bb0a62
--- /dev/null
+++ b/wearable/po/hr.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Dodirni i plati"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Nema instal. aplikacija za plaćanje"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Nije moguće odabrati aplikaciju za plaćanje s više od 50 registriranih kartica."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Jedna kartica registrirana u aplikaciji %1$s prethodno je registrirana u aplikaciji %2$s. Ta se kartica ne može upotrebljavati u aplikaciji %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Sigurnosna pravila sprečavaju upotrebu NFC-a."
+
diff --git a/wearable/po/hu.po b/wearable/po/hu.po
new file mode 100644
index 0000000..d5d4fe4
--- /dev/null
+++ b/wearable/po/hu.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Érintéses fiz."
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Nincs telepítve fizetési alkalmazás"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50-nél több regisztrált kártyával rendelkező fizetési alkalmazást nem lehet megnyitni."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "A(z) %1$s alkalmazásban regisztrált egyik kártyát már regisztrálta a(z) %2$s alkalmazásban. Ez a kártya a(z) %3$s alkalmazásban nem használható."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "A biztonsági házirend tiltja az NFC használatát."
+
diff --git a/wearable/po/hy.po b/wearable/po/hy.po
new file mode 100644
index 0000000..08192aa
--- /dev/null
+++ b/wearable/po/hy.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Թակիր և վճարիր"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Վճարման տեղադրված ծրագրեր չկան"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Անհնար է ընտրել վճարման ծրագիր 50-ից ավելի գրանցված քարտերով:"
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s-ում գրանցված քարտերից մեկն արդեն գրանցված է եղել %2$s-ում: Այս քարտը չի կարող օգտագործվել %3$s-ում:"
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Անվտ. քաղաքականությունը թույլ չի տալիս NFC-ի օգտագործում:"
+
diff --git a/wearable/po/id.po b/wearable/po/id.po
new file mode 100644
index 0000000..e2d493d
--- /dev/null
+++ b/wearable/po/id.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Ketuk dan bayar"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Tdk terinstal aplikasi pembayaran"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Tak dapat memilih apl dengan kartu terdaftar melebihi 50."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Salah satu kartu yang terdaftar di %1$s sudah terdaftar di %2$s. Kartu ini tidak dapat digunakan di %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Kebijakan keamanan mencegah penggunaan NFC."
+
diff --git a/wearable/po/is.po b/wearable/po/is.po
new file mode 100644
index 0000000..e974a10
--- /dev/null
+++ b/wearable/po/is.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Snertigreiðsla"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Engin uppsett greiðsluforrit"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Ekki er hægt að velja greiðsluforrit með fleiri en 50 skráð kort."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Eitt af kortunum sem skráð er í %1$s er einnig skráð í %2$s. Ekki er hægt að nota þetta kort í %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Öryggisstefna kemur í veg fyrir notkun NFC."
+
diff --git a/wearable/po/it_IT.po b/wearable/po/it_IT.po
new file mode 100644
index 0000000..e71b332
--- /dev/null
+++ b/wearable/po/it_IT.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Tocca e paga"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Nessuna app di pagamento installata"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Impossibile selezionare un'applicazione di pagamento con più di 50 carte registrate."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Una delle carte registrate in %1$s è stata già registrata in %2$s. Non potete utilizzare questa carta in %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "I criteri di protezione non consentono l'uso di NFC."
+
diff --git a/wearable/po/ja_JP.po b/wearable/po/ja_JP.po
new file mode 100644
index 0000000..fa585b0
--- /dev/null
+++ b/wearable/po/ja_JP.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "タップして支払い"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "インストールされた決済アプリはありません"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "登録カードが50枚を超える場合、決済アプリを選択できません。"
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$sに登録されたカードの1枚が既に%2$sに登録されています。このカードは、%3$sで使用できません。"
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "NFCの使用は、セキュリティポリシーによって制限されています。"
+
diff --git a/wearable/po/ka.po b/wearable/po/ka.po
new file mode 100644
index 0000000..052089e
--- /dev/null
+++ b/wearable/po/ka.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "შეხებით გადახდა"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "გადახდის აპები არ არის დაყენებული"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "ვერ აირჩევთ გადახდის აპლიკაციას 50-ზე მეტი რეგისტრირებული ბარათით."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "ერთ-ერთი ბარათი, რომელიც რეგისტრირებულია %1$s-ში, უკვე რეგისტრირებულია %2$s-ში. ამ ბარათის გამოყენება %3$s-ში შეუძლებელია."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "უსაფრთხოების პოლიტიკა კრძალავს NFC-ის გამოყენებას."
+
diff --git a/wearable/po/kk.po b/wearable/po/kk.po
new file mode 100644
index 0000000..e8d3261
--- /dev/null
+++ b/wearable/po/kk.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Түрту мен төлеу"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Орнатылған төлем қолданбалары жоқ"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50-ден көп тіркелген картасы бар төлем қолданбасын таңдау мүмкін емес."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s қолданбасында тіркелген карталардың бірі %2$s қолданбасында тіркеліп қойған. Бұл картаны %3$s қолданбасында пайдалану мүмкін емес."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Қауіпсіздік саясаты NFC-ті пайдалануға жол бермейді."
+
diff --git a/wearable/po/km.po b/wearable/po/km.po
new file mode 100644
index 0000000..179473b
--- /dev/null
+++ b/wearable/po/km.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "ប៉ះ និង បង់ប្រាក់"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "មិន​បាន​ដំឡើង​កម្មវិធី​បង់ប្រាក់​ណា​មួយ"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "មិន​អាច​ជ្រើស​កម្មវិធី​បង់ប្រាក់​ជាមួយ​បណ្ណ​ដែល​បាន​ចុះបញ្ជី​លើសពី 50។"
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "បណ្ណ​មួយ​ដែល​បាន​ចុះបញ្ជី​ក្នុង %1$s ត្រូវ​បាន​ចុះបញ្ជី​ហើយ​ក្នុង %2$s។ បណ្ណ​នេះ​មិន​អាច​ប្រើ​បាន​ឡើយ​ក្នុង %3$s។"
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "គោលការណ៍​សន្តិសុខ​រារាំង​ការប្រើ NFC។"
+
diff --git a/wearable/po/kn.po b/wearable/po/kn.po
new file mode 100644
index 0000000..4b8181b
--- /dev/null
+++ b/wearable/po/kn.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "ತಟ್ಟಿ ಪಾವತಿಸಿ"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "ಪಾವತಿ ಅನ್ವಯಿಸುವಿಕೆ ಸ್ಥಾಪಿಸಲಾಗಿಲ್ಲ"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50ಕ್ಕಿಂತ ಹೆಚ್ಚು ಕಾರ್ಡ್‌ಗಳನ್ನು ನೋಂದಾಯಿಸಲಾಗಿರುವ ಪಾವತಿ ಅನ್ವಯಿಸುವಿಕೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$sನಲ್ಲಿ ನೋಂದಾಯಿಸಲಾಗಿರುವ ಕಾರ್ಡ್‌ಗಳಲ್ಲಿ ಒಂದು ಕಾರ್ಡ್ ಅನ್ನು ಈಗಾಗಲೇ %2$sನಲ್ಲಿ ನೋಂದಾಯಿಸಲಾಗಿದೆ. ಈ ಕಾರ್ಡ್ ಅನ್ನು %3$sನಲ್ಲಿ ನೋಂದಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "ಸುರಕ್ಷತಾ ನೀತಿಯು NFC ಬಳಕೆಯನ್ನು ತಡೆಯುತ್ತದೆ."
+
diff --git a/wearable/po/ko_KR.po b/wearable/po/ko_KR.po
new file mode 100644
index 0000000..5251716
--- /dev/null
+++ b/wearable/po/ko_KR.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "모바일 결제"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "설치된 결제 앱 없음"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "카드가 50개 이상 등록된 결제 앱은 선택할 수 없습니다."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s에 등록된 카드 중 하나가 %2$s에 이미 등록되어 있습니다. 이 카드는 %3$s에서 사용할 수 없습니다."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "보안정책에 따라 NFC를 사용할 수 없습니다."
+
diff --git a/wearable/po/ky_KG.po b/wearable/po/ky_KG.po
new file mode 100644
index 0000000..4ae3015
--- /dev/null
+++ b/wearable/po/ky_KG.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Басуу ж-а ойнот."
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Орнот. төлөө кызм. колд. жок"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50 ашык катталган карталары бар төлөө колдонмосун тандоо мүмкүн эмес."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s катталган карталардын бири %2$s эчак сакталган. Бул картаны %3$s колдонууга болбойт."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Коопсуздук саясаты NFC колдонуусун болтурбайт."
+
diff --git a/wearable/po/lo.po b/wearable/po/lo.po
new file mode 100644
index 0000000..a824a71
--- /dev/null
+++ b/wearable/po/lo.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "ແຕະແລະຊຳລະ"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "ບໍ່​ມີ​ແອັບ​ການ​ຊຳ​ລະ​ຖືກ​ຕິດຕັ້ງ"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "ບໍ່ສາມາດເລືອກແອັບການຊຳລະທີ່ມີຫຼາຍກວ່າ 50 ບັດທີ່ຖືກລົງທະບຽນ."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "ໜຶ່ງບັດທີ່ໄດ້ລົງທະບຽນໃນ %1$s ໄດ້ລົງທະບຽນໃນ %2$s ຮຽບຮ້ອຍ. ບັດນີ້ບໍ່ສາມາດຖືກໃຊ້ໃນ %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "ນະໂຍບາຍດ້ານຄວາມປອດໄພປ້ອງກັນການໃຊ້ NFC."
+
diff --git a/wearable/po/lt.po b/wearable/po/lt.po
new file mode 100644
index 0000000..fcd9aee
--- /dev/null
+++ b/wearable/po/lt.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Bakst. ir mokėt"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Nėra įdiegtų mokėjimo programų"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Negalima pasirinkti mokėjimo programos su daugiau nei 50 registruotų kortelių."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Viena iš %1$s registruotų kortelių jau užregistruota %2$s. Ši kortelė negali būti naudojama %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Saugos politika neleidžia naudoti NFC."
+
diff --git a/wearable/po/lv.po b/wearable/po/lv.po
new file mode 100644
index 0000000..510a72d
--- /dev/null
+++ b/wearable/po/lv.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Maks. ar piesk."
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Nav instalētu maksājumu programmu"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Nevar izvēlēties maksājumu programmu ar vairāk nekā 50 reģistrētām kartēm."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Viena no programmā %1$s reģistrētajām kartēm jau ir reģistrēta programmā %2$s. Šo karti nevar izmantot programmā %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Drošības politika liedz NFC lietošanu."
+
diff --git a/wearable/po/mk.po b/wearable/po/mk.po
new file mode 100644
index 0000000..1e6e701
--- /dev/null
+++ b/wearable/po/mk.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Допри и плати"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Нема инсталирани платежни апликации"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Не може да се избере апликација за плаќање со повеќе од 50 регистрирани картички."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Една од картичките, регистрирана во %1$s, веќе е регистрирана во %2$s. Таа не може да се користи во %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Политиката за безбедност спречува користење NFC."
+
diff --git a/wearable/po/ml.po b/wearable/po/ml.po
new file mode 100644
index 0000000..278d9af
--- /dev/null
+++ b/wearable/po/ml.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "സ്പർശിച്ച് പണമട."
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "ഇൻസ്റ്റാൾ ചെയ്ത പണമടയ്ക്കൽ ആപ്ലി. ഇല്ല"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "രജിസ്റ്റർ ചെയ്ത 50 കാർഡിൽ കൂടുതലുള്ള പണമടയ്ക്കൽ ആപ്ലിക്കേഷൻ തിരഞ്ഞെടുക്കാനാവില്ല."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s-ൽ രജിസ്റ്റർ ചെയ്ത കാർഡുകളിൽ ഒന്ന് നേരത്തേതന്നെ %2$s-ൽ രജിസ്റ്റർ ചെയ്തതാണ്. %3$s-ൽ ഈ കാർഡ് ഉപയോഗിക്കാനാവില്ല."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "സുരക്ഷാ നയം NFC ഉപയോഗത്തെ തടയുന്നു."
+
diff --git a/wearable/po/mn_MN.po b/wearable/po/mn_MN.po
new file mode 100644
index 0000000..76aa7f6
--- /dev/null
+++ b/wearable/po/mn_MN.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Товшоод төл"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Төлбөрийн хэрэглүүр суулгаагүй"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50-с олон бүртгүүлсэн карттай төлбөрийн хэрэглүүрийг сонгох боломжгүй."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s-д бүртгүүлсэн картуудын нэг нь %2$s-д аль хэдийн бүртгүүлсэн байна. Энэ картыг %3$s-д ашиглах боломжгүй."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Хамгаалалтын бодлого нь NFC-г ашиглахаас сэргийлдэг."
+
diff --git a/wearable/po/mr.po b/wearable/po/mr.po
new file mode 100644
index 0000000..8eaeb13
--- /dev/null
+++ b/wearable/po/mr.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "टॅप आणि देय"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "कोणतेही इन्‍स्‍टॉल देय अनुप्रयोग नाहीत"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50 पेक्षा अधिक नोंदणीकृत कार्ड्स असलेला देय अनुप्रयोग निवडण्यास अक्षम."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s मध्ये नोंदणीकृत केलेल्या कार्डांपैकी एक आधीपासूनच %2$s मध्ये नोंदणीकृत आहे. हे कार्ड %3$s मध्ये वापरले जाऊ शकत नाही."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "सुरक्षितता धोरण NFC चा वापर प्रतिबं‍धित करते."
+
diff --git a/wearable/po/ms.po b/wearable/po/ms.po
new file mode 100644
index 0000000..54ae995
--- /dev/null
+++ b/wearable/po/ms.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Ketik dan bayar"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Tiada aplikasi pembayaran dipasang"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Tidak dapat memilih aplikasi pembayaran dengan lebih daripada 50 kad yang berdaftar."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Salah satu daripada kad yang didaftarkan dalam %1$s telah didaftarkan dalam %2$s. Kad ini tidak boleh digunakan dalam %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Dasar keselamatan mengelakkan penggunaan NFC."
+
diff --git a/wearable/po/my_MM.po b/wearable/po/my_MM.po
new file mode 100644
index 0000000..30a123d
--- /dev/null
+++ b/wearable/po/my_MM.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "နှိပ်ပြီး ပေးဆောင်ပါ"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "ငွေပေးချေမှုအက်ပ်များ ထည့်သွင်းမထားပါ"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "မှတ်ပုံတင်ထားသည့်ကဒ်များ ၅၀ ကျော်ဖြင့် ငွေပေးချေမှုအက်ပ်ကိုရွေးချယ်၍မရနိုင်ပါ။"
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s တွင်မှတ်ပုံတင်ထားသည့်ကဒ်တစ်ခုသည် %2$s တွင်မှတ်ပုံတင်ထားပြီးဖြစ်သည်။ ဤကဒ်ကို %3$s တွင်အသုံးပြု၍မရနိုင်ပါ။"
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "လုံခြုံရေးမူဝါဒသည် NFC အသုံးပြုမှုကို ကာကွယ်ထားသည်။"
+
diff --git a/wearable/po/my_ZG.po b/wearable/po/my_ZG.po
new file mode 100644
index 0000000..acfbda6
--- /dev/null
+++ b/wearable/po/my_ZG.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "ႏွိပ္ၿပီး ေပးေဆာင္ပါ"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "ေငြေပးေခ်မႈအက္ပ္မ်ား ထည့္သြင္းမထားပါ"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "မွတ္ပုံတင္ထားသည့္ကဒ္မ်ား ၅၀ ေက်ာ္ျဖင့္ ေငြေပးေခ်မႈအက္ပ္ကိုေ႐ြးခ်ယ္၍မရႏိုင္ပါ။"
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s တြင္မွတ္ပုံတင္ထားသည့္ကဒ္တစ္ခုသည္ %2$s တြင္မွတ္ပုံတင္ထားၿပီးျဖစ္သည္။ ဤကဒ္ကို %3$s တြင္အသုံးျပဳ၍မရႏိုင္ပါ။"
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "လုံၿခဳံေရးမူဝါဒသည္ NFC အသုံးျပဳမႈကို ကာကြယ္ထားသည္။"
+
diff --git a/wearable/po/nb.po b/wearable/po/nb.po
new file mode 100644
index 0000000..a70c131
--- /dev/null
+++ b/wearable/po/nb.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Trykk og betal"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Ingen installerte betalingsapper"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Kan ikke velge betalingsapp med flere enn 50 registrerte kort."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Ett av kortene som er registrert i %1$s, var allerede registrert i %2$s. Dette kortet kan ikke brukes i %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Sikkerhetspolicyen hindrer bruk av NFC."
+
diff --git a/wearable/po/ne.po b/wearable/po/ne.po
new file mode 100644
index 0000000..0940b4f
--- /dev/null
+++ b/wearable/po/ne.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "ट्याप गरेर भुक्तान"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "स्थापना गरिएका भुक्तानी एप्स छैनन्"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50 भन्दा धेरै कार्डहरू दर्ता गरिएको भुक्तानी एप प्रयोग गर्न असमर्थ।"
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s मा दर्ता गरिएका कार्डहरू मध्ये एक %2$s मा पहिले नै दर्ता गरिएको थियो। यो कार्ड %3$s मा प्रयोग गर्न सकिँदैन।"
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "सुरक्षा नीतिले NFC प्रयोग गर्न रोक्दछ।"
+
diff --git a/wearable/po/nl.po b/wearable/po/nl.po
new file mode 100644
index 0000000..ae16cb0
--- /dev/null
+++ b/wearable/po/nl.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Tikken/betalen"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Geen geïnstalleerde betaal-apps"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Kan geen betaal-app met meer dan 50 geregistreerde kaarten selecteren."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Een van de kaarten die bij %1$s is geregistreerd, was al bij %2$s geregistreerd. Deze kaart kan niet in %3$s worden gebruikt."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Beveiligingsbeleid verhindert gebruik van NFC."
+
diff --git a/wearable/po/or.po b/wearable/po/or.po
new file mode 100644
index 0000000..45cebc4
--- /dev/null
+++ b/wearable/po/or.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "ଟ୍ୟାପ୍ କରି ଦେୟ କର."
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "ସଂସ୍ଥାପିତ ଦେୟ ଆପ୍ଲିକେସନ୍‌ ନାହିଁ"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50ରୁ ଅଧିକ ପଞ୍ଜିକରଣ କାର୍ଡଗୁଡିକ ସହ ଦେୟ ଆପ୍ଲିକେସନ୍‌ ଚୟନ କରିବାକୁ ଅସମର୍ଥ।"
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$sରେ ପଞ୍ଜିକରଣ ହୋଇଥିବା କାର୍ଡଗୁଡିକରୁ ଗୋଟିଏ ପୂର୍ବରୁ %2$sରେ ପଞ୍ଜିକରଣ ହୋଇଛି। %3$sରେ ଏହି କାର୍ଡ୍ ବ୍ୟବହୃତ ହୋଇପାରିବ ନାହିଁ।"
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "ସୁରକ୍ଷା ନୀତି NFCର ବ୍ୟବହାର ପ୍ରତିରୋଧ କରେ।"
+
diff --git a/wearable/po/pa.po b/wearable/po/pa.po
new file mode 100644
index 0000000..817b046
--- /dev/null
+++ b/wearable/po/pa.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "ਟੈਪ ਕਰਕੇ ਭੁਗਤਾਨ ਕਰੋ"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "ਕੋਈ ਭੁਗਤਾਨ ਐਪਸ ਸਥਾਪਿਤ ਨਹੀਂ ਹਨ"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50 ਤੋਂ ਜ਼ਿਆਦਾ ਰਜਿਸਟਰ ਕੀਤੇ ਕਾਰਡਸ ਵਾਲੀ ਭੁਗਤਾਨ ਐਪ ਨੂੰ ਚੁਣਨ ਵਿੱਚ ਅਸਮਰੱਥ।"
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s ਵਿੱਚ ਰਜਿਸਟਰ ਕੀਤੇ ਕਾਰਡਸ ਵਿੱਚੋਂ ਕੋਈ ਕਾਰਡ %2$s ਵਿੱਚ ਪਹਿਲਾਂ ਤੋਂ ਹੀ ਰਜਿਸਟਰ ਕੀਤਾ ਹੋਇਆ ਹੈ। ਇਸ ਕਾਰਡ ਦੀ ਵਰਤੋਂ %3$s ਵਿੱਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।"
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "ਸੁਰੱਖਿਆ ਨੀਤੀ NFC ਦੇ ਉਪਯੋਗ ਨੂੰ ਪ੍ਰਤਿਬੰਧਿਤ ਕਰਦੀ ਹੈ।"
+
diff --git a/wearable/po/pl.po b/wearable/po/pl.po
new file mode 100644
index 0000000..902e9a2
--- /dev/null
+++ b/wearable/po/pl.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Dotk. i zapłać"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Brak zainstal. aplikacji płatności"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Nie można wybrać aplikacji płatności z ponad 50 zarejestrowanymi kartami."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Jedna z kart zarejestrowanych w aplikacji %1$s została wcześniej zarejestrowana w aplikacji %2$s. Nie można używać tej karty w aplikacji %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Zasady zabezpieczeń uniemożliwiają korzystanie z NFC."
+
diff --git a/wearable/po/pl_SP.po b/wearable/po/pl_SP.po
new file mode 100644
index 0000000..60ba4dd
--- /dev/null
+++ b/wearable/po/pl_SP.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Tyknij i zabul"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Niy ma zainsztal. aplikac. do platu"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Niy idzie ôbrać aplikacyji do płatu z wiyncyj jak 50 zaregistrowanymi kartami."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Jedna z kartōw zaregistrowanych w aplikacyji %1$s ôstała przōdzij zaregistrowanŏ w aplikacyji %2$s. Niy idzie używać tyj karty w aplikacyji %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Zasady zabezpieczeń uniemożliwiają korzystanie z NFC."
+
diff --git a/wearable/po/pt_BR.po b/wearable/po/pt_BR.po
new file mode 100644
index 0000000..02ccd55
--- /dev/null
+++ b/wearable/po/pt_BR.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Pagar com toque"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Nenhum aplic. pagamento instalado"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Não é possível selecionar o aplicativo de pagamento com mais de 50 cartões registrados."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Um dos cartões registrados no %1$s já foi registrado no %2$s. Esse cartão não pode ser usado no %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "A política de segurança impede o uso do NFC."
+
diff --git a/wearable/po/pt_PT.po b/wearable/po/pt_PT.po
new file mode 100644
index 0000000..369d883
--- /dev/null
+++ b/wearable/po/pt_PT.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Tocar e pagar"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Sem aplicações de pagamento instaladas"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Impossível seleccionar aplicação de pagamento com mais de 50 cartões registados."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Um dos cartões registados no %1$s já foi registado no %2$s. Este cartão não pode ser utilizado no %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "A política de segurança impede a utilização de NFC."
+
diff --git a/wearable/po/ro.po b/wearable/po/ro.po
new file mode 100644
index 0000000..fbfcabf
--- /dev/null
+++ b/wearable/po/ro.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "At. şi plătiţi"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Nu există aplicaţii instalate"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Nu se poate selecta aplicaţia de plată pentru mai mult de 50 de carduri înregistrate."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Unul dintre cardurile înregistrate în %1$s era deja înregistrat în %2$s. Acest card nu poate fi utilizat în %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Politica de securitate nu permite utilizarea NFC."
+
diff --git a/wearable/po/ru_RU.po b/wearable/po/ru_RU.po
new file mode 100644
index 0000000..2d65097
--- /dev/null
+++ b/wearable/po/ru_RU.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Платеж прикосн."
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Нет устан. приложений для оплаты"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Невозможно выбрать приложение для платежей, для которого зарегистрировано более 50 карт."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Одна из зарегистрированных в %1$s карт уже была зарегистрирована в %2$s. Эту карту нельзя использовать в %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Политика безопасности запрещает использование NFC."
+
diff --git a/wearable/po/si.po b/wearable/po/si.po
new file mode 100644
index 0000000..5ff6c42
--- /dev/null
+++ b/wearable/po/si.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "තට්ටු කර ගෙවන්න"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "ස්ථාපිත ගෙවීමේ යෙදුම් කිසිවක් නැත"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50 කට වඩා වැඩි ලියාපදිංචි කළ කාඩ්පත් සමග ගෙවීම් යෙදුම තේරිය නොහැකිය."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s තුළ ලියාපදිංචිව ඇති කාඩ්පත් වලින් එකක් %2$s තුළ දැනටමත් ලියාපදිංචි වී ඇත. මෙම කාඩ්පත %3$s තුළ භාවිතා කළ නොහැක."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "NFC භාවිතා කිරීම ආරක්ෂණ ප්‍රතිපත්තිය වළකයි."
+
diff --git a/wearable/po/sk.po b/wearable/po/sk.po
new file mode 100644
index 0000000..d4dcacc
--- /dev/null
+++ b/wearable/po/sk.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Ťuknúť a zaplatiť"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Žiadne inštalov. platobné aplikácie"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Platobná aplikácia s viac než 50 zaregistrovanými kartami sa nedá vybrať."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Jedna z kariet zaregistrovaných v aplikácii %1$s už bola zaregistrovaná v aplikácii %2$s. Táto karta sa nedá použiť v aplikácii %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Politika zabezpečenia zabraňuje používaniu funkcie NFC."
+
diff --git a/wearable/po/sl.po b/wearable/po/sl.po
new file mode 100644
index 0000000..a3edbe8
--- /dev/null
+++ b/wearable/po/sl.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Prit. in plačaj"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Ni nameščenih aplikacij za plačila"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Ni mogoče izbrati aplikacije za plačila z več kot 50 registriranimi karticami."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Ena od kartic, registriranih v aplikaciji %1$s, je že bila registrirana v aplikaciji %2$s. Te kartice ni mogoče uporabljati v aplikaciji %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Varnostni pravilnik preprečuje uporabo funkcije NFC."
+
diff --git a/wearable/po/sq.po b/wearable/po/sq.po
new file mode 100644
index 0000000..0d54b81
--- /dev/null
+++ b/wearable/po/sq.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Trokit & paguaj"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Nuk ka app-e pagesash të instaluara"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Nuk mund të përzgjedh app-in e pagesës me më shumë se 50 karta të regjistruara."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Një nga kartat e regjistruara në %1$s ishte regjistruar tashmë në %2$s. Kjo kartë nuk mund të përdoret në %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Politika e sigurisë nuk lejon përdorimin e NFC."
+
diff --git a/wearable/po/sr.po b/wearable/po/sr.po
new file mode 100644
index 0000000..308a62a
--- /dev/null
+++ b/wearable/po/sr.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Kucni i plati"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Nema instaliranih apl. za plaćanje"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Nije moguće izabrati aplikaciju za plaćanje koja ima više od 50 registrovanih kartica."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Jedna od registrovanih kartica u aplikaciji %1$s je već registrovana u aplikaciji %2$s. Ova kartica ne može da se koristi u aplikaciji %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Politika bezbednosti sprečava korišćenje NFC funkcije."
+
diff --git a/wearable/po/sv.po b/wearable/po/sv.po
new file mode 100644
index 0000000..6d4b714
--- /dev/null
+++ b/wearable/po/sv.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Tryck & betala"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Inga installerade betalningsprogram"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Det går inte att välja ett betalningsprogram med fler än 50 registrerade kort."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Ett av korten som är registrerat i %1$s är redan registrerat i %2$s. Det här kortet kan inte användas i %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Säkerhetspolicyn förhindrar att NFC används."
+
diff --git a/wearable/po/ta.po b/wearable/po/ta.po
new file mode 100644
index 0000000..14c3683
--- /dev/null
+++ b/wearable/po/ta.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "டேப் செ. செலுத்துக"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "கட்டண பயன்பாடுகள் இல்லை"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50-க்கும் மேற்பட்ட பதிவுசெய்த அட்டைகளுடன் பணமளிப்பு பயன்பாட்டை தேர்வுசெய்ய இயலவில்லை."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s-இல் பதிவு செய்யப்பட்ட அட்டைகளில் ஒன்று ஏற்கனவே %2$s-இல் பதிவு செய்யப்பட்டுள்ளது. இந்த அட்டையை %3$s-இல் பயன்படுத்த இயலாது."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "NFC பயன்பாட்டைப் பாதுகாப்புக் கொள்கை தடுக்கிறது."
+
diff --git a/wearable/po/te.po b/wearable/po/te.po
new file mode 100644
index 0000000..58feee1
--- /dev/null
+++ b/wearable/po/te.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "ట్యాప్ చేసి చెల్లించు"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "చెల్లింపు అప్లి. ఇన్‌స్టాల్ చేయలేదు"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50 కంటే ఎక్కువ కార్డ్‌లు నమోదు చేయబడిన చెల్లింపు అప్లికేషన్‌ను ఎంచుకోవడం సాధ్యం కాదు."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$sలో నమోదు చేయబడిన కార్డ్‌లలో ఒకటి ఇప్పటికే %2$sలో నమోదు చేయబడింది. ఈ కార్డ్‌ను %3$sలో ఉపయోగించలేరు."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "భద్రతా విధానం NFC ఉపయోగాన్ని నిరోధిస్తుంది."
+
diff --git a/wearable/po/tg_TJ.po b/wearable/po/tg_TJ.po
new file mode 100644
index 0000000..b2f12f3
--- /dev/null
+++ b/wearable/po/tg_TJ.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Зарба ва пар-хт"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Ягон брнмаи пардохт насб нашудааст"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Барномаи пардохтро бо камтар аз 50 корти қайдшуда интихоб карда наметавонад."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Яке аз кортҳои дар %1$s қайдшуда аллакай дар %2$s қайд шуда буд. Ин кортро дар %3$s истифода бурдан мумкин нест."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Сиёсати амният истифодаи NFC-ро роҳ намедиҳад."
+
diff --git a/wearable/po/th.po b/wearable/po/th.po
new file mode 100644
index 0000000..a65b628
--- /dev/null
+++ b/wearable/po/th.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Tap and pay"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "ไม่ได้ติดตั้งแอพชำระเงิน"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "ไม่สามารถเลือกแอพการชำระเงินที่มีบัตรลงทะเบียนมากกว่า 50 ใบ"
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "บัตรใบหนึ่งที่ลงทะเบียนใน %1$s ถูกลงทะเบียนใน %2$s แล้ว ไม่สามารถใช้บัตรนี้ได้ใน %3$s"
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "นโยบายความปลอดภัยป้องกันการใช้ NFC"
+
diff --git a/wearable/po/tk_TM.po b/wearable/po/tk_TM.po
new file mode 100644
index 0000000..6e22cec
--- /dev/null
+++ b/wearable/po/tk_TM.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Bas we töle"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Gurnalgy töleg goýmasy ýok"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50-den köp bellige alnan kartly töleg goýmasyny saýlap bolmaýar."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s bilen bellige alnan kartlaryň biri eýýäm %2$s bilen bellige alnypdyr. Bu karty %3$s içinde ulanyp bolmaýar."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Howpsuzlyk syýasaty NFC-niň ulanylmagyna ýol bermeýär."
+
diff --git a/wearable/po/tl.po b/wearable/po/tl.po
new file mode 100644
index 0000000..59122d2
--- /dev/null
+++ b/wearable/po/tl.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "I-tap at magbayad"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Walang naka-install na app sa pagbabayad"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Hindi mapili ang payment app na may higit sa 50 nakarehistrong card."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Ang isa sa mga card na nakarehistro sa %1$s ay nakarehistro na sa %2$s. Hindi magagamit ang card na ito sa %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Hinahadlangan ng patakaran ng seguridad ang paggamit ng NFC."
+
diff --git a/wearable/po/tr_TR.po b/wearable/po/tr_TR.po
new file mode 100644
index 0000000..de768a4
--- /dev/null
+++ b/wearable/po/tr_TR.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Dokun ve öde"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Yüklü ödeme uygulaması yok"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50'den fazla kayıtlı kartın olduğu ödeme uygulaması seçilemez."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s uygulamasında kaydedilen kartların biri zaten %2$s uygulamasında kayıtlı. Bu kart %3$s uygulamasında kullanılamaz."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Güvenlik ilkesi NFC kullanımını engelliyor."
+
diff --git a/wearable/po/uk.po b/wearable/po/uk.po
new file mode 100644
index 0000000..b1bbad7
--- /dev/null
+++ b/wearable/po/uk.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Торкн. і сплат."
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Немає встановл. програм для оплати"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Неможливо вибрати програму для здійснення платежів із більш ніж 50 зареєстрованими картками."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Одну з карток, зареєстрованих у %1$s, вже було зареєстровано у %2$s. Цю картку не можна використовувати у %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Політика безпеки забороняє використання NFC."
+
diff --git a/wearable/po/ur.po b/wearable/po/ur.po
new file mode 100644
index 0000000..5a73576
--- /dev/null
+++ b/wearable/po/ur.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "تھپکی دیں اور ادا کریں"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "کوئی نصب شدہ ادائیگی کی ایپلیکیشنز نہیں"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50 سے زائد رجسٹر کردہ کارڈز کے ساتھ ادائیگي ایپلیکیشن منتخب کرنے سے قاصر۔"
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s رجسٹر شدہ کارڈ %2$s میں پہلے سے ہی رجسٹر شدہ ہے۔ یہ کارڈ %3$s میں استعمال نہیں کیا جاسکتا۔"
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "سلامتی پالیسی NFC کے استعمال کو روکتی ہے۔"
+
diff --git a/wearable/po/uz.po b/wearable/po/uz.po
new file mode 100644
index 0000000..0521b62
--- /dev/null
+++ b/wearable/po/uz.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Teg va to‘la"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "O‘rnatilgan to‘lov ilovalari yo‘q"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "50 tadan ortiq ro‘yxatga olingan kartalarga ega to‘lov ilovasini tanlab bo‘lmaydi."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s’da ro‘yxatga olingan kartalardan biri %2$s’da oldinroq ro‘yxatga olingan. Ushbu kartochkadan mazkur %3$s-da foydalanib bo‘lmaydi."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Xavfsizlik siyosati NFC’ni ishlatishga yo‘l qo‘ymayapti."
+
diff --git a/wearable/po/vi.po b/wearable/po/vi.po
new file mode 100644
index 0000000..53ef02d
--- /dev/null
+++ b/wearable/po/vi.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "Chạm và thanh toán"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "Chưa cài đặt ứng dụng thanh toán"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "Không thể chọn ứng dụng thanh toán với nhiều hơn 50 thẻ được đăng ký."
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "Một trong số các thẻ được đăng ký trong %1$s đã được đăng ký trong %2$s. Không thể dùng thẻ này trong %3$s."
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "Chính sách bảo mật không cho dùng NFC."
+
diff --git a/wearable/po/zh_CN.po b/wearable/po/zh_CN.po
new file mode 100644
index 0000000..1867480
--- /dev/null
+++ b/wearable/po/zh_CN.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "点击支付"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "未安装支付应用程序"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "无法选择有 50 张以上注册银行卡的支付应用程序。"
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "有一张在 %1$s 中注册的卡已在 %2$s 中注册。此卡无法在 %3$s 中使用。"
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "安全策略可防止 NFC 的使用"
+
diff --git a/wearable/po/zh_HK.po b/wearable/po/zh_HK.po
new file mode 100644
index 0000000..114e64c
--- /dev/null
+++ b/wearable/po/zh_HK.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "輕觸並付款"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "無已安裝的付款應用程式"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "無法選擇含有超過 50 張已註冊銀行卡的付款應用程式。"
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "有一張在 %1$s 中註冊的卡已在 %2$s 中註冊。此卡無法在 %3$s 中使用。"
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "安全性政策可防止 NFC 的使用。"
+
diff --git a/wearable/po/zh_TW.po b/wearable/po/zh_TW.po
new file mode 100644
index 0000000..390859e
--- /dev/null
+++ b/wearable/po/zh_TW.po
@@ -0,0 +1,18 @@
+msgid "WDS_ST_MBODY_TAP_AND_PAY_ABB"
+msgstr "輕觸即付款"
+
+msgid "WDS_ST_MBODY_NFC_ABB"
+msgstr "NFC"
+
+msgid "WDS_ST_NPBODY_NO_INSTALLED_PAYMENT_APPS_ABB"
+msgstr "未安裝付款應用程式"
+
+msgid "WDS_ST_POP_UNABLE_TO_SELECT_PAYMENT_APP_WITH_MORE_THAN_50_REGISTERED_CARDS"
+msgstr "無法選擇內含超過 50 張註冊信用卡的付款應用程式。"
+
+msgid "WDS_ST_POP_ONE_OF_THE_CARDS_REGISTERED_IN_P1SS_WAS_ALREADY_REGISTERED_IN_P2SS_THIS_CARD_CANNOT_BE_USED_IN_P3SS"
+msgstr "%1$s 中的其中一張卡片已於 %2$s 註冊。這張卡片無法在 %3$s 中使用。"
+
+msgid "WDS_ST_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_NFC_ABB"
+msgstr "安全性原則可防止 NFC 的使用。"
+