summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorseungho <seungho@samsung.com>2012-08-21 14:01:24 (GMT)
committerseungho <seungho@samsung.com>2012-08-21 14:01:24 (GMT)
commitde0583fe580f60dbe6df346302d9b5a0d6d0bc5e (patch)
treeb12a348a0746458acbe1f5142f07557070c90176
parenta567f8701cbb30a17da78748f90c4037e579e858 (diff)
downloadpwlock-de0583fe580f60dbe6df346302d9b5a0d6d0bc5e.zip
pwlock-de0583fe580f60dbe6df346302d9b5a0d6d0bc5e.tar.gz
pwlock-de0583fe580f60dbe6df346302d9b5a0d6d0bc5e.tar.bz2
apps/home/pwlock
-rwxr-xr-xCMakeLists.txt43
-rwxr-xr-xNOTICE1
-rwxr-xr-xdebian/changelog7
-rwxr-xr-xdebian/control4
-rw-r--r--debian/copyright0
-rwxr-xr-xdebian/org.tizen.pwlock.install.in4
-rwxr-xr-xdebian/org.tizen.pwlock.postinst2
-rwxr-xr-xdebian/rules12
-rwxr-xr-xinclude/langs.h53
-rwxr-xr-xinclude/pwlock.h135
-rwxr-xr-xinclude/tapi.h78
-rwxr-xr-xinclude/ui-callback.h37
-rwxr-xr-xinclude/ui.h55
-rwxr-xr-xinclude/util.h79
-rwxr-xr-xorg.tizen.pwlock.desktop.in9
-rw-r--r--org.tizen.pwlock.xml9
-rwxr-xr-xpackaging/org.tizen.pwlock.spec33
-rw-r--r--[-rwxr-xr-x]po/CMakeLists.txt3
-rwxr-xr-xpo/POTFILES.in5
-rw-r--r--po/ar.po123
-rw-r--r--po/bg.po123
-rw-r--r--po/ca.po123
-rw-r--r--po/cs.po123
-rw-r--r--po/da.po123
-rw-r--r--[-rwxr-xr-x]po/de_DE.po64
-rw-r--r--[-rwxr-xr-x]po/el_GR.po54
-rw-r--r--[-rwxr-xr-x]po/en.po56
-rw-r--r--po/en_US.po123
-rw-r--r--[-rwxr-xr-x]po/es_ES.po56
-rw-r--r--po/fi.po123
-rw-r--r--[-rwxr-xr-x]po/fr_FR.po56
-rw-r--r--po/he.po123
-rw-r--r--po/hi.po123
-rw-r--r--po/hr.po123
-rw-r--r--po/hu.po123
-rw-r--r--po/id.po123
-rw-r--r--[-rwxr-xr-x]po/it_IT.po56
-rw-r--r--[-rwxr-xr-x]po/ja_JP.po82
-rw-r--r--[-rwxr-xr-x]po/ko_KR.po60
-rw-r--r--po/lt.po123
-rw-r--r--po/lv.po123
-rw-r--r--po/ms.po123
-rw-r--r--[-rwxr-xr-x]po/nl_NL.po66
-rw-r--r--po/no.po123
-rw-r--r--po/pl.po123
-rw-r--r--[-rwxr-xr-x]po/pt_PT.po54
-rwxr-xr-xpo/pwlock.pot143
-rw-r--r--po/ro.po123
-rw-r--r--[-rwxr-xr-x]po/ru_RU.po64
-rw-r--r--po/sk.po123
-rw-r--r--po/sl.po123
-rw-r--r--po/sr.po123
-rw-r--r--po/sv.po123
-rw-r--r--po/th.po123
-rw-r--r--[-rwxr-xr-x]po/tr_TR.po56
-rw-r--r--po/uk.po123
-rwxr-xr-xpo/update-po.sh60
-rw-r--r--po/vi.po123
-rw-r--r--[-rwxr-xr-x]po/zh_CN.po56
-rw-r--r--[-rwxr-xr-x]po/zh_HK.po56
-rw-r--r--[-rwxr-xr-x]po/zh_TW.po62
-rwxr-xr-xres/CMakeLists.txt13
-rw-r--r--res/edje/pwlock-menu-greeting.edc304
-rw-r--r--res/edje/pwlock-popup-checkview.edc151
-rw-r--r--res/edje/pwlock.edc4
-rw-r--r--res/images/A01-9_bg.pngbin0 -> 409575 bytes
-rw-r--r--res/images/A01-9_controlbar_icon_Next.pngbin0 -> 3176 bytes
-rw-r--r--res/images/A01-9_controlbar_icon_Previous.pngbin0 -> 3243 bytes
-rw-r--r--res/images/A01-9_controlbar_icon_Skip.pngbin0 -> 3351 bytes
-rw-r--r--res/images/A01-9_controlbar_icon_scan.pngbin0 -> 3449 bytes
-rw-r--r--res/images/A01-9_icon_no_sim.pngbin0 -> 8713 bytes
-rwxr-xr-xsrc/langs.c158
-rwxr-xr-xsrc/pwlock.c470
-rwxr-xr-xsrc/tapi.c500
-rwxr-xr-xsrc/ui-callback.c225
-rwxr-xr-xsrc/ui.c1094
-rwxr-xr-xsrc/util.c123
77 files changed, 6165 insertions, 1622 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3b640f3..b2211e8 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,11 +6,14 @@ SET(SRCS
./src/tapi.c
./src/util.c
./src/ui.c
+ ./src/ui-callback.c
+ ./src/langs.c
)
-SET(VENDOR "tizen")
+SET(VENDOR "org.tizen")
SET(PACKAGE ${PROJECT_NAME})
-SET(PKGNAME "org.${VENDOR}.${PACKAGE}")
+SET(PKGNAME "${VENDOR}.${PACKAGE}")
+#SET(DEBPKGNAME "deb.${PKGNAME}")
SET(PREFIX ${CMAKE_INSTALL_PREFIX})
SET(BINDIR "${PREFIX}/bin")
SET(RESDIR "${PREFIX}/res")
@@ -30,7 +33,31 @@ MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs REQUIRED elementary appcore-efl vconf tapi utilX ui-gadget bundle ecore-imf ecore-x eina evas ecore edje ecore-input glib-2.0 openssl aul sysman)
+pkg_check_modules(pkgs REQUIRED
+ elementary
+ appcore-efl
+ vconf
+ tapi
+ utilX
+ ui-gadget-1
+ bundle
+ ecore-imf
+ ecore-x
+ eina
+ evas
+ ecore
+ edje
+ ecore-input
+ glib-2.0
+ gio-2.0
+ openssl
+ aul
+ sysman
+ ail
+ accounts-svc
+ appsvc
+ iniparser
+)
FOREACH(flag ${pkgs_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
@@ -58,6 +85,8 @@ ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"")
ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
ADD_DEFINITIONS("-DIMAGEDIR=\"${IMAGEDIR}\"")
+#ADD_DEFINITIONS("-DPWLOCK_ENABLE_TUTORIAL")
+
SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
@@ -65,10 +94,12 @@ ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
# install desktop file & icon & bin
-CONFIGURE_FILE(${PKGNAME}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${PKGNAME}.desktop)
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PKGNAME}.desktop DESTINATION /opt/share/applications)
+#CONFIGURE_FILE(${PKGNAME}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${PKGNAME}.desktop)
+#INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PKGNAME}.desktop DESTINATION /opt/share/applications)
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PKGNAME}.xml DESTINATION /opt/share/packages)
+#INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/images/* DESTINATION res/icons)
INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
# i18n
ADD_SUBDIRECTORY(po)
-
+ADD_SUBDIRECTORY(res)
diff --git a/NOTICE b/NOTICE
index e69de29..4c49449 100755
--- a/NOTICE
+++ b/NOTICE
@@ -0,0 +1 @@
+Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved.
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100755
index d5c67fa..0000000
--- a/debian/changelog
+++ /dev/null
@@ -1,7 +0,0 @@
-pwlock (0.2.1-1) unstable; urgency=low
-
- * Add spec file
- * Git: pkgs/p/pwlock
- * Tag: pwlock_0.2.1-1
-
- -- Mi-Ju Lee <miju52.lee@samsung.com> Tue, 20 Mar 2012 20:09:58 +0900
diff --git a/debian/control b/debian/control
index a03648f..7793482 100755
--- a/debian/control
+++ b/debian/control
@@ -1,8 +1,8 @@
Source: pwlock
Section: devel
Priority: extra
-Maintainer: Seungtaek Chung <seungtaek.chung@samsung.com>, Mi-Ju Lee <miju52.lee@samsung.com>, Xi Zhichan <zhichan.xi@samsung.com>
-Build-Depends: debhelper (>= 5), libappcore-efl-dev, libelm-dev, libslp-setting-dev, libslp-tapi-dev, libslp-utilx-dev, libui-gadget-dev, dlog-dev, libbundle-dev, libecore-dev, libeina-dev, libevas-dev, libedje-dev, libaul-1-dev, libslp-sysman-dev
+Maintainer: Sunyeop Hwang <sunyeop.hwang@samsung.com>
+Build-Depends: debhelper (>= 5), libappcore-efl-dev, libelm-dev, libslp-setting-dev, libslp-tapi-dev, libslp-utilx-dev, libui-gadget-dev, dlog-dev, libbundle-dev, libecore-dev, libeina-dev, libevas-dev, libedje-dev, libaul-1-dev, libslp-sysman-dev, libail-0-dev, libaccounts-svc-dev, libappsvc-dev, iniparser-dev
Standards-Version: 3.7.2
Package: org.tizen.pwlock
diff --git a/debian/copyright b/debian/copyright
deleted file mode 100644
index e69de29..0000000
--- a/debian/copyright
+++ /dev/null
diff --git a/debian/org.tizen.pwlock.install.in b/debian/org.tizen.pwlock.install.in
index 25fb04c..b0d8ad6 100755
--- a/debian/org.tizen.pwlock.install.in
+++ b/debian/org.tizen.pwlock.install.in
@@ -1,4 +1,6 @@
@PREFIX@/bin/*
-@PREFIX@/data
+@PREFIX@/data/
+@PREFIX@/res/*
+@PREFIX@/res/images/*
@PREFIX@/res/locale/*
/opt/share/applications/*
diff --git a/debian/org.tizen.pwlock.postinst b/debian/org.tizen.pwlock.postinst
index f9866ac..5665988 100755
--- a/debian/org.tizen.pwlock.postinst
+++ b/debian/org.tizen.pwlock.postinst
@@ -15,7 +15,7 @@ fi
#echo $GOPTION
# check first boot
-vconftool $GOPTION set -t bool db/setting/pwlock_boot "1"
+vconftool $GOPTION set -t bool db/pwlock/first_boot "1"
#vconftool $GOPTION set -t int db/setting/phone_lock_attempts_left "5"
#vconftool $GOPTION set -t string db/setting/phone_lock_timestamp ""
diff --git a/debian/rules b/debian/rules
index fe2571c..87f0572 100755
--- a/debian/rules
+++ b/debian/rules
@@ -39,7 +39,7 @@ configure-stamp:
build: build-stamp
-build-stamp: configure-stamp
+build-stamp: configure-stamp
dh_testdir
# Add here commands to compile the package.
@@ -67,12 +67,12 @@ clean:
rm -f $${f%.in}; \
done
- dh_clean
+ dh_clean
install: build
dh_testdir
dh_testroot
- dh_clean -k
+ dh_clean -k
dh_installdirs
# Add here commands to install the package into debian/wavplayer.
@@ -87,12 +87,12 @@ binary-indep: build install
binary-arch: build install
dh_testdir
dh_testroot
- dh_installchangelogs
- dh_installdocs
+# dh_installchangelogs
+# dh_installdocs
dh_installexamples
dh_install --sourcedir=debian/tmp
# dh_installmenu
-# dh_installdebconf
+# dh_installdebconf
# dh_installlogrotate
# dh_installemacsen
# dh_installpam
diff --git a/include/langs.h b/include/langs.h
new file mode 100755
index 0000000..c37e55f
--- /dev/null
+++ b/include/langs.h
@@ -0,0 +1,53 @@
+/*
+ * pwlock
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+enum {
+ _L_UNSPEC = -1,
+ _L_AUTO,
+ _L_EN,
+ _L_DE,
+ _L_NL,
+ _L_ES,
+ _L_PT,
+ _L_EL,
+ _L_IT,
+ _L_FR,
+ _L_TR,
+ _L_KO,
+ _L_CN,
+ _L_HK,
+ _L_TW,
+ _L_JP,
+ _L_RU,
+ _L_GR,
+ _L_MAX,
+};
+
+struct lang {
+ int value;
+ const char *name;
+ const char *code;
+ int ival; /* for VCONFKEY_SETAPPL_LANG_INT */
+};
+
+extern struct lang langs[_L_MAX];
+
+int set_lang(int v);
+const char *get_lang_name(int v);
+const char *get_lang_name_by_path(char *path);
diff --git a/include/pwlock.h b/include/pwlock.h
index 8723156..8e5cf91 100755
--- a/include/pwlock.h
+++ b/include/pwlock.h
@@ -1,19 +1,21 @@
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.tizenopensource.org/license
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
+ * pwlock
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
#ifndef __PWLOCK_H__
#define __PWLOCK_H__
@@ -25,6 +27,7 @@
#include <sysman.h>
#include "tapi.h"
+#include "ui-gadget.h"
#if !defined(PACKAGE)
#define PACKAGE "org.tizen.pwlock"
@@ -34,82 +37,106 @@
#define LOCALEDIR "/opt/apps/org.tizen.pwlock/res/locale"
#endif
+#if !defined(EDJDIR)
+#define EDJDIR "/opt/apps/"PACKAGE"/res/edje"
+#endif
+
+#if !defined(IMAGEDIR)
+#define IMAGEDIR "/opt/apps/"PACKAGE"/res/images"
+#endif
+
+#define EDJFILE EDJDIR"/"PACKAGE".edj"
+
+#define PWLOCK_DEVICE_NAME "db/setting/device_name"
+
+typedef enum _UG_BUTTON_STATE {
+ UG_BUTTON_STATE_NONE = 0,
+ UG_BUTTON_STATE_NEXT_CLICKED = 1,
+ UG_BUTTON_STATE_PREV_CLICKED = 2
+} UG_BUTTON_STATE;
+
struct appdata {
Evas_Object *win;
- Evas_Object *ly;
- Evas_Object *navi;
- Evas_Object *bg;
+
+ Evas_Object *layout_main;
+ Evas_Object *layout_contents;
+ Evas_Object *layout_entry;
+ Evas_Object *layout_second_entry;
+
+ Evas_Object *elm_bg;
+ Evas_Object *elm_navigation_frame;
+ Evas_Object *elm_button_dial;
+ Evas_Object *elm_button_done;
+ Evas_Object *elm_conform;
int ui_type;
int previous_ui_type;
- Evas_Object *ly_main;
- Evas_Object *entry_layout;
- Evas_Object *entry_second_layout;
- Evas_Object *button_dial;
- Evas_Object *button_done;
+
int state;
- int sub_state;
+ TelSimLockType_t sub_state; /* for lock sub state */
Ecore_Idler *idler;
- int first_boot;
- int running_status;
- int alpha_window_status;
- int keyboard_settings_loaded;
+ int is_first_boot; /* for checking first boot */
+ int is_exec_after_bootup; /* for calling pwlock from other module */
+ int is_no_sim;
+
+ int alpha_window_status; /* for alpha */
int date_and_time_settings_loaded;
- int language_settings_loaded;
- int lock_view_loaded;
+ int language_settings_loaded; /* check the language ug first loaded or not */
+ int lock_view_loaded; /* check the lock view loaded for sim card changed */
int lock_app_launched;
char *entry_str;
- char *pin_str;
+ char *pin_str; /* only for new pin */
char *msg;
- Ecore_Timer *pTimerId;
+ Ecore_Timer *pTimerId; /* for vconf timer id */
int sim_changed;
int pin_changed;
enum sim_stat sim_status;
struct tapi *t;
- struct ui_gadget *dialer_ug;
- struct ui_gadget *language_ug;
- struct ui_gadget *keyboard_ug;
- struct ui_gadget *date_ug;
- struct ui_gadget *count_ug;
- struct ui_gadget *current_ug;
- int kill_ug;
+ ui_gadget_h dialer_ug;
+ ui_gadget_h language_ug;
+ ui_gadget_h connection_ug;
+ ui_gadget_h date_ug;
+ ui_gadget_h count_ug;
+ ui_gadget_h current_ug;
+ int kill_ug; /* If 1 killed by "previous", else killed by "next" button */
int date_and_time_previous;
- int cancel_setup;
+ int cancel_setup; /* 1 means not show setup wizard,0 means show */
Evas_Object *popup;
Evas_Object *waiting_popup;
- int win_type;
- int tapi_smc_sid;
-};
+ int win_type; /* it is set if pwlock is set to ECORE_X_WINDOW_TYPE_NOTIFICATION */
+ int tapi_smc_sid; /* it is tapi resgistered sid for smc lab test */
+ int tapi_init_retry_cnt; /* number of retry to tapi init */
-void do_state(struct appdata *ad);
+ UG_BUTTON_STATE ug_btn_evt_state;
+};
enum {
- STR_E_PW,
+ STR_E_PW, /* 0 */
STR_E_PIN,
STR_E_NEW,
STR_R_PIN,
STR_E_PUK,
- STR_I_PUN,
+ STR_I_PUN, /* 5 */
STR_I_PUK,
STR_A_LEFT,
STR_DONE,
STR_DIAL,
- STR_W_PW,
+ STR_W_PW, /* 10 */
STR_N_MAT,
STR_LANG,
STR_SET,
STR_CANCEL,
- STR_ERR_SIMLANG,
+ STR_ERR_SIMLANG, /* 15 */
STR_ERR_UNSUPP,
STR_BLOCK,
STR_SIM_LOCK,
STR_NETWORK_LOCK_NCK,
- STR_NETWORK_LOCK_NSCK,
+ STR_NETWORK_LOCK_NSCK, /* 20 */
STR_NETWORK_LOCK_SPCK,
STR_NETWORK_LOCK_CCK,
- STR_PW_LENGTH,
+ STR_PW_LENGTH, /* 23 */
};
enum {
@@ -122,12 +149,18 @@ enum {
_ST_NETWORK_LOCKCNF,
_ST_EXIT,
_ST_LANG,
+ _ST_NOSIM,
_ST_TIME,
- _ST_KEYBOARD,
+ _ST_GREETING,
+ _ST_CONNECTION,
+ _ST_TUTORIAL,
+ _ST_FINISH,
_ST_MAX,
};
extern const char *strtbl[];
void set_win_prop(struct appdata *ad, int type);
+void do_state(struct appdata *ad);
+void do_state_directly(int state, void *data);
#endif /* __PWLOCK_H__ */
diff --git a/include/tapi.h b/include/tapi.h
index 20d43a1..9f767d9 100755
--- a/include/tapi.h
+++ b/include/tapi.h
@@ -1,24 +1,28 @@
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.tizenopensource.org/license
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
+ * pwlock
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
#ifndef __PWLOCK_TAPI_H__
#define __PWLOCK_TAPI_H__
-struct tapi;
+#include <tapi_common.h>
+#include <TapiUtility.h>
+#include <ITapiSim.h>
enum sim_stat {
SIM_ERROR = -1,
@@ -37,26 +41,42 @@ enum sim_stat {
SIM_REQUIRED_EVENT
};
-struct tapi_info {
- enum sim_stat st;
+struct pwlock_tapi_info {
+ enum sim_stat st; /* RETRY, OK, ERROR */
int retry_cnt;
};
-struct tapi *tapi_init(void (*cb) (struct tapi_info *, void *), void *data);
-void tapi_exit(struct tapi **t);
+struct tapi {
+ TapiHandle *handle;
+ struct tapi_event *evt;
+ int evt_sz;
+
+ void *cb_data;
+ void (*cb) (struct pwlock_tapi_info *, void *);
+};
-int tapi_is_ready(void);
-int tapi_ready_check(void);
+struct tapi_event {
+ unsigned int sid;
+ char *event;
+ void (*tapi_notification_cb)(TapiHandle *handle, const char *noti_id, void *data, void *user_data);
+};
-enum sim_stat tapi_check_sim(int *changed);
+struct tapi *pwlock_tapi_init(void (*cb) (struct pwlock_tapi_info *, void *), void *data);
+void pwlock_tapi_exit(struct tapi **t);
+int pwlock_tapi_ready_check(void);
-int tapi_verify_pins(char *code);
-int tapi_verify_puks(char *code, char *newcode);
-int tapi_verify_lock(char *code);
-int tapi_disable_net_pers(char *code, int type);
+enum sim_stat pwlock_tapi_check_sim(struct tapi *t, int *changed);
-void enable_net_pers();
+/* tapi wrapper */
+int pwlock_tapi_verify_pins(struct tapi *t, char *code);
+int pwlock_tapi_verify_puks(struct tapi *t, char *code, char *newcode);
+int pwlock_tapi_verify_lock(struct tapi *t, char *code);
+int pwlock_tapi_disable_net_pers(struct tapi *t, char *code, TelSimLockType_t type);
-int tapi_get_language(int *v);
+/* callbacks */
+void pwlock_tapi_noti_modem_power_cb(TapiHandle *handle, const char *noti_id, void *data, void *user_data);
+void pwlock_tapi_noti_sim_status_cb(TapiHandle *handle, const char *noti_id, void *data, void *user_data);
+void pwlock_tapi_verify_sim_pins_and_puks_cb(TapiHandle *handle, int result, void *data, void *user_data);
+void pwlock_tapi_disable_sim_facility_cb(TapiHandle *handle, int result, void *data, void *user_data);
#endif /* __PWLOCK_TAPI_H__ */
diff --git a/include/ui-callback.h b/include/ui-callback.h
new file mode 100755
index 0000000..a7af470
--- /dev/null
+++ b/include/ui-callback.h
@@ -0,0 +1,37 @@
+/*
+ * pwlock
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __PWLOCK_UI_CALLBACK_H__
+#define __PWLOCK_UI_CALLBACK_H__
+
+void pwlock_greeting_next_cb(void *data, Evas_Object * obj, void *e);
+void pwlock_nosim_skip_cb(void *data, Evas_Object * obj, void *e);
+void pwlock_tutorial_prev_cb(void *data, Evas_Object * obj, void *e);
+void pwlock_tutorial_next_cb(void *data, Evas_Object * obj, void *e);
+void pwlock_ug_connection_layout_cb(ui_gadget_h ug, enum ug_mode mode,
+ void *priv);
+void pwlock_ug_connection_result_cb(ui_gadget_h ug, service_h service,
+ void *priv);
+void pwlock_ug_connection_destroy_cb(ui_gadget_h ug, void *priv);
+void pwlock_popup_exit_ok_cb(void *data, Evas_Object * e, void *ei);
+void pwlock_popup_exit_cancel_cb(void *data, Evas_Object * e, void *ei);
+void pwlock_finish_prev_cb(void *data, Evas_Object * obj, void *e);
+void pwlock_finish_cb(void *data, Evas_Object * obj, void *e);
+
+#endif /* __PWLOCK_UI_CALLBACK_H__ */
diff --git a/include/ui.h b/include/ui.h
index dd08b6e..cdc060c 100755
--- a/include/ui.h
+++ b/include/ui.h
@@ -1,19 +1,21 @@
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.tizenopensource.org/license
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
+ * pwlock
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
#ifndef __PWLOCK_UI_H__
#define __PWLOCK_UI_H__
@@ -35,21 +37,34 @@ enum {
_UI_NETWORK_LOCK_NSCK,
_UI_NETWORK_LOCK_SPCK,
_UI_NETWORK_LOCK_CCK,
- _UI_LANG,
+ _UI_LANG, //skipable view starts from here
+ _UI_NOSIM,
_UI_TIME,
_UI_KEYBOARD,
+ _UI_FACEBOOK,
_UI_DIALER,
+ _UI_GREETING,
+ _UI_CONNECTION,
+ _UI_DATA_MIGRATION,
+ _UI_TUTORIAL,
+ _UI_FINISH,
+ /*_UI_POPUP,*/
};
+int show_splash_screen(struct appdata *ad);
+int show_greeting(struct appdata *ad);
+int show_connection(struct appdata *ad);
+int show_tutorial(struct appdata *ad);
void show_pin(struct appdata *ad);
void show_puk(struct appdata *ad);
void show_puk_pin(struct appdata *ad);
void show_block(struct appdata *ad);
void show_sim_lock(struct appdata *ad);
int show_lang(struct appdata *ad);
+int show_nosim(struct appdata *ad);
int show_time(struct appdata *ad);
-int show_account(struct appdata *ad);
int show_keyboard_setting(struct appdata *ad);
+int show_finish(struct appdata *ad);
int show_dialer(struct appdata *ad);
void pwlock_destroy(struct appdata *ad);
@@ -58,8 +73,14 @@ void load_main(struct appdata *ad, int ui_type);
void show_msg(struct appdata *ad, int strid);
void clear_entry(struct appdata *ad);
void _show_popup(void *data, char *msg_str);
+void show_popup_accesibility(struct appdata *ad);
void show_popup(struct appdata *ad, const char *mesg, Eina_Bool mode);
+void show_popup_ask_exit(struct appdata *ad, const char *mesg);
void show_waiting_popup(struct appdata *ad, const char *msg_str);
void remove_waiting_popup(struct appdata *ad);
Eina_Bool show_puk_do(void *data);
+void update_pw_entry(struct appdata *ad, char *input_data);
+
+Evas_Object *pwlock_add_layout_from_edj(Evas_Object *parent, const char *file,
+ const char *group);
#endif /* __PWLOCK_UI_H__ */
diff --git a/include/util.h b/include/util.h
index 0700d02..3f30ab1 100755
--- a/include/util.h
+++ b/include/util.h
@@ -1,19 +1,21 @@
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.tizenopensource.org/license
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
+ * pwlock
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
#ifndef __PWLOCK_UTIL_H__
#define __PWLOCK_UTIL_H__
@@ -30,6 +32,7 @@
#define ENABLE_LOG_SYSTEM
+void pwlock_log(char *fmt, ...);
void pwlock_log_t(char *fmt, ...);
#ifdef ENABLE_LOG_SYSTEM
@@ -50,14 +53,22 @@ void pwlock_log_t(char *fmt, ...);
#define _DBG(...)
#endif
+#define PWLOCK_MEMFREE(ptr) \
+ do { \
+ if (ptr != NULL) { \
+ free(ptr); \
+ ptr = NULL; \
+ } \
+ } while(0);
+
enum {
- IDS_COM_SK_SET = 0,
- IDS_COM_SK_DONE,
+ IDS_COM_SK_DONE = 0,
IDS_COM_BODY_ENTER_PASSWORD,
IDS_COM_BODY_PREVIOUS,
IDS_COM_SK_NEXT,
IDS_COM_SK_OK,
IDS_COM_SK_CANCEL,
+ IDS_COM_SK_START,
IDS_PWLOCK_SYSTEM_STRING_MAX,
};
@@ -65,7 +76,6 @@ enum {
enum {
IDS_IDLE_BODY_AUTOMATIC = IDS_PWLOCK_SYSTEM_STRING_MAX,
IDS_IDLE_HEADER_NETWORK_LOCK,
- IDS_IDLE_HEADER_PHONE_LOCK,
IDS_IDLE_HEADER_PIN_LOCK,
IDS_IDLE_HEADER_PUK_LOCK,
IDS_IDLE_HEADER_SIM_BLOCKED,
@@ -77,38 +87,33 @@ enum {
IDS_IDLE_BODY_ENTER_PUK,
IDS_IDLE_BODY_INCORRECT_PIN,
IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN,
- IDS_IDLE_BODY_INCORRECT_PUK,
- IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED,
IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY,
IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY,
- IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG,
IDS_IDLE_BODY_PD_ATTEMPTS_LEFT,
IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY,
IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER,
- IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE,
IDS_IDLE_BODY_WRONG_PASSWORD,
- IDS_IDLE_BUTTON_CANCEL,
IDS_IDLE_BUTTON_DIALER,
IDS_IDLE_HEADER_DISPLAY_LANGUAGE,
IDS_IDLE_BODY_DO_YOU_WANT_TO_SKIP_SETUPWIZARD,
IDS_IDLE_BODY_PASSWORD_EMPTY,
IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED,
- IDS_IDLE_BODY_NEW_PIN,
- IDS_IDLE_BODY_PIN,
- IDS_IDLE_BODY_PUK,
- IDS_IDLE_POP_PIN_BLOCKED,
- IDS_IDLE_POP_PIN_UNBLOCKED,
- IDS_IDLE_BODY_CONFIRM_NEW_PIN,
- IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT,
- IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT,
- IDS_IDLE_BODY_PD_TO_PD_DIGITS_OR_LETTERS_REQUIRED,
IDS_IDLE_POP_PASSWORDS_NOT_MATCH,
IDS_IDLE_POP_PIN_CHANGED,
IDS_IDLE_POP_SIM_CARD_ERROR,
- IDS_IDLE_BODY_TRY_LATER,
- IDS_IDLE_BODY_INPUT_PASSWORD_AFTER_THIRTYSECONDS,
- IDS_IDLE_BODY_CHECKING_SIM_STATUS,
-
+ IDS_IDLE_POP_CHECKING_SIM_CARD_ING,
+ IDS_IDLE_BODY_GREETING_WELCOME,
+ IDS_SCM_BODY_WELCOME_E,
+ IDS_STU_BODY_SELECT_LANGUAGE,
+ IDS_ST_SK_EMERGENCY_CALL,
+ IDS_ST_BODY_TAP_TO_SET_UP,
+ IDS_IDLE_SK_SKIP,
+ IDS_ST_BODY_INSTALTAB_FINISH,
+ IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE,
+ IDS_STU_POP_SETUP_COMPLETE,
+ IDS_IDLE_HEADER_NOSIM,
+ IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG,
+ IDS_ST_BUTTON_TRY_AGAIN_ABB,
IDS_PWLOCK_APP_STRING_MAX,
};
@@ -116,4 +121,6 @@ char *pwlock_get_string(int id);
Evas_Object *create_win(const char *name);
Evas_Object *load_edj(Evas_Object * parent, const char *file,
const char *group);
+int pwlock_get_model_number(char *buf, int max_size);
+void pwlock_tolower(char *src, char *dest);
#endif /* __PWLOCK_UTIL_H__ */
diff --git a/org.tizen.pwlock.desktop.in b/org.tizen.pwlock.desktop.in
deleted file mode 100755
index fe6fc63..0000000
--- a/org.tizen.pwlock.desktop.in
+++ /dev/null
@@ -1,9 +0,0 @@
-Name=@PROJECT_NAME@
-Exec=@BINDIR@/@PROJECT_NAME@
-Type=Application
-Nodisplay=True
-
-X-TIZEN-TaskManage=False
-X-TIZEN-Multiple=False
-X-TIZEN-Removable=False
-
diff --git a/org.tizen.pwlock.xml b/org.tizen.pwlock.xml
new file mode 100644
index 0000000..07224c5
--- /dev/null
+++ b/org.tizen.pwlock.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.pwlock" version="0.3.7" install-location="internal-only">
+ <label>Pwlock</label>
+ <author email="sunyeop.hwang@samsung.com" href="www.samsung.com">Sunyeop Hwang</author>
+ <description>Password Lock Appication</description>
+ <ui-application appid="org.tizen.pwlock" exec="/opt/apps/org.tizen.pwlock/bin/pwlock" nodisplay="true" multiple="false" type="capp" taskmanage="false">
+ <label>Pwlock</label>
+ </ui-application>
+</manifest>
diff --git a/packaging/org.tizen.pwlock.spec b/packaging/org.tizen.pwlock.spec
index c0d806f..d5439cd 100755
--- a/packaging/org.tizen.pwlock.spec
+++ b/packaging/org.tizen.pwlock.spec
@@ -2,14 +2,14 @@
Name: org.tizen.pwlock
Summary: Password Lock application
-Version: 0.2.1
+Version: 0.3.7
Release: 1
-Group: User Experience
-License: Flora Software License
+Group: TBD
+License: TBD
Source0: %{name}-%{version}.tar.gz
BuildRequires: pkgconfig(elementary)
-BuildRequires: pkgconfig(ui-gadget)
+BuildRequires: pkgconfig(ui-gadget-1)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(dlog)
BuildRequires: pkgconfig(vconf)
@@ -18,8 +18,12 @@ BuildRequires: pkgconfig(tapi)
BuildRequires: pkgconfig(utilX)
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(aul)
+BuildRequires: pkgconfig(accounts-svc)
+BuildRequires: pkgconfig(appsvc)
BuildRequires: pkgconfig(sysman)
-BuildRequires: gettext-tools
+BuildRequires: pkgconfig(capi-base-common)
+BuildRequires: pkgconfig(iniparser)
+BuildRequires: gettext
BuildRequires: cmake
BuildRequires: edje-tools
Requires(post): /usr/bin/vconftool
@@ -33,22 +37,23 @@ Password lock application.
%build
LDFLAGS+="-Wl,--rpath=%{PREFIX}/lib -Wl,--as-needed";export LDFLAGS
cmake . -DCMAKE_INSTALL_PREFIX=%{PREFIX}
+# cmake does not have a good dependency and make parallel will fail
+# make %{?jobs:-j%jobs}
make
%install
%make_install
-%find_lang pwlock
-
%post
GOPTION="-g 6514"
-vconftool $GOPTION set -t bool db/setting/pwlock_boot "1"
-chown -R 5000:5000 /opt/apps/org.tizen.pwlock/data
+vconftool $GOPTION set -t bool db/pwlock/first_boot "1"
-#%files -f %{name}.lang
%files
-%defattr(-,root,root,-)
-%dir /opt/apps/org.tizen.pwlock/data
-/opt/share/applications/org.tizen.pwlock.desktop
+%defattr(-,root,root,-)
+%attr(-,inhouse,inhouse) %dir /opt/apps/org.tizen.pwlock/data
/opt/apps/org.tizen.pwlock/bin/pwlock
-/opt/apps/org.tizen.pwlock/res/locale/*/LC_MESSAGES/pwlock.mo
+/opt/apps/org.tizen.pwlock/res/locale/*/LC_MESSAGES/pwlock.mo
+/opt/share/packages/org.tizen.pwlock.xml
+/opt/apps/org.tizen.pwlock/res/edje/*.edj
+/opt/apps/org.tizen.pwlock/res/images/*.png
+
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
index 2defb36..504a85c 100755..100644
--- a/po/CMakeLists.txt
+++ b/po/CMakeLists.txt
@@ -1,7 +1,6 @@
# for i18n
-#SET(POFILES de.po en_US.po fr.po ja.po nl.po pt.po ru.po zh_CN.po zh_TW.po el.po es.po it.po ko.po tk.po zh_HK.po)
-SET(POFILES de_DE.po el_GR.po en.po es_ES.po fr_FR.po it_IT.po ja_JP.po ko_KR.po nl_NL.po pt_PT.po ru_RU.po tr_TR.po zh_CN.po zh_HK.po zh_TW.po)
+SET(POFILES ar.po bg.po ca.po cs.po da.po de_DE.po el_GR.po en.po en_US.po es_ES.po fi.po fr_FR.po he.po hi.po hr.po hu.po id.po it_IT.po ja_JP.po ko_KR.po lt.po lv.po ms.po nl_NL.po no.po pl.po pt_PT.po ro.po ru_RU.po sk.po sl.po sr.po sv.po th.po tr_TR.po uk.po vi.po zh_CN.po zh_HK.po zh_TW.po)
SET(MSGFMT "/usr/bin/msgfmt")
diff --git a/po/POTFILES.in b/po/POTFILES.in
deleted file mode 100755
index e6581b0..0000000
--- a/po/POTFILES.in
+++ /dev/null
@@ -1,5 +0,0 @@
-# List of source files containing translatable strings.
-#pwlock.c
-#ui.c
-#langs.c
-pwlock-string.c
diff --git a/po/ar.po b/po/ar.po
new file mode 100644
index 0000000..a0deef8
--- /dev/null
+++ b/po/ar.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "أدخل PIN ثانية"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "حقل كلمة المرور فارغ"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "يلزم كتابة الأرقام من %d إلى %d"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "رمز PIN غير صحيح. محاولة واحدة متبقية"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "رمز PIN غير صحيح. %d محاولة (محاولات) متبقية"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "رمز PIN جديد"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "تم قفل PIN"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "تم إلغاء قفل PIN"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "قفل الشبكة"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "قفل PIN"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "قفل PUK"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "تم حجب بطاقة SIM"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "قفل البطاقة"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "تتبقى محاولة واحدة"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "تخصيص الشركة قيد التشغيل. أدخل مفتاح التحكم"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "أدخل PIN جديد"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "أدخل PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "أدخل PUK"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "خطأ PIN"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "رمز PIN غير صحيح.\n يرجى المحاولة ثانية"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "تخصيص الشبكة قيد التشغيل. أدخل مفتاح التحكم"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "تخصيص الشبكة الفرعية قيد التشغيل. أدخل مفتاح التحكم"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d محاولات متبقية"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "تخصيص مزود الخدمة قيد التشغيل. أدخل مفتاح التحكم"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "بطاقة SIM غير متاحة. اتصل بمزود الخدمة"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "كلمة المرور خاطئة"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "الطالب"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "لغة العرض"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "جاري فحص البطاقة..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "مرحبا!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "اختيار اللغة"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "مكالمة طوارئ"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "انقر للإعداد"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "إنهاء"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "تم إعداد الجهاز وأصبح جاهزا للاستخدام"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "اكتمل الإعداد"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "أوقف تشغيل الجهاز وقم بإخراج البطارية وإدخال بطاقة SIM بعناية بحيث يكون اتجاه جانب التماس الذهبي لأسفل. يجب أن تكون نهاية الجانب المشطوف بعيدة تماما عن البطارية\nإذا كنت ترغب في التخطي الآن، فتأكد من إدخال بطاقة SIM لاحقا. حتى تقوم بإدخالها، لن يعمل الكثير من ميزات الجهاز"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "إعادة محاولة"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "تلقائي"
+
diff --git a/po/bg.po b/po/bg.po
new file mode 100644
index 0000000..a2368f6
--- /dev/null
+++ b/po/bg.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Потвърждаване на новия PIN"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Паролата е празна"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "Изискват се от %d до %d цифри"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "Неправилен PIN. 1 оставащ опит"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "Неправилен PIN. Остават %d опита"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "Нов PIN"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN блокиран"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN деблокиран"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Заключване на мрежа"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "Заключване PIN"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "PUK заключване"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM картата е блокирана"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "Заключване на SIM"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 оставащ опит"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Корпоративно персонализиране включено. Въведете контролния ключ"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Въведи нов PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Въведете PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Въведете PUK"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "Неправилен PIN"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Неправилен PIN.\nМоля, опитайте пак"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Персонализиране на мрежата включено. Въведете контролния ключ"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Персонализиране на подмрежата включено. Въведете контролния ключ"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Остават %d опита"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Персонализиране на доставчик на услуги включено. Въведете контролния ключ"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "SIM картата не е достъпна. Свържете се с доставчика на услугата"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Грешна парола"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Набиращ"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Език за дисплея"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Проверка на SIM картата..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Добре дошли!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Избор на език"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Спешно повикване"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Чукнете, за да настроите"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Край"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Устройството е настроено и готово за използване"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Настройването е завършено"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Изключете устройството, извадете батерията и внимателно поставете SIM картата със златните клеми надолу. Подрязаният ъгъл трябва да се пада в далечния ъгъл спрямо батерията\nАко предпочитате да прескочите сега, обезателно поставете SIM картата си по-късно. Докато не го направите, повечето от функциите на устройството ви няма да работят"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Нов опит"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Автоматично"
+
diff --git a/po/ca.po b/po/ca.po
new file mode 100644
index 0000000..a62fdd2
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Confirmar nou PIN"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Contrasenya buida"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "Es requereixen de %d a %d dígits"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "PIN incorrecte. Queda 1 intent"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "Codi PIN incorrecte. Queden %d intents"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "Nou PIN"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN bloquejat"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN desbloquejat"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Bloqueig de xarxa"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "Bloqueig PIN"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "Bloqueig PUK"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM bloquejada"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "Bloqueig SIM"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Queda 1 intent"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalització corporativa habilitada. Introdueixi la clau de control"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Introduir nou PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Introdueixi PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Introdueixi PUK"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "PIN incorrecte"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "PIN incorrecte.\nTornar a intentar"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalització de xarxa habilitada. Introdueixi la clau de control"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalització de subconjunt de xarxa habilitada. Introdueixi la clau de control"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Queden %d intents"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalització de proveïdor de serveis habilitada. Introdueixi la clau de control"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "Targeta SIM no disponible. Contacti amb el seu proveïdor de serveis"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Contrasenya incorrecta"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Marcador"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Idioma de visualització"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Comprovant targeta SIM..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Benvingut!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Seleccionar idioma"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Trucada d'emergència"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Toqui per a configurar"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Acabar"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "El dispositiu està configurat i llest per utilitzar-se"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Configuració completa"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Apagui el dispositiu, retiri la bateria i insereixi amb cura la targeta SIM amb el contacte daurat cap avall. La cantonada retallada ha de quedar el més lluny possible de la bateria\nSi prefereix ometre aquest pas ara, asseguri's d'inserir la targeta SIM més tard. Fins que no ho faci, la majoria de les funcions del dispositiu no funcionaran"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Reintentar"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automàtica"
+
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 0000000..9094ebc
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Potvrdit nový PIN"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Nevyplněné heslo"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "Požadováno %d až %d číslic"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "Chybný PIN kód. Zbývá 1 pokus"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "Chybný PIN kód. Zbývá %d pokusů"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "Nový PIN kód"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN zablokován"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN odblokován"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Zámek sítě ověřen"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "Zámek PIN"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "Zámek PUK"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM karta blokována"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "Zámek karty SIM"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Zbývá 1 pokus"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Bylo zapnuto podnikové přizpůsobení. Zadejte řídicí klíč"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Zadejte nový PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Zadat PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Zadejte PUK"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "Chybný PIN"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Chybný PIN kód.\nOpakujte zadání"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Bylo zapnuto přizpůsobení sítě. Zadejte řídicí klíč"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Bylo zapnuto přizpůsobení podmnožiny sítě. Zadejte řídicí klíč"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Počet zbývajících pokusů: %d"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Bylo zapnuto přizpůsobení poskytovatele služby. Zadejte řídicí klíč"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "SIM karta je nedostupná. Obraťte se na poskytovatele služeb"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Nesprávné heslo"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Číselník"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Jazyk displeje"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Probíhá kontrola SIM karty..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Vítejte!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Vybrat jazyk"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Tísňové volání"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Nastavte klepnutím sem"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Dokončit"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Zařízení je nastaveno a připraveno k použití"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Nastavení bylo dokončeno"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Vypněte zařízení, vyjměte baterii a opatrně vložte SIM kartu otočenou zlatými kontakty dolů. Zkosený roh musí být co nejdále od baterie\nPokud chcete tento krok přeskočit, nezapomeňte později vložit SIM kartu. Dokud tak neučiníte, nebudete moci používat většinu funkcí zařízení"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Opakovat"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automaticky"
+
diff --git a/po/da.po b/po/da.po
new file mode 100644
index 0000000..1c13654
--- /dev/null
+++ b/po/da.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Bekræft ny PIN-kode"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Adgangskode tom"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "Der kræves %d til %d cifre"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "Forkert PIN-kode. 1 forsøg tilbage"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "Forkert PIN-kode. %d forsøg tilbage"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "Ny PIN"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN-kode"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK-kode"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN spærret"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN-kode ikke spærret"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Netværkslås"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "PIN-lås"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "PUK-lås"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM-kortet er blokeret"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "Personlig SIM-lås"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 forsøg tilbage"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Firmapersonalisering til. Tryk på Kontrol-tast"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Angiv ny PIN-kode"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Angiv PIN-kode"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Angiv PUK-kode"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "Forkert PIN-kode"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Forkert PIN-kode.\nPrøv igen."
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Netværkspersonalisering til. Tryk på Kontrol-tast"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalisering af netværksundersæt til. Tryk på Kontrol-tast"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d forsøg tilbage"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalisering af tjenesteudbyder til. Tryk på Kontrol-tast"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "SIM-kort ikke tilgængeligt. Kontakt din serviceudbyder"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Forkert adgangskode"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Opkald"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Vis sprog"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Kontrollerer SIM-kort..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Velkommen!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Vælg sprog"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Nødopkald"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Tryk for at opsætte"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Udfør"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Enhed er konfigureret og klar til brug"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Opsætning fuldført"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Sluk for din enhed, fjern batteriet og isæt SIM-kortet forsigtigt med den guldfarvede side nedad. Det afskårne hjørne skal være længst væk fra batteriet\nHvis du foretrækker at springe dette over nu, skal du sørge for at indsætte dit SIM-kort senere. De fleste af enhedens funktioner virker ikke, før du gør dette"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Prøv igen"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automatisk"
+
diff --git a/po/de_DE.po b/po/de_DE.po
index df48002..8572355 100755..100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -28,17 +28,8 @@ msgstr "PIN gesperrt"
msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
msgstr "PIN entsperrt"
-msgid "IDS_IDLE_BUTTON_CANCEL"
-msgstr "Abbr."
-
-msgid "IDS_IDLE_BODY_AUTOMATIC"
-msgstr "Automatisch"
-
msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
-msgstr "Netzsperre"
-
-msgid "IDS_IDLE_HEADER_PHONE_LOCK"
-msgstr "Telefonsperre"
+msgstr "SIM-Sperre"
msgid "IDS_IDLE_HEADER_PIN_LOCK"
msgstr "PIN-Sperre"
@@ -56,7 +47,7 @@ msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
msgstr "Noch 1 Versuch"
msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
-msgstr "Unternehmenspersonalisierung aktiviert. Steuertaste eingeben"
+msgstr "Unternehmenspersonalisierung aktiviert. Entsperrcode eingeben."
msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
msgstr "Neue PIN eingeben"
@@ -73,33 +64,21 @@ msgstr "Falsche PIN"
msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
msgstr "Ungültige PIN.\nErneut versuchen"
-msgid "IDS_IDLE_BODY_INCORRECT_PUK"
-msgstr "Falscher PUK"
-
-msgid "IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED"
-msgstr "Sprache nicht unterstützt"
-
msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
-msgstr "Netzwerkpersonalisierung aktiviert. Steuertaste eingeben"
+msgstr "Netzwerkpersonalisierung aktiviert. Entsperrcode eingeben."
msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
-msgstr "Netzwerk Teil-Personalisierung aktiviert. Steuertaste eingeben"
-
-msgid "IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG"
-msgstr "Das Passwort muss 4 Stellen lang sein"
+msgstr "Netzwerk Teil-Personalisierung aktiviert. Entsperrcode eingeben."
msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
msgstr "%d Versuche übrig"
msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
-msgstr "Dienstanbieterpersonalisierung aktiviert. Steuertaste eingeben"
+msgstr "Dienstanbieterpersonalisierung aktiviert. Entsperrcode eingeben."
msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
msgstr "SIM nicht verfügbar. Wenden Sie sich an Ihren Dienstanbieter"
-msgid "IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE"
-msgstr "SIM-Kartensprache kann nicht gelesen werden"
-
msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
msgstr "Falsches Passwort"
@@ -109,3 +88,36 @@ msgstr "Wählen"
msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
msgstr "Anzeigesprache"
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "SIM-Karte wird geprüft..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Willkommen!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Sprache auswählen"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Notruf"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Zum Einrichten tippen"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Beenden"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Das Gerät ist eingerichtet und betriebsbereit"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Einrichtung abgeschlossen"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Schalten Sie das Gerät aus, entfernen Sie den Akku und legen Sie die SIM-Karte vorsichtig und mit den Kontaktflächen nach unten ein. Die abgerundete Ecke der Karte sollte dabei am weitesten vom Akku entfernt liegen.\nFalls Sie diesen Schritt jetzt überspringen möchten, sollten Sie die SIM-Karte später einlegen. Ohne SIM-Karte sind die meisten Funktionen Ihres Geräts nicht verfügbar."
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Erneut"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automatisch"
+
diff --git a/po/el_GR.po b/po/el_GR.po
index 632625d..9faab18 100755..100644
--- a/po/el_GR.po
+++ b/po/el_GR.po
@@ -28,18 +28,9 @@ msgstr "Εμπλοκή ΡΙΝ"
msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
msgstr "Απεμπλοκή ΡΙΝ"
-msgid "IDS_IDLE_BUTTON_CANCEL"
-msgstr "Ακύρωση"
-
-msgid "IDS_IDLE_BODY_AUTOMATIC"
-msgstr "Αυτόματα"
-
msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
msgstr "Κλείδωμα δικτύου"
-msgid "IDS_IDLE_HEADER_PHONE_LOCK"
-msgstr "Κλείδωμα τηλεφώνου"
-
msgid "IDS_IDLE_HEADER_PIN_LOCK"
msgstr "Κλείδωμα PIN"
@@ -73,21 +64,12 @@ msgstr "Λάθος PIN"
msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
msgstr "Εσφαλμένο ΡΙΝ.\nΠαρακαλώ προσπαθήστε ξανά"
-msgid "IDS_IDLE_BODY_INCORRECT_PUK"
-msgstr "Λάθος PUK"
-
-msgid "IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED"
-msgstr "Η γλώσσα δεν υποστηρίζεται"
-
msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Εξατομίκευση δικτύου ενεργή. Εισαγάγετε πλήκτρο ελέγχου"
msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Εξατομίκευση υποσυνόλου δικτύου ενεργή. Εισαγάγετε πλήκτρο ελέγχου"
-msgid "IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG"
-msgstr "Ο κωδικός πρόσβασης πρέπει να είναι τετραψήφιος"
-
msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
msgstr "%d προσπάθειες απομένουν"
@@ -97,9 +79,6 @@ msgstr "Εξατομίκευση παροχέα υπηρεσιών ενεργή.
msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
msgstr "Μη διαθέσιμη κάρτα SIM. Επικοινωνήστε με τον παροχέα υπηρεσιών"
-msgid "IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE"
-msgstr "Δεν είναι δυνατή η ανάγνωση της γλώσσας της κάρτας SIM"
-
msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
msgstr "Λάθος κωδικός"
@@ -109,3 +88,36 @@ msgstr "Επ. κλήσ."
msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
msgstr "Γλώσσα εμφάνισης"
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Έλεγχος κάρτας SIM..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Καλώς ορίσατε!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Επιλογή γλώσσας"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Κλήση έκτακτης ανάγκης"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Πατήστε για ρύθμιση"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Τέλος"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Η συσκευή ρυθμίστηκε και είναι έτοιμη για χρήση"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Η ρύθμιση ολοκληρώθηκε"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Απενεργοποιήστε τη συσκευή σας, αφαιρέστε τη μπαταρία και τοποθετήστε προσεκτικά την κάρτα SIM με την πλευρά των χρυσών επαφών προς τα κάτω. Η στρογγυλεμένη γωνία θα πρέπει να είναι η πιο απομακρυσμένη πλευρά σε σχέση με τη μπαταρία\nΕάν προτιμάτε να κάνετε παράκαμψη τώρα, φροντίστε να τοποθετήσετε την κάρτα SIM αργότερα. Μέχρι να γίνει αυτό, οι περισσότερες από τις λειτουργίες της συσκευής σας δεν θα είναι διαθέσιμες"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Δοκιμ. ξανά"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Αυτόματα"
+
diff --git a/po/en.po b/po/en.po
index bc087e4..e984ae2 100755..100644
--- a/po/en.po
+++ b/po/en.po
@@ -28,18 +28,9 @@ msgstr "PIN blocked"
msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
msgstr "PIN unblocked"
-msgid "IDS_IDLE_BUTTON_CANCEL"
-msgstr "Cancel"
-
-msgid "IDS_IDLE_BODY_AUTOMATIC"
-msgstr "Automatic"
-
msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
msgstr "Network lock"
-msgid "IDS_IDLE_HEADER_PHONE_LOCK"
-msgstr "Phone lock"
-
msgid "IDS_IDLE_HEADER_PIN_LOCK"
msgstr "PIN lock"
@@ -73,21 +64,12 @@ msgstr "Incorrect PIN"
msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
msgstr "Incorrect PIN. Try again"
-msgid "IDS_IDLE_BODY_INCORRECT_PUK"
-msgstr "Incorrect PUK"
-
-msgid "IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED"
-msgstr "Language not supported"
-
msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Network personalisation on. Enter control key"
msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Network subset personalisation on. Enter control key"
-msgid "IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG"
-msgstr "Password must be 4 digits long"
-
msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
msgstr "%d attempts left"
@@ -97,15 +79,45 @@ msgstr "Service provider personalisation on. Enter control key"
msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
msgstr "SIM card not available. Contact your service provider"
-msgid "IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE"
-msgstr "Unable to read SIM card language"
-
msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
msgstr "Wrong password"
msgid "IDS_IDLE_BUTTON_DIALER"
-msgstr "Dialer"
+msgstr "Dialler"
msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
msgstr "Display language"
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Checking SIM card..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Welcome!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Select language"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Emergency call"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Tap to set up"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Finish"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Device is set up and ready to use"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Setup complete"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Turn off your device, remove the battery, and carefully insert your SIM card with the gold contact side down. The cut-off corner should end up furthest away from the battery\nIf you prefer to skip now, be sure to insert your SIM card later. Until you do, most of your device’s features will not work"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Try again"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automatic"
+
diff --git a/po/en_US.po b/po/en_US.po
new file mode 100644
index 0000000..5cb4dec
--- /dev/null
+++ b/po/en_US.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Confirm new PIN"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Password empty"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "%d to %d digits required"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "Incorrect PIN. 1 attempt left"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "Incorrect PIN. %d attempts left"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "New PIN"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN blocked"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN unblocked"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Network lock"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "PIN lock"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "PUK lock"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM blocked"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "SIM lock"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 attempt left"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Corporate personalization on. Enter control key"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Enter new PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Enter PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Enter PUK"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "Incorrect PIN"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Incorrect PIN. Try again"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Network personalization on. Enter control key"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Network subset personalization on. Enter control key"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d attempts left"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Service provider personalization on. Enter control key"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "SIM card not available. Contact your service provider"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Wrong password"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Dialer"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Display language"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Checking SIM card..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Welcome!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Select language"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Emergency call"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Tap to set up"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Finish"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Device is set up and ready to use"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Setup complete"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Turn off your device, remove the battery, and carefully insert your SIM card with the gold contact side down. The cut-off corner should end up furthest away from the battery\nIf you prefer to skip now, be sure to insert your SIM card later. Until you do, most of your device’s features will not work"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Try again"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automatic"
+
diff --git a/po/es_ES.po b/po/es_ES.po
index a69008e..c0c5e2c 100755..100644
--- a/po/es_ES.po
+++ b/po/es_ES.po
@@ -1,5 +1,5 @@
msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
-msgstr "Confirmar PIN nuevo"
+msgstr "Confirme el nuevo código PIN"
msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
msgstr "Contraseña vacía"
@@ -28,18 +28,9 @@ msgstr "PIN bloqueado"
msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
msgstr "PIN desbloqueado"
-msgid "IDS_IDLE_BUTTON_CANCEL"
-msgstr "Cancelar"
-
-msgid "IDS_IDLE_BODY_AUTOMATIC"
-msgstr "Automático"
-
msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
msgstr "Bloqueo red"
-msgid "IDS_IDLE_HEADER_PHONE_LOCK"
-msgstr "Bloqueo del teléfono"
-
msgid "IDS_IDLE_HEADER_PIN_LOCK"
msgstr "Bloqueo de PIN"
@@ -73,21 +64,12 @@ msgstr "PIN incorrecto"
msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
msgstr "PIN incorrecto. Vuelva a intentarlo"
-msgid "IDS_IDLE_BODY_INCORRECT_PUK"
-msgstr "PUK incorrecto"
-
-msgid "IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED"
-msgstr "Idioma no admitido"
-
msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Personalización de red activada. Pulse tecla Control"
msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Personalización de subconjunto de red activada. Pulse tecla Control"
-msgid "IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG"
-msgstr "La contraseña debe tener 4 dígitos de longitud"
-
msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
msgstr "Quedan %d intentos"
@@ -97,9 +79,6 @@ msgstr "Personalización de proveedor de servicios activada. Pulse tecla Control
msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
msgstr "Tarjeta SIM no disponible. Póngase en contacto con el proveedor de servicios"
-msgid "IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE"
-msgstr "No se puede leer idioma de tarjeta SIM"
-
msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
msgstr "Contraseña incorrecta"
@@ -109,3 +88,36 @@ msgstr "Marcador"
msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
msgstr "Idioma para mostrar"
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Comprobando tarjeta SIM..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "¡Bienvenido!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Seleccionar idioma"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Llamada de emergencia"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Tocar para configurar"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Finalizar"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "El dispositivo está configurado y listo para usarse"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Configuración completa"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Apague el dispositivo, retire la batería e inserte cuidadosamente la tarjeta SIM con la parte dorada hacia abajo. La esquina recortada debería quedar lo más lejos posible de la batería\nSi prefiere omitir este paso ahora, asegúrese de insertar la tarjeta SIM más tarde. Hasta que no lo haga, la mayoría de funciones del dispositivo no funcionarán"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Reintentar"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automático"
+
diff --git a/po/fi.po b/po/fi.po
new file mode 100644
index 0000000..c1d23c7
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Vahvista uusi PIN-koodi"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Salasana tyhjä"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "Vaaditaan %d - %d numeroa"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "Virheellinen PIN-koodi. 1 yritys jäljellä"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "Virheellinen PIN-koodi. %d yritystä jäljellä"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "Uusi PIN-koodi"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN-koodi lukittu"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN-lukitus poistettu"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Verkkolukko"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "PIN-lukitus"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "PUK-lukitus"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM-kortti estetty"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "SIM-kortin lukitus"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 yritys jäljellä"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Yrityksen yksilöinti on käytössä. Anna hallintatunnus"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Anna uusi PIN-koodi"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Anna PIN-koodi"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Anna PUK-koodi"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "Virheellinen PIN-koodi"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Virheellinen PIN-koodi.\nYritä uudelleen"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Verkon yksilöinti on käytössä. Anna hallintatunnus"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Verkon osittainen yksilöinti on käytössä. Anna hallintatunnus"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d yritystä jäljellä"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Palveluntarjoajan yksilöinti on käytössä. Anna hallintatunnus"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "SIM-kortti ei käytettävissä. Ota yhteyttä palveluntarjoajaan"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Väärä salasana"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Num.val."
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Näyttökieli"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Tarkistetaan SIM-korttia..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Tervetuloa!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Valitse kieli"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Hätäpuhelu"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Määritä napauttamalla"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Valmis"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Laite on määritetty ja valmiina käyttöön"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Asennus valmis"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Katkaise laitteesta virta, irrota akku ja aseta SIM-kortti varovasti laitteeseen niin, että kullattu kontaktipuoli on alaspäin. Katkaistun kulman pitäisi olla kauimpana akusta\nJos haluat ohittaa tämän vaiheen nyt, muista asettaa SIM-kortti laitteeseen myöhemmin. Tätä ennen useimmat laitteen toiminnoista eivät toimi"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Yritä uud."
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automaattinen"
+
diff --git a/po/fr_FR.po b/po/fr_FR.po
index d24bf42..6e6484b 100755..100644
--- a/po/fr_FR.po
+++ b/po/fr_FR.po
@@ -1,5 +1,5 @@
msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
-msgstr "Confirmer nouveau code PIN"
+msgstr "Confirmer le nouveau code PIN"
msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
msgstr "Mot de passe vide"
@@ -28,18 +28,9 @@ msgstr "Code PIN bloqué"
msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
msgstr "Code PIN débloqué"
-msgid "IDS_IDLE_BUTTON_CANCEL"
-msgstr "Annuler"
-
-msgid "IDS_IDLE_BODY_AUTOMATIC"
-msgstr "Automatique"
-
msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
msgstr "Code blocage réseau"
-msgid "IDS_IDLE_HEADER_PHONE_LOCK"
-msgstr "Verrouillage téléphone"
-
msgid "IDS_IDLE_HEADER_PIN_LOCK"
msgstr "Verrouillage PIN"
@@ -73,21 +64,12 @@ msgstr "Code PIN incorrect"
msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
msgstr "Code PIN incorrect\nRéessayez"
-msgid "IDS_IDLE_BODY_INCORRECT_PUK"
-msgstr "Code PUK incorrect"
-
-msgid "IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED"
-msgstr "Langue non prise en charge"
-
msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Personnalisation réseau activée. Appuyez sur Contrôle"
msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Personnalisation sous-réseau activée. Appuyez sur Contrôle"
-msgid "IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG"
-msgstr "Le mot de passe doit comporter 4 chiffres"
-
msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
msgstr "%d essais restants"
@@ -97,9 +79,6 @@ msgstr "Personnalisation fournisseur d'accès activée. Appuyez sur Contrôle"
msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
msgstr "Carte SIM non disponible. Contactez votre opérateur"
-msgid "IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE"
-msgstr "Impossible de lire la langue de la carte SIM"
-
msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
msgstr "Mot de passe incorrect"
@@ -109,3 +88,36 @@ msgstr "Clavier"
msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
msgstr "Langue d'affichage"
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Vérification carte SIM..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Bienvenue !"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Sélectionner la langue"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Appel d'urgence"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Appuyez pour configurer"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Terminer"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "L'appareil est configuré et prêt à l'emploi"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Configuration terminée"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Eteignez votre appareil, retirez la batterie et insérez délicatement votre carte SIM en orientant le côté du contact doré vers le bas. Le coin coupé doit être le plus éloigné de la batterie\nSi vous préférez sauter cette étape, veillez à insérer votre carte SIM plus tard. En attendant, la plupart des fonctions de l'appareil ne fonctionneront pas"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Réessayez"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automatique"
+
diff --git a/po/he.po b/po/he.po
new file mode 100644
index 0000000..246f945
--- /dev/null
+++ b/po/he.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "אשר PIN חדש"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "הסיסמה ריקה"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "נדרשות %d עד %d ספרות"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "PIN שגוי. 1 ניסיון נותר"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "PIN שגוי. נותרו %d ניסיונות"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "PIN חדש"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK קוד"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN חסום"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "חסימת PIN בוטלה"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "נעילת רשת"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "PIN אימות"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "PUK נעול"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM חסום"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "SIM נעילת"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "נותר 1 ניסיון"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "התאמה אישית של חברה מופעלת. הזן מקש בקרה"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "חדש PIN קוד"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "הזן PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "הזן PUK"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "קוד PIN שגוי"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "PIN שגוי.\nנסה שוב"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "התאמה אישית של הרשת מופעלת. הזן מקש בקרה"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "התאמה אישית של תת הרשת מופעלת. הזן מקש בקרה"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "נותרו %d ניסיונות"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "התאמה אישית של ספק השירות מופעלת. הזן מקש בקרה"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "כרטיס SIM לא זמין. צור קשר עם ספק השירות שלך"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "סיסמה שגויה"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "חייגן"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "שפת תצוגה"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "בודק כרטיס SIM..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "ברוך הבא!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "בחירת שפת המכשיר"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "שיחת חירום"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "הקש להגדרה"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "סיום"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "ההתקן מוגדר ומוכן לשימוש"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "ההגדרה הושלמה"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "כבה את ההתקן, הסר את הסוללה והכנס בזהירות את כרטיס ה-SIM שלך, עם צד המגעים המוזהב כלפי מטה. הפינה החתוכה צריכה להגיע לנקודה הרחוקה ביותר מהסוללה\nאם אתה מעוניין לדלג על שלב זה כעת, זכור להכניס את כרטיס ה-SIM מאוחר יותר. עד שתעשה זאת, רוב התכונות של ההתקן לא יעבדו"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "נסה שוב"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "אוטומטי"
+
diff --git a/po/hi.po b/po/hi.po
new file mode 100644
index 0000000..848165b
--- /dev/null
+++ b/po/hi.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "नए PIN की पुष्टि करें"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "पासवर्ड खाली"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "%d से %d अंक आवश्यक"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "गलत PIN। 1 प्रयास बाकी"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "गलत PIN। %d प्रयास बाकी"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "नया PIN"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "पुक"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN अवरुद्ध"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN अनब्लॉक है"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "नेटवर्क लॉक"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "PIN लॉक"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "पुक लॉक"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM ब्‍लॉक कर दी गई"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "सिम लॉक"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 प्रयास शेष"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "कॉरपोरेट व्यक्तिकरण चालू। कंट्रोल कुंजी दर्ज करें"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "नया PIN प्रविष्ट करें"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "PIN प्रविष्ट करें"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "पुक प्रविष्ट करें"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "गलत PIN"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "गलत PIN.\nफिर से कोशिश करें"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "नेटवर्क व्यक्तिकरण चालू। कंट्रोल कुंजी दर्ज करें"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "नेटवर्क सबसेट व्यक्तिकरण चालू। कंट्रोल कुंजी दर्ज करें"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d प्रयास शेष"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "सेवा प्रदाता व्यक्तिकरण चालू। कंट्रोल कुंजी दर्ज करें"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "सिम कार्ड उपलब्ध नहीं। अपने सेवा प्रदाता से संपर्क करें"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "गलत पासवर्ड"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "डायलर"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "भाषा प्रदर्शन"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "SIM कार्ड जाँच रहा है…"
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "स्वागत है!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "भाषा चुनें"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "आपातकाल कॉल"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "सेटअप करने के लिए टैप करें"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "समाप्त"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "डिवाइस सेट है और उपयोग के लिए तैयार है"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "सेटअप पूर्ण"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "अपने डिवाइस को बंद करें, बैटरी निकालें, और सावधानी से नीचे की ओर गोल्ड स्पर्श करते हुए अपनी SIM डालें। कट-ऑफ़ कोना बैटरी से दूर समाप्त होना चाहिए\nयदि आप अभी छोड़ने को प्राथमिकता देते है तो SIM को बाद में डालना सुनिश्चित करें। जब तक आप ऐसा नहीं करते आपके डिवाइस की अधिकांश सुविधाएँ कार्य नहीं करेंगी"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "पुन: प्रयास"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "स्वचालित"
+
diff --git a/po/hr.po b/po/hr.po
new file mode 100644
index 0000000..dc88fb3
--- /dev/null
+++ b/po/hr.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Potvrdite novi PIN"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Šifra prazna"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "Potrebno %d do %d znamenki"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "Netočan PIN. Preostao 1 pokušaj"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "Netočan PIN. Preostalo %d pokušaja"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "Novi PIN"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN blokiran"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN deblokiran"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Zaključavanje mreže uspješno"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "PIN zaključavanje"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "PUK zaključan"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "Blokiran SIM"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "SIM zaključavanje"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Još 1 pokušaj"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Uključena korporativna personalizacija. Unesite kontrolni ključ"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Unesite novi PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Unesite PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Unesite PUK"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "Neispravan PIN"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Netočan PIN\nPokušaj ponovno"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Uključena mrežna personalizacija. Unesite kontrolni ključ"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Uključena podmrežna personalizacija. Unesite kontrolni ključ"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d pokušaja preostalo"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Uključena personalizacija davatelja usluga. Unesite kontrolni ključ"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "SIM kartica nije dostupna. Kontaktirajte svog davatelja usluga"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Neispravna šifra"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Biranje"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Jezik teksta"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Provjera SIM kartice..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Dobro došli!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Odaberite jezik"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "SOS poziv"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Dotaknite za postavljanje"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Završi"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Uređaj je postavljen i spreman za korištenje."
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Postavljanje dovršeno"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Isključite uređaj, izvadite bateriju i pažljivo umetnite SIM karticu sa zlatnim kontaktom okrenutim prema dolje. Odrezani kut treba biti usmjeren najdalje od baterije\nAko želite preskočiti sada, umetnite SIM karticu kasnije. Dok to ne napravite većina značajki na vašem uređaju neće raditi"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Ponovite"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automatski"
+
diff --git a/po/hu.po b/po/hu.po
new file mode 100644
index 0000000..0946f05
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Írja be újra az új PIN-kódot!"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Üres jelszó"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "%d–%d számjegy szükséges"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "Hibás PIN kód. Még 1 próbálkozása van"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "Helytelen PIN. %d alkalommal próbálkozhat még."
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "Új PIN"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN blokkolva"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "A PIN blokkolás feloldva"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Hálózati zár"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "PIN védelem"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "PUK-zár"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM letiltva"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "SIM biztonság"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Még 1 próbálkozásra van"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Vállalatzár bekapcsolva. A feloldáshoz adja meg a feloldókódot"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Írja be az új PIN-kódot!"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Írja be a PIN-kódot!"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Írja be a PUK-kódot!"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "Hibás PIN-kód"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Hibás PIN-kód.\nPróbálja újra"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Hálózatzár bekapcsolva. A feloldáshoz adja meg a feloldókódot"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Alhálózatzár bekapcsolva. A feloldáshoz adja meg a kódot"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d kísérlet maradt."
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Szolgáltatózár bekapcsolva. A feloldáshoz adja meg a feloldókódot"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "A SIM nem elérhető. Forduljon a szolgáltatóhoz"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Téves jelszó"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Tárcsázó"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Kijelző nyelve"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "SIM-kártya ellenőrzése..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Üdvözöljük!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Nyelv kiválasztása"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Segélyhívás"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Érintse meg a beállításhoz"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Befejez"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Az eszköz beállítva, használatra kész"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "A beállítás befejeződött"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Kapcsolja ki az eszközt, vegye ki az akkumulátort, és óvatosan helyezze be a SIM kártyát az aranyszínű érintkezőkkel lefelé. A kártya levágott sarka kerüljön az akkumulátortól távolabbi oldalra\nHa ezt a lépést most kihagyja, ne felejtse el a SIM kártyát később behelyezni. Amíg ezt meg nem teszi, az eszköz legtöbb funkciója nem lesz használható"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Prób. újra"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automatikus"
+
diff --git a/po/id.po b/po/id.po
new file mode 100644
index 0000000..a883c0a
--- /dev/null
+++ b/po/id.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Konfirmasi PIN baru"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Kata sandi kosong"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "diperlukan %d hingga %d digit"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "PIN salah. 1 kesempatan tersisa"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "PIN salah. %d kesempatan tersisa"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "PIN baru"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN terblokir"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN terbuka"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Kunci jaringan"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "Kunci PIN"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "Kunci PUK"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM diblokir"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "Kunci SIM"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 kesempatan tersisa"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalisasi perusahaan aktif. Masukkan kunci kontrol"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Masukkan PIN baru"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Masukkan PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Masukkan PUK"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "PIN salah"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "PIN salah.\nCoba lagi"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalisasi jaringan aktif. Masukkan kunci kontrol"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalisasi subset jaringan diaktifkan. Masukkan kunci kontrol"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d mencoba meninggalkan"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalisasi penyedia layanan diaktifkan. Masukkan kunci kontrol"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "Kartu SIM tidak tersedia. Hubungi penyedia layanan"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Kata sandi salah"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Pendial"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Bahasa tampilan"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Memeriksa kartu SIM..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Selamat datang!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Pilih bahasa"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Panggilan darurat"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Ketuk untuk mengatur"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Selesai"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Perangkat telah disetel dan siap digunakan"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Penyetelan selesai"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Matikan perangkat Anda, lepaskan baterainya, dan dengan hati-hati masukkan kartu SIM Anda dengan sisi kontak emas di bawah. Sudut terpangkas harus berada di titik terjauh dari baterai\nJika Anda memilih melewati langkah ini sekarang, pastikan untuk memasukkan kartu SIM Anda nanti. Sebelum Anda melakukannya, sebagian besar fitur perangkat Anda tidak akan berfungsi"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Coba lagi"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Otomatis"
+
diff --git a/po/it_IT.po b/po/it_IT.po
index fc053f3..2d5877f 100755..100644
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -28,18 +28,9 @@ msgstr "PIN bloccato"
msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
msgstr "PIN sbloccato"
-msgid "IDS_IDLE_BUTTON_CANCEL"
-msgstr "Annulla"
-
-msgid "IDS_IDLE_BODY_AUTOMATIC"
-msgstr "Automatica"
-
msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
msgstr "Blocco rete"
-msgid "IDS_IDLE_HEADER_PHONE_LOCK"
-msgstr "Blocco telefono"
-
msgid "IDS_IDLE_HEADER_PIN_LOCK"
msgstr "Blocco PIN"
@@ -73,23 +64,14 @@ msgstr "PIN errato"
msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
msgstr "PIN errato.\nRiprovare"
-msgid "IDS_IDLE_BODY_INCORRECT_PUK"
-msgstr "PUK errato"
-
-msgid "IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED"
-msgstr "Lingua non supportata"
-
msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Personalizzazione di rete attiva. Immettere il tasto di controllo"
msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Personalizzazione del sottoinsieme di rete attiva. Immettere il tasto di controllo"
-msgid "IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG"
-msgstr "La password deve contenere 4 cifre"
-
msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
-msgstr "%d tentativi possibili"
+msgstr "%d tentativi rimasti"
msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Personalizzazione del fornitore di servizi attiva. Immettere il tasto di controllo"
@@ -97,9 +79,6 @@ msgstr "Personalizzazione del fornitore di servizi attiva. Immettere il tasto di
msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
msgstr "Scheda SIM non disponibile, contattare il fornitore di servizi"
-msgid "IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE"
-msgstr "Impossibile leggere la lingua della scheda SIM"
-
msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
msgstr "Password errata"
@@ -109,3 +88,36 @@ msgstr "Componi"
msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
msgstr "Lingua display"
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Verifica scheda SIM..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Benvenuto"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Seleziona lingua"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Chiamata di emergenza"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Tocca per eseguire la configurazione"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Fine"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Il dispositivo è configurato e pronto per l'uso"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Configurazione completata"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Spegnete il dispositivo, rimuovete la batteria e inserite con attenzione la scheda SIM con il contatto dorato rivolto verso il basso. L'angolo smussato deve trovarsi dal lato opposto rispetto alla batteria.\nSe desiderate saltare la procedura guidata, accertatevi di inserire la scheda SIM in seguito, altrimenti la maggior parte delle funzioni del dispositivo non funzionerà"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Riprova"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automatica"
+
diff --git a/po/ja_JP.po b/po/ja_JP.po
index 4fb280f..a20d279 100755..100644
--- a/po/ja_JP.po
+++ b/po/ja_JP.po
@@ -1,8 +1,8 @@
msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
-msgstr "新しい​PIN​を​確認​"
+msgstr "新しい​PIN​の​確認​します"
msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
-msgstr "パスワードを入力"
+msgstr "パスワードを入力してください"
msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
msgstr "%d​~​%d桁​が​必要"
@@ -23,23 +23,14 @@ msgid "IDS_IDLE_BODY_PUK"
msgstr "PUK"
msgid "IDS_IDLE_POP_PIN_BLOCKED"
-msgstr "PIN​が​ブロック​されました"
+msgstr "PINがブロックされました。"
msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
msgstr "PINが​ブロック​解除​されました"
-msgid "IDS_IDLE_BUTTON_CANCEL"
-msgstr "キャンセル"
-
-msgid "IDS_IDLE_BODY_AUTOMATIC"
-msgstr "自動"
-
msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
msgstr "ネットワーク​ロック"
-msgid "IDS_IDLE_HEADER_PHONE_LOCK"
-msgstr "端末ロック"
-
msgid "IDS_IDLE_HEADER_PIN_LOCK"
msgstr "PIN​認証"
@@ -56,56 +47,77 @@ msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
msgstr "残りの​試行回​数は​1回です"
msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
-msgstr "コーポレート​パーソナライゼーション​が​On​です。​コントロール​キーを​入力​して​ください"
+msgstr "コーポレートパーソナライゼーションがONです。コントロール​キーを入力してください"
msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
msgstr "新しい​PIN​を​入力"
msgid "IDS_IDLE_BODY_ENTER_PIN"
-msgstr "PIN​を​入力"
+msgstr "PINを入力してください。"
msgid "IDS_IDLE_BODY_ENTER_PUK"
msgstr "PUK​を​入力"
msgid "IDS_IDLE_BODY_INCORRECT_PIN"
-msgstr "PINが​間違って​います"
+msgstr "PINが間違っています。"
msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
-msgstr "PINが​間違って​います。もう一度​やり直して​ください"
-
-msgid "IDS_IDLE_BODY_INCORRECT_PUK"
-msgstr "PUK​が​間違って​います"
-
-msgid "IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED"
-msgstr "対応​して​いない​言語です"
+msgstr "PINが​間違って​います。再度入力して​ください。"
msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
-msgstr "ネットワーク​パーソナライゼーション​が​On​です。​コントロール​キー​を​入力​して​ください"
+msgstr "ネットワークパーソナライゼーションがONです。コントロールキーを入力してください"
msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
-msgstr "ネットワーク​サブセット​パーソナライゼーション​が​On​です。​コントロール​キー​を​入力​して​ください"
-
-msgid "IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG"
-msgstr "パスワードは​4桁の​数字で​なければなりません"
+msgstr "ネットワークサブセットパーソナライゼーションがONです。コントロールキーを入力してください"
msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
-msgstr "残りの​試行​回数​:%d"
+msgstr "残り​入力​回数:​%d回"
msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
-msgstr "サービスプロバイダー​パーソナライゼーション​が​On​です。​コントロール​キー​を​入力​して​ください"
+msgstr "サービスプロバイダパーソナライゼーションがONです。コントロールキーを入力してください。"
msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
-msgstr "SIMカード​を​使用​できません。​サービスプロバイダー​に​ご連絡​ください"
-
-msgid "IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE"
-msgstr "SIM​カード​の​言語​を​読み込め​ません"
+msgstr "SIMカードを使用できません。サービスプロバイダにご連絡ください。"
msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
-msgstr "不正な​パスワード"
+msgstr "パスワードが正しくありません。"
msgid "IDS_IDLE_BUTTON_DIALER"
-msgstr "アイドル状態"
+msgstr "キーパッド"
msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
msgstr "言語​表示"
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "SIM​​カード​を​チェック中..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "ようこそ"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "言語​を​選択​"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "緊急通報"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "タップして設定"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "完了"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "端末の​設定​が​完了​し、​使用​可能​な​状態​に​なり​ました。"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "セットアップが完了しました。"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "端末の電源をOFFにし、バッテリーを取り外し、金色の端子面を下側にして慎重にSIMカードを挿入してください。切欠き部分がバッテリーから一番離れるように挿入します。\nスキップする場合は、後ほどSIMカードを必ず挿入してください。端末の大部分の機能は、SIMカードを挿入しないと動作しません。"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "再試行"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "自動"
+
diff --git a/po/ko_KR.po b/po/ko_KR.po
index 24f9fc6..bcfa901 100755..100644
--- a/po/ko_KR.po
+++ b/po/ko_KR.po
@@ -11,7 +11,7 @@ msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
msgstr "PIN이 바르지 않습니다. 재입력 기회가 1회 남았습니다"
msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
-msgstr "PIN이 바르지 않습니다. 재입력 기회가 %d번 남았습니다"
+msgstr "PIN이 바르지 않습니다. 입력 기회가 %d번 남았습니다"
msgid "IDS_IDLE_BODY_NEW_PIN"
msgstr "새 PIN"
@@ -28,18 +28,9 @@ msgstr "PIN이 잠겼습니다"
msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
msgstr "PIN 잠금이 해제되었습니다"
-msgid "IDS_IDLE_BUTTON_CANCEL"
-msgstr "취소"
-
-msgid "IDS_IDLE_BODY_AUTOMATIC"
-msgstr "자동"
-
msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
msgstr "네트워크 잠금"
-msgid "IDS_IDLE_HEADER_PHONE_LOCK"
-msgstr "휴대폰 잠금"
-
msgid "IDS_IDLE_HEADER_PIN_LOCK"
msgstr "PIN 잠금"
@@ -73,23 +64,14 @@ msgstr "PIN이 바르지 않습니다"
msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
msgstr "PIN이 바르지 않습니다. 다시 입력하세요"
-msgid "IDS_IDLE_BODY_INCORRECT_PUK"
-msgstr "PUK이 바르지 않습니다"
-
-msgid "IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED"
-msgstr "지원되지 않는 언어입니다"
-
msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "네트워크 잠금이 실행되어 있습니다. 제어키를 입력하세요"
msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "네트워크 서브셋 잠금이 실행되어 있습니다. 제어키를 입력하세요"
-msgid "IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG"
-msgstr "비밀번호는 4자리보다 길어야 합니다"
-
msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
-msgstr "재입력 기회가 %d회 남았습니다"
+msgstr "입력 기회가 %d회 남았습니다"
msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "서비스 사업자 잠금이 실행되어 있습니다. 제어키를 입력하세요"
@@ -97,15 +79,45 @@ msgstr "서비스 사업자 잠금이 실행되어 있습니다. 제어키를
msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
msgstr "SIM 카드를 사용할 수 없습니다. 서비스 사업자에게 문의하세요"
-msgid "IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE"
-msgstr "SIM 카드 언어를 읽을 수 없습니다"
-
msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
msgstr "비밀번호가 바르지 않습니다"
msgid "IDS_IDLE_BUTTON_DIALER"
-msgstr "다이얼"
+msgstr "키패드"
msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
msgstr "언어 선택"
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "SIM 확인 중..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "환영합니다!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "언어 선택"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "긴급전화"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "설정하려면 누르세요"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "종료"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "디바이스가 설정되어 사용할 준비가 되었습니다"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "설정되었습니다"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "디바이스를 끄고, 배터리를 제거하고, 금색 접촉면이 아래를 향하도록 SIM 카드를 조심스럽게 삽입합니다. 잘린 모서리는 배터리에서 멀리 위치해야 합니다\n지금 건너뛰면 나중에 반드시 SIM 카드를 삽입하십시오. 대부분의 디바이스 기능은 SIM 카드를 삽입해야 작동합니다"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "다시 시도"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "자동"
+
diff --git a/po/lt.po b/po/lt.po
new file mode 100644
index 0000000..1c5889a
--- /dev/null
+++ b/po/lt.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Patvirtinti naują PIN kodą"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Nėra slaptažodžio"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "Reikia nurodyti %d–%d skaitmenis"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "Neteisingas PIN. Liko 1 bandymas"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "Neteisingas PIN. Liko %d bandymų"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "Naujas PIN"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN kodas"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK kodas"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN kodas užblokuotas"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN kodas atblokuotas"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Tinklo užraktas perduotas"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "PIN užraktas"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "PUK blokavimas"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM užblokuota"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "SIM užrakinimas"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Liko 1 bandymas"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Įjungtas įmonės personalizavimas. Įveskite valdymo raktą"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Įvesti naują PIN kodą"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Įvesti PIN kodą"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Įvesti PUK kodą"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "Netinkamas PIN kodas"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Neteisingas PIN kodas.\nBandykite dar kartą"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Įjungtas tinklo personalizavimas. Įveskite valdymo raktą"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Įjungtas tinklo potinklio personalizavimas. Įveskite valdymo raktą"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d likę bandymai"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Įjungtas paslaugų teikėjo personalizavimas. Įveskite valdymo raktą"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "SIM kortelė nepasiekiama. Kreipkitės į paslaugų teikėją"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Neteisingas slaptažodis"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Rinkimas"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Ekrano kalba"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "SIM kortelė tikrinama..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Sveiki!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Pasirinkti kalbą"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Pagalbos skambučiai"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Bakstelėkite ir nustatykite"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Baigti"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Įrenginys nustatytas ir parengtas naudoti"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Sąranka baigta"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Išjunkite įrenginį, išimkite akumuliatorių ir atsargiai įdėkite SIM kortelę, jos auksinius kontaktus nukreipę žemyn. Kirstas kampas turėtų būti toliausiai nuo akumuliatoriaus\nJei norite praleisti dabar, nepamirškite įdėti SIM kortelės vėliau. Kol taip nepadarysite, dauguma įrenginio funkcijų neveiks"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Bandyti vėl"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automatinis"
+
diff --git a/po/lv.po b/po/lv.po
new file mode 100644
index 0000000..d85b92f
--- /dev/null
+++ b/po/lv.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Apstiprināt jauno PIN kodu"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Paroles lauks ir tukšs"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "Ir nepieciešami vismaz %d līdz %d cipari"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "Nepareizs PIN kods. Atlicis 1 mēģinājums"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "Nepareizs PIN kods. Atlikuši %d mēģinājumi"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "Jauns PIN kods"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN kods bloķēts"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN atbloķēts"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Notikusi tīkla bloķēšana"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "PIN bloķēšana"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "PUK koda bloķēšana"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM bloķēta"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "SIM bloķēšana"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Atlicis 1 mēģinājums"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Ieslēgta korporatīvā personalizēšana. Ievadiet vadības atslēgu"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Ievadiet jauno PIN kodu"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Ievadiet PIN kodu"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Ievadiet PUK kodu"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "Nepareizs PIN"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Nepareizs PIN.\nLūdzu, mēģiniet vēlreiz"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Ieslēgta tīkla personalizēšana. Ievadiet vadības atslēgu"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Ieslēgta tīkla apakškopas personalizēšana. Ievadiet vadības atslēgu"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Atlikuši %d mēģinājumi"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Ieslēgta pakalpojumu sniedzēja personalizēšana. Ievadiet vadības atslēgu"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "SIM karte nav pieejama. Sazinieties ar pakalpojumu sniedzēju"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Nepareiza parole"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Num.sast."
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Displeja valoda"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Pārbauda SIM karti..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Sveiki!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Izvēlieties valodu"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Ārkārtas zvans"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Pieskarieties, lai iestatītu"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Beigt"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Ierīce ir iestatīta un gatava lietošanai"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Iestatīšana pabeigta"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Izslēdziet ierīci, izņemiet akumulatoru un uzmanīgi ievietojiet SIM karti tā, lai zeltītie kontakti ir vērsti uz leju. Nogrieztajam stūrim jāatrodas vistālāk no akumulatora\nJa pašlaik vēlaties izlaist šo darbību, neaizmirstiet ievietot SIM karti vēlāk. Līdz tam brīdim lielākā daļa ierīces funkciju nedarbosies"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Mēģin. vēlr."
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automātiski"
+
diff --git a/po/ms.po b/po/ms.po
new file mode 100644
index 0000000..b66b7c4
--- /dev/null
+++ b/po/ms.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Pastikan PIN baru"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Kata laluan kosong"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "%d hingga %d angka diperlukan"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "PIN salah. Tinggal 1 percubaan"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "PIN salah. Tinggal %d percubaan"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "PIN baru"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN disekat"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN dinyah sekat"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Kunci rangkaian"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "Kunci PIN"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "Kunci PUK"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM disekat"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "Kunci SIM"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Tinggal 1 percubaan"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Pemperibadian korporat dihidupkan. Masukkan kunci kawalan"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Masukkan PIN baru"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Masukkan PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Masukkan PUK"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "PIN salah"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "PIN salah.\nCuba lagi"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Pemperibadian rangkaian dihidupkan. Masukkan kunci kawalan"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Pemperibadian subset rangkaian dihidupkan. Masukkan kunci kawalan"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d percubaan lagi"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Pemperibadian pembekal perkhidmatan dihidupkan. Masukkan kunci kawalan"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "Kad SIM tidak tersedia. Hubungi pembekal perkhidmatan anda"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Kata laluan salah"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Pendail"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Bahasa paparan"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Semak kad SIM…"
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Selamat datang!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Pilih bahasa"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Panggilan kecemasan"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Tekan untuk menyediakan"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Selesai"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Peranti telah disediakan dan siap untuk digunakan"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Persediaan selesai"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Matikan peranti anda, alih keluar bateri, dan masukkan kad SIM anda dengan berhati-hati dengan sesentuh emas di sebelah bawah. Penjuru terpotong hendaklah berada paling jauh dari bateri\nJika anda lebih suka untuk melangkauinya sekarang, pastikan kad SIM anda dimasukkan kemudian. Sebelum itu, kebanyakan ciri peranti anda tidak akan berfungsi"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Cuba lagi"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automatik"
+
diff --git a/po/nl_NL.po b/po/nl_NL.po
index 7c04e4c..d1b200b 100755..100644
--- a/po/nl_NL.po
+++ b/po/nl_NL.po
@@ -1,5 +1,5 @@
msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
-msgstr "Bevestig nieuwe PIN"
+msgstr "Nieuwe PIN bevestigen"
msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
msgstr "Wachtwoord leeg"
@@ -28,18 +28,9 @@ msgstr "PIN geblokkeerd"
msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
msgstr "PIN gedeblokkeerd"
-msgid "IDS_IDLE_BUTTON_CANCEL"
-msgstr "Annuleer"
-
-msgid "IDS_IDLE_BODY_AUTOMATIC"
-msgstr "Automatisch"
-
msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
msgstr "Netwerkblokkering"
-msgid "IDS_IDLE_HEADER_PHONE_LOCK"
-msgstr "Telefoonblokkering"
-
msgid "IDS_IDLE_HEADER_PIN_LOCK"
msgstr "PIN-blokkering"
@@ -59,13 +50,13 @@ msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Bedrijfsaanpassing ingeschakeld. Druk op Ctrl"
msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
-msgstr "Geef nieuwe PIN in"
+msgstr "Nieuwe PIN invoeren"
msgid "IDS_IDLE_BODY_ENTER_PIN"
-msgstr "Geef PIN in"
+msgstr "PIN invoeren"
msgid "IDS_IDLE_BODY_ENTER_PUK"
-msgstr "Geef PUK-code in"
+msgstr "PUK invoeren"
msgid "IDS_IDLE_BODY_INCORRECT_PIN"
msgstr "Onjuiste PIN"
@@ -73,21 +64,12 @@ msgstr "Onjuiste PIN"
msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
msgstr "PIN onjuist.\nProbeer het opnieuw"
-msgid "IDS_IDLE_BODY_INCORRECT_PUK"
-msgstr "Onjuiste PUK"
-
-msgid "IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED"
-msgstr "Taal niet ondersteund"
-
msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Netwerkaanpassing ingeschakeld. Druk op Ctrl"
msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Aanpassing netwerksubset ingeschakeld. Druk op Ctrl"
-msgid "IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG"
-msgstr "Wachtwoord moet uit 4 cijfers bestaan"
-
msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
msgstr "%d pogingen over"
@@ -97,15 +79,45 @@ msgstr "Aanpassing serviceprovider ingeschakeld. Druk op Ctrl"
msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
msgstr "SIM-kaart niet beschikbaar. Neem contact op met de serviceprovider"
-msgid "IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE"
-msgstr "Kan taal van SIM-kaart niet lezen"
-
msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
-msgstr "Wachtwoord onjuist"
+msgstr "Onjuist wachtwoord"
msgid "IDS_IDLE_BUTTON_DIALER"
-msgstr "Kiezer"
+msgstr "Toetsen"
msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
msgstr "Display taal"
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "SIM-kaart controleren..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Welkom!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Taal selecteren"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Noodoproep"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Tik om in te stellen"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Voltooien"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Apparaat is ingesteld en klaar voor gebruik"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Instellen voltooid"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Schakel het apparaat uit, verwijder de batterij en plaats de SIM-kaart voorzichtig terug met de gouden contactzijde naar beneden. De afgesneden hoek moet het verste van de batterij af zitten\nAls u dit nu wilt overslaan, moet u de SIM-kaart later plaatsen. Anders zullen de meeste functies van het apparaat niet werken"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Opnieuw"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automatisch"
+
diff --git a/po/no.po b/po/no.po
new file mode 100644
index 0000000..2b5f852
--- /dev/null
+++ b/po/no.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Bekreft ny PIN"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Passord er tomt"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "%d til %d tall nødvendig"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "Feil PIN-kode. 1 forsøk gjenstår"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "Feil PIN-kode. %d forsøk igjen"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "Ny PIN-kode"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN blokkert"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN ikke blokkert"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Nettverkslås"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "PIN-lås"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "PUK-lås"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM-kort låst"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "SIM-lås"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 forsøk gjenstår"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Firmapersonalisering på. Angi kontrollnøkkel"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Angi ny PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Angi PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Angi PUK"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "Ugyldig PIN"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Feil PIN.\nPrøv på nytt"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Nettverkspersonalisering på. Angi kontrollnøkkel"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Nettverksdelsettpersonalisering på. Angi kontrollnøkkel"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d forsøk igjen"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Tjenesteleverandørpersonalisering på. Angi kontrollnøkkel"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "SIM-kort ikke tilgjengelig. Kontakt din tjenesteleverandør"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Feil passord"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Tastatur"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Skjermspråk"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Kontrollerer SIM-kort..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Velkommen!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Velg språk"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Nødanrop"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Trykk for å konfigurere"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Fullfør"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Enheten er konfigurert og klar til bruk"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Konfigurering fullført"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Skru av enheten, fjern batteriet og sett SIM-kortet forsiktig inn med gullkontaktsiden ned. Det avskårne hjørnet skal være lengst unna batteriet\nHvis du foretrekker å hoppe over dette nå, må du passe på å sette inn SIM-kortet senere. Frem til du har gjort det, vil de fleste av enhetens funksjoner ikke fungere"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Prøv på nytt"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automatisk"
+
diff --git a/po/pl.po b/po/pl.po
new file mode 100644
index 0000000..7482c3b
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Potwierdź nowy PIN"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Hasło puste"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "Wymagana liczba cyfr: od %d do %d"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "Zły kod PIN. Pozostała 1 próba"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "Zły kod PIN. Pozostało prób: %d"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "Nowy kod PIN"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN zablokowany"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN odblokowany"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Blokada sieci"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "Blokada PIN"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "Blokada PUK"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "Karta SIM zablokowana"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "Blokada SIM"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Pozostała 1 próba"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalizacja firmowa włączona. Wprowadź klucz kontroli"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Wpisz nowy PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Wpisz PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Wpisz PUK"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "Nieprawidłowy PIN"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Nieprawidłowy kod PIN.\nSpróbuj ponownie"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalizacja sieci włączona. Wprowadź klucz kontroli"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalizacja grupy sieci włączona. Wprowadź klucz kontroli"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Pozostało prób: %d"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalizacja dostawcy usług włączona. Wprowadź klucz kontroli"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "Karta SIM niedostępna. Skontaktuj się z dostawcą usługi"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Błędne hasło"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Ekran wybierania"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Język wyświetlania"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Sprawdzanie karty SIM..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Witamy!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Wybierz język"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Połączenie alarmowe"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Dotknij, aby skonfigurować"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Zakończ"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Urządzenie jest skonfigurowane i gotowe do użytku"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Konfiguracja ukończona"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Wyłącz urządzenie, wyjmij baterię i ostrożnie włóż kartę SIM złotym stykiem skierowanym w dół. Wycięty róg powinien znaleźć się najdalej od baterii\nJeśli chcesz teraz zrezygnować, włóż kartę SIM później. Dopóki tego nie robisz, większość funkcji urządzenia nie będzie działać."
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Ponów próbę"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automatyczny"
+
diff --git a/po/pt_PT.po b/po/pt_PT.po
index 128cd4a..fdea5f8 100755..100644
--- a/po/pt_PT.po
+++ b/po/pt_PT.po
@@ -28,18 +28,9 @@ msgstr "PIN bloqueado"
msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
msgstr "PIN desbloqueado"
-msgid "IDS_IDLE_BUTTON_CANCEL"
-msgstr "Cancelar"
-
-msgid "IDS_IDLE_BODY_AUTOMATIC"
-msgstr "Automático"
-
msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
msgstr "Bloqueio de rede efectuado"
-msgid "IDS_IDLE_HEADER_PHONE_LOCK"
-msgstr "Bloqueio do telefone"
-
msgid "IDS_IDLE_HEADER_PIN_LOCK"
msgstr "Protecção por PIN"
@@ -73,21 +64,12 @@ msgstr "PIN incorrecto"
msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
msgstr "PIN incorrecto.\nTente novamente"
-msgid "IDS_IDLE_BODY_INCORRECT_PUK"
-msgstr "PUK incorrecto"
-
-msgid "IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED"
-msgstr "Idioma não suportado"
-
msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Personalização de rede activada. Prima a tecla de controlo"
msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Personalização de subconjunto de rede activada. Prima a tecla de controlo"
-msgid "IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG"
-msgstr "A palavra-passe deve ter 4 dígitos"
-
msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
msgstr "%d tentativas restantes"
@@ -97,9 +79,6 @@ msgstr "Personalização do fornecedor de serviços activada. Prima a tecla de c
msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
msgstr "Cartão SIM indisponível. Contacte o fornecedor de serviços"
-msgid "IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE"
-msgstr "Impossível ler idioma do cartão SIM"
-
msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
msgstr "Palavra-passe incorrecta"
@@ -109,3 +88,36 @@ msgstr "Marcador"
msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
msgstr "Idioma de apresentação"
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "A verificar cartão SIM..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Bem-vindo!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Seleccionar idioma"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Chamada de emergência"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Toque para configurar"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Concluir"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "O dispositivo está configurado e pronto para ser utilizado"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Configuração concluída"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Desligue o seu dispositivo, retire a bateria e introduza com cuidado o seu cartão SIM com o contacto dourado virado para baixo. O canto cortado deve ficar para o lado mais afastado da bateria\nSe preferir ignorar agora, não se esqueça de introduzir o seu cartão SIM mais tarde. Até que o faça, a maioria das funções do seu dispositivo não funcionam"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Tente novam."
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automático"
+
diff --git a/po/pwlock.pot b/po/pwlock.pot
deleted file mode 100755
index 2d9c7e9..0000000
--- a/po/pwlock.pot
+++ /dev/null
@@ -1,143 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-10-19 19:56+0900\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: pwlock.c:81
-msgid "Enter password"
-msgstr ""
-
-#: pwlock.c:82
-msgid "Enter PIN"
-msgstr ""
-
-#: pwlock.c:83
-msgid "Enter New PIN"
-msgstr ""
-
-#: pwlock.c:84
-msgid "Retype PIN"
-msgstr ""
-
-#: pwlock.c:85
-msgid "Enter PUK"
-msgstr ""
-
-#: pwlock.c:86
-msgid "Incorrect PIN"
-msgstr ""
-
-#: pwlock.c:87
-msgid "Incorrect PUK"
-msgstr ""
-
-#: pwlock.c:88
-#, c-format
-msgid "%d attempt(s) left"
-msgstr ""
-
-#: pwlock.c:89
-msgid "Done"
-msgstr ""
-
-#: pwlock.c:90
-msgid "Dialer"
-msgstr ""
-
-#: pwlock.c:91
-msgid "Wrong password"
-msgstr ""
-
-#: pwlock.c:92
-msgid "PIN code not matched"
-msgstr ""
-
-#: pwlock.c:93
-msgid "Display language"
-msgstr ""
-
-#: pwlock.c:94
-msgid "Set"
-msgstr ""
-
-#: pwlock.c:95
-msgid "Cancel"
-msgstr ""
-
-#: pwlock.c:96
-msgid "Get SIM language failed"
-msgstr ""
-
-#: pwlock.c:97
-#, c-format
-msgid "Unsupported language: %s"
-msgstr ""
-
-#: pwlock.c:98
-msgid "SIM unavailable. Please contact your service provider."
-msgstr ""
-
-#: pwlock.c:99
-msgid "Enter SIM password"
-msgstr ""
-
-#: pwlock.c:100
-msgid "Network Personalisation is on. Please enter the control key"
-msgstr ""
-
-#: pwlock.c:101
-msgid "Network Subset Personalisation is on. Please enter the control key"
-msgstr ""
-
-#: pwlock.c:102
-msgid "Service Provider Personalisation is on. Please enter the control key"
-msgstr ""
-
-#: pwlock.c:103
-msgid "Coporate Personalisation is on. Please enter the control key"
-msgstr ""
-
-#: pwlock.c:104
-msgid "Password must be 4 digits long"
-msgstr ""
-
-#: ui.c:46
-msgid "Phone lock"
-msgstr ""
-
-#: ui.c:47
-msgid "PIN lock"
-msgstr ""
-
-#: ui.c:48 ui.c:49 ui.c:50
-msgid "PUK lock"
-msgstr ""
-
-#: ui.c:51
-msgid "Phone blocked"
-msgstr ""
-
-#: ui.c:52
-msgid "SIM lock"
-msgstr ""
-
-#: ui.c:53 ui.c:54 ui.c:55 ui.c:56
-msgid "Network lock"
-msgstr ""
-
-#: langs.c:20
-msgid "Automatic"
-msgstr ""
diff --git a/po/ro.po b/po/ro.po
new file mode 100644
index 0000000..027e289
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Confirmare PIN nou"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Parola lipseşte"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "Sunt necesare între %d şi %d cifre"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "PIN1 incorect. 1 încercare rămasă"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "PIN incorect. %d încercări rămase"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "PIN nou"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "Cod PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "Cod PIN blocat"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN deblocat"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Blocare reţea reuşită"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "Blocare cod PIN"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "Blocare PUK"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "Cartelă SIM blocată"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "Blocare SIM"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 încercare rămasă"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalizarea pentru firmă a fost activată. Apăsaţi tasta Control"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Introduceţi PIN nou"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Introduceţi PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Introduceţi PUK"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "PIN incorect"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Cod PIN incorect.\nReîncercaţi"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalizarea pentru reţea a fost activată. Apăsaţi tasta Control"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalizarea pentru subsetul de reţea a fost activată. Apăsaţi tasta Control"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d încercări rămase"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalizarea furnizorului de servicii a fost activată. Apăsaţi tasta Control"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "Cartelă SIM indisponibilă. Contactaţi furnizorul de servicii"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Parolă incorectă"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Apelare"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Limbă de afişare"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Se verifică cartela SIM..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Bun venit!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Selectare limbă"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Apel de urgenţă"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Atingeţi pentru a configura"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Terminare"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Dispozitivul este configurat şi pregătit de utilizare"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Configurare finalizată"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Opriţi dispozitivul, scoateţi bateria şi introduceţi cu atenţie cartela SIM cu partea cu contactele aurii orientată în jos. Colţul decupat trebuie să ajungă în poziţia cea mai îndepărtată de baterie\nDacă preferaţi să omiteţi acum acest pas, introduceţi cartela SIM ulterior. Până atunci, majoritatea caracteristicilor dispozitivului vor fi nefuncţionale"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Reîncercare"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automat"
+
diff --git a/po/ru_RU.po b/po/ru_RU.po
index 625326c..f3661d9 100755..100644
--- a/po/ru_RU.po
+++ b/po/ru_RU.po
@@ -20,37 +20,28 @@ msgid "IDS_IDLE_BODY_PIN"
msgstr "PIN"
msgid "IDS_IDLE_BODY_PUK"
-msgstr "PUK"
+msgstr "PUK-код"
msgid "IDS_IDLE_POP_PIN_BLOCKED"
-msgstr "PIN заблокирован"
+msgstr "PIN-код заблокирован"
msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
msgstr "PIN разблокирован"
-msgid "IDS_IDLE_BUTTON_CANCEL"
-msgstr "Отмена"
-
-msgid "IDS_IDLE_BODY_AUTOMATIC"
-msgstr "Автоматически"
-
msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
msgstr "Блокировка сети"
-msgid "IDS_IDLE_HEADER_PHONE_LOCK"
-msgstr "Блокировка телефона"
-
msgid "IDS_IDLE_HEADER_PIN_LOCK"
-msgstr "Проверка PIN"
+msgstr "Блокировка PIN-кода"
msgid "IDS_IDLE_HEADER_PUK_LOCK"
-msgstr "Блокировка PUK"
+msgstr "Блокировка PUK-кода"
msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
msgstr "SIM-карта заблокирована"
msgid "IDS_IDLE_HEADER_SIM_LOCK"
-msgstr "Блокировка SIM"
+msgstr "Блокировка SIM-карты"
msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
msgstr "Осталась 1 попытка"
@@ -73,21 +64,12 @@ msgstr "Неверный PIN"
msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
msgstr "Неправильный PIN.\nПовторите попытку"
-msgid "IDS_IDLE_BODY_INCORRECT_PUK"
-msgstr "Неправильный PUK"
-
-msgid "IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED"
-msgstr "Язык не поддерживается"
-
msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Включена личная настройка сети. Введите контрольный ключ"
msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Включена личная настройка подсети. Введите контрольный ключ"
-msgid "IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG"
-msgstr "Пароль должен состоять из 4 цифр"
-
msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
msgstr "Осталось попыток: %d"
@@ -97,9 +79,6 @@ msgstr "Включена личная настройка поставщика у
msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
msgstr "SIM-карта недоступна. Обратитесь к поставщику услуг"
-msgid "IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE"
-msgstr "Не удалось прочитать язык SIM-карты"
-
msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
msgstr "Неправильный пароль"
@@ -109,3 +88,36 @@ msgstr "Набор"
msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
msgstr "Язык"
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Проверка SIM-карты..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Добро пожаловать!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Выберите язык"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Экстренный вызов"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Нажмите для настройки"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Готово"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Устройство настроено и готово к использованию"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Настройка завершена"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Отключите устройство, извлеките батарею и аккуратно вставьте SIM-карту так, чтобы золотистые контакты были направлены вниз. Скошенный угол должен находиться дальше всего от батареи\nЕсли вы пропустите это действие сейчас, обязательно вставьте SIM-карту позже. Если не сделать этого, большинство возможностей устройства не будут работать"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Повторить"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Автоматически"
+
diff --git a/po/sk.po b/po/sk.po
new file mode 100644
index 0000000..294608c
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Potvrdiť nový PIN"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Heslo je prázdne"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "Vyžadované číslice: %d až %d"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "Nesprávny PIN. Zostáva 1 pokus"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "Nesprávny PIN. Zostávajúce pokusy: %d"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "Nový PIN"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN zablokovaný"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN odblokované"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Zámok siete overený"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "Zámok PIN"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "Zámka PUK"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM je blokovaná"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "Zámok SIM"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Zostáva 1 pokus"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Firemné prispôsobenie je zapnuté. Zadajte ovládacie tlačidlo"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Zadajte nový PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Zadať PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Zadajte PUK"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "Nesprávny PIN"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Neplatný PIN.\nSkúste to znova"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Prispôsobenie siete je zapnuté. Zadajte ovládacie tlačidlo"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Prispôsobenie podsiete je zapnuté. Zadajte ovládacie tlačidlo"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Počet zostávajúcich pokusov: %d"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Prispôsobenie poskytovateľa služby je zapnuté. Zadajte ovládacie tlačidlo"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "Karta SIM nie je k dispozícii. Kontaktujte poskytovateľa služby"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Nesprávne heslo"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Vytáčanie"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Jazyk zobrazenia"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Kontrola SIM karty..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Vitajte!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Vybrať jazyk"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Tiesňový hovor"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Ťuknutím nainštalujte"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Dokončiť"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Zariadenie je nastavené a pripravené na použitie"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Inštalácia je dokončená"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Vypnite zariadenie, vyberte batériu a správne vložte kartu SIM so zlatou kontaktnou stranou smerom nadol. Zrezaný roh musí byť ďalej od batérie\nAk to teraz nechcete urobiť, nezabudnite neskôr vložiť kartu SIM. Kým to neurobíte, väčšina funkcií zariadenia nebude fungovať"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Skúste znova"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automaticky"
+
diff --git a/po/sl.po b/po/sl.po
new file mode 100644
index 0000000..cb640eb
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Potrdite novi PIN"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Geslo je prazno"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "Znaki od %d do %d zahtevani"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "Napačna koda PIN. Še 1 poskus"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "Napačna koda PIN. Še %d poskusov"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "Nova koda PIN"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN je blokiran"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN sproščen"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Zapore omrežja"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "Zaklepanje PIN"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "Zaklep kode PUK"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "Kartica SIM je blokirana"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "Zaklepanje SIM"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Preostal je še 1 poskus"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Skupno prilagajanje je vključeno. Vnesite nadzorno tipko"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Vnesite novi PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Vnesite PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Vnesite PUK"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "Napačna koda PIN"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Napačna koda PIN.\nPoskusite znova"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Prilagajanje omrežja je vključeno. Vnesite nadzorno tipko"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Prilagajanje podomrežja je vključeno. Vnesite nadzorno tipko"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d preostalih poizkusov"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Prilagajanje ponudnika storitev je vključeno. Vnesite nadzorno tipko"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "Kartica SIM ni na voljo. Obrnite se na ponudnika storitev"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Napačno geslo"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Izbiranje"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Jezik prikaza"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Preverjam kartico SIM ..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Pozdravljeni!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Izberite jezik"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Klic v sili"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Pritisnite za nastavitev"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Konec"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Naprava je nastavljena in pripravljena za uporabo"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Namestitev je končana"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Izklopite napravo, odstranite baterijo in previdno vstavite kartico SIM z zlatim stikom navzdol. Odrezani vogal mora biti najbolj odstranjen od baterije\nČe želite to trenutno preskočiti, morate kartico SIM vnesti pozneje. Dokler je ne vstavite, večina funkcij naprave ne bo delovala"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Posk. znova"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Samodejno"
+
diff --git a/po/sr.po b/po/sr.po
new file mode 100644
index 0000000..ed2f112
--- /dev/null
+++ b/po/sr.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Potvrdi novi PIN kod"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Nema lozinke"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "Potrebno %d do %d cifara"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "Neispravan PIN kod. 1 pokušaj preostao"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "Neispravan PIN. %d pokušaja ostalo"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "Novi PIN kod"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN kod"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK kod"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN kod blokiran"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN kod deblokiran"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Zaključavanje mreže uspešno"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "PIN zaključan"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "PUK zaključan"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM kartica blokirana"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "Zaključavanje SIM-a"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 pokušaj preostao"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalizacija kompanije uključena. Unesi kontrolni ključ"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Unesi novi PIN kod"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Unesi PIN kod"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Unesi PUK kod"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "Neispravan PIN kod"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Neispravan PIN.\nProbaj ponovo"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalizacija mreže uključena. Unesi kontrolni ključ"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalizacija podskupa mreže uključena. Unesi kontrolni ključ"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d pokušaja ostalo"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Personalizacija provajdera uključena. Unesi kontrolni ključ"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "Nema SIM kartice. Kontaktiraj provajdera"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Pogrešna šifra"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Brojčanik"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Jezik prikaza"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Provera SIM kartice..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Dobrodošli!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Izaberi jezik"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Pozivi u hitnim slučajevima"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Kucni za konfigurisanje"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Završi"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Uređaj je konfigurisan i spreman za korišćenje"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Podešavanje završeno"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Isključi uređaj, ukloni bateriju i pažljivo ubaci SIM karticu sa zlatnom stranom kontakta okrenutom nadole. Izrezani ugao bi trebalo da bude što dalje od baterije\nAko sada želiš da preskočiš ovaj korak, obavezno ubaci SIM karticu kasnije. Dok to ne učiniš, većina funkcija u uređaju neće raditi"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Probaj opet"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automatski"
+
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 0000000..d855773
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Bekräfta ny PIN-kod"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Lösenordet är tomt"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "%d till %d siffror krävs"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "Felaktig PIN-kod. Du har 1 försök kvar"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "Fel PIN-kod. %d försök kvar"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "Ny PIN-kod"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN låst"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN upplåst"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Nätverkslås"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "PIN-lås"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "PUK-lås"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM har blockerats"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "Personligt SIM-lås"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 försök kvar"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Företagsanpassning på. Ange kontrollnyckel"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Ange ny PIN-kod"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Ange PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Ange PUK-kod"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "Fel PIN-kod"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Fel PIN.\nFörsök igen"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Nätverksanpassning på. Ange kontrollnyckel"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Anpassning av nätverksdeluppsättning på. Ange kontrollnyckel"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d försök kvar"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Anpassning av tjänsteleverantör på. Ange kontrollnyckel"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "SIM-kort ej tillgängligt. Kontakta tjänsteleverantören"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Fel lösenord"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Knappsats"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Visningsspråk"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Kontrollerar SIM-kortet..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Välkommen!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Välj språk"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Nödsamtal"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Tryck för att konfigurera"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Avsluta"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Enheten är inställd och klar att användas"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Konfigurationen har slutförts"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Stäng av enheten, ta ut batteriet och sätt försiktigt i SIM-kortet med den guldfärgade kontakten nedåt. Det avklippta hörnet ska vara vänt bort från batteriet\nOm du väljer att hoppa över detta nu måste du se till att sätta i SIM-kortet senare. De flesta av funktionerna på enheten fungerar först när SIM-kortet är isatt"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Försök igen"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Automatisk"
+
diff --git a/po/th.po b/po/th.po
new file mode 100644
index 0000000..84f569c
--- /dev/null
+++ b/po/th.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "ยืน​ยัน PIN ​ใหม่"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "ไม่​มี​รหัส​ผ่าน"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "จำ​เป็น​ต้อง​มี %d ​ถึง %d ​หลัก"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "PIN ​ผิด เหลือ​อีก 1 ​ครั้ง"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "PIN ​ผิด เหลือ​อีก %d ​ครั้ง"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "PIN ​ใหม่"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN ​ถูก​บล็อก"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "ปลดบล็อก PIN ​แล้ว"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "การ​ล็อก​เครือ​ข่าย"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "ล็อก PIN"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "ล็อก PUK"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM ​ถูก​ห้าม​ใช้"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "ล็อก SIM"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "เหลือ​อีก 1 ​ครั้ง"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "เปิด​การ​ใช้​งาน​ส่วน​ตัว​ของ​บริษัท ใส่​ปุ่ม​ควบ​คุม"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "ใส่ PIN ​ใหม่"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "ใส่ PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "ใส่ PUK"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "PIN ​ผิด"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "PIN ​ผิด\n​ลอง​อีก​ครั้ง"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "เปิด​การ​ใช้​งาน​ส่วน​ตัว​ของ​เครือ​ข่าย ใส่​ปุ่ม​ควบ​คุม"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "เปิด​การ​ใช้​งาน​ส่วน​ตัว​ของ​เครือ​ข่าย​ย่อย ใส่​ปุ่ม​ควบ​คุม"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "เหลือ %d ​ครั้ง"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "เปิด​การ​ใช้​งาน​ส่วน​ตัว​ของ​ผู้​ให้​บริการ ใส่​ปุ่ม​ควบ​คุม"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "SIM ​การ์ด​ใช้​งาน​ไม่​ได้ ติดต่อ​ผู้​ให้​บริการ​ของ​คุณ"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "รหัสผ่านผิด"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "ผู้​โทรออก"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "ภาษา​ที่​แสดง"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "ตรวจ​สอบ SIM ​การ์ด..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "ยินดีต้อนรับ!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "เลือก​ภาษา"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "โทร​ฉุก​เฉิน"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "สัมผัส​เพื่อ​ตั้ง​ค่า"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "เสร็จ"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "อุปกรณ์ถูกตั้งค่าและพร้อมใช้แล้ว"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "การ​ตั้ง​ค่า​เสร็จ​สมบูรณ์"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "ปิดอุปกรณ์ ถอดแบตเตอรี่ออก ค่อยๆ ใส่ SIM การ์ดโดยให้หน้าสัมผัสสีทองคว่ำลง มุมที่ถูกตัดออกควรอยู่ไกลจากแบตเตอรี่มากสุด\nถ้าคุณต้องการข้ามไปในขณะนี้ โปรดอย่าลืมใส่ SIM การ์ดในภายหลัง คุณสมบัติส่วนใหญ่ของเครื่องจะไม่ทำงาน จนกว่าคุณจะใส่ SIM การ์ด"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "ลอง​อีก​ครั้ง"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "อัตโนมัติ"
+
diff --git a/po/tr_TR.po b/po/tr_TR.po
index 6751e5f..7ca2581 100755..100644
--- a/po/tr_TR.po
+++ b/po/tr_TR.po
@@ -28,18 +28,9 @@ msgstr "PIN bloke edildi"
msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
msgstr "PIN kilidi kaldırıldı"
-msgid "IDS_IDLE_BUTTON_CANCEL"
-msgstr "İptal"
-
-msgid "IDS_IDLE_BODY_AUTOMATIC"
-msgstr "Otomatik"
-
msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
msgstr "Şebeke kilidi"
-msgid "IDS_IDLE_HEADER_PHONE_LOCK"
-msgstr "Telefon kilidi"
-
msgid "IDS_IDLE_HEADER_PIN_LOCK"
msgstr "PIN kilidi"
@@ -73,21 +64,12 @@ msgstr "Yanlış PIN"
msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
msgstr "Hatalı PIN.\nLütfen tekrar deneyin"
-msgid "IDS_IDLE_BODY_INCORRECT_PUK"
-msgstr "Yanlış PUK"
-
-msgid "IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED"
-msgstr "Dil desteklenmiyor"
-
msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Ağ kişiselleştirme açık. Kontrol kodunu girin"
msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "Ağ altkümesi kişiselleştirme açık. Kontrol kodunu girin"
-msgid "IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG"
-msgstr "Şifre 4 basamaklı olmalıdır"
-
msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
msgstr "%d deneme kaldı"
@@ -97,15 +79,45 @@ msgstr "Servis sağlayıcı kişiselleştirme açık. Kontrol kodunu girin"
msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
msgstr "SIM kartı kullanılamıyor. Servis sağlayıcınıza başvurun"
-msgid "IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE"
-msgstr "SIM kartı dili okunamıyor"
-
msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
msgstr "Yanlış şifre"
msgid "IDS_IDLE_BUTTON_DIALER"
-msgstr "Arayıcı"
+msgstr "Tuşlar"
msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
msgstr "Ekran dili"
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "SIM kart kontrol ediliyor..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Hoş Geldiniz!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Dil seç"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Acil arama"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Ayarlamak için dokunun"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Son"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Cihaz kuruldu ve kullanıma hazır"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Kurulum tamamlandı"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Cihazınızı kapatın, pili çıkartın ve dikkatli bir şekilde altın rengi temas noktası aşağı bakacak şekilde SIM kartınızı yerleştirin. Kesik kenarı pilden en uzak noktada olmalıdır\nBunu şimdi atlamayı tercih ederseniz SIM kartınızı daha sonra takmayı unutmayın. Bunu yapana kadar cihazınızın bir çok özelliği çalışmayacaktır"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Tekrar dene"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Otomatik"
+
diff --git a/po/uk.po b/po/uk.po
new file mode 100644
index 0000000..9acf9f9
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Підтвердити новий PIN"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Пароль пустий"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "Потрібно від %d до %d цифр(и)"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "Хибний PIN. Залишилася 1 спроба"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "Хибний PIN. Залишилось %d спроб"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "Новий PIN"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN блоковано"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN розблоковано"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Мережа недосяжна"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "Блокування PIN"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "Блокування PUK-коду"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "SIM-картку заблоковано"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "Блокування SIM-картки"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Залишилась 1 спроба"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Корпоративна персоналізація ввімк. Введіть ключ керування"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Введіть новий PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Введіть PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Введіть PUK"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "Хибний PIN"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Неправильний PIN.\nСпробуйте ще раз, будь ласка"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Персоналізація мережі ввімк. Введіть ключ керування"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Часткова персоналізація мережі ввімк. Введіть ключ керування"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d спроб залишилось"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Персоналізація оператора зв’язку ввімк. Введіть ключ керування"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "SIM-картка недоступна. Зверніться до свого оператора зв’язку"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Хибний пароль"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Наб. ном."
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Мова дисплея"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Перевірка SIM-картки..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Ласкаво просимо!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Вибір мови"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Екстрений виклик"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Натисніть, щоб настроїти"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Завершити"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Пристрій налаштований і готовий до використання"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Настроювання завершено"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Вимкніть пристрій, видаліть акумулятор та обережно вставте SIM-картку стороною із золотим контактом донизу. Скошений кут має знаходитись якнайдалі від акумулятора\nЯкщо ви не бажаєте зробити це зараз, не забудьте вставити SIM-картку пізніше. Без SIM-картки більшість функцій пристрою не працюватиме"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Спроб.ще раз"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Автоматично"
+
diff --git a/po/update-po.sh b/po/update-po.sh
deleted file mode 100755
index a0a91fb..0000000
--- a/po/update-po.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/sh
-
-PACKAGE=pwlock
-SRCROOT=..
-POTFILES=POTFILES.in
-
-#ALL_LINGUAS= am az be ca cs da de el en_CA en_GB es et fi fr hr hu it ja ko lv mk ml ms nb ne nl pa pl pt pt_BR ru rw sk sl sr sr@Latn sv ta tr uk vi zh_CN zh_TW
-ALL_LINGUAS="en_US en_GB ja ko zh_CN"
-
-XGETTEXT=/usr/bin/xgettext
-MSGMERGE=/usr/bin/msgmerge
-
-echo -n "Make ${PACKAGE}.pot "
-if [ ! -e $POTFILES ] ; then
- echo "$POTFILES not found"
- exit 1
-fi
-
-$XGETTEXT --default-domain=${PACKAGE} --directory=${SRCROOT} \
- --add-comments --keyword=_ --keyword=N_ --files-from=$POTFILES
-if [ $? -ne 0 ]; then
- echo "xgettext error"
- exit 1
-fi
-
-if [ ! -f ${PACKAGE}.po ]; then
- echo "No such file: ${PACKAGE}.po"
- exit 1
-fi
-
-rm -f ${PACKAGE}.pot && mv ${PACKAGE}.po ${PACKAGE}.pot
-echo "done"
-
-for LANG in $ALL_LINGUAS; do
- echo "$LANG : "
-
- if [ ! -e $LANG.po ] ; then
- sed 's/CHARSET/UTF-8/g' ${PACKAGE}.pot > ${LANG}.po
- echo "${LANG}.po created"
- else
- if $MSGMERGE ${LANG}.po ${PACKAGE}.pot -o ${LANG}.new.po ; then
- if cmp ${LANG}.po ${LANG}.new.po > /dev/null 2>&1; then
- rm -f ${LANG}.new.po
- else
- if mv -f ${LANG}.new.po ${LANG}.po; then
- echo ""
- else
- echo "msgmerge for $LANG.po failed: cannot move $LANG.new.po to $LANG.po" 1>&2
- rm -f ${LANG}.new.po
- exit 1
- fi
- fi
- else
- echo "msgmerge for $LANG failed!"
- rm -f ${LANG}.new.po
- fi
- fi
- echo ""
-done
-
diff --git a/po/vi.po b/po/vi.po
new file mode 100644
index 0000000..da05208
--- /dev/null
+++ b/po/vi.po
@@ -0,0 +1,123 @@
+msgid "IDS_IDLE_BODY_CONFIRM_NEW_PIN"
+msgstr "Nhập lại mã PIN mới"
+
+msgid "IDS_IDLE_BODY_PASSWORD_EMPTY"
+msgstr "Mật mã trống"
+
+msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
+msgstr "Cần %d đến %d số"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
+msgstr "PIN sai. Còn 1 lần thử"
+
+msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
+msgstr "PIN sai. Còn %d lần thử"
+
+msgid "IDS_IDLE_BODY_NEW_PIN"
+msgstr "PIN mới"
+
+msgid "IDS_IDLE_BODY_PIN"
+msgstr "PIN"
+
+msgid "IDS_IDLE_BODY_PUK"
+msgstr "PUK"
+
+msgid "IDS_IDLE_POP_PIN_BLOCKED"
+msgstr "PIN bị chặn"
+
+msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
+msgstr "PIN được bỏ chặn"
+
+msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
+msgstr "Khóa mạng"
+
+msgid "IDS_IDLE_HEADER_PIN_LOCK"
+msgstr "Khóa mã PIN"
+
+msgid "IDS_IDLE_HEADER_PUK_LOCK"
+msgstr "Khóa PUK"
+
+msgid "IDS_IDLE_HEADER_SIM_BLOCKED"
+msgstr "Đã chặn SIM"
+
+msgid "IDS_IDLE_HEADER_SIM_LOCK"
+msgstr "Khóa máy vào SIM"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Còn 1 lần thử"
+
+msgid "IDS_IDLE_BODY_CORPORATE_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Cài đặt riêng của nhà cung cấp đang bật. Nhập mã điều khiển"
+
+msgid "IDS_IDLE_BODY_ENTER_NEW_PIN"
+msgstr "Nhập mã PIN mới"
+
+msgid "IDS_IDLE_BODY_ENTER_PIN"
+msgstr "Nhập số PIN"
+
+msgid "IDS_IDLE_BODY_ENTER_PUK"
+msgstr "Nhập mã PUK"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN"
+msgstr "PIN sai"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
+msgstr "Mã PIN sai.\nThử lại"
+
+msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Cài đặt riêng của mạng đang bật. Nhập mã điều khiển"
+
+msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Cài đặt riêng của mạng đang bật. Nhập mã điều khiển"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Còn lại %d lần"
+
+msgid "IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY"
+msgstr "Cài đặt riêng của nhà cung cấp dịch vụ đang bật. Nhập mã điều khiển"
+
+msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
+msgstr "Thẻ SIM không hoạt động. Liên hệ nhà cung cấp dịch vụ của bạn"
+
+msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
+msgstr "Sai mật mã"
+
+msgid "IDS_IDLE_BUTTON_DIALER"
+msgstr "Bàn phím"
+
+msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
+msgstr "Ngôn ngữ hiển thị"
+
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "Đang kiểm tra thẻ SIM.."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "Xin chào mừng!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "Chọn ngôn ngữ"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "Cuộc gọi khẩn cấp"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "Chạm để cài đặt"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "Hoàn tất"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "Đã cài đặt điện thoại và sẵn sàng để sử dụng"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "Cài đặt hoàn tất"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "Hãy tắt thiết bị của bạn, tháo pin và cẩn thận lắp thẻ SIM của bạn vào, để mặt tiếp xúc màu vàng xuống dưới. Góc bị cắt nên ở hướng xa nhất so với pin\nNếu bạn muốn bỏ qua bước này bây giờ, hãy đảm bảo là sẽ lắp thẻ SIM của mình vào sau. Cho đến khi bạn thực hiện thao tác này, hầu hết các tính năng trong điện thoại của bạn sẽ không hoạt động"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "Thử lại"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "Tự động"
+
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 7e48c58..4aaf778 100755..100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -28,18 +28,9 @@ msgstr "PIN 码锁定"
msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
msgstr "PIN 码解锁"
-msgid "IDS_IDLE_BUTTON_CANCEL"
-msgstr "取消"
-
-msgid "IDS_IDLE_BODY_AUTOMATIC"
-msgstr "自动"
-
msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
msgstr "网络锁"
-msgid "IDS_IDLE_HEADER_PHONE_LOCK"
-msgstr "手机锁"
-
msgid "IDS_IDLE_HEADER_PIN_LOCK"
msgstr "PIN码锁"
@@ -73,21 +64,12 @@ msgstr "错误的 PIN 码"
msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
msgstr "PIN 不正确。 请重试"
-msgid "IDS_IDLE_BODY_INCORRECT_PUK"
-msgstr "错误的 PUK 码"
-
-msgid "IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED"
-msgstr "不支持语言"
-
msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "网络个人化启动。请输入控制密钥"
msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "网络子集个人化启动。请输入控制密钥"
-msgid "IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG"
-msgstr "密码必须是 4 位数"
-
msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
msgstr "还有 %d 次机会"
@@ -97,11 +79,8 @@ msgstr "服务提供商个人化启动。请输入控制密钥"
msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
msgstr "SIM卡不可用。请联系服务提供商"
-msgid "IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE"
-msgstr "无法读取SIM卡语言"
-
msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
-msgstr "密码不符"
+msgstr "密码错误"
msgid "IDS_IDLE_BUTTON_DIALER"
msgstr "拨号盘"
@@ -109,3 +88,36 @@ msgstr "拨号盘"
msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
msgstr "显示语言"
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "检查 SIM 卡中..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "欢迎!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "选择语言"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "紧急呼叫"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "点击以设置"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "完成"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "设备已设置并准备使用"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "设置完成"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "关闭您的设备,移除电池,并小心将金属片侧朝下插入您的 SIM 卡。切口角应位于离电池最远处\n如果您想立即跳过,请务必稍后插入您的 SIM 卡。除非您插入 SIM 卡,否则您设备的大多数功能将无法使用"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "重试"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "自动"
+
diff --git a/po/zh_HK.po b/po/zh_HK.po
index db989f0..971d900 100755..100644
--- a/po/zh_HK.po
+++ b/po/zh_HK.po
@@ -28,18 +28,9 @@ msgstr "PIN 碼已封鎖"
msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
msgstr "PIN 碼已解鎖"
-msgid "IDS_IDLE_BUTTON_CANCEL"
-msgstr "取消"
-
-msgid "IDS_IDLE_BODY_AUTOMATIC"
-msgstr "自動"
-
msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
msgstr "網絡鎖"
-msgid "IDS_IDLE_HEADER_PHONE_LOCK"
-msgstr "手機鎖"
-
msgid "IDS_IDLE_HEADER_PIN_LOCK"
msgstr "PIN 碼鎖"
@@ -73,21 +64,12 @@ msgstr "PIN 碼不正確"
msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
msgstr "PIN 碼不正確。請重試"
-msgid "IDS_IDLE_BODY_INCORRECT_PUK"
-msgstr "PUK 碼錯誤"
-
-msgid "IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED"
-msgstr "語言不支援"
-
msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "網絡個人化已開。輸入控制密碼"
msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "網絡子集個人化已開。輸入控制密碼"
-msgid "IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG"
-msgstr "密碼必須是 4 位數"
-
msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
msgstr "剩餘 %d 次機會"
@@ -97,15 +79,45 @@ msgstr "服務供應商個人化已開。輸入控制密碼"
msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
msgstr "SIM 卡不可用。請聯絡服務供應商"
-msgid "IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE"
-msgstr "無法讀取 SIM 卡語言"
-
msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
msgstr "密碼錯誤"
msgid "IDS_IDLE_BUTTON_DIALER"
-msgstr "撥出螢幕"
+msgstr "撥號器"
msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
msgstr "顯示語言"
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "正在檢查 SIM 卡..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "歡迎!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "選擇語言"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "緊急通話"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "輕觸以設定"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "完成"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "裝置已設定且就緒"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "設定完成"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "關閉裝置、移除電池,然後小心地將金色面朝下插入 SIM 卡。截角處需置於離電池最遠的位置\n若您現在想跳過此步驟,之後請務必於插入 SIM 卡。直到完成前,裝置內多數功能皆無法使用"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "請重試"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "自動"
+
diff --git a/po/zh_TW.po b/po/zh_TW.po
index d4a544a..b68d2ad 100755..100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -8,10 +8,10 @@ msgid "IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED"
msgstr "需要 %d 到 %d 位數"
msgid "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT"
-msgstr "PIN 不正確。還剩 1 次嘗試機會"
+msgstr "PIN 不正確。還可嘗試一次"
msgid "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT"
-msgstr "PIN 不正確。剩餘 %d 次嘗試機會"
+msgstr "PIN 不正確。還可嘗試 %d 次"
msgid "IDS_IDLE_BODY_NEW_PIN"
msgstr "新 PIN"
@@ -26,20 +26,11 @@ msgid "IDS_IDLE_POP_PIN_BLOCKED"
msgstr "PIN 已封鎖"
msgid "IDS_IDLE_POP_PIN_UNBLOCKED"
-msgstr "未封鎖 PIN"
-
-msgid "IDS_IDLE_BUTTON_CANCEL"
-msgstr "取消"
-
-msgid "IDS_IDLE_BODY_AUTOMATIC"
-msgstr "自動"
+msgstr "已解除 PIN"
msgid "IDS_IDLE_HEADER_NETWORK_LOCK"
msgstr "網路鎖定"
-msgid "IDS_IDLE_HEADER_PHONE_LOCK"
-msgstr "手機鎖"
-
msgid "IDS_IDLE_HEADER_PIN_LOCK"
msgstr "PIN 鎖"
@@ -73,21 +64,12 @@ msgstr "PIN 不正確"
msgid "IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN"
msgstr "PIN 不正確。請重試"
-msgid "IDS_IDLE_BODY_INCORRECT_PUK"
-msgstr "PUK 不正確"
-
-msgid "IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED"
-msgstr "不支持的語言"
-
msgid "IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "開啟網路個性化,請輸入控制碼"
msgid "IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY"
msgstr "開啟網路子遮照個性化,請輸入控制碼"
-msgid "IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG"
-msgstr "密碼長度必須是 4 位數字"
-
msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
msgstr "剩餘 %d 次嘗試機會"
@@ -97,15 +79,45 @@ msgstr "開啟系統服務商個性化,請輸入控制碼"
msgid "IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER"
msgstr "SIM卡無法使用。請與您的系統服務商聯絡"
-msgid "IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE"
-msgstr "無法讀取SIM卡語言"
-
msgid "IDS_IDLE_BODY_WRONG_PASSWORD"
msgstr "密碼錯誤"
msgid "IDS_IDLE_BUTTON_DIALER"
-msgstr "撥號程式"
+msgstr "撥號器"
msgid "IDS_IDLE_HEADER_DISPLAY_LANGUAGE"
msgstr "顯示語言"
+msgid "IDS_IDLE_POP_CHECKING_SIM_CARD_ING"
+msgstr "正在檢查 SIM 卡..."
+
+msgid "IDS_SCM_BODY_WELCOME_E"
+msgstr "歡迎!"
+
+msgid "IDS_STU_BODY_SELECT_LANGUAGE"
+msgstr "選擇語言"
+
+msgid "IDS_ST_SK_EMERGENCY_CALL"
+msgstr "緊急電話"
+
+msgid "IDS_ST_BODY_TAP_TO_SET_UP"
+msgstr "點擊以設定"
+
+msgid "IDS_ST_BODY_INSTALTAB_FINISH"
+msgstr "結束"
+
+msgid "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE"
+msgstr "裝置已設定且就緒"
+
+msgid "IDS_STU_POP_SETUP_COMPLETE"
+msgstr "設定完成"
+
+msgid "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG"
+msgstr "關閉裝置、移除電池,然後小心地將金色面朝下插入 SIM 卡。截角處需置於離電池最遠的位置\n若您現在想略過此步驟,之後請務必於插入 SIM 卡。直到完成前,裝置內多數功能皆無法使用"
+
+msgid "IDS_ST_BUTTON_TRY_AGAIN_ABB"
+msgstr "請重試"
+
+msgid "IDS_IDLE_BODY_AUTOMATIC"
+msgstr "自動"
+
diff --git a/res/CMakeLists.txt b/res/CMakeLists.txt
new file mode 100755
index 0000000..47e1eec
--- /dev/null
+++ b/res/CMakeLists.txt
@@ -0,0 +1,13 @@
+ADD_CUSTOM_TARGET(${PACKAGE}.edj
+ COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images
+ ${CMAKE_CURRENT_SOURCE_DIR}/edje/pwlock.edc ${CMAKE_BINARY_DIR}/${PACKAGE}.edj
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/edje/pwlock.edc
+)
+
+ADD_DEPENDENCIES(${PROJECT_NAME} ${PACKAGE}.edj)
+
+#Install EDJ file
+INSTALL(FILES ${CMAKE_BINARY_DIR}/${PACKAGE}.edj DESTINATION ${EDJDIR})
+
+#Install Image files
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/images/ DESTINATION ${IMAGEDIR})
diff --git a/res/edje/pwlock-menu-greeting.edc b/res/edje/pwlock-menu-greeting.edc
new file mode 100644
index 0000000..ba1efe0
--- /dev/null
+++ b/res/edje/pwlock-menu-greeting.edc
@@ -0,0 +1,304 @@
+images {
+ image: "A01-9_bg.png" COMP;
+}
+
+group {
+ name: "pwlock-menu-lang";
+
+ parts {
+
+ part {
+ name: "bg";
+ type: IMAGE;
+
+ description {
+ state: "default" 0.0;
+ image {
+ normal: "A01-9_bg.png";
+ }
+ }
+ }
+
+ part {
+ name: "padding-top";
+ type: RECT;
+ scale: 1;
+
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ align: 0.0 0.0;
+ min: 0 358;
+ fixed: 1.0 1.0;
+
+ rel1 {
+ relative: 0.0 0.0;
+ to: "bg";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to: "bg";
+ }
+ }
+ }
+
+ part {
+ name: "text.greeting.1";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+
+ description {
+ state: "default" 0.0;
+ min: 0 46;
+ align: 0.0 0.0;
+ fixed: 1.0 1.0;
+
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "bg";
+ to_y: "padding-top";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to_x: "bg";
+ to_y: "padding-top";
+ }
+ text {
+ font: "SLP:style=Roman";
+ text_class:"slp_roman";
+ size: 44;
+ min: 0 0;
+ align: 0.5 0.5;
+ }
+ }
+ }
+
+ part {
+ name: "text.greeting.2";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+
+ description {
+ state: "default" 0.0;
+ min: 0 88;
+ align: 0.0 0.0;
+ fixed: 1.0 1.0;
+
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "bg";
+ to_y: "text.greeting.1";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to_x: "bg";
+ to_y: "text.greeting.1";
+ }
+ text {
+ font: "SLP:style=Medium";
+ text_class:"slp_medium";
+ size: 86;
+ min: 0 0;
+ align: 0.5 0.5;
+ }
+ }
+ }
+
+ part {
+ name: "space.from.greeting";
+ type: RECT;
+ scale: 1;
+
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ align: 0.0 0.0;
+ min: 0 82;
+ fixed: 1.0 1.0;
+
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "bg";
+ to_y: "text.greeting.2";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to_x: "bg";
+ to_y: "text.greeting.2";
+ }
+ }
+ }
+
+ part {
+ name: "text.help";
+ type: TEXT;
+ scale: 1;
+
+ description {
+ state: "default" 0.0;
+ min: 0 38;
+ align: 0.0 0.0;
+ fixed: 1 1;
+
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "bg";
+ to_y: "space.from.greeting";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to_x: "bg";
+ to_y: "space.from.greeting";
+ }
+ text {
+ font: "SLP:style=Roman";
+ text_class:"slp_roman";
+ size: 32;
+ min: 0 0;
+ align: 0.5 0.5;
+ }
+ }
+ }
+
+ part {
+ name: "space.from.text.help";
+ type: RECT;
+ scale: 1;
+
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ align: 0.0 0.0;
+ min: 0 24;
+ fixed: 1.0 1.0;
+
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "bg";
+ to_y: "text.help";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to_x: "bg";
+ to_y: "text.help";
+ }
+ }
+ }
+
+ part {
+ name: "space.select.lang.left";
+ type: SWALLOW;
+ scale: 1;
+
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ min: 16 74;
+ fixed: 1 1;
+
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "bg";
+ to_y: "space.from.text.help";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "bg";
+ to_y: "space.from.text.help";
+ }
+ }
+ }
+
+ part {
+ name: "space.select.lang.right";
+ type: SWALLOW;
+ scale: 1;
+
+ description {
+ state: "default" 0.0;
+ align: 1.0 0.0;
+ min: 16 74;
+ fixed: 1 1;
+
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "bg";
+ to_y: "space.from.text.help";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to_x: "bg";
+ to_y: "space.from.text.help";
+ }
+ }
+ }
+
+ part {
+ name: "button.select.lang";
+ type: SWALLOW;
+ scale: 1;
+
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ min: 0 74;
+ fixed: 1 1;
+
+ rel1 {
+ relative: 1.0 0.0;
+ to: "space.select.lang.left";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to: "space.select.lang.right";
+ }
+ }
+ }
+ } // ends of parts
+}
+
+group { name: "pwlock-finish";
+ parts {
+ part { name: "bg";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 249 249 249 255;
+ }
+ }
+
+ part { name: "padding-top";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ align: 0.0 0.0;
+ min: 0 100;
+ fixed: 1.0 1.0;
+
+ rel1 { relative: 0.0 0.0; to: "bg"; }
+ rel2 { relative: 1.0 0.0; to: "bg"; }
+ }
+ }
+
+ part { name: "swl/label";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 46;
+ align: 0.0 0.0;
+ fixed: 1.0 1.0;
+
+ rel1 { relative: 0.0 1.0; to_x: "bg"; to_y: "padding-top"; }
+ rel2 { relative: 1.0 1.0; to_x: "bg"; to_y: "padding-top"; }
+
+ }
+ }
+ }
+}
+
diff --git a/res/edje/pwlock-popup-checkview.edc b/res/edje/pwlock-popup-checkview.edc
new file mode 100644
index 0000000..78d4ec9
--- /dev/null
+++ b/res/edje/pwlock-popup-checkview.edc
@@ -0,0 +1,151 @@
+group { name: "popup_checkview";
+ parts{
+ part { name: "pad_t";
+ scale : 1;
+ mouse_events: 0;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ align: 0.5 0.0;
+ min: 0 14;
+ fixed: 0 1;
+ rel1 {
+ relative: 1.0 0.0;to_x: "pad_l";
+ }
+ rel2 {
+ relative: 0.0 0.0;to_x: "pad_r";
+ }
+ }
+ }
+ part { name: "pad_l";
+ scale: 1;
+ description { state: "default" 0.0;
+ min : 10 0;
+ fixed: 1 0;
+ rel1 {
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ }
+ align: 0.0 0.0;
+ }
+ }
+ part { name: "pad_r";
+ scale: 1;
+ description { state: "default" 0.0;
+ min : 10 0;
+ fixed: 1 0;
+ rel1 {
+ relative: 1.0 0.0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ }
+ align: 1.0 0.0;
+ }
+ }
+ part{ name:"elm.swallow.content";
+ type: SWALLOW;
+ scale : 1;
+ description { state: "default" 0.0;
+ min: 380 0;
+ align: 0.5 0.5;
+ fixed: 1 0;
+ rel1 {
+ relative: 0.5 1.0;
+ to: "pad_t";
+ }
+ rel2 {
+ relative: 0.5 0.0;
+ to: "pad_b";
+ }
+ }
+ }
+ part { name: "pad_b";
+ scale : 1;
+ mouse_events: 0;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ align: 0.5 1.0;
+ min: 0 96;
+ fixed: 0 1;
+ rel1 {
+ relative: 1.0 1.0;to_x: "pad_l";
+ }
+ rel2 {
+ relative: 0.0 1.0;to_x: "pad_r";
+ }
+ }
+ }
+ part { name: "elm.swallow.end";
+ type: SWALLOW;
+ scale : 1;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 0.18 0.0;
+ to: "pad_b";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to: "pad_b";
+ }
+ }
+ }
+ part { name: "elm.text";
+ type: TEXT;
+ scale : 1;
+ description { state: "default" 0.0;
+ text {
+ font: "SLP:style=Medium";
+ size: 32;
+ min: 0 0;
+ align: 0.5 0.5;
+ }
+ color: 249 249 249 255;
+ align: 0.0 1.0;
+ rel1 {
+ relative: 0.0 0.0;
+ to: "pad_b";
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ to: "pad_b";
+ }
+ }
+ }
+ }
+}
+
+group {
+ name: "page/genlist";
+ parts {
+ part {
+ name: "background";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 249 249 249 255;
+ }
+ }
+
+ part {
+ name: "swl/genlist";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "background"; }
+ rel2 { relative: 1.0 1.0; to: "background"; }
+ color: 0 0 0 0;
+ }
+ }
+ }
+}
diff --git a/res/edje/pwlock.edc b/res/edje/pwlock.edc
new file mode 100644
index 0000000..fa5e47f
--- /dev/null
+++ b/res/edje/pwlock.edc
@@ -0,0 +1,4 @@
+collections {
+ #include "pwlock-popup-checkview.edc"
+ #include "pwlock-menu-greeting.edc"
+}
diff --git a/res/images/A01-9_bg.png b/res/images/A01-9_bg.png
new file mode 100644
index 0000000..c083834
--- /dev/null
+++ b/res/images/A01-9_bg.png
Binary files differ
diff --git a/res/images/A01-9_controlbar_icon_Next.png b/res/images/A01-9_controlbar_icon_Next.png
new file mode 100644
index 0000000..036bf0d
--- /dev/null
+++ b/res/images/A01-9_controlbar_icon_Next.png
Binary files differ
diff --git a/res/images/A01-9_controlbar_icon_Previous.png b/res/images/A01-9_controlbar_icon_Previous.png
new file mode 100644
index 0000000..ee40496
--- /dev/null
+++ b/res/images/A01-9_controlbar_icon_Previous.png
Binary files differ
diff --git a/res/images/A01-9_controlbar_icon_Skip.png b/res/images/A01-9_controlbar_icon_Skip.png
new file mode 100644
index 0000000..bacd750
--- /dev/null
+++ b/res/images/A01-9_controlbar_icon_Skip.png
Binary files differ
diff --git a/res/images/A01-9_controlbar_icon_scan.png b/res/images/A01-9_controlbar_icon_scan.png
new file mode 100644
index 0000000..ea1c7f1
--- /dev/null
+++ b/res/images/A01-9_controlbar_icon_scan.png
Binary files differ
diff --git a/res/images/A01-9_icon_no_sim.png b/res/images/A01-9_icon_no_sim.png
new file mode 100644
index 0000000..1c52a78
--- /dev/null
+++ b/res/images/A01-9_icon_no_sim.png
Binary files differ
diff --git a/src/langs.c b/src/langs.c
new file mode 100755
index 0000000..e1cf156
--- /dev/null
+++ b/src/langs.c
@@ -0,0 +1,158 @@
+/*
+ * pwlock
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <locale.h>
+#include <vconf.h>
+#include <appcore-efl.h>
+
+#include "util.h"
+#include "langs.h"
+
+struct lang langs[_L_MAX] = {
+ {_L_AUTO, N_("IDS_IDLE_BODY_AUTOMATIC"), NULL, 0,},
+ {_L_EN, "English", "en_US.UTF-8", SETTING_LANG_ENGLISH,},
+ {_L_DE, "Deutsch", "de_DE.UTF-8", SETTING_LANG_GERMAN,},
+ {_L_NL, "Nederlands", "nl_NL.UTF-8", 0,},
+ {_L_ES, "Español", "es_ES.UTF-8", SETTING_LANG_SPAINISH,},
+ {_L_PT, "português", "pt_PT.UTF-8", SETTING_LANG_PORTUGUESE,},
+ {_L_EL, "ελληνικά", "el_GR.UTF-8", SETTING_LANG_GREEK,},
+ {_L_IT, "Italiano", "it_IT.UTF-8", SETTING_LANG_ITALIAN,},
+ {_L_FR, "Français", "fr_FR.UTF-8", SETTING_LANG_FRENCH,},
+ {_L_TR, "Türkçe", "tr_TR.UTF-8", SETTING_LANG_TURKISH,},
+ {_L_KO, "한국어", "ko_KR.UTF-8", SETTING_LANG_KOREA,},
+ {_L_CN, "简体中文", "zh_CN.UTF-8", SETTING_LANG_CHINA,},
+ {_L_HK, "繁體中文(香港)", "zh_HK.UTF-8", SETTING_LANG_CANTONESE,},
+ {_L_TW, "繁體中文(台灣)", "zh_TW.UTF-8", SETTING_LANG_TAIWAN,},
+ {_L_JP, "にほんご", "ja_JP.UTF-8", SETTING_LANG_JAPAN,},
+ {_L_RU, "Россию", "ru_RU.UTF-8", SETTING_LANG_RUSSIAN,},
+ {_L_GR, "Eλληνικά", "el_GR.UTF-8", SETTING_LANG_GREEK,}
+};
+
+static struct lang *_get_lang(int v)
+{
+ int i;
+ struct lang *r;
+
+ if (v < _L_AUTO || v >= _L_MAX) {
+ _ERR("Get LANG: Invalid code");
+ return NULL;
+ }
+
+ r = NULL;
+ for (i = 0; i < sizeof(langs) / sizeof(langs[0]); i++) {
+ if (langs[i].value == v) {
+ r = &langs[i];
+ break;
+ }
+ }
+
+ return r;
+}
+
+const char *get_lang_name(int v)
+{
+ struct lang *l;
+
+ l = _get_lang(v);
+ if (!l)
+ return NULL;
+
+ return l->name;
+}
+
+static const char *_get_code(int v)
+{
+ struct lang *l;
+
+ l = _get_lang(v);
+ if (!l)
+ return NULL;
+
+ return l->code;
+}
+
+static int _get_ival(int v)
+{
+ struct lang *l;
+
+ l = _get_lang(v);
+ if (!l)
+ return 0;
+
+ return l->ival;
+}
+
+static int _set_lang(const char *code, int ival)
+{
+ int r;
+
+ _DBG("set language: %s", code);
+ r = vconf_set_str(VCONFKEY_LANGSET, code);
+ if (r) {
+ _ERR("Set language: vconf error");
+ return -1;
+ }
+
+ r = vconf_set_int(VCONFKEY_SETAPPL_LANG_INT, ival);
+ if (r) {
+ _ERR("Set language: vconf error");
+ return -1;
+ }
+
+ return 0;
+}
+
+int set_lang(int v)
+{
+ int ival;
+ const char *code;
+
+ code = _get_code(v);
+ if (!code) {
+ _ERR("Set language: Unknown LANG code");
+ return -1;
+ }
+
+ code = setlocale(LC_ALL, code);
+ if (!code) {
+ _ERR("Set language: Unsupported LANG code");
+ return -1;
+ }
+
+ ival = _get_ival(v);
+ return _set_lang(code, ival);
+}
+
+const char *get_lang_name_by_path(char *path)
+{
+ int i = 0;
+
+ if (path == NULL) return NULL;
+
+ for (i = 0 ; i < _L_MAX ; i++) {
+
+ if (langs[i].code == NULL) continue;
+
+ if (strncasecmp(langs[i].code, path, MIN(strlen(langs[i].code), strlen(path))) == 0) {
+ return get_lang_name(i);
+ }
+ }
+
+ return NULL;
+}
diff --git a/src/pwlock.c b/src/pwlock.c
index 3f6bddd..4358b56 100755
--- a/src/pwlock.c
+++ b/src/pwlock.c
@@ -1,24 +1,25 @@
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.tizenopensource.org/license
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
+ * pwlock
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
#include <stdio.h>
#include <appcore-efl.h>
#include <Ecore_X.h>
-#include <ITapiSim.h>
#include <vconf.h>
#include <utilX.h>
@@ -27,20 +28,16 @@
#include "pwlock.h"
#include "util.h"
#include "ui.h"
+#include "langs.h"
#define _ST_START _ST_FIRST
#define HOME_KEY KEY_SELECT
#define BACK_KEY KEY_END
-#define PWLOCK_FIRST_BOOT "db/setting/pwlock_boot"
-#define MENUSCREEN_PKG_NAME "db/menuscreen/pkgname"
-#define LIVE_MAGAZINE_START "memory/startapps/sequence"
-#define TIMEZONE_CITY_NAME "db/setting/cityname_id"
-#define TIMEZONE_INFO_PATH "/usr/share/zoneinfo/"
-#define TIMEZONE_INFO_FILE TIMEZONE_INFO_PATH"zone.tab"
-
-#define MODEM_ARM "/boot/moden.bin"
-#define MODEM_X86 "/usr/bin/vmodem_x86"
+#define MENUSCREEN_PKG_NAME "db/menuscreen/pkgname" /* menu screen pkg name string */
+#define TIMEZONE_CITY_NAME "db/setting/cityname_id" /* get the city name */
+#define TIMEZONE_INFO_PATH "/usr/share/zoneinfo/" /* the path of the timezone infomation */
+#define TIMEZONE_INFO_FILE TIMEZONE_INFO_PATH"zone.tab" /* the file of the timezone infomation */
struct state {
int (*_do) (struct appdata * ad);
@@ -54,9 +51,13 @@ static int do_ST_SIM_PUKCNF(struct appdata *ad);
static int do_ST_SIM_LOCKCNF(struct appdata *ad);
static int do_ST_NETWORK_LOCKCNF(struct appdata *ad);
static int do_ST_EXIT(struct appdata *ad);
+static int do_ST_GREETING(struct appdata *ad);
static int do_ST_LANG(struct appdata *ad);
+static int do_ST_NOSIM(struct appdata *ad);
static int do_ST_TIME(struct appdata *ad);
-static int do_ST_KEYBOARD(struct appdata *ad);
+static int do_ST_CONNECTION(struct appdata *ad);
+static int do_ST_TUTORIAL(struct appdata *ad);
+static int do_ST_FINISH(struct appdata *ad);
static void set_pwlock_unlock_state(struct appdata *ad);
static void set_pwlock_lock_state(struct appdata *ad);
static Eina_Bool timer_do(void *data);
@@ -64,6 +65,7 @@ static void set_default_timezone(void *data);
static struct state states[_ST_MAX] = {
{do_ST_FIRST,},
+ /* { do_ST_INIT, }, */
{do_ST_TAPI_INIT,},
{do_ST_SIM,},
{do_ST_SIM_PINCNF,},
@@ -72,11 +74,15 @@ static struct state states[_ST_MAX] = {
{do_ST_NETWORK_LOCKCNF,},
{do_ST_EXIT,},
{do_ST_LANG,},
+ {do_ST_NOSIM,},
{do_ST_TIME,},
- {do_ST_KEYBOARD,},
+ {do_ST_GREETING,},
+ {do_ST_CONNECTION,},
+ {do_ST_TUTORIAL,},
+ {do_ST_FINISH,},
};
-static inline void trans(struct appdata *ad, int state)
+static inline void _trans(struct appdata *ad, int state)
{
_DBG("trans state %d --> state %d", ad->state, state);
ad->state = state;
@@ -131,7 +137,7 @@ static void _sim_retry(struct appdata *ad, int retry)
_DBG("%s", __func__);
if (retry == 0) {
- trans(ad, _ST_SIM);
+ _trans(ad, _ST_SIM);
do_state(ad);
return;
}
@@ -142,7 +148,7 @@ static void _sim_retry(struct appdata *ad, int retry)
pwlock_get_string(IDS_IDLE_BODY_1_ATTEMPT_LEFT),
sizeof(buf));
if (len >= sizeof(buf)) {
- return;
+ return; /* overrun */
}
} else {
len =
@@ -150,7 +156,7 @@ static void _sim_retry(struct appdata *ad, int retry)
pwlock_get_string(IDS_IDLE_BODY_PD_ATTEMPTS_LEFT),
retry);
if (len == -1) {
- return;
+ return; /* over run */
} else if (len > 0) {
buf[len] = '\0';
}
@@ -173,19 +179,19 @@ static void _sim_retry_no_cnt(struct appdata *ad)
clear_entry(ad);
}
-static void _tapi_cb(struct tapi_info *i, struct appdata *ad)
+static void _pwlock_tapi_cb(struct pwlock_tapi_info *i, struct appdata *ad)
{
_DBG("%s, i->st:%d", __func__, i->st);
switch (i->st) {
case SIM_REQUIRED_EVENT:
if ((ad->sim_status != 0) && (ad->sim_status == SIM_WAITING)) {
- trans(ad, _ST_SIM);
+ _trans(ad, _ST_SIM);
do_state(ad);
}
break;
case SIM_OK:
- trans(ad, _ST_SIM);
+ _trans(ad, _ST_SIM);
do_state(ad);
break;
case SIM_RETRY:
@@ -193,7 +199,7 @@ static void _tapi_cb(struct tapi_info *i, struct appdata *ad)
break;
case SIM_ERROR:
_ERR("SIM check error");
- trans(ad, _ST_EXIT);
+ _trans(ad, _ST_EXIT);
show_msg(ad, IDS_IDLE_POP_SIM_CARD_ERROR);
ecore_timer_add(3, timer_do, ad);
break;
@@ -201,7 +207,7 @@ static void _tapi_cb(struct tapi_info *i, struct appdata *ad)
if (ad->state == _ST_SIM_PINCNF) {
_sim_retry(ad, i->retry_cnt);
} else {
- trans(ad, _ST_SIM);
+ _trans(ad, _ST_SIM);
do_state(ad);
}
break;
@@ -218,41 +224,41 @@ static void _tapi_cb(struct tapi_info *i, struct appdata *ad)
break;
case SIM_REQ_NCK:
clear_entry(ad);
- ad->sub_state = TAPI_SIM_PERS_NET;
- trans(ad, _ST_NETWORK_LOCKCNF);
+ ad->sub_state = TAPI_SIM_LOCK_PN;
+ _trans(ad, _ST_NETWORK_LOCKCNF);
do_state(ad);
break;
case SIM_REQ_NSCK:
clear_entry(ad);
- ad->sub_state = TAPI_SIM_PERS_NS;
- trans(ad, _ST_NETWORK_LOCKCNF);
+ ad->sub_state = TAPI_SIM_LOCK_PU;
+ _trans(ad, _ST_NETWORK_LOCKCNF);
do_state(ad);
break;
case SIM_REQ_SPCK:
clear_entry(ad);
- ad->sub_state = TAPI_SIM_PERS_SP;
- trans(ad, _ST_NETWORK_LOCKCNF);
+ ad->sub_state = TAPI_SIM_LOCK_PP;
+ _trans(ad, _ST_NETWORK_LOCKCNF);
do_state(ad);
break;
case SIM_REQ_CCK:
clear_entry(ad);
- ad->sub_state = TAPI_SIM_PERS_CP;
- trans(ad, _ST_NETWORK_LOCKCNF);
+ ad->sub_state = TAPI_SIM_LOCK_PC;
+ _trans(ad, _ST_NETWORK_LOCKCNF);
do_state(ad);
break;
-
default:
+ /* do nothing */
break;
}
}
-static void tapi_cb(struct tapi_info *i, void *data)
+static void pwlock_tapi_cb(struct pwlock_tapi_info *i, void *data)
{
struct appdata *ad = data;
_DBG("%s, ad->state:%d", __func__, ad->state);
- _tapi_cb(i, ad);
+ _pwlock_tapi_cb(i, ad);
return;
}
@@ -264,24 +270,58 @@ static int do_ST_FIRST(struct appdata *ad)
_DBG("%s", __func__);
- r = vconf_get_bool(PWLOCK_FIRST_BOOT, &first);
- _DBG("vconf get %s, result:%d, get_value:%d", PWLOCK_FIRST_BOOT, r,
+ r = vconf_get_bool(VCONFKEY_PWLOCK_FIRST_BOOT, &first);
+ _DBG("vconf get %s, result:%d, get_value:%d", VCONFKEY_PWLOCK_FIRST_BOOT, r,
first);
- if ((r == 0 && first == 0) || (ad->running_status > 0)) {
+
+ if ((r == 0 && first == 0) || (ad->is_exec_after_bootup > 0)) {
_DBG("Not first booting time");
- ad->first_boot = 0;
- trans(ad, _ST_TAPI_INIT);
+ ad->is_first_boot = 0;
+ // change booting seq. - syhwang@20120627
+ vconf_set_int(VCONFKEY_STARTER_SEQUENCE, 1);
+
} else {
_DBG("First booting time");
- vconf_set_bool(PWLOCK_FIRST_BOOT, 0);
- ad->first_boot = 1;
- trans(ad, _ST_LANG);
+ //vconf_set_bool(VCONFKEY_PWLOCK_FIRST_BOOT, 0);
+ ad->is_first_boot = 1;
set_default_timezone(ad);
}
- vconf_set_int(LIVE_MAGAZINE_START, 1);
+
+ _trans(ad, _ST_TAPI_INIT);
+
return ECORE_CALLBACK_RENEW;
}
+static int do_ST_GREETING(struct appdata *ad)
+{
+ _DBG("%s", __func__);
+
+ if (show_greeting(ad))
+ return ECORE_CALLBACK_CANCEL;
+ else
+ return ECORE_CALLBACK_RENEW;
+}
+
+static int do_ST_CONNECTION(struct appdata *ad)
+{
+ _DBG("%s", __func__);
+
+ if (show_connection(ad))
+ return ECORE_CALLBACK_CANCEL;
+ else
+ return ECORE_CALLBACK_RENEW;
+}
+
+static int do_ST_TUTORIAL(struct appdata *ad)
+{
+ _DBG("%s", __func__);
+
+ if (show_tutorial(ad))
+ return ECORE_CALLBACK_CANCEL;
+ else
+ return ECORE_CALLBACK_RENEW;
+}
+
static Eina_Bool timer_do(void *data)
{
do_state(data);
@@ -290,7 +330,7 @@ static Eina_Bool timer_do(void *data)
static void set_pwlock_unlock_state(struct appdata *ad)
{
- if (ad->running_status > 0)
+ if (ad->is_exec_after_bootup > 0)
vconf_set_int(VCONFKEY_PWLOCK_STATE,
VCONFKEY_PWLOCK_RUNNING_UNLOCK);
else
@@ -300,7 +340,7 @@ static void set_pwlock_unlock_state(struct appdata *ad)
static void set_pwlock_lock_state(struct appdata *ad)
{
- if (ad->running_status > 0)
+ if (ad->is_exec_after_bootup > 0)
vconf_set_int(VCONFKEY_PWLOCK_STATE,
VCONFKEY_PWLOCK_RUNNING_LOCK);
else
@@ -363,7 +403,7 @@ void vconf_tapi_ready_changed_cb(keynode_t * node, void *data)
_DBG("SUCCESS to stop timer with pTimerId[%x]", (int)ad->pTimerId);
}
}
- trans(ad, _ST_SIM);
+ _trans(ad, _ST_SIM);
do_state(ad);
}
}
@@ -394,11 +434,11 @@ Eina_Bool vconf_tapi_ready_expire_cb(void *pData)
} else {
if (vconf_val == VCONFKEY_TELEPHONY_TAPI_STATE_NONE) {
_DBG("TAPI is not ready, pwlock exit");
- trans(ad, _ST_EXIT);
+ _trans(ad, _ST_EXIT);
do_state(ad);
} else {
_DBG("TAPI is ready");
- trans(ad, _ST_SIM);
+ _trans(ad, _ST_SIM);
do_state(ad);
}
}
@@ -408,79 +448,73 @@ Eina_Bool vconf_tapi_ready_expire_cb(void *pData)
static int do_ST_TAPI_INIT(struct appdata *ad)
{
int r;
- FILE *fd1;
- FILE *fd2;
_DBG("%s", __func__);
- fd1 = fopen(MODEM_ARM, "r");
- if (fd1 == NULL) {
- _DBG("no modem in target..!!");
- fd2 = fopen(MODEM_X86, "r");
- if (fd2 == NULL) {
- _DBG("no modem in x86..!!");
- if (ad->running_status == 0 && ad->first_boot
- && ad->cancel_setup == 0) {
- trans(ad, _ST_TIME);
- } else {
- trans(ad, _ST_EXIT);
- }
- return ECORE_CALLBACK_RENEW;
+ ad->t = pwlock_tapi_init(pwlock_tapi_cb, ad);
+ if (ad->t == NULL) {
+ _ERR("TAPI init error");
+
+ ad->tapi_init_retry_cnt++;
+ _DBG("Retry count of tapi init : %d\n", ad->tapi_init_retry_cnt);
+ if (ad->tapi_init_retry_cnt < 4) {
+ ecore_timer_add(1, timer_do, ad);
+ return ECORE_CALLBACK_CANCEL;
} else {
- fclose(fd2);
+ ad->tapi_init_retry_cnt = 0;
+ _trans(ad, _ST_EXIT);
+ return ECORE_CALLBACK_RENEW;
}
- } else {
- fclose(fd1);
}
- _DBG("there is modem..!!");
+ ad->tapi_init_retry_cnt = 0;
- ad->t = tapi_init(tapi_cb, ad);
- if (ad->t == NULL) {
- _ERR("TAPI init error");
- trans(ad, _ST_EXIT);
- return ECORE_CALLBACK_RENEW;
- }
-
- r = tapi_ready_check();
+ r = pwlock_tapi_ready_check();
_DBG("tapi_ready_check : %d", r);
if (r == 0) {
+ /* SHOULD MANAGE TIMER FROM NOW - START PART */
ad->pTimerId =
ecore_timer_add(20, vconf_tapi_ready_expire_cb, ad);
register_vconf_tapi_ready_changed(ad);
r = ECORE_CALLBACK_CANCEL;
} else {
- trans(ad, _ST_SIM);
+ _trans(ad, _ST_SIM);
r = ECORE_CALLBACK_RENEW;
}
+ /* change location of vconfset for homescreen launch
+ (when not first boot) - syhwang@20120706 */
+ if (ad->is_first_boot)
+ vconf_set_int(VCONFKEY_STARTER_SEQUENCE, 1);
+
return r;
}
static int do_ST_SIM(struct appdata *ad)
{
int r;
- int changed = 0;
+ int is_sim_changed = 0;
_DBG("%s", __func__);
set_pwlock_unlock_state(ad);
set_pwlock_lock_state(ad);
- ad->sim_status = tapi_check_sim(&changed);
- ad->sim_changed = changed;
- _DBG("ad->sim_status=%d, ad->sim_changed=%d, ad->first_boot=%d",
- ad->sim_status, changed, ad->first_boot);
+ ad->sim_status = pwlock_tapi_check_sim(ad->t, &is_sim_changed);
+ ad->sim_changed = is_sim_changed;
+ _DBG("ad->sim_status=%d, ad->sim_changed=%d, ad->is_first_boot=%d",
+ ad->sim_status, is_sim_changed, ad->is_first_boot);
+
switch (ad->sim_status) {
case SIM_REQ_PIN:
pwlock_destroy(ad);
show_pin(ad);
- trans(ad, _ST_SIM_PINCNF);
+ _trans(ad, _ST_SIM_PINCNF);
r = ECORE_CALLBACK_CANCEL;
break;
case SIM_REQ_PUK:
show_puk(ad);
- trans(ad, _ST_SIM_PUKCNF);
+ _trans(ad, _ST_SIM_PUKCNF);
r = ECORE_CALLBACK_CANCEL;
break;
case SIM_REQ_LOCK:
@@ -491,7 +525,7 @@ static int do_ST_SIM(struct appdata *ad)
} else {
show_sim_lock(ad);
}
- trans(ad, _ST_SIM_LOCKCNF);
+ _trans(ad, _ST_SIM_LOCKCNF);
r = ECORE_CALLBACK_CANCEL;
break;
case SIM_REQ_NCK:
@@ -501,8 +535,8 @@ static int do_ST_SIM(struct appdata *ad)
} else {
show_sim_lock(ad);
}
- ad->sub_state = TAPI_SIM_PERS_NET;
- trans(ad, _ST_NETWORK_LOCKCNF);
+ ad->sub_state = TAPI_SIM_LOCK_PN;
+ _trans(ad, _ST_NETWORK_LOCKCNF);
r = ECORE_CALLBACK_CANCEL;
break;
case SIM_REQ_NSCK:
@@ -512,8 +546,8 @@ static int do_ST_SIM(struct appdata *ad)
} else {
show_sim_lock(ad);
}
- ad->sub_state = TAPI_SIM_PERS_NS;
- trans(ad, _ST_NETWORK_LOCKCNF);
+ ad->sub_state = TAPI_SIM_LOCK_PU;
+ _trans(ad, _ST_NETWORK_LOCKCNF);
r = ECORE_CALLBACK_CANCEL;
break;
case SIM_REQ_SPCK:
@@ -523,8 +557,8 @@ static int do_ST_SIM(struct appdata *ad)
} else {
show_sim_lock(ad);
}
- ad->sub_state = TAPI_SIM_PERS_SP;
- trans(ad, _ST_NETWORK_LOCKCNF);
+ ad->sub_state = TAPI_SIM_LOCK_PP;
+ _trans(ad, _ST_NETWORK_LOCKCNF);
r = ECORE_CALLBACK_CANCEL;
break;
case SIM_REQ_CCK:
@@ -534,18 +568,30 @@ static int do_ST_SIM(struct appdata *ad)
} else {
show_sim_lock(ad);
}
- ad->sub_state = TAPI_SIM_PERS_CP;
- trans(ad, _ST_NETWORK_LOCKCNF);
+ ad->sub_state = TAPI_SIM_LOCK_PC;
+ _trans(ad, _ST_NETWORK_LOCKCNF);
r = ECORE_CALLBACK_CANCEL;
break;
case SIM_OK:
- if (ad->running_status == 0 && ad->first_boot && ad->cancel_setup == 0) {
- trans(ad, _ST_TIME);
- } else if (ad->running_status == 0 && ad->first_boot == 0 && changed) {
- trans(ad, _ST_LANG);
+ //unregister_tapi_factory_event(ad); /* For SMC Lab test */
+ if (ad->is_exec_after_bootup == 0 && ad->is_first_boot && ad->cancel_setup == 0) { /* First boot & don't cancel setup wizard */
+ if (ad->is_no_sim == 1) {
+ _trans(ad, _ST_TIME);
+ } else {
+ _trans(ad, _ST_GREETING);
+ }
+ } else if (ad->is_exec_after_bootup == 0 && ad->is_first_boot == 0 && is_sim_changed) { /* Not first boot, Card changed */
+ if (ad->is_no_sim == 1) {
+ _trans(ad, _ST_TIME);
+ } else {
+ _trans(ad, _ST_GREETING);
+ }
} else {
- trans(ad, _ST_EXIT);
+ _trans(ad, _ST_EXIT);
}
+
+ ad->is_no_sim = 0;
+
if (ad->pin_changed == 1) {
r = ECORE_CALLBACK_CANCEL;
show_msg(ad, IDS_IDLE_POP_PIN_CHANGED);
@@ -557,6 +603,7 @@ static int do_ST_SIM(struct appdata *ad)
break;
case SIM_WAITING:
+ /* wait till tapi send evt.. */
r = ECORE_CALLBACK_CANCEL;
break;
case SIM_BLOCKED:
@@ -564,28 +611,42 @@ static int do_ST_SIM(struct appdata *ad)
r = ECORE_CALLBACK_CANCEL;
break;
case SIM_RETRY:
+ /* do nothing, wait for TAPI callback */
ecore_timer_add(0.2, timer_do, ad);
r = ECORE_CALLBACK_CANCEL;
break;
case SIM_EMPTY:
- if (ad->running_status == 0 && ad->first_boot
+ if (ad->is_exec_after_bootup == 0 && ad->is_first_boot
&& ad->cancel_setup == 0) {
- trans(ad, _ST_TIME);
+ if (ad->is_no_sim != 1) {
+ _trans(ad, _ST_GREETING);
+ }
} else {
- trans(ad, _ST_EXIT);
+ _trans(ad, _ST_EXIT);
}
+ ad->is_no_sim = 1;
r = ECORE_CALLBACK_RENEW;
break;
default:
_ERR("Unexpected sim state: %d", ad->sim_status);
- trans(ad, _ST_EXIT);
+ _trans(ad, _ST_EXIT);
r = ECORE_CALLBACK_RENEW;
break;
}
return r;
}
-static int do_ST_SIM_PINCNF(struct appdata *ad)
+static int do_ST_NOSIM(struct appdata *ad)
+{
+ _DBG("%s", __func__);
+
+ if (show_nosim(ad))
+ return ECORE_CALLBACK_CANCEL;
+ else
+ return ECORE_CALLBACK_RENEW;
+}
+
+static int do_ST_SIM_PINCNF(struct appdata *ad)
{
int r;
@@ -594,14 +655,14 @@ static int do_ST_SIM_PINCNF(struct appdata *ad)
if (!ad->entry_str) {
_ERR("entry string is empty");
return ECORE_CALLBACK_CANCEL;
- }
+ }
- r = tapi_verify_pins(ad->entry_str);
+ r = pwlock_tapi_verify_pins(ad->t, ad->entry_str);
if (r == -1) {
_ERR("verify pin error");
- trans(ad, _ST_EXIT);
+ _trans(ad, _ST_EXIT);
return ECORE_CALLBACK_RENEW;
- }
+ }
return ECORE_CALLBACK_CANCEL;
}
@@ -619,10 +680,10 @@ static int do_ST_SIM_PUKCNF(struct appdata *ad)
return ECORE_CALLBACK_CANCEL;
}
- r = tapi_verify_puks(ad->entry_str, ad->pin_str);
+ r = pwlock_tapi_verify_puks(ad->t, ad->entry_str, ad->pin_str);
if (r == -1) {
_ERR("verify puk error");
- trans(ad, _ST_EXIT);
+ _trans(ad, _ST_EXIT);
return ECORE_CALLBACK_RENEW;
}
@@ -640,10 +701,10 @@ static int do_ST_SIM_LOCKCNF(struct appdata *ad)
return ECORE_CALLBACK_CANCEL;
}
- r = tapi_verify_lock(ad->entry_str);
+ r = pwlock_tapi_verify_lock(ad->t, ad->entry_str);
if (r == -1) {
_ERR("verify pin error");
- trans(ad, _ST_EXIT);
+ _trans(ad, _ST_EXIT);
return ECORE_CALLBACK_RENEW;
}
@@ -661,10 +722,10 @@ static int do_ST_NETWORK_LOCKCNF(struct appdata *ad)
return ECORE_CALLBACK_CANCEL;
}
- r = tapi_disable_net_pers(ad->entry_str, ad->sub_state);
+ r = pwlock_tapi_disable_net_pers(ad->t, ad->entry_str, ad->sub_state);
if (r == -1) {
_ERR("Disable network personalization failed");
- trans(ad, _ST_EXIT);
+ _trans(ad, _ST_EXIT);
return ECORE_CALLBACK_RENEW;
}
@@ -679,11 +740,11 @@ static int do_ST_EXIT(struct appdata *ad)
_DBG("%s", __func__);
locked = 0;
- r = vconf_get_int(LIVE_MAGAZINE_START, &locked);
+ r = vconf_get_int(VCONFKEY_STARTER_SEQUENCE, &locked);
_DBG("r = %d locked = %d", r, locked);
- if ((r != 0) || (locked == 0)) {
- _DBG("set %s to true", LIVE_MAGAZINE_START);
- vconf_set_int(LIVE_MAGAZINE_START, 1);
+ if ((r != 0) || (locked == 0)) { /* prevent */
+ _DBG("set %s to true", VCONFKEY_STARTER_SEQUENCE);
+ vconf_set_int(VCONFKEY_STARTER_SEQUENCE, 1);
}
elm_exit();
return ECORE_CALLBACK_CANCEL;
@@ -709,11 +770,11 @@ static int do_ST_TIME(struct appdata *ad)
return ECORE_CALLBACK_RENEW;
}
-static int do_ST_KEYBOARD(struct appdata *ad)
+static int do_ST_FINISH(struct appdata *ad)
{
_DBG("%s", __func__);
- if (show_keyboard_setting(ad))
+ if (show_finish(ad))
return ECORE_CALLBACK_CANCEL;
else
return ECORE_CALLBACK_RENEW;
@@ -728,7 +789,7 @@ static Eina_Bool _do_state(void *data)
if (ad->state < _ST_START || ad->state >= _ST_MAX) {
_ERR("Unknown state: %d", ad->state);
- trans(ad, _ST_EXIT);
+ _trans(ad, _ST_EXIT);
r = ECORE_CALLBACK_RENEW;
} else
r = states[ad->state]._do(ad);
@@ -746,6 +807,24 @@ void do_state(struct appdata *ad)
ad->idler = ecore_idler_add(_do_state, ad);
}
+void do_state_directly(int state, void *data)
+{
+ struct appdata *ad = data;
+
+ if ( ad == NULL ) {
+ _ERR("ad is null");
+ return ;
+ }
+
+ _trans(ad, state);
+
+ if (ad->state < _ST_START || ad->state >= _ST_MAX) {
+ _ERR("Unknown state: %d", ad->state);
+ do_state_directly(_ST_EXIT, ad);
+ } else
+ states[ad->state]._do(ad);
+}
+
void set_win_prop(struct appdata *ad, int type)
{
Ecore_X_Window w;
@@ -771,6 +850,7 @@ static void set_key_grab(Evas_Object * win)
w = elm_win_xwindow_get(win);
utilx_grab_key(ecore_x_display_get(), w, KEY_SELECT, EXCLUSIVE_GRAB);
+ /* FIXME for blocking camera launching */
utilx_grab_key(ecore_x_display_get(), w, KEY_CAMERA, TOP_POSITION_GRAB);
}
@@ -797,14 +877,11 @@ static void pwlock_focus_out_cb(void *data, Evas_Object * obj, void *event_info)
elm_win_raise(ad->win);
free(pkg_str);
pkg_str = NULL;
- } else
- if (!strncmp("org.tizen.live-magazine", buf, strlen(buf)))
- {
+ } else if (!strncmp("org.tizen.live-magazine", buf, strlen(buf))) {
_DBG("%s is on the pwlock.!!\n", buf);
elm_win_raise(ad->win);
}
}
-
}
static int _batt_cb(void *data)
@@ -836,34 +913,34 @@ static Eina_Bool app_hardkey_up_cb(void *data, int type, void *event)
_DBG("[%s]Key up : %s\n", __func__, pKeyEvent->keyname);
if ((!strcmp(pKeyEvent->keyname, HOME_KEY)) && (ad->state > _ST_EXIT)) {
- _DBG("ad->ui_type=%d", ad->ui_type);
- switch (ad->ui_type) {
- case _UI_LANG:
- case _UI_TIME:
- case _UI_KEYBOARD:
- {
- if (vconf_get_int
- (VCONFKEY_IDLE_LOCK_STATE, &val) < 0) {
- _DBG("Cannot get VCONFKEY_IDLE_LOCK_STATE");
- return 0;
- }
- if (val == VCONFKEY_IDLE_UNLOCK) {
- _DBG("unlocked..!!");
- show_popup(ad,
- pwlock_get_string
- (IDS_IDLE_BODY_DO_YOU_WANT_TO_SKIP_SETUPWIZARD),
- EINA_FALSE);
- }
- }
- break;
- default:
+ _DBG("keyup event on ad->ui_type=%d", ad->ui_type);
+
+ if (ad->ui_type == _UI_DIALER) {
return 0;
}
+ if (ad->ui_type >= _UI_LANG) {
+ if (vconf_get_int
+ (VCONFKEY_IDLE_LOCK_STATE, &val) < 0) {
+ _DBG("Cannot get VCONFKEY_IDLE_LOCK_STATE");
+ return 0;
+ }
+ if (val == VCONFKEY_IDLE_UNLOCK) {
+ _DBG("unlocked..!!");
+ show_popup_ask_exit(ad,
+ pwlock_get_string
+ (IDS_IDLE_BODY_DO_YOU_WANT_TO_SKIP_SETUPWIZARD));
+ }
+ }
} else if (!strcmp(pKeyEvent->keyname, BACK_KEY)) {
_DBG("[%s] %d ad->ui_type: %d", __func__, __LINE__,
ad->ui_type);
switch (ad->ui_type) {
case _UI_DIALER:
+ /*
+ edje_object_signal_emit(elm_layout_edje_get
+ (ad->dialer_ug_layout),
+ "elm,state,hide", "");
+ */
ug_send_key_event(UG_KEY_EVENT_END);
ad->ui_type = ad->previous_ui_type;
break;
@@ -877,7 +954,6 @@ static int app_create(void *data)
struct appdata *ad = data;
_DBG("%s", __func__);
-
ad->win = create_win(PACKAGE);
if (ad->win == NULL) {
_ERR("Create win error");
@@ -887,33 +963,42 @@ static int app_create(void *data)
set_key_grab(ad->win);
register_vconf_call_state_changed(ad);
set_win_prop(ad, ECORE_X_WINDOW_TYPE_NOTIFICATION);
+ /* for exception */
evas_object_smart_callback_add(ad->win, "focus,out",
pwlock_focus_out_cb, ad);
appcore_set_i18n(PACKAGE, LOCALEDIR);
appcore_set_event_callback(APPCORE_EVENT_LOW_BATTERY, _batt_cb, ad);
ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, app_hardkey_up_cb, ad);
- if (ad->navi) {
- evas_object_del(ad->navi);
- ad->navi = NULL;
- if (ad->ly_main) {
- evas_object_del(ad->ly_main);
- ad->ly_main = NULL;
+ if (ad->elm_navigation_frame) {
+ evas_object_del(ad->elm_navigation_frame);
+ ad->elm_navigation_frame = NULL;
+ if (ad->layout_contents) {
+ evas_object_del(ad->layout_contents);
+ ad->layout_contents = NULL;
}
- if (ad->entry_layout) {
- evas_object_del(ad->entry_layout);
- ad->entry_layout = NULL;
+ if (ad->layout_entry) {
+ evas_object_del(ad->layout_entry);
+ ad->layout_entry = NULL;
}
- if (ad->entry_second_layout) {
- evas_object_del(ad->entry_second_layout);
- ad->entry_second_layout = NULL;
+ if (ad->layout_second_entry) {
+ evas_object_del(ad->layout_second_entry);
+ ad->layout_second_entry = NULL;
+ }
+ if (ad->elm_conform) {
+ evas_object_del(ad->elm_conform);
+ ad->elm_conform = NULL;
}
-
}
+ ad->is_no_sim = 0;
+
+ // set 0 to retry count of tapi init
+ ad->tapi_init_retry_cnt = 0;
+
ad->state = _ST_FIRST;
do_state(ad);
-
+
return 0;
}
@@ -926,34 +1011,39 @@ static int app_terminate(void *data)
set_pwlock_unlock_state(ad);
if (ad->t)
- tapi_exit(&ad->t);
+ pwlock_tapi_exit(&ad->t);
if (ad->win) {
utilx_ungrab_key(ecore_x_display_get(),
elm_win_xwindow_get(ad->win), KEY_SELECT);
+ /* FIXME for blocking camera launching */
utilx_ungrab_key(ecore_x_display_get(),
elm_win_xwindow_get(ad->win), KEY_CAMERA);
evas_object_del(ad->win);
}
- if (ad->navi) {
- evas_object_del(ad->navi);
- ad->navi = NULL;
+ if (ad->elm_navigation_frame) {
+ evas_object_del(ad->elm_navigation_frame);
+ ad->elm_navigation_frame = NULL;
+ }
+ if (ad->layout_contents) {
+ evas_object_del(ad->layout_contents);
+ ad->layout_contents = NULL;
}
- if (ad->ly_main) {
- evas_object_del(ad->ly_main);
- ad->ly_main = NULL;
+ if (ad->layout_entry) {
+ evas_object_del(ad->layout_entry);
+ ad->layout_entry = NULL;
}
- if (ad->entry_layout) {
- evas_object_del(ad->entry_layout);
- ad->entry_layout = NULL;
+ if (ad->layout_second_entry) {
+ evas_object_del(ad->layout_second_entry);
+ ad->layout_second_entry = NULL;
}
- if (ad->entry_second_layout) {
- evas_object_del(ad->entry_second_layout);
- ad->entry_second_layout = NULL;
+ if (ad->elm_bg) {
+ evas_object_del(ad->elm_bg);
+ ad->elm_bg = NULL;
}
- if (ad->bg) {
- evas_object_del(ad->bg);
- ad->bg = NULL;
+ if (ad->elm_conform) {
+ evas_object_del(ad->elm_conform);
+ ad->elm_conform = NULL;
}
if (ad->idler) {
ecore_idler_del(ad->idler);
@@ -991,9 +1081,9 @@ int main(int argc, char *argv[])
if (argc > 1) {
_DBG("argv[1]:%s ", argv[1]);
- ad.running_status = atoi(argv[1]);
+ ad.is_exec_after_bootup = atoi(argv[1]);
} else {
- ad.running_status = 0;
+ ad.is_exec_after_bootup = 0;
system("chmod 666 " LOGFILE);
}
diff --git a/src/tapi.c b/src/tapi.c
index 232052a..6ebd96f 100755
--- a/src/tapi.c
+++ b/src/tapi.c
@@ -1,99 +1,104 @@
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.tizenopensource.org/license
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
+ * pwlock
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
#include <stdio.h>
-
-#include <TapiEvent.h>
-#include <ITapiSim.h>
-#include <TapiCommon.h>
#include <vconf.h>
#include "util.h"
#include "tapi.h"
+#include "langs.h"
#ifndef PACKAGE_NAME
#define PACKAGE_NAME "org.tizen.pwlock"
#endif
-enum {
- _L_UNSPEC = -1,
- _L_AUTO,
- _L_EN,
- _L_DE,
- _L_NL,
- _L_ES,
- _L_PT,
- _L_EL,
- _L_IT,
- _L_FR,
- _L_TR,
- _L_KO,
- _L_MAX,
+static struct tapi_event tapi_events[] = {
+ {-1, TAPI_NOTI_MODEM_POWER, pwlock_tapi_noti_modem_power_cb,},
+ {-1, TAPI_NOTI_SIM_STATUS, pwlock_tapi_noti_sim_status_cb,},
};
-static int _LP_L[] = {
- TAPI_SIM_LP_GERMAN, _L_UNSPEC,
- TAPI_SIM_LP_ENGLISH, _L_EN,
- TAPI_SIM_LP_ITALIAN, _L_UNSPEC,
- TAPI_SIM_LP_FRENCH, _L_UNSPEC,
- TAPI_SIM_LP_SPANISH, _L_UNSPEC,
- TAPI_SIM_LP_DUTCH, _L_UNSPEC,
- TAPI_SIM_LP_SWEDISH, _L_UNSPEC,
- TAPI_SIM_LP_DANISH, _L_UNSPEC,
- TAPI_SIM_LP_PORTUGUESE, _L_UNSPEC,
- TAPI_SIM_LP_FINNISH, _L_UNSPEC,
- TAPI_SIM_LP_NORWEGIAN, _L_UNSPEC,
- TAPI_SIM_LP_GREEK, _L_UNSPEC,
- TAPI_SIM_LP_TURKISH, _L_UNSPEC,
- TAPI_SIM_LP_HUNGARIAN, _L_UNSPEC,
- TAPI_SIM_LP_POLISH, _L_UNSPEC,
-};
+static int _pwlock_tapi_register_noti_events(struct tapi *t)
+{
+ int r;
+ int i;
+ unsigned int sid;
-struct tapi {
- struct tapi_event *evt;
- int evt_sz;
+ if (t == NULL)
+ return -1;
- void *cb_data;
- void (*cb) (struct tapi_info *, void *);
-};
+ for (i = 0; i < t->evt_sz; i++) {
+ r = tel_register_noti_event(t->handle, t->evt[i].event, t->evt[i].tapi_notification_cb, t);
+ _DBG("TAPI register event : %s", t->evt[i].event);
+ if (r != TAPI_API_SUCCESS) {
+ _ERR("TAPI register event %s return %d",
+ t->evt[i].event, r);
+ return -1;
+ }
+ t->evt[i].sid = sid;
+ }
-struct tapi_event {
- unsigned int sid;
- int event;
-};
+ return 0;
+}
-static struct tapi_event tapi_events[] = {
- {-1, TAPI_EVENT_POWER_SERVICE_READY_IND,},
- {-1, TAPI_EVENT_SIM_VERIFY_SEC_CNF,},
- {-1, TAPI_EVENT_SIM_VERIFY_PUK_CNF,},
- {-1, TAPI_EVENT_SIM_STATUS_IND,},
- {-1, TAPI_EVENT_SIM_DISABLE_PERS_CNF,},
-};
+static void _pwlock_tapi_deregister_noti_events(struct tapi *t)
+{
+ int r;
+ int i;
+
+ if (t == NULL)
+ return;
+
+
+ for (i = 0; i < t->evt_sz; i++) {
+ if (t->evt[i].sid == -1)
+ continue;
-static void do_sim_status(const TelTapiEvent_t * evt, void *data)
+ r = tel_deregister_noti_event(t->handle, t->evt[i].event);
+ if (r == TAPI_API_SUCCESS)
+ t->evt[i].sid = -1; /* reset */
+ else
+ _ERR("TAPI unregister sid %d return %d", t->evt[i].sid,
+ r);
+ }
+}
+
+void pwlock_tapi_noti_modem_power_cb(TapiHandle *handle, const char *noti_id, void *data, void *user_data)
{
- struct tapi *t = data;
- struct tapi_info ti;
+ ;
+}
- _DBG("Sim status: 0x%x", evt->Status);
+void pwlock_tapi_noti_sim_status_cb(TapiHandle *handle, const char *noti_id, void *data, void *user_data)
+{
+ TelSimCardStatus_t *sim_status = data;
+ struct tapi *t = user_data;
+ struct pwlock_tapi_info ti;
+
+ if (sim_status == NULL) {
+ _ERR("pwlock_tapi_noti_sim_status_cb:status is null");
+ return ;
+ }
+
+ _DBG("Sim status: 0x%x", *sim_status);
memset(&ti, 0, sizeof(ti));
- switch (evt->Status) {
+ switch (*sim_status) {
case TAPI_SIM_STATUS_SIM_PIN_REQUIRED:
case TAPI_SIM_STATUS_SIM_PUK_REQUIRED:
case TAPI_SIM_STATUS_SIM_NCK_REQUIRED:
@@ -106,31 +111,39 @@ static void do_sim_status(const TelTapiEvent_t * evt, void *data)
case TAPI_SIM_STATUS_CARD_ERROR:
ti.st = SIM_ERROR;
break;
+ case TAPI_SIM_STATUS_SIM_INITIALIZING:
+ ti.st = SIM_WAITING;
+ break;
default:
ti.st = SIM_OK;
break;
}
- if (evt->Status == TAPI_SIM_STATUS_SIM_INITIALIZING
- && (*(TelSimCardType_t *) evt->pData != 0))
- _DBG("Card type: %d", *(TelSimCardType_t *) evt->pData);
-
if (t->cb)
t->cb(&ti, t->cb_data);
-
}
-static void do_sim_verify(const TelTapiEvent_t * evt, void *data)
+void pwlock_tapi_verify_sim_pins_and_puks_cb(TapiHandle *handle, int result, void *data, void *user_data)
{
- struct tapi *t = data;
- struct tapi_info ti;
- TelSimSecResult_t *res = (TelSimSecResult_t *) evt->pData;
+ TelSimPinOperationResult_t sec_rt = result;
+ TelSimSecResult_t *res = data;
+ struct tapi *t = user_data;
+ struct pwlock_tapi_info ti;
+
+ if (t == NULL) {
+ _ERR("pwlock_tapi_verify_sim_pins_cb:struct tapi is null");
+ return ;
+ }
+ if (res == NULL) {
+ _ERR("pwlock_tapi_verify_sim_pins_cb:res is null");
+ return ;
+ }
- _DBG("Sim verify sec: 0x%x", evt->Status);
+ _DBG("sim pin/puk check result: 0x%x", sec_rt);
memset(&ti, 0, sizeof(ti));
- switch (evt->Status) {
+ switch (sec_rt) {
case TAPI_SIM_OPERATION_TIMEOUT:
_DBG("\tTimeout");
ti.st = SIM_ERROR;
@@ -157,17 +170,17 @@ static void do_sim_verify(const TelTapiEvent_t * evt, void *data)
ti.st = SIM_REQ_LOCK;
ti.retry_cnt = res->retry_count;
break;
- case TAPI_SIM_NCK_REQUIRED:
+ case TAPI_SIM_NCK_REQUIRED: /**< Network Control Key Required */
_DBG("\tType: %d", res->type);
_DBG("\tRetry: %d", res->retry_count);
ti.st = SIM_REQ_NCK;
break;
- case TAPI_SIM_NSCK_REQUIRED:
+ case TAPI_SIM_NSCK_REQUIRED: /**< Network Subset Control Key Required */
_DBG("\tType: %d", res->type);
_DBG("\tRetry: %d", res->retry_count);
ti.st = SIM_REQ_NSCK;
break;
- case TAPI_SIM_SPCK_REQUIRED:
+ case TAPI_SIM_SPCK_REQUIRED: /**< Service Provider Control Key Required */
_DBG("\tType: %d", res->type);
_DBG("\tRetry: %d", res->retry_count);
ti.st = SIM_REQ_SPCK;
@@ -194,16 +207,27 @@ static void do_sim_verify(const TelTapiEvent_t * evt, void *data)
t->cb(&ti, t->cb_data);
}
-static void do_sim_disable_pers(const TelTapiEvent_t * evt, void *data)
+void pwlock_tapi_disable_sim_facility_cb(TapiHandle *handle, int result, void *data, void *user_data)
{
- struct tapi *t = data;
- struct tapi_info ti;
- TelSimSecResult_t *res = (TelSimSecResult_t *) evt->pData;
+ TelSimPinOperationResult_t sec_rt = result;
+ TelSimSecResult_t *res = data;
+ struct tapi *t = user_data;
+ struct pwlock_tapi_info ti;
- _DBG("Sim disable PERS: 0x%x", evt->Status);
+ if (t == NULL) {
+ _ERR("pwlock_tapi_verify_sim_pins_cb:struct tapi is null");
+ return ;
+ }
+ if (res == NULL) {
+ _ERR("pwlock_tapi_verify_sim_pins_cb:res is null");
+ return ;
+ }
+
+ _DBG("PER setting result: 0x%x", sec_rt);
memset(&ti, 0, sizeof(ti));
- switch (evt->Status) {
+
+ switch (sec_rt) {
case TAPI_SIM_OPERATION_TIMEOUT:
_DBG("\tTimeout");
ti.st = SIM_ERROR;
@@ -212,17 +236,17 @@ static void do_sim_disable_pers(const TelTapiEvent_t * evt, void *data)
_DBG("\tType: %d", res->type);
ti.st = SIM_OK;
break;
- case TAPI_SIM_NCK_REQUIRED:
+ case TAPI_SIM_NCK_REQUIRED: /**< Network Control Key Required */
_DBG("\tType: %d", res->type);
_DBG("\tRetry: %d", res->retry_count);
ti.st = SIM_REQ_NCK;
break;
- case TAPI_SIM_NSCK_REQUIRED:
+ case TAPI_SIM_NSCK_REQUIRED: /**< Network Subset Control Key Required */
_DBG("\tType: %d", res->type);
_DBG("\tRetry: %d", res->retry_count);
ti.st = SIM_REQ_NSCK;
break;
- case TAPI_SIM_SPCK_REQUIRED:
+ case TAPI_SIM_SPCK_REQUIRED: /**< Service Provider Control Key Required */
_DBG("\tType: %d", res->type);
_DBG("\tRetry: %d", res->retry_count);
ti.st = SIM_REQ_SPCK;
@@ -237,135 +261,57 @@ static void do_sim_disable_pers(const TelTapiEvent_t * evt, void *data)
_DBG("\tRetry: %d", res->retry_count);
ti.st = SIM_REQ_LOCK;
break;
-
}
+ /* TODO: retry or error??? */
if (t->cb)
t->cb(&ti, t->cb_data);
}
-static void event_sim(const TelTapiEvent_t * evt, void *data)
-{
- _DBG("TAPI EventType: %d", evt->EventType);
-
- switch (evt->EventType) {
- case TAPI_EVENT_SIM_STATUS_IND:
- do_sim_status(evt, data);
- break;
- case TAPI_EVENT_SIM_VERIFY_SEC_CNF:
- case TAPI_EVENT_SIM_VERIFY_PUK_CNF:
- do_sim_verify(evt, data);
- break;
- case TAPI_EVENT_SIM_DISABLE_PERS_CNF:
- do_sim_disable_pers(evt, data);
- break;
- default:
- _ERR("TAPI unhandle type: %d", evt->EventType);
- break;
- }
-}
-
-static int event_cb(const TelTapiEvent_t * evt, void *data)
-{
- _DBG("TAPI EventClass: %d", evt->EventClass);
-
- switch (evt->EventClass) {
- case TAPI_EVENT_CLASS_SIM:
- event_sim(evt, data);
- break;
- default:
- _ERR("TAPI unregister event received: %d", evt->EventClass);
- break;
- }
- return 0;
-}
-
-static int _register_events(struct tapi *t)
-{
- int r;
- int i;
- unsigned int sid;
-
- if (t == NULL)
- return -1;
-
- for (i = 0; i < t->evt_sz; i++) {
- r = tel_register_event(t->evt[i].event, &sid, event_cb, t);
- _DBG("TAPI register event : %d", t->evt[i].event);
- if (r != TAPI_API_SUCCESS) {
- _ERR("TAPI register event %d return %d",
- t->evt[i].event, r);
- return -1;
- }
- t->evt[i].sid = sid;
- }
-
- return 0;
-}
-
-static void _unregister_events(struct tapi *t)
-{
- int r;
- int i;
-
- if (t == NULL)
- return;
-
- for (i = 0; i < t->evt_sz; i++) {
- if (t->evt[i].sid == -1)
- continue;
-
- r = tel_deregister_event(t->evt[i].sid);
- if (r == TAPI_API_SUCCESS)
- t->evt[i].sid = -1;
- else
- _ERR("TAPI unregister sid %d return %d", t->evt[i].sid,
- r);
- }
-}
-
static enum sim_stat check_sim(TelSimCardStatus_t stat)
{
enum sim_stat r;
switch (stat) {
- case TAPI_SIM_STATUS_CARD_NOT_PRESENT:
- case TAPI_SIM_STATUS_CARD_REMOVED:
+ case TAPI_SIM_STATUS_CARD_NOT_PRESENT: /* Card not present. */
+ case TAPI_SIM_STATUS_CARD_REMOVED: /* Card removed. */
r = SIM_EMPTY;
break;
- case TAPI_SIM_STATUS_SIM_INITIALIZING:
+ /* case 0xFF: // Sim is Initializing state. //the value is not in TelSimCardStatus_t, remove it */
+ case TAPI_SIM_STATUS_SIM_INITIALIZING: /* Sim is Initializing state. */
r = SIM_WAITING;
break;
- case TAPI_SIM_STATUS_SIM_INIT_COMPLETED:
+ case TAPI_SIM_STATUS_SIM_INIT_COMPLETED: /* Sim Initialization ok. */
r = SIM_OK;
break;
- case TAPI_SIM_STATUS_SIM_PIN_REQUIRED:
+ case TAPI_SIM_STATUS_SIM_PIN_REQUIRED: /* PIN required state. */
r = SIM_REQ_PIN;
break;
- case TAPI_SIM_STATUS_SIM_PUK_REQUIRED:
+ case TAPI_SIM_STATUS_SIM_PUK_REQUIRED: /* PUK required state. */
r = SIM_REQ_PUK;
break;
- case TAPI_SIM_STATUS_CARD_BLOCKED:
+ case TAPI_SIM_STATUS_CARD_BLOCKED: /* PIN/PUK blocked(permanently blocked) */
r = SIM_BLOCKED;
break;
- case TAPI_SIM_STATUS_SIM_LOCK_REQUIRED:
+ case TAPI_SIM_STATUS_SIM_LOCK_REQUIRED: /* PH-SIM (phone-sim) locked state. */
r = SIM_REQ_LOCK;
break;
- case TAPI_SIM_STATUS_SIM_NCK_REQUIRED:
+ case TAPI_SIM_STATUS_SIM_NCK_REQUIRED: /* Network Control Key required state. */
r = SIM_REQ_NCK;
break;
- case TAPI_SIM_STATUS_SIM_NSCK_REQUIRED:
+ case TAPI_SIM_STATUS_SIM_NSCK_REQUIRED: /* Network Subset Control Key required state. */
r = SIM_REQ_NSCK;
break;
- case TAPI_SIM_STATUS_SIM_SPCK_REQUIRED:
+ case TAPI_SIM_STATUS_SIM_SPCK_REQUIRED: /* Service Provider Control Key required state. */
r = SIM_REQ_SPCK;
break;
- case TAPI_SIM_STATUS_SIM_CCK_REQUIRED:
+ case TAPI_SIM_STATUS_SIM_CCK_REQUIRED: /* Corporate Control Key required state. */
r = SIM_REQ_CCK;
break;
- case 0xff:
+ case 0xff: /* for tapi default value, timing issue */
r = SIM_RETRY;
break;
- case TAPI_SIM_STATUS_CARD_ERROR:
+ /* TODO: implement more locks... */
+ case TAPI_SIM_STATUS_CARD_ERROR: /* Bad card , On the fly SIM gone bad. */
default:
r = SIM_ERROR;
break;
@@ -373,7 +319,7 @@ static enum sim_stat check_sim(TelSimCardStatus_t stat)
return r;
}
-enum sim_stat tapi_check_sim(int *changed)
+enum sim_stat pwlock_tapi_check_sim(struct tapi *t, int *changed)
{
TapiResult_t r = TAPI_API_SUCCESS;
int card_changed = 0;
@@ -381,9 +327,10 @@ enum sim_stat tapi_check_sim(int *changed)
TelSimCardStatus_t st = 0x00;
_DBG("Enum size: %d", sizeof(st));
- r = tel_get_sim_init_info(&st, &card_changed);
+ r = tel_get_sim_init_info(t->handle, &st, &card_changed);
+
+ _DBG("tel_get_sim_init_info return %d, sim state: %d", r, st);
- _DBG("Get sim status return %d", r);
if (r == TAPI_API_SUCCESS) {
*changed = card_changed;
_DBG("Get tapi sim status: 0x%x card changed: %d", st,
@@ -405,21 +352,7 @@ enum sim_stat tapi_check_sim(int *changed)
return res;
}
-int tapi_is_ready(void)
-{
- int r;
- int ready;
-
- r = tel_check_service_ready(&ready);
- if (r != TAPI_API_SUCCESS) {
- _ERR("TAPI check ready error %d", r);
- return 0;
- }
- _DBG("Tapi ready status: %d", ready);
- return ready;
-}
-
-int tapi_ready_check(void)
+int pwlock_tapi_ready_check(void)
{
int api_ret = 0;
int vconf_val = 0;
@@ -428,6 +361,12 @@ int tapi_ready_check(void)
api_ret = vconf_get_int(VCONFKEY_TELEPHONY_TAPI_STATE, &vconf_val);
if (api_ret != 0) {
+ /*
+ if appn check very fast before telephony boot up, telephony can not be ready yet
+ in this point, appn should register vconf callback fuction with timer
+ timer will be used to waiting telephony boot up with limitation.
+ user should set proper time. (currently it`s up to experience)
+ */
_DBG("fail to get vconf key value. this means telephony does not start");
} else {
if (vconf_val == VCONFKEY_TELEPHONY_TAPI_STATE_NONE) {
@@ -439,10 +378,9 @@ int tapi_ready_check(void)
return vconf_val;
}
-static int verify_pins(char *code, int type)
+static int verify_pins(struct tapi *t, char *code, int type)
{
int r;
- int req_id;
TelSimSecPw_t pin;
memset(&pin, 0, sizeof(pin));
@@ -450,7 +388,10 @@ static int verify_pins(char *code, int type)
pin.pw_len = strlen(code);
pin.pw = (unsigned char *)code;
- r = tel_verifiy_sim_pins(&pin, &req_id);
+ _DBG("SIM PIN/PUK verifying...");
+
+ r = tel_verifiy_sim_pins(t->handle, &pin, pwlock_tapi_verify_sim_pins_and_puks_cb, t);
+
if (r != TAPI_API_SUCCESS) {
_ERR("TAPI verify pins error %d", r);
return -1;
@@ -459,26 +400,31 @@ static int verify_pins(char *code, int type)
return 0;
}
-int tapi_verify_pins(char *code)
+int pwlock_tapi_verify_pins(struct tapi *t, char *code)
{
+ if (t == NULL)
+ return -1;
+
if (code == NULL || code[0] == '\0')
return -1;
- return verify_pins(code, TAPI_SIM_PTYPE_PIN1);
+ return verify_pins(t, code, TAPI_SIM_PTYPE_PIN1);
}
-int tapi_verify_lock(char *code)
+int pwlock_tapi_verify_lock(struct tapi *t, char *code)
{
+ if (t == NULL)
+ return -1;
+
if (code == NULL || code[0] == '\0')
return -1;
- return verify_pins(code, TAPI_SIM_PTYPE_SIM);
+ return verify_pins(t, code, TAPI_SIM_PTYPE_SIM);
}
-int tapi_verify_puks(char *code, char *newcode)
+int pwlock_tapi_verify_puks(struct tapi *t, char *code, char *newcode)
{
int r;
- int req_id;
TelSimSecPw_t puk, pin;
if (code == NULL || code[0] == '\0'
@@ -495,46 +441,53 @@ int tapi_verify_puks(char *code, char *newcode)
pin.pw_len = strlen(newcode);
pin.pw = (unsigned char *)newcode;
- r = tel_verify_sim_puks(&puk, &pin, &req_id);
+ r = tel_verify_sim_puks(t->handle, &puk, &pin, pwlock_tapi_verify_sim_pins_and_puks_cb, t);
if (r != TAPI_API_SUCCESS)
return -1;
return 0;
}
-int tapi_disable_net_pers(char *code, int type)
+int pwlock_tapi_disable_net_pers(struct tapi *t, char *code, TelSimLockType_t type)
{
+ int err_code = TAPI_API_SUCCESS;
if (code == NULL || code[0] == '\0')
return -1;
- int request_id = 0;
- int err_code = TAPI_API_SUCCESS;
- TelSimPersPw_t lock_pers = { 0, };
- lock_pers.type = type;
- lock_pers.pw_len = strlen(code);
- lock_pers.pw = (unsigned char *)code;
+ TelSimFacilityPw_t facility_pw = { 0, };
+ facility_pw.lock_type = type;
+ facility_pw.pw = (unsigned char *)code;
+ facility_pw.pw_len = strlen(code);
- err_code = tel_disable_sim_personalization(&lock_pers, &request_id);
+ err_code = tel_disable_sim_facility(t->handle, &facility_pw, pwlock_tapi_disable_sim_facility_cb, t);
if (err_code != TAPI_API_SUCCESS) {
_ERR("TAPI API FAIL: Error Code [0x%x]", err_code);
return -1;
}
+ /* WAIT EVENT RESPONSE FROM HERE */
return 0;
}
-struct tapi *tapi_init(void (*cb) (struct tapi_info *, void *), void *data)
+struct tapi *pwlock_tapi_init(void (*cb) (struct pwlock_tapi_info *, void *), void *data)
{
int r;
+ struct appdata *ad = (struct appdata *)data;
struct tapi *t;
+ TapiHandle *tapi_handle = NULL;
+
+ if (ad == NULL) {
+ _ERR("TAPI init error: ad is null");
+ return NULL;
+ }
if (cb == NULL)
return NULL;
- r = tel_init();
- if (r != TAPI_API_SUCCESS) {
- _ERR("TAPI init error: %d", r);
+ tapi_handle = tel_init(NULL);
+ if (tapi_handle == NULL) {
+ _ERR("TAPI init error");
return NULL;
}
_DBG("TAPI init");
@@ -544,105 +497,42 @@ struct tapi *tapi_init(void (*cb) (struct tapi_info *, void *), void *data)
_ERR("TAPI alloc data error");
goto err;
}
+ t->handle = tapi_handle;
t->evt = tapi_events;
t->evt_sz = sizeof(tapi_events) / sizeof(tapi_events[0]);
t->cb = cb;
t->cb_data = data;
- r = _register_events(t);
+ r = _pwlock_tapi_register_noti_events(t);
if (r == -1) {
_ERR("TAPI register events error");
goto err;
}
- r = tel_register_app_name(PACKAGE_NAME);
- if (r != TAPI_API_SUCCESS) {
- _ERR("TAPI register name error");
- goto err;
- }
-
return t;
err:
if (t) {
- _unregister_events(t);
+ _pwlock_tapi_deregister_noti_events(t);
free(t);
}
- tel_deinit();
+ if (tapi_handle != NULL) {
+ tel_deinit(tapi_handle);
+ }
return NULL;
}
-void tapi_exit(struct tapi **t)
+void pwlock_tapi_exit(struct tapi **t)
{
if (t == NULL || *t == NULL)
return;
- _unregister_events(*t);
- free(*t);
- *t = NULL;
-
- tel_deinit();
-}
-
-static int get_lang(int v)
-{
- int i;
+ _pwlock_tapi_deregister_noti_events(*t);
- for (i = 0; i < sizeof(_LP_L) / sizeof(_LP_L[0]); i = i + 2) {
- if (_LP_L[i] == v)
- return _LP_L[i + 1];
+ if ((*t)->handle != NULL) {
+ tel_deinit((*t)->handle);
}
- return _L_UNSPEC;
-}
-
-int tapi_get_language(int *lang)
-{
- int i;
- int r;
- int v = _L_UNSPEC;
- TelSimLanguageInfo_t l;
-
- r = tel_get_sim_language(&l);
- if (r != TAPI_API_SUCCESS) {
- r = -1;
- _ERR("TAPI get sim language");
- } else
- r = 0;
-
- for (i = 0; i < l.LpCount; i++) {
- _DBG("TAPI sim lang: %d", l.Lp[i]);
- v = get_lang(l.Lp[i]);
- if (v != _L_UNSPEC)
- break;
- }
-
- if (v == _L_UNSPEC) {
- _ERR("TAPI unknown language code");
- r = -1;
- } else
- *lang = v;
-
- return r;
-}
-
-void enable_net_pers()
-{
- _DBG("Lock Personalisation MCC+MNC 5");
- int request_id = 0;
- int err_code = TAPI_API_SUCCESS;
- unsigned char *temp = NULL;
-
- TelSimPersPw_t lock_pers = { 0, };
- lock_pers.type = TAPI_SIM_PERS_NET;
- lock_pers.pw_len = 8;
- temp = (unsigned char *)malloc(8 + 1);
-
- if (NULL == temp) {
- return;
- }
- lock_pers.pw = temp;
- memcpy(lock_pers.pw, "12345678", 8);
-
- err_code = tel_enable_sim_personalization(&lock_pers, &request_id);
+ free(*t);
+ *t = NULL;
}
diff --git a/src/ui-callback.c b/src/ui-callback.c
new file mode 100755
index 0000000..6c80883
--- /dev/null
+++ b/src/ui-callback.c
@@ -0,0 +1,225 @@
+/*
+ * pwlock
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <Ecore_X.h>
+#include <ui-gadget.h>
+#include <vconf.h>
+
+#include "pwlock.h"
+#include "util.h"
+#include "ui-callback.h"
+
+void pwlock_greeting_next_cb(void *data, Evas_Object *obj, void *e) {
+ _DBG("%s,%d", __func__, __LINE__);
+ struct appdata *ad = data;
+
+ if (!ad)
+ return;
+
+ if (ad->is_no_sim == 1) {
+ do_state_directly(_ST_NOSIM, ad);
+ } else {
+ do_state_directly(_ST_TIME, ad);
+ }
+}
+
+void pwlock_nosim_skip_cb(void *data, Evas_Object * obj, void *e) {
+ _DBG("%s,%d", __func__, __LINE__);
+ struct appdata *ad = data;
+
+ if (!ad)
+ return;
+
+ do_state_directly(_ST_TIME, ad);
+}
+
+void pwlock_tutorial_prev_cb(void *data, Evas_Object *obj, void *e) {
+ _DBG("%s,%d", __func__, __LINE__);
+ struct appdata *ad = data;
+
+ if (!ad)
+ return;
+
+ do_state_directly(_ST_CONNECTION, ad);
+}
+
+void pwlock_tutorial_next_cb(void *data, Evas_Object *obj, void *e) {
+ _DBG("%s,%d", __func__, __LINE__);
+ struct appdata *ad = data;
+
+ if (!ad)
+ return;
+
+
+ do_state_directly(_ST_EXIT, ad);
+}
+
+void pwlock_ug_connection_layout_cb(ui_gadget_h ug, enum ug_mode mode,
+ void *priv) {
+ struct appdata *ad = (struct appdata *) priv;
+ Evas_Object *base;
+ _DBG("%s begin", __func__);
+ if (!ug || !priv)
+ return;
+
+ base = (Evas_Object *) ug_get_layout(ug);
+ if (!base) {
+ _DBG("base layout null!\n");
+ return;
+ }
+
+ _DBG("%s,%d", __func__, __LINE__);
+ ad->ug_btn_evt_state = UG_BUTTON_STATE_NONE;
+ switch (mode) {
+ case UG_MODE_FULLVIEW:
+ evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(ug_get_window(), base);
+ evas_object_show(base);
+ break;
+ default:
+ break;
+ }
+ _DBG("%s end", __func__);
+}
+
+void pwlock_ug_connection_result_cb(ui_gadget_h ug, service_h service,
+ void *priv) {
+ _DBG("function=%s", __func__);
+ struct appdata *ad = NULL;
+
+ if (!ug || !priv || !service) {
+ return;
+ }
+ char *retv = NULL;
+ ad = (struct appdata *) priv;
+ _DBG("ad->state=%d", ad->state);
+
+ service_get_extra_data(service, "result", &retv);
+
+ if (retv && !strcmp(retv, "lbutton_click")) {
+ ad->ug_btn_evt_state = UG_BUTTON_STATE_PREV_CLICKED;
+ }
+ if (retv && !strcmp(retv, "rbutton_click")) {
+ ad->ug_btn_evt_state = UG_BUTTON_STATE_NEXT_CLICKED;
+ }
+}
+
+void pwlock_ug_connection_destroy_cb(ui_gadget_h ug, void *priv) {
+ _DBG("%s, %d begin", __func__, __LINE__);
+
+ struct appdata *ad = NULL;
+
+ if (!ug || !priv) {
+ return;
+ }
+ ad = (struct appdata *) priv;
+
+ _DBG("ad->ug_btn_evt_state=%d", ad->ug_btn_evt_state);
+
+ switch (ad->ug_btn_evt_state) {
+ case UG_BUTTON_STATE_NEXT_CLICKED:
+ do_state_directly(_ST_FINISH, ad);
+ ug_destroy(ug);
+ break;
+ case UG_BUTTON_STATE_PREV_CLICKED:
+ do_state_directly(_ST_TIME, ad);
+ ug_destroy(ug);
+ break;
+ case UG_BUTTON_STATE_NONE:
+ break;
+ }
+ //ad->ug_btn_evt_state = UG_BUTTON_STATE_NONE;
+}
+
+void pwlock_popup_exit_ok_cb(void *data, Evas_Object * e, void *ei)
+{
+ int i = (int)ei;
+ struct appdata *ad = (struct appdata *)data;
+
+ _DBG("popup exit rsp: %d\n", i);
+
+ if (NULL == ad) {
+ return;
+ }
+
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+ if (ad->current_ug) {
+ ug_destroy(ad->current_ug);
+ }
+ if (ad->msg) {
+ free(ad->msg);
+ ad->msg = NULL;
+ }
+
+ vconf_set_bool(VCONFKEY_PWLOCK_FIRST_BOOT, 0);
+
+ ad->state = _ST_EXIT;
+ do_state(ad);
+}
+
+void pwlock_popup_exit_cancel_cb(void *data, Evas_Object * e, void *ei)
+{
+ int i = (int)ei;
+ struct appdata *ad = (struct appdata *)data;
+
+ _DBG("popup rsp: %d\n", i);
+
+ if (NULL == ad) {
+ return;
+ }
+
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+ if (ad->msg) {
+ free(ad->msg);
+ ad->msg = NULL;
+ }
+}
+
+void pwlock_finish_prev_cb(void *data, Evas_Object *obj, void *e)
+{
+ _DBG("%s,%d", __func__, __LINE__);
+ struct appdata *ad = data;
+
+ if (!ad)
+ return;
+
+ // temp use ug_btn_evt_state variable
+ ad->ug_btn_evt_state = UG_BUTTON_STATE_PREV_CLICKED;
+ ad->state = _ST_CONNECTION;
+ do_state(ad);
+}
+
+void pwlock_finish_cb(void *data, Evas_Object *obj, void *e) {
+ _DBG("%s,%d", __func__, __LINE__);
+ struct appdata *ad = data;
+
+ if (!ad)
+ return;
+
+ vconf_set_bool(VCONFKEY_PWLOCK_FIRST_BOOT, 0);
+
+ do_state_directly(_ST_EXIT, ad);
+}
diff --git a/src/ui.c b/src/ui.c
index 67e1bb0..7b2c246 100755
--- a/src/ui.c
+++ b/src/ui.c
@@ -1,36 +1,43 @@
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.tizenopensource.org/license
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
+ * pwlock
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
#include <appcore-efl.h>
#include <Ecore_X.h>
#include <ui-gadget.h>
#include <vconf.h>
-#include <bundle.h>
+#include <ail.h>
+#include <appsvc.h>
#include "pwlock.h"
#include "util.h"
#include "tapi.h"
#include "ui.h"
+#include "langs.h"
+#include "ui-callback.h"
#define ENTRY_MAX 35
static Elm_Gen_Item_Class itc_label1, itc_entry1, itc_label2, itc_entry2;
-static void _ug_layout_cb(struct ui_gadget *ug, enum ug_mode mode, void *priv);
-static void _ug_destroy_cb(struct ui_gadget *ug, void *priv);
+static Elm_Gen_Item_Class sep_itc;
+static Elm_Gen_Item_Class nosim_icon_itc, nosim_text_itc, sim_retry_btn_itc;
+static void _ug_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
+static void _ug_destroy_cb(ui_gadget_h ug, void *priv);
static Evas_Object *_create_bg(Evas_Object * win);
static void _destroy_previous_ugs(void *data);
static void _focused_cb(void *data, Evas_Object * obj, void *event_info);
@@ -41,7 +48,6 @@ static Evas_Object *_create_editfield(Evas_Object * parent);
static Evas_Object *_editfield_entry_get(Evas_Object * parent);
static int _ug_destroy = 0;
-static Elm_Object_Item *item[2] = { 0, };
static int _header_idx[] = {
_UI_PIN, IDS_IDLE_HEADER_PIN_LOCK,
@@ -54,6 +60,7 @@ static int _header_idx[] = {
_UI_NETWORK_LOCK_NSCK, IDS_IDLE_HEADER_NETWORK_LOCK,
_UI_NETWORK_LOCK_SPCK, IDS_IDLE_HEADER_NETWORK_LOCK,
_UI_NETWORK_LOCK_CCK, IDS_IDLE_HEADER_NETWORK_LOCK,
+ _UI_FINISH, IDS_STU_POP_SETUP_COMPLETE,
};
static int _tit_idx[] = {
@@ -108,10 +115,11 @@ static char *_get_tip(int ui_type)
}
static Evas_Object *_create_bg(Evas_Object * win)
-{
+{ /* nbeat */
Evas_Object *bg = elm_bg_add(win);
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
+ evas_object_color_set(bg, 249, 249, 249, 255);
elm_win_resize_object_add(win, bg);
evas_object_show(bg);
return bg;
@@ -127,6 +135,7 @@ static Evas_Object *_layout_add(Evas_Object * parent)
return NULL;
}
+ /* Apply the nbeat layout style */
elm_layout_theme_set(ly, "layout", "application", "default");
evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND,
@@ -147,32 +156,55 @@ static Evas_Object *_create_layout(struct appdata *ad)
return ly;
}
+Evas_Object *pwlock_add_layout_from_edj(Evas_Object *parent, const char *file,
+ const char *group) {
+ Evas_Object *layout = NULL;
+ Eina_Bool ret = EINA_FALSE;
+
+ if (parent == NULL) {
+ _ERR("parent is NULL");
+ return NULL;
+ }
+
+ layout = elm_layout_add(parent);
+ if (layout == NULL) {
+ _ERR("layout is NULL");
+ return NULL;
+ }
+
+ ret = elm_layout_file_set(layout, file, group);
+ _DBG("File:%s, Group:%s", file, group);
+ if (ret != EINA_TRUE) {
+ _DBG("Error loading File:%s, Group:%s", file, group);
+ evas_object_del(layout);
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(layout);
+
+ return layout;
+}
+
static void init_ui(struct appdata *ad)
{
Evas_Object *eo;
- Evas_Object *bg;
- ad->bg = _create_bg(ad->win);
+ ad->elm_bg = _create_bg(ad->win);
- ad->ly = _create_layout(ad);
- if (!ad->ly)
+ ad->layout_main = _create_layout(ad);
+ if (!ad->layout_main)
return;
- eo = elm_naviframe_add(ad->ly);
+ eo = elm_naviframe_add(ad->layout_main);
if (!eo) {
_ERR("UI navi add error");
return;
}
- elm_object_part_content_set(ad->ly, "elm.swallow.content", eo);
+ elm_object_part_content_set(ad->layout_main, "elm.swallow.content", eo);
evas_object_show(eo);
- ad->navi = eo;
-
- bg = evas_object_rectangle_add(evas_object_evas_get(ad->win));
- evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
- evas_object_color_set(bg, 0, 0, 0, 255);
- elm_win_resize_object_add(ad->win, bg);
+ ad->elm_navigation_frame = eo;
}
void show_msg(struct appdata *ad, int strid)
@@ -202,7 +234,7 @@ void show_msg(struct appdata *ad, int strid)
ad->msg = strdup(msg);
- if (!ad->ly_main)
+ if (!ad->layout_contents)
return;
remove_waiting_popup(ad);
show_popup(ad, msg, EINA_TRUE);
@@ -237,7 +269,7 @@ static void do_UI_PUK_CNF(struct appdata *ad)
const char *s = NULL;
_DBG("%s", __func__);
- s = _entry_get(ad->entry_layout);
+ s = _entry_get(ad->layout_entry);
if (s && ad->pin_str && !strcmp(ad->pin_str, s)) {
do_state(ad);
@@ -247,6 +279,7 @@ static void do_UI_PUK_CNF(struct appdata *ad)
_set_str(&ad->pin_str, NULL);
show_msg(ad, IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN);
+ /* FIXME popup should be top display, so load main should be called after show msg.. */
load_main(ad, _UI_PUK_PIN);
}
@@ -267,7 +300,7 @@ static int _check_input_string(int view_type, const char *entry_str)
if (lenstr < PWLOCK_PASSWORD_MIN_LENGTH || lenstr > max_len) {
return IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED;
}
- return 0;
+ return 0; /* means fit for the rule */
}
static void response_cb(void *data, Evas_Object * obj, void *event_info)
@@ -280,6 +313,7 @@ static void response_cb(void *data, Evas_Object * obj, void *event_info)
if (((int)event_info != 5) && (obj != NULL)) {
evas_object_del(obj);
}
+ /* clear_entry(ad); */
}
static void _block_clicked_cb(void *data, Evas_Object * obj, void *event_info)
@@ -300,11 +334,12 @@ void _show_popup(void *data, char *msg_str)
ecore_imf_context_input_panel_hide(elm_entry_imf_context_get
(_editfield_entry_get
- (ad->entry_layout)));
+ (ad->layout_entry)));
popup = elm_popup_add(ad->win);
evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
+ /* FIXME */
x_win = elm_win_xwindow_get(ad->win);
ecore_x_netwm_window_type_set(x_win, ECORE_X_WINDOW_TYPE_DIALOG);
@@ -314,10 +349,12 @@ void _show_popup(void *data, char *msg_str)
elm_popup_timeout_set(popup, 3);
elm_object_text_set(popup, msg_str);
elm_object_part_text_set(popup, "title", "Information");
+
button = elm_button_add(popup);
elm_object_text_set(button, pwlock_get_string(IDS_COM_SK_OK));
elm_object_part_content_set(popup, "button1", button);
evas_object_smart_callback_add(button, "clicked", response_cb, popup);
+
evas_object_show(popup);
}
@@ -327,13 +364,13 @@ static void _imf_context_input_panel_hide(void *data)
Ecore_IMF_Context *imf_context = NULL;
Ecore_IMF_Context *imf_context_second = NULL;
imf_context =
- elm_entry_imf_context_get(_editfield_entry_get(ad->entry_layout));
+ elm_entry_imf_context_get(_editfield_entry_get(ad->layout_entry));
if (imf_context)
ecore_imf_context_input_panel_hide(imf_context);
imf_context_second =
elm_entry_imf_context_get(_editfield_entry_get
- (ad->entry_second_layout));
+ (ad->layout_second_entry));
if (imf_context_second)
ecore_imf_context_input_panel_hide(imf_context_second);
}
@@ -343,21 +380,19 @@ static void _done_button_changed(void *data, Evas_Object * obj, void *e)
struct appdata *ad = data;
int length =
- strlen(elm_entry_entry_get(_editfield_entry_get(ad->entry_layout)));
+ strlen(elm_entry_entry_get(_editfield_entry_get(ad->layout_entry)));
if (length == 0) {
- elm_object_item_disabled_set(item[1], EINA_TRUE);
- elm_object_disabled_set(ad->button_done, EINA_TRUE);
+ elm_object_disabled_set(ad->elm_button_done, EINA_TRUE);
} else {
- elm_object_item_disabled_set(item[1], EINA_FALSE);
- elm_object_disabled_set(ad->button_done, EINA_FALSE);
+ elm_object_disabled_set(ad->elm_button_done, EINA_FALSE);
}
- if (elm_object_focus_get(ad->entry_layout)) {
- if (elm_entry_is_empty(_editfield_entry_get(ad->entry_layout))) {
- elm_object_signal_emit(ad->entry_layout,
+ if (elm_object_focus_get(ad->layout_entry)) {
+ if (elm_entry_is_empty(_editfield_entry_get(ad->layout_entry))) {
+ elm_object_signal_emit(ad->layout_entry,
"elm,state,eraser,hide", "elm");
} else {
- elm_object_signal_emit(ad->entry_layout,
+ elm_object_signal_emit(ad->layout_entry,
"elm,state,eraser,show", "elm");
}
}
@@ -376,8 +411,8 @@ static void _done_cb(void *data, Evas_Object * obj, void *e)
case _UI_SIM_LOCK:
show_waiting_popup(ad,
pwlock_get_string
- (IDS_IDLE_BODY_CHECKING_SIM_STATUS));
- _set_str(&ad->entry_str, _entry_get(ad->entry_layout));
+ (IDS_IDLE_POP_CHECKING_SIM_CARD_ING));
+ _set_str(&ad->entry_str, _entry_get(ad->layout_entry));
_DBG("entry string: [%s]", ad->entry_str);
ret = _check_input_string(ad->ui_type, ad->entry_str);
if (ret == 0) {
@@ -389,10 +424,11 @@ static void _done_cb(void *data, Evas_Object * obj, void *e)
}
break;
case _UI_PUK:
- _set_str(&ad->entry_str, _entry_get(ad->entry_layout));
+ _set_str(&ad->entry_str, _entry_get(ad->layout_entry));
_DBG("entry string: [%s]", ad->entry_str);
ret = _check_input_string(ad->ui_type, ad->entry_str);
if (ret == 0) {
+ /* load_main(ad, _UI_PUK_PIN); */
pwlock_destroy(ad);
show_puk_pin(ad);
} else {
@@ -404,14 +440,14 @@ static void _done_cb(void *data, Evas_Object * obj, void *e)
case _UI_PUK_PIN:
show_waiting_popup(ad,
pwlock_get_string
- (IDS_IDLE_BODY_CHECKING_SIM_STATUS));
- _set_str(&ad->pin_str, _entry_get(ad->entry_layout));
+ (IDS_IDLE_POP_CHECKING_SIM_CARD_ING));
+ _set_str(&ad->pin_str, _entry_get(ad->layout_entry));
_DBG("entry string: [%s]", ad->pin_str);
ret = _check_input_string(ad->ui_type, ad->pin_str);
if (ret == 0) {
if (0 ==
- strcmp(_entry_get(ad->entry_layout),
- _entry_get(ad->entry_second_layout))) {
+ strcmp(_entry_get(ad->layout_entry),
+ _entry_get(ad->layout_second_entry))) {
do_UI_PUK_CNF(ad);
} else {
remove_waiting_popup(ad);
@@ -427,10 +463,10 @@ static void _done_cb(void *data, Evas_Object * obj, void *e)
case _UI_PUK_CNF:
show_waiting_popup(ad,
pwlock_get_string
- (IDS_IDLE_BODY_CHECKING_SIM_STATUS));
+ (IDS_IDLE_POP_CHECKING_SIM_CARD_ING));
ret =
_check_input_string(ad->ui_type,
- _entry_get(ad->entry_layout));
+ _entry_get(ad->layout_entry));
if (ret == 0) {
do_UI_PUK_CNF(ad);
} else {
@@ -443,7 +479,7 @@ static void _done_cb(void *data, Evas_Object * obj, void *e)
case _UI_NETWORK_LOCK_NSCK:
case _UI_NETWORK_LOCK_SPCK:
case _UI_NETWORK_LOCK_CCK:
- _set_str(&ad->entry_str, _entry_get(ad->entry_layout));
+ _set_str(&ad->entry_str, _entry_get(ad->layout_entry));
_DBG("entry string: [%s]", ad->entry_str);
ret = _check_input_string(ad->ui_type, ad->entry_str);
if (ret == 0) {
@@ -463,12 +499,27 @@ static void _dial_cb(void *data, Evas_Object * obj, void *e)
_DBG("%s,%d", __func__, __LINE__);
struct appdata *ad = data;
- elm_object_item_disabled_set(item[0], EINA_TRUE);
- elm_object_disabled_set(ad->button_dial, EINA_TRUE);
- ad->previous_ui_type = ad->ui_type;
- ad->ui_type = _UI_DIALER;
+ /* apply button insensitive */
+ elm_object_disabled_set(ad->elm_button_dial, EINA_TRUE);
_imf_context_input_panel_hide(ad);
- show_dialer(ad);
+
+ ad->previous_ui_type = ad->ui_type;
+
+ if(ad->layout_entry) {
+ elm_entry_input_panel_enabled_set(_editfield_entry_get(ad->layout_entry),
+ EINA_FALSE);
+ }
+
+ if(ad->layout_second_entry) {
+ elm_entry_input_panel_enabled_set(_editfield_entry_get(ad->layout_second_entry),
+ EINA_FALSE);
+ }
+
+ if (show_dialer(ad) == 0) {
+ elm_object_disabled_set(ad->elm_button_dial, EINA_FALSE);
+ ad->ui_type = ad->previous_ui_type;
+ return;
+ }
}
static void _pp_rsp_ok_cb(void *data, Evas_Object * e, void *ei)
@@ -490,19 +541,7 @@ static void _pp_rsp_ok_cb(void *data, Evas_Object * e, void *ei)
ad->cancel_setup = 1;
if (ad->current_ug) {
ug_destroy(ad->current_ug);
- if ((ad->ui_type == _UI_LANG)
- || (ad->ui_type == _UI_KEYBOARD)) {
- if (ad->first_boot) {
- if (ad->date_and_time_settings_loaded)
- ad->state = _ST_EXIT;
- else
- ad->state = _ST_TAPI_INIT;
- } else {
- ad->state = _ST_EXIT;
- }
- } else {
- ad->state = _ST_EXIT;
- }
+ ad->state = _ST_EXIT;
do_state(ad);
}
@@ -514,12 +553,12 @@ static void _pp_rsp_ok_cb(void *data, Evas_Object * e, void *ei)
ad->pin_changed = 0;
}
}
- if (ad->ui_type == _UI_LANG || ad->ui_type == _UI_TIME || ad->ui_type == _UI_KEYBOARD || ad->ui_type == _UI_DIALER) {
+ if (ad->ui_type == _UI_LANG || ad->ui_type == _UI_TIME || ad->ui_type == _UI_DIALER) { /* for IMF show problems */
return;
}
- if (ad->entry_layout) {
- evas_object_show(_editfield_entry_get(ad->entry_layout));
- elm_object_focus_set(_editfield_entry_get(ad->entry_layout),
+ if (ad->layout_entry) {
+ evas_object_show(_editfield_entry_get(ad->layout_entry));
+ elm_object_focus_set(_editfield_entry_get(ad->layout_entry),
EINA_TRUE);
}
if (ad->msg) {
@@ -553,12 +592,12 @@ static void _pp_rsp_cancel_cb(void *data, Evas_Object * e, void *ei)
ad->pin_changed = 0;
}
}
- if (ad->ui_type == _UI_LANG || ad->ui_type == _UI_TIME || ad->ui_type == _UI_KEYBOARD || ad->ui_type == _UI_DIALER) {
+ if (ad->ui_type == _UI_LANG || ad->ui_type == _UI_TIME || ad->ui_type == _UI_DIALER) { /* for IMF show problems */
return;
}
- if (ad->entry_layout) {
- evas_object_show(_editfield_entry_get(ad->entry_layout));
- elm_object_focus_set(_editfield_entry_get(ad->entry_layout),
+ if (ad->layout_entry) {
+ evas_object_show(_editfield_entry_get(ad->layout_entry));
+ elm_object_focus_set(_editfield_entry_get(ad->layout_entry),
EINA_TRUE);
}
if (ad->msg) {
@@ -578,30 +617,12 @@ static void _destroy_previous_ugs(void *data)
switch (ad->ui_type) {
case _UI_LANG:
- if (ad->keyboard_ug) {
- ug_destroy(ad->keyboard_ug);
- ad->keyboard_ug = NULL;
- }
if (ad->date_ug) {
ug_destroy(ad->date_ug);
ad->date_ug = NULL;
}
break;
case _UI_TIME:
- if (ad->keyboard_ug) {
- ug_destroy(ad->keyboard_ug);
- ad->keyboard_ug = NULL;
- }
- if (ad->language_ug) {
- ug_destroy(ad->language_ug);
- ad->language_ug = NULL;
- }
- break;
- case _UI_KEYBOARD:
- if (ad->date_ug) {
- ug_destroy(ad->date_ug);
- ad->date_ug = NULL;
- }
if (ad->language_ug) {
ug_destroy(ad->language_ug);
ad->language_ug = NULL;
@@ -616,15 +637,16 @@ static void _destroy_previous_ugs(void *data)
ug_destroy(ad->language_ug);
ad->language_ug = NULL;
}
- if (ad->keyboard_ug) {
- ug_destroy(ad->keyboard_ug);
- ad->keyboard_ug = NULL;
+ if (ad->connection_ug) {
+ ug_destroy(ad->connection_ug);
+ ad->connection_ug = NULL;
}
break;
}
_DBG("%s,%d", __func__, __LINE__);
+ /* when last UG or SIM changed with fisrt UG, destroy the view */
if (((ad->sim_changed == 1) && (ad->ui_type == _UI_LANG))
|| (ad->ui_type == _UI_TIME)) {
_DBG("%s,%d", __func__, __LINE__);
@@ -681,13 +703,11 @@ static Evas_Object *_create_editfield(Evas_Object * parent)
elm_entry_scrollable_set(entry, EINA_TRUE);
elm_entry_single_line_set(entry, EINA_TRUE);
elm_entry_password_set(entry, EINA_TRUE);
- elm_object_focus_set(entry, EINA_TRUE);
elm_entry_input_panel_layout_set(entry,
ELM_INPUT_PANEL_LAYOUT_NUMBERONLY);
elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size,
&limit_filter_data);
evas_object_show(entry);
- elm_object_focus_set(entry, EINA_TRUE);
evas_object_smart_callback_add(entry, "focused", _focused_cb, layout);
evas_object_smart_callback_add(entry, "unfocused", _unfocused_cb,
layout);
@@ -696,6 +716,7 @@ static Evas_Object *_create_editfield(Evas_Object * parent)
elm_object_part_text_set(layout, "elm.guidetext", "");
elm_object_signal_callback_add(layout, "elm,eraser,clicked", "elm",
_eraser_clicked_cb, entry);
+ elm_object_focus_set(entry, EINA_TRUE);
return layout;
}
@@ -755,7 +776,7 @@ static Evas_Object *_gl_icon_get1(void *data, Evas_Object * obj,
"changed", _done_button_changed,
ad);
- ad->entry_layout = layout;
+ ad->layout_entry = layout;
return layout;
@@ -795,7 +816,7 @@ static Evas_Object *_gl_icon_get2(void *data, Evas_Object * obj,
"changed", _entry_changed_cb,
layout);
- ad->entry_second_layout = layout;
+ ad->layout_second_entry = layout;
return layout;
@@ -832,94 +853,77 @@ static void _list_set_styles()
void load_main(struct appdata *ad, int ui_type)
{
- Evas_Object *ly = NULL;
Evas_Object *bt_done = NULL;
Evas_Object *bt_dial = NULL;
- Evas_Object *null_image = NULL;
Evas_Object *genlist = NULL;
- Evas_Object *controlbar = NULL;
Elm_Object_Item *genlist_item = NULL;
Elm_Object_Item *navi_it = NULL;
_DBG("%s", __func__);
- ly = _create_conformant(ad->win);
+ ad->layout_contents = pwlock_add_layout_from_edj(ad->elm_navigation_frame, EDJFILE, "page/genlist");
- genlist = elm_genlist_add(ad->navi);
+ genlist = elm_genlist_add(ad->layout_main);
+ elm_object_part_content_set(ad->layout_contents, "swl/genlist", genlist);
_list_set_styles();
genlist_item =
elm_genlist_item_append(genlist, &itc_label1, (void *)ad, NULL,
ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_genlist_item_select_mode_set(genlist_item, EINA_TRUE);
+ elm_genlist_item_select_mode_set(genlist_item, ELM_OBJECT_SELECT_MODE_NONE);
genlist_item =
elm_genlist_item_append(genlist, &itc_entry1, (void *)ad, NULL,
ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_genlist_item_select_mode_set(genlist_item, EINA_TRUE);
+ elm_genlist_item_select_mode_set(genlist_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
if (_UI_PUK_PIN == ui_type) {
genlist_item =
elm_genlist_item_append(genlist, &itc_label2, (void *)ad,
NULL, ELM_GENLIST_ITEM_NONE, NULL,
NULL);
- elm_genlist_item_select_mode_set(genlist_item, EINA_TRUE);
+ elm_genlist_item_select_mode_set(genlist_item, ELM_OBJECT_SELECT_MODE_NONE);
genlist_item =
elm_genlist_item_append(genlist, &itc_entry2, (void *)ad,
NULL, ELM_GENLIST_ITEM_NONE, NULL,
NULL);
- elm_genlist_item_select_mode_set(genlist_item, EINA_TRUE);
+ elm_genlist_item_select_mode_set(genlist_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
}
- evas_object_show(genlist);
- elm_object_content_set(ly, genlist);
+ ad->elm_conform = _create_conformant(ad->win);
+ elm_object_content_set(ad->elm_conform, ad->layout_contents);
_DBG("load_main ad->ui_type = %d", ad->ui_type);
- controlbar = elm_toolbar_add(ad->navi);
- if (controlbar == NULL)
- return;
-
- elm_toolbar_shrink_mode_set(controlbar, ELM_TOOLBAR_SHRINK_EXPAND);
-
- bt_dial = elm_button_add(controlbar);
- elm_object_style_set(bt_dial, "naviframe_control/default");
+ bt_dial = elm_button_add(ad->layout_main);
+ elm_object_style_set(bt_dial, "naviframe/title/default");
evas_object_size_hint_weight_set(bt_dial, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(bt_dial, EVAS_HINT_FILL, 0.5);
elm_object_text_set(bt_dial, pwlock_get_string(IDS_IDLE_BUTTON_DIALER));
evas_object_smart_callback_add(bt_dial, "clicked", _dial_cb, ad);
- ad->button_dial = bt_dial;
+ ad->elm_button_dial = bt_dial;
evas_object_show(bt_dial);
- bt_done = elm_button_add(controlbar);
- elm_object_style_set(bt_done, "naviframe_control/default");
+ bt_done = elm_button_add(ad->layout_main);
+ elm_object_style_set(bt_done, "naviframe/title/default");
evas_object_size_hint_weight_set(bt_done, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(bt_done, EVAS_HINT_FILL, 0.5);
elm_object_text_set(bt_done, pwlock_get_string(IDS_COM_SK_DONE));
evas_object_smart_callback_add(bt_done, "clicked", _done_cb, ad);
- ad->button_done = bt_done;
+ ad->elm_button_done = bt_done;
evas_object_show(bt_done);
- item[0] = elm_toolbar_item_append(controlbar, NULL, NULL, NULL, NULL);
- elm_object_item_part_content_set(item[0], "object", bt_dial);
- item[1] = elm_toolbar_item_append(controlbar, NULL, NULL, NULL, NULL);
- elm_object_item_part_content_set(item[1], "object", bt_done);
- elm_object_item_disabled_set(item[1], EINA_TRUE);
elm_object_disabled_set(bt_done, EINA_TRUE);
- null_image = elm_icon_add(ad->navi);
- elm_icon_file_set(null_image, NULL, NULL);
- evas_object_show(null_image);
- ad->ly_main = ly;
navi_it =
- elm_naviframe_item_push(ad->navi, _get_header(ui_type), null_image,
- NULL, ad->ly_main, NULL);
- elm_object_item_part_content_set(navi_it, "optionheader", controlbar);
- elm_object_item_signal_emit(navi_it,
- "elm,state,controlbar,instant_close", "");
+ elm_naviframe_item_push(ad->elm_navigation_frame, _get_header(ui_type), NULL,
+ NULL, ad->elm_conform, NULL);
+
+ elm_object_item_part_content_set(navi_it, "title_left_btn", bt_dial);
+ elm_object_item_part_content_set(navi_it, "title_right_btn",bt_done);
ad->ui_type = ui_type;
remove_waiting_popup(ad);
@@ -929,10 +933,12 @@ void show_pin(struct appdata *ad)
{
_DBG("%s", __func__);
- if (!ad->navi)
+// register_tapi_factory_event(ad);
+
+ if (!ad->elm_navigation_frame)
init_ui(ad);
- if (!ad->ly_main)
+ if (!ad->layout_contents)
load_main(ad, _UI_PIN);
evas_object_show(ad->win);
@@ -942,7 +948,7 @@ void show_puk(struct appdata *ad)
{
_DBG("%s", __func__);
- if (!ad->navi)
+ if (!ad->elm_navigation_frame)
init_ui(ad);
load_main(ad, _UI_PUK);
@@ -954,7 +960,7 @@ void show_puk_pin(struct appdata *ad)
{
_DBG("%s", __func__);
- if (!ad->navi)
+ if (!ad->elm_navigation_frame)
init_ui(ad);
load_main(ad, _UI_PUK_PIN);
@@ -967,7 +973,7 @@ void show_sim_lock(struct appdata *ad)
_DBG("%s", __func__);
int st = ad->sim_status;
- if (!ad->navi) {
+ if (!ad->elm_navigation_frame) {
init_ui(ad);
}
switch (st) {
@@ -999,36 +1005,41 @@ void show_block(struct appdata *ad)
Evas_Object *ly = NULL;
Evas_Object *bt_dial = NULL;
Evas_Object *el = NULL;
- Evas_Object *bg = NULL;
+ Elm_Object_Item *navi_it = NULL;
char buf[1024] = { 0, };
_DBG("%s", __func__);
- if (!ad->navi)
+ if (!ad->elm_navigation_frame)
init_ui(ad);
- ly = _layout_add(ad->navi);
- bg = ad->bg;
- elm_object_style_set(bg, "group_list");
- el = elm_label_add(ad->navi);
+ ly = elm_layout_add(ad->elm_navigation_frame);
+ elm_layout_theme_set(ly, "layout", "application", "noindicator");
+ /*Create content field */
+ el = elm_label_add(ad->elm_navigation_frame);
+ elm_label_line_wrap_set(el, ELM_WRAP_WORD);
snprintf(buf, sizeof(buf), "%s%s%s",
- "<font_size=19 font=SLP:style=Light style=shadow shadow_color=#000000bf color=#ffffffff align=center>",
- pwlock_get_string
+ "<br><font_size=44 font=SLP:style=Regular color=#7c7c7c align=center>",
+ pwlock_get_string
(IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER),
"</>");
elm_object_text_set(el, buf);
+
elm_object_part_content_set(ly, "elm.swallow.content", el);
evas_object_show(el);
- bt_dial = elm_button_add(ad->navi);
+ bt_dial = elm_button_add(ad->elm_navigation_frame);
+ elm_object_style_set(bt_dial, "naviframe/title/default");
elm_object_text_set(bt_dial, pwlock_get_string(IDS_IDLE_BUTTON_DIALER));
evas_object_smart_callback_add(bt_dial, "clicked", _dial_cb, ad);
evas_object_show(bt_dial);
- ad->ly_main = ly;
- elm_naviframe_item_push(ad->navi, _get_header(_UI_BLOCK),
- bt_dial, NULL, ad->ly_main, NULL);
+ ad->layout_contents = ly;
+ navi_it = elm_naviframe_item_push(ad->elm_navigation_frame, _get_header(_UI_BLOCK),
+ NULL, NULL, ad->layout_contents, NULL);
+
+ elm_object_item_part_content_set(navi_it, "title_right_btn", bt_dial);
ad->ui_type = _UI_BLOCK;
evas_object_show(ad->win);
remove_waiting_popup(ad);
@@ -1038,49 +1049,56 @@ void pwlock_destroy(struct appdata *ad)
{
_DBG("%s", __func__);
- if (!ad->navi)
+ remove_waiting_popup(ad);
+ if (!ad->elm_navigation_frame)
return;
_DBG("%s %d", __func__, __LINE__);
- elm_naviframe_item_pop(ad->navi);
- if (ad->navi) {
- evas_object_del(ad->navi);
- ad->navi = NULL;
+ elm_naviframe_item_pop(ad->elm_navigation_frame);
+ if (ad->elm_navigation_frame) {
+ evas_object_del(ad->elm_navigation_frame);
+ ad->elm_navigation_frame = NULL;
}
- if (ad->ly_main) {
- evas_object_del(ad->ly_main);
- ad->ly_main = NULL;
+ if (ad->layout_contents) {
+ evas_object_del(ad->layout_contents);
+ ad->layout_contents = NULL;
}
- if (ad->entry_layout) {
- evas_object_del(ad->entry_layout);
- ad->entry_layout = NULL;
+ if (ad->layout_entry) {
+ evas_object_del(ad->layout_entry);
+ ad->layout_entry = NULL;
}
- if (ad->entry_second_layout) {
- evas_object_del(ad->entry_second_layout);
- ad->entry_second_layout = NULL;
+ if (ad->layout_second_entry) {
+ evas_object_del(ad->layout_second_entry);
+ ad->layout_second_entry = NULL;
}
- if (ad->bg) {
- evas_object_del(ad->bg);
- ad->bg = NULL;
+ if (ad->elm_conform) {
+ evas_object_del(ad->elm_conform);
+ ad->elm_conform = NULL;
}
- remove_waiting_popup(ad);
+ if (ad->elm_bg) {
+ evas_object_del(ad->elm_bg);
+ ad->elm_bg = NULL;
+ }
+ /* FIXME we should check window hide for fast boot */
+ /* evas_object_hide(ad->win); */
+ _DBG("%s %d %p", __func__, __LINE__, ad->elm_navigation_frame);
}
void clear_entry(struct appdata *ad)
{
- if (ad->entry_layout) {
- elm_object_part_text_set(ad->entry_layout, "elm.guidetext", "");
- elm_entry_entry_set(_editfield_entry_get(ad->entry_layout), "");
+ if (ad->layout_entry) {
+ elm_object_part_text_set(ad->layout_entry, "elm.guidetext", "");
+ elm_entry_entry_set(_editfield_entry_get(ad->layout_entry), "");
}
- if (ad->entry_second_layout) {
- elm_object_part_text_set(ad->entry_second_layout,
+ if (ad->layout_second_entry) {
+ elm_object_part_text_set(ad->layout_second_entry,
"elm.guidetext", "");
elm_entry_entry_set(_editfield_entry_get
- (ad->entry_second_layout), "");
+ (ad->layout_second_entry), "");
}
}
-static void _ug_layout_cb(struct ui_gadget *ug, enum ug_mode mode, void *priv)
+static void _ug_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
{
struct appdata *ad = (struct appdata *)priv;
Evas_Object *base;
@@ -1120,12 +1138,12 @@ static void _ug_layout_cb(struct ui_gadget *ug, enum ug_mode mode, void *priv)
}
-static void _ug_result_cb(struct ui_gadget *ug, bundle * result, void *priv)
+static void _ug_result_cb(ui_gadget_h ug, service_h service, void *priv)
{
_DBG("function=%s", __func__);
struct appdata *ad = NULL;
- if (!ug || !priv || !result) {
+ if (!ug || !priv || !service) {
return;
}
char *retv = NULL;
@@ -1135,13 +1153,13 @@ static void _ug_result_cb(struct ui_gadget *ug, bundle * result, void *priv)
switch (ad->state) {
case _ST_LANG:
{
- retv = (char *)bundle_get_val(result, "updateType");
+ service_get_extra_data(service, "updateType", &retv);
if (retv)
_DBG("_ST_LANG updateType = %s", retv);
- retv = (char *)bundle_get_val(result, "ON_OFF_TEXT");
+ service_get_extra_data(service, "ON_OFF_TEXT", &retv);
if (retv)
_DBG("_ST_LANG ON_OFF_TEXT = %s", retv);
- retv = (char *)bundle_get_val(result, "result");
+ service_get_extra_data(service, "result", &retv);
if (retv)
_DBG("_ST_LANG language result = %s", retv);
char *path = (char *)vconf_get_str(VCONFKEY_LANGSET);
@@ -1158,28 +1176,16 @@ static void _ug_result_cb(struct ui_gadget *ug, bundle * result, void *priv)
}
}
break;
- case _ST_KEYBOARD:
- {
- retv = (char *)bundle_get_val(result, "name");
- if (retv)
- _DBG("_ST_KEYBOARD name = %s", retv);
- retv = (char *)bundle_get_val(result, "description");
- if (retv && !strcmp(retv, "previous clicked")) {
- _DBG("_ST_KEYBOARD description = %s", retv);
- ad->kill_ug = 1;
- } else {
- ad->kill_ug = 0;
- }
- }
- break;
case _ST_TIME:
{
- retv = (char *)bundle_get_val(result, "result");
+ service_get_extra_data(service, "result", &retv);
if (retv)
_DBG("_ST_TIME name = %s", retv);
if (retv && !strcmp(retv, "lbutton_click")) {
+ ad->ug_btn_evt_state = UG_BUTTON_STATE_PREV_CLICKED;
ad->kill_ug = 1;
} else if (retv && !strcmp(retv, "rbutton_click")) {
+ ad->ug_btn_evt_state = UG_BUTTON_STATE_NEXT_CLICKED;
ad->kill_ug = 0;
}
}
@@ -1188,13 +1194,13 @@ static void _ug_result_cb(struct ui_gadget *ug, bundle * result, void *priv)
break;
}
- if (!retv) {
+ if (!retv) { /* avoid to click ug quickly */
_DBG("retv = %s", retv);
_ug_destroy = 1;
}
}
-static void _ug_destroy_cb(struct ui_gadget *ug, void *priv)
+static void _ug_destroy_cb(ui_gadget_h ug, void *priv)
{
_DBG("%s, %d begin", __func__, __LINE__);
struct appdata *ad = NULL;
@@ -1212,78 +1218,27 @@ static void _ug_destroy_cb(struct ui_gadget *ug, void *priv)
switch (ad->state) {
case _ST_LANG:
{
- if (ad->first_boot) {
- _DBG("FIRST BOOT!");
- if (ad->keyboard_settings_loaded) {
- ad->state = _ST_KEYBOARD;
- do_state(ad);
- } else {
- ad->state = _ST_KEYBOARD;
- do_state(ad);
- show_waiting_popup(ad, NULL);
- return;
- }
- } else {
- _DBG("NOT FIRST BOOT, SIM CHANGED?");
- if (ad->running_status == 0
- && ad->sim_changed == 1) {
- ad->state = _ST_KEYBOARD;
- do_state(ad);
- show_waiting_popup(ad, NULL);
- return;
- } else {
- ad->state = _ST_EXIT;
- do_state(ad);
- }
- }
+ ad->state = _ST_GREETING;
+ do_state(ad);
+ show_waiting_popup(ad, NULL);
}
break;
case _ST_TIME:
{
- if (ad->kill_ug) {
- ad->state = _ST_KEYBOARD;
+ if (ad->kill_ug) { /* Previous button clicked */
ad->date_and_time_previous = 1;
show_waiting_popup(ad, NULL);
- do_state(ad);
- ad->kill_ug = 0;
- return;
- } else {
- if (ad->sim_status == SIM_EMPTY) {
- ad->state = _ST_EXIT;
+ if (ad->is_no_sim == 1) {
+ do_state_directly(_ST_NOSIM, ad);
} else {
- ad->state = _ST_EXIT;
+ do_state_directly(_ST_GREETING, ad);
}
- }
- do_state(ad);
- }
- break;
- case _ST_KEYBOARD:
- {
- if (ad->kill_ug) {
- ad->state = _ST_LANG;
- do_state(ad);
ad->kill_ug = 0;
+ return;
} else {
- if (ad->first_boot) {
- if (ad->date_and_time_settings_loaded) {
- ad->state = _ST_TIME;
- do_state(ad);
- ad->kill_ug = 0;
- } else {
- ad->state = _ST_TAPI_INIT;
- do_state(ad);
- show_waiting_popup(ad,
- pwlock_get_string
- (IDS_IDLE_BODY_CHECKING_SIM_STATUS));
- ad->kill_ug = 0;
- return;
- }
- } else {
- ad->state = _ST_TIME;
- do_state(ad);
- ad->kill_ug = 0;
- }
+ ad->state = _ST_CONNECTION;
}
+ do_state(ad);
}
break;
default:
@@ -1299,17 +1254,31 @@ static void _ug_destroy_cb(struct ui_gadget *ug, void *priv)
ug_destroy(ug);
ug = NULL;
- elm_object_item_disabled_set(item[0], EINA_FALSE);
- elm_object_disabled_set(ad->button_dial, EINA_FALSE);
+ if(ad->layout_entry) {
+ elm_entry_input_panel_enabled_set(
+ _editfield_entry_get(ad->layout_entry),
+ EINA_TRUE);
+ elm_entry_input_panel_show(
+ _editfield_entry_get(ad->layout_entry));
+ }
+
+ if(ad->layout_second_entry) {
+ elm_entry_input_panel_enabled_set(
+ _editfield_entry_get(ad->layout_second_entry),
+ EINA_TRUE);
+ }
+
+ elm_object_disabled_set(ad->elm_button_dial, EINA_FALSE);
+
if (_UI_PIN == ad->ui_type || _UI_PUK == ad->ui_type ||
_UI_PUK_PIN == ad->ui_type
|| _UI_SIM_LOCK == ad->ui_type) {
- if (ad->entry_layout) {
+ if (ad->layout_entry) {
evas_object_show(_editfield_entry_get
- (ad->entry_layout));
+ (ad->layout_entry));
elm_object_focus_set
(_editfield_entry_get
- (ad->entry_layout), EINA_TRUE);
+ (ad->layout_entry), EINA_TRUE);
}
}
} else {
@@ -1319,37 +1288,351 @@ static void _ug_destroy_cb(struct ui_gadget *ug, void *priv)
}
}
+static void _menu_greeting_button_lang_cb(void *data, Evas_Object * obj, void *e) {
+ _DBG("%s,%d", __func__, __LINE__);
+ struct appdata *ad = data;
+
+ if (!ad)
+ return;
+
+ ad->state = _ST_LANG;
+ show_lang(ad);
+ /* TODO: */
+}
+
+static Evas_Object *_gl_nosim_icon_get(void *data, Evas_Object * obj, const char *part)
+{
+ Evas_Object *ei = NULL;
+
+ _DBG("_gl_nosim_icon_get");
+
+ ei = elm_image_add(obj);
+ elm_image_file_set(ei, IMAGEDIR"/A01-9_icon_no_sim.png", NULL);
+ elm_image_resizable_set(ei, EINA_FALSE, EINA_FALSE);
+
+ evas_object_show(ei);
+
+ return ei;
+}
+
+static Evas_Object *_gl_nosim_text_label_get(void *data, Evas_Object * obj, const char *part)
+{
+ Evas_Object *el = NULL;
+ Eina_Strbuf *nosim_text;
+
+ nosim_text = eina_strbuf_new();
+
+ _DBG("_gl_nosim_text_label_get");
+ el = elm_label_add(obj);
+ elm_label_line_wrap_set(el, ELM_WRAP_WORD);
+ evas_object_size_hint_weight_set(el, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(el, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ if (nosim_text != NULL && eina_strbuf_append_printf(nosim_text,
+ "<font_size=32><color=#7C7C7C><br> %s <br></color></font_size>",
+ pwlock_get_string(IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG)) == EINA_TRUE) {
+ elm_object_text_set(el, eina_strbuf_string_get(nosim_text));
+ }
+
+ evas_object_show(el);
+
+ if (nosim_text != NULL) {
+ eina_strbuf_free(nosim_text);
+ }
+ return el;
+}
+
+static Evas_Object *_gl_sim_retry_btn_content_get(void *date, Evas_Object * obj, const char *part)
+{
+ Evas_Object *eo_btn = NULL;
+
+ _DBG("_gl_sim_retry_btn_content_get");
+
+ eo_btn = elm_button_add(obj);
+ elm_object_text_set(eo_btn, pwlock_get_string(IDS_ST_BUTTON_TRY_AGAIN_ABB));
+
+ // temporary min/max set
+ //evas_object_size_hint_min_set(eo_btn, 486, 72);
+ //evas_object_size_hint_max_set(eo_btn, 486, 72);
+
+ return eo_btn;
+}
+
+static void _nosim_retry_cb(void *data, Evas_Object * obj, void *event_info) {
+ _DBG("%s,%d", __func__, __LINE__);
+ struct appdata *ad = data;
+
+ if (!ad)
+ return;
+
+ do_state_directly(_ST_SIM, ad);
+}
+
+static Evas_Object *_nosim_create_genlist(struct appdata *ad)
+{
+ _DBG("%s", __func__);
+ Evas_Object *genlist = NULL;
+
+ if (ad == NULL) {
+ _DBG("_nosim_create_genlist returns NULL\n");
+ return NULL;
+ }
+ nosim_icon_itc.item_style = "1icon/with_no_line";
+ nosim_icon_itc.func.text_get = NULL;
+ nosim_icon_itc.func.content_get = _gl_nosim_icon_get;
+ nosim_icon_itc.func.state_get = NULL;
+ nosim_icon_itc.func.del = NULL;
+
+ nosim_text_itc.item_style = "1icon/with_no_line";
+ nosim_text_itc.func.text_get = NULL;
+ nosim_text_itc.func.content_get = _gl_nosim_text_label_get;
+ nosim_text_itc.func.state_get = NULL;
+ nosim_text_itc.func.del = NULL;
+
+ sim_retry_btn_itc.item_style = "1icon/with_no_line";
+ sim_retry_btn_itc.func.text_get = NULL;
+ sim_retry_btn_itc.func.content_get = _gl_sim_retry_btn_content_get;
+ sim_retry_btn_itc.func.state_get = NULL;
+ sim_retry_btn_itc.func.del = NULL;
+
+ sep_itc.item_style = "dialogue/separator/20";
+ sep_itc.func.text_get = NULL;
+ sep_itc.func.content_get = NULL;
+ sep_itc.func.state_get = NULL;
+ sep_itc.func.del = NULL;
+
+ genlist = elm_genlist_add(ad->elm_navigation_frame);
+
+ //elm_genlist_item_append(genlist, &sep_itc, NULL, NULL,
+ // ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+ /* nosim icon */
+ elm_genlist_item_append(genlist, &nosim_icon_itc, (void *)ad, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+ /* nosim text */
+ elm_genlist_item_append(genlist, &nosim_text_itc, (void *)ad, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+ /* sim retry button */
+ elm_genlist_item_append(genlist, &sim_retry_btn_itc, (void *)ad, NULL,
+ ELM_GENLIST_ITEM_NONE, _nosim_retry_cb, (void *)ad);
+
+ _DBG("END of _nosim_create_genlist\n");
+ evas_object_show(genlist);
+ return genlist;
+}
+
+int show_splash_screen(struct appdata *ad) {
+ _DBG("%s,%d", __func__, __LINE__);
+
+ if (!ad)
+ return 0;
+
+ pwlock_destroy(ad);
+
+ init_ui(ad);
+
+ show_waiting_popup(ad,
+ pwlock_get_string
+ (IDS_IDLE_POP_CHECKING_SIM_CARD_ING));
+
+ evas_object_show(ad->win);
+
+ return 1;
+}
+
+int show_greeting(struct appdata *ad) {
+ _DBG("%s,%d", __func__, __LINE__);
+
+ char *model_name = NULL;
+
+ Evas_Object *navi = NULL;
+ Evas_Object *controlbar = NULL;
+ Elm_Object_Item *navi_it = NULL;
+ Evas_Object *contents = NULL;
+ Evas_Object *button = NULL;
+
+ if (!ad)
+ return 0;
+
+ ad->ui_type = _UI_GREETING;
+
+ pwlock_destroy(ad);
+
+ init_ui(ad);
+ navi = ad->elm_navigation_frame;
+
+ controlbar = elm_toolbar_add(navi);
+ if (controlbar == NULL)
+ return 0;
+
+ contents = pwlock_add_layout_from_edj(navi, EDJFILE, "pwlock-menu-lang");
+
+ model_name = vconf_get_str(PWLOCK_DEVICE_NAME);
+ _DBG("Device Name = %s\n",model_name);
+
+ if (model_name != NULL) {
+ elm_object_part_text_set(contents, "text.greeting.1", pwlock_get_string(IDS_IDLE_BODY_GREETING_WELCOME));
+ elm_object_part_text_set(contents, "text.greeting.2", model_name);
+
+ free(model_name);
+ model_name = NULL;
+ }
+ else {
+ elm_object_part_text_set(contents, "text.greeting.1", pwlock_get_string(IDS_SCM_BODY_WELCOME_E));
+ }
+
+ elm_object_part_text_set(contents, "text.help",
+ pwlock_get_string(IDS_STU_BODY_SELECT_LANGUAGE));
+
+ button = elm_button_add(navi);
+ elm_object_style_set(button, "popup_button/default");
+ elm_object_part_content_set(contents, "button.select.lang", button);
+
+ elm_object_text_set(button, get_lang_name_by_path(vconf_get_str(VCONFKEY_LANGSET)));
+ evas_object_smart_callback_add(button, "clicked", _menu_greeting_button_lang_cb, ad);
+
+ elm_toolbar_shrink_mode_set(controlbar, ELM_TOOLBAR_SHRINK_EXPAND);
+
+ elm_toolbar_item_append(controlbar, NULL,
+ pwlock_get_string(IDS_ST_SK_EMERGENCY_CALL), _dial_cb,
+ ad);
+ elm_toolbar_item_append(controlbar, NULL,
+ pwlock_get_string(IDS_COM_SK_START),
+ pwlock_greeting_next_cb, ad);
+
+ navi_it = elm_naviframe_item_push(navi, NULL, NULL, NULL, contents, NULL);
+ elm_naviframe_item_title_visible_set(navi_it, EINA_FALSE);
+
+ elm_object_item_part_content_set(navi_it, "controlbar", controlbar);
+
+ evas_object_show(ad->win);
+ _destroy_previous_ugs(ad);
+
+ return 1;
+}
+
+int show_connection(struct appdata *ad) {
+ _DBG("%s", __func__);
+ ad->ui_type = _UI_CONNECTION;
+ service_h service;
+ UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_ENABLE);
+ struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
+
+ service_create(&service);
+
+ if (cbs == NULL) {
+ service_destroy(service); /* prevent */
+ return 0;
+ }
+ cbs->layout_cb = pwlock_ug_connection_layout_cb;
+ cbs->result_cb = pwlock_ug_connection_result_cb;
+ cbs->destroy_cb = pwlock_ug_connection_destroy_cb;
+ cbs->priv = (void *)ad;
+ if (!service) {
+ service_destroy(service);
+ free(cbs); /* memory leak */
+ return 0;
+ }
+ service_add_extra_data(service, "caller", "pwlock");
+ service_add_extra_data(service, "lbutton", pwlock_get_string(IDS_COM_BODY_PREVIOUS));
+ service_add_extra_data(service, "rbutton_next", pwlock_get_string(IDS_COM_SK_NEXT));
+ service_add_extra_data(service, "rbutton_skip", pwlock_get_string(IDS_IDLE_SK_SKIP));
+ service_add_extra_data(service, "lbutton_icon", IMAGEDIR"/A01-9_controlbar_icon_Previous.png");
+ service_add_extra_data(service, "rbutton_next_icon", IMAGEDIR"/A01-9_controlbar_icon_Next.png");
+ service_add_extra_data(service, "rbutton_skip_icon", IMAGEDIR"/A01-9_controlbar_icon_Skip.png");
+ service_add_extra_data(service, "scan_icon", IMAGEDIR"/A01-9_controlbar_icon_scan.png");
+
+ ad->connection_ug =
+ ug_create(NULL, "wifi-efl-UG", UG_MODE_FULLVIEW, service, cbs);
+ service_destroy(service);
+ free(cbs);
+ if (!ad->connection_ug) {
+ _DBG("Get connection ug failed.");
+ if (ad->ug_btn_evt_state == UG_BUTTON_STATE_PREV_CLICKED)
+ ad->state = _ST_TIME;
+ else
+ ad->state = _ST_FINISH;
+ return 0;
+ }
+ ad->current_ug = ad->connection_ug;
+ evas_object_show(ad->win);
+ return 1;
+}
+
+int show_tutorial(struct appdata *ad) {
+ _DBG("%s,%d", __func__, __LINE__);
+ Evas_Object *navi = NULL;
+ Evas_Object *controlbar = NULL;
+ Elm_Object_Item *navi_it = NULL;
+
+ if (!ad)
+ return 0;
+ ad->ui_type = _UI_TUTORIAL;
+
+ pwlock_destroy(ad);
+
+ init_ui(ad);
+ navi = ad->elm_navigation_frame;
+
+ controlbar = elm_toolbar_add(ad->elm_navigation_frame);
+ if (controlbar == NULL)
+ return 0;
+
+ elm_toolbar_shrink_mode_set(controlbar, ELM_TOOLBAR_SHRINK_EXPAND);
+
+ elm_toolbar_item_append(controlbar, NULL,
+ pwlock_get_string(IDS_COM_BODY_PREVIOUS),
+ pwlock_tutorial_prev_cb, ad);
+ elm_toolbar_item_append(controlbar, NULL,
+ pwlock_get_string(IDS_COM_SK_CANCEL), pwlock_tutorial_next_cb,
+ ad);
+
+ navi_it =
+ elm_naviframe_item_push(navi, (const char *)_("TUTORIAL"),
+ NULL, NULL, NULL, NULL);
+ elm_object_item_part_content_set(navi_it, "controlbar", controlbar);
+
+ evas_object_show(ad->win);
+ _destroy_previous_ugs(ad);
+
+ return 1;
+}
+
int show_lang(struct appdata *ad)
{
_DBG("%s", __func__);
ad->ui_type = _UI_LANG;
- bundle *b = bundle_create();
+ service_h service;
UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_ENABLE);
struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
+ service_create(&service);
+
if (cbs == NULL) {
- bundle_free(b);
+ service_destroy(service); /* prevent */
return 0;
}
cbs->layout_cb = _ug_layout_cb;
cbs->result_cb = _ug_result_cb;
cbs->destroy_cb = _ug_destroy_cb;
cbs->priv = (void *)ad;
- if (!b) {
- free(cbs);
+ if (!service) {
+ service_destroy(service);
+ free(cbs); /* memory leak */
return 0;
}
- bundle_add(b, "caller", "pwlock");
- bundle_add(b, "viewtype", "language");
- bundle_add(b, "rbutton", pwlock_get_string(IDS_COM_SK_NEXT));
+ service_add_extra_data(service, "caller", "pwlock");
+ service_add_extra_data(service, "viewtype", "language");
ad->language_ug =
- ug_create(NULL, "setting-phone-efl", UG_MODE_FULLVIEW, b, cbs);
- bundle_free(b);
+ ug_create(NULL, "setting-phone-efl", UG_MODE_FULLVIEW, service, cbs);
+ service_destroy(service);
free(cbs);
if (!ad->language_ug) {
_DBG("Get phone ug failed.");
- ad->state = _ST_KEYBOARD;
+ ad->state = _ST_GREETING;
return 0;
}
ad->current_ug = ad->language_ug;
@@ -1357,6 +1640,53 @@ int show_lang(struct appdata *ad)
return 1;
}
+int show_nosim(struct appdata *ad)
+{
+ _DBG("%s,%d", __func__, __LINE__);
+ Evas_Object *genlist = NULL;
+ Evas_Object *navi = NULL;
+ Evas_Object *controlbar = NULL;
+ Elm_Object_Item *navi_it = NULL;
+
+ if (!ad)
+ return 0;
+ ad->ui_type = _UI_NOSIM;
+
+ pwlock_destroy(ad);
+
+ init_ui(ad);
+ navi = ad->elm_navigation_frame;
+
+ genlist = _nosim_create_genlist(ad);
+
+ controlbar = elm_toolbar_add(ad->elm_navigation_frame);
+ if (controlbar == NULL)
+ return 0;
+
+ elm_toolbar_shrink_mode_set(controlbar, ELM_TOOLBAR_SHRINK_EXPAND);
+
+
+ elm_toolbar_item_append(controlbar, NULL, NULL, NULL, NULL);
+ elm_toolbar_item_append(controlbar, NULL, NULL, NULL, NULL);
+ elm_toolbar_item_append(controlbar, NULL, NULL, NULL, NULL);
+ elm_toolbar_item_append(controlbar, NULL, NULL, NULL, NULL);
+
+ elm_toolbar_item_append(controlbar, IMAGEDIR"/A01-9_controlbar_icon_Skip.png",
+ pwlock_get_string(IDS_IDLE_SK_SKIP),
+ pwlock_nosim_skip_cb,
+ ad);
+
+ navi_it =
+ elm_naviframe_item_push(navi, (const char *)_(pwlock_get_string(IDS_IDLE_HEADER_NOSIM)),
+ NULL, NULL, genlist, NULL);
+ elm_object_item_part_content_set(navi_it, "controlbar", controlbar);
+
+ evas_object_show(ad->win);
+ _destroy_previous_ugs(ad);
+
+ return 1;
+}
+
int show_time(struct appdata *ad)
{
_DBG("%s,%d", __func__, __LINE__);
@@ -1364,31 +1694,39 @@ int show_time(struct appdata *ad)
return 0;
ad->ui_type = _UI_TIME;
ad->date_and_time_settings_loaded = 1;
- bundle *b = bundle_create();
+ service_h service;
UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_ENABLE);
struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
+
+ service_create(&service);
+
if (cbs == NULL) {
- bundle_free(b);
+ service_destroy(service); /* prevent */
return 0;
}
cbs->layout_cb = _ug_layout_cb;
cbs->result_cb = _ug_result_cb;
cbs->destroy_cb = _ug_destroy_cb;
cbs->priv = (void *)ad;
- if (!b) {
- free(cbs);
+ if (!service) {
+ service_destroy(service);
+ free(cbs); /* memory leak */
return 0;
}
- bundle_add(b, "caller", "pwlock");
- bundle_add(b, "lbutton", pwlock_get_string(IDS_COM_BODY_PREVIOUS));
- bundle_add(b, "rbutton", pwlock_get_string(IDS_COM_SK_DONE));
+ service_add_extra_data(service, "caller", "pwlock");
+ service_add_extra_data(service, "lbutton", pwlock_get_string(IDS_COM_BODY_PREVIOUS));
+ service_add_extra_data(service, "rbutton", pwlock_get_string(IDS_COM_SK_NEXT));
+
ad->date_ug =
- ug_create(NULL, "setting-time-efl", UG_MODE_FULLVIEW, b, cbs);
- bundle_free(b);
+ ug_create(NULL, "setting-time-efl", UG_MODE_FULLVIEW, service, cbs);
+ service_destroy(service);
free(cbs);
if (!ad->date_ug) {
- _DBG("Get time ug failed.");
- ad->state = _ST_EXIT;
+ _DBG("?????Get time ug failed.");
+ if (ad->ug_btn_evt_state == UG_BUTTON_STATE_PREV_CLICKED)
+ ad->state = _ST_GREETING;
+ else
+ ad->state = _ST_CONNECTION;
return 0;
}
ad->current_ug = ad->date_ug;
@@ -1396,46 +1734,63 @@ int show_time(struct appdata *ad)
return 1;
}
-int show_keyboard_setting(struct appdata *ad)
-{
+int show_finish(struct appdata *ad) {
_DBG("%s,%d", __func__, __LINE__);
+
+ Evas_Object *navi = NULL;
+ Evas_Object *controlbar = NULL;
+ Elm_Object_Item *navi_it = NULL;
+ Evas_Object *contents = NULL;
+ Evas_Object *label = NULL;
+ Eina_Strbuf *finish_text;
+
if (!ad)
return 0;
- ad->ui_type = _UI_KEYBOARD;
- ad->keyboard_settings_loaded = 1;
- bundle *b = bundle_create();
- UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_ENABLE);
- struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
- if (cbs == NULL) {
- bundle_free(b);
+
+ ad->ui_type = _UI_FINISH;
+
+ pwlock_destroy(ad);
+
+ init_ui(ad);
+ navi = ad->elm_navigation_frame;
+
+ controlbar = elm_toolbar_add(navi);
+ if (controlbar == NULL)
return 0;
+
+ contents = pwlock_add_layout_from_edj(navi, EDJFILE, "pwlock-finish");
+
+ finish_text = eina_strbuf_new();
+
+ label = elm_label_add(contents);
+ elm_label_line_wrap_set(label, ELM_WRAP_WORD);
+ evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ if (finish_text != NULL && eina_strbuf_append_printf(finish_text,
+ "<font size=32 color=#7C7C7C align=center><br> %s </font>",
+ pwlock_get_string(IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE)) == EINA_TRUE) {
+ elm_object_text_set(label, eina_strbuf_string_get(finish_text));
}
- cbs->layout_cb = _ug_layout_cb;
- cbs->result_cb = _ug_result_cb;
- cbs->destroy_cb = _ug_destroy_cb;
- cbs->priv = (void *)ad;
- if (!b) {
- free(cbs);
- return 0;
+
+ if (finish_text != NULL) {
+ eina_strbuf_free(finish_text);
}
- bundle_add(b, "navi_btn_left",
- pwlock_get_string(IDS_COM_BODY_PREVIOUS));
- bundle_add(b, "navi_btn_right", pwlock_get_string(IDS_COM_SK_NEXT));
+ elm_object_part_content_set(contents, "swl/label", label);
- ad->keyboard_ug =
- ug_create(NULL, "keyboard-setting-wizard-efl", UG_MODE_FULLVIEW, b,
- cbs);
+ elm_toolbar_shrink_mode_set(controlbar, ELM_TOOLBAR_SHRINK_EXPAND);
+
+ elm_toolbar_item_append(controlbar, NULL, pwlock_get_string(IDS_COM_BODY_PREVIOUS), pwlock_finish_prev_cb, ad);
+ elm_toolbar_item_append(controlbar, NULL, pwlock_get_string(IDS_ST_BODY_INSTALTAB_FINISH), pwlock_finish_cb, ad);
+
+ navi_it = elm_naviframe_item_push(navi, _get_header(ad->ui_type), NULL, NULL, contents, NULL);
+
+ elm_object_item_part_content_set(navi_it, "controlbar", controlbar);
- bundle_free(b);
- free(cbs);
- if (!ad->keyboard_ug) {
- _DBG("Get keyboard setting ug failed\n");
- ad->state = _ST_TIME;
- return 0;
- }
- ad->current_ug = ad->keyboard_ug;
evas_object_show(ad->win);
+ _destroy_previous_ugs(ad);
+
return 1;
}
@@ -1446,12 +1801,12 @@ int show_dialer(struct appdata *ad)
return 0;
ad->ui_type = _UI_DIALER;
- bundle *b;
- b = bundle_create();
+ service_h service;
+ service_create(&service);
UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_ENABLE);
struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
if (cbs == NULL) {
- bundle_free(b);
+ service_destroy(service); /* prevent */
return 0;
}
cbs->layout_cb = _ug_layout_cb;
@@ -1459,14 +1814,15 @@ int show_dialer(struct appdata *ad)
cbs->destroy_cb = _ug_destroy_cb;
cbs->priv = (void *)ad;
- if (!b) {
- free(cbs);
+ if (!service) {
+ service_destroy(service);
+ free(cbs); /* memory leak */
return 0;
}
- bundle_add(b, "emergency_dialer", "emergency");
- ad->dialer_ug = ug_create(NULL, "dialer-efl", UG_MODE_FULLVIEW, b, cbs);
- bundle_free(b);
+ service_add_extra_data(service, "emergency_dialer", "emergency");
+ ad->dialer_ug = ug_create(NULL, "dialer-efl", UG_MODE_FULLVIEW, service, cbs);
+ service_destroy(service);
free(cbs);
if (!ad->dialer_ug) {
_DBG("dialer ug failed\n");
@@ -1493,7 +1849,7 @@ void show_popup(struct appdata *ad, const char *mesg, Eina_Bool mode)
}
ecore_imf_context_input_panel_hide(elm_entry_imf_context_get
(_editfield_entry_get
- (ad->entry_layout)));
+ (ad->layout_entry)));
pp = elm_popup_add(ad->win);
ad->popup = pp;
evas_object_size_hint_weight_set(pp, EVAS_HINT_EXPAND,
@@ -1518,32 +1874,81 @@ void show_popup(struct appdata *ad, const char *mesg, Eina_Bool mode)
evas_object_show(pp);
}
+void show_popup_ask_exit(struct appdata *ad, const char *mesg)
+{
+ if (!ad) {
+ return;
+ }
+ Evas_Object *pp;
+ Evas_Object *button1;
+ Evas_Object *button2;
+ ad->previous_ui_type = ad->ui_type;
+
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+ ecore_imf_context_input_panel_hide(elm_entry_imf_context_get
+ (_editfield_entry_get
+ (ad->layout_entry)));
+ pp = elm_popup_add(ad->win);
+ ad->popup = pp;
+ evas_object_size_hint_weight_set(pp, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_object_text_set(pp, mesg);
+
+ button1 = elm_button_add(pp);
+ elm_object_text_set(button1, pwlock_get_string(IDS_COM_SK_OK));
+ elm_object_part_content_set(pp, "button1", button1);
+ evas_object_smart_callback_add(button1, "clicked", pwlock_popup_exit_ok_cb,
+ ad);
+
+ button2 = elm_button_add(pp);
+ elm_object_text_set(button2, pwlock_get_string(IDS_COM_SK_CANCEL));
+ elm_object_part_content_set(pp, "button2", button2);
+ evas_object_smart_callback_add(button2, "clicked", pwlock_popup_exit_cancel_cb,
+ ad);
+
+ remove_waiting_popup(ad);
+ evas_object_show(pp);
+}
+
void show_waiting_popup(struct appdata *ad, const char *msg_str)
{
if (!ad) {
return;
}
+
Evas_Object *popup = NULL;
Evas_Object *progressbar = NULL;
Evas_Object *box = NULL;
Evas_Object *label = NULL;
+ Eina_Strbuf *popup_str;
+
remove_waiting_popup(ad);
popup = elm_popup_add(ad->win);
ad->waiting_popup = popup;
box = elm_box_add(popup);
if (msg_str != NULL) {
+ popup_str = eina_strbuf_new();
label = elm_label_add(popup);
- elm_object_style_set(label, "popup_description/default");
elm_label_line_wrap_set(label, EINA_TRUE);
- elm_object_text_set(label, msg_str);
+ if (popup_str != NULL && eina_strbuf_append_printf(popup_str,
+ "<font color=#000000>%s</font>", msg_str) == EINA_TRUE) {
+ elm_object_text_set(label, eina_strbuf_string_get(popup_str));
+ }
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);
evas_object_show(label);
elm_box_pack_end(box, label);
+
+ if (popup_str != NULL) {
+ eina_strbuf_free(popup_str);
+ }
}
progressbar = elm_progressbar_add(popup);
@@ -1564,10 +1969,12 @@ void show_waiting_popup(struct appdata *ad, const char *msg_str)
void remove_waiting_popup(struct appdata *ad)
{
+ _DBG("%s", __func__);
if (!ad) {
return;
}
if (ad->waiting_popup) {
+ _DBG("delete waiting popup");
evas_object_del(ad->waiting_popup);
ad->waiting_popup = NULL;
}
@@ -1583,3 +1990,14 @@ Eina_Bool show_puk_do(void *data)
return ECORE_CALLBACK_CANCEL;
}
+
+void update_pw_entry(struct appdata *ad, char *input_data)
+{
+ _DBG("%s", __func__);
+
+ if (input_data == NULL)
+ return;
+ elm_entry_entry_set(_editfield_entry_get(ad->layout_entry), input_data);
+ elm_entry_cursor_end_set(_editfield_entry_get(ad->layout_entry));
+ _done_cb(ad, NULL, NULL);
+}
diff --git a/src/util.c b/src/util.c
index 0845235..69b1ecf 100755
--- a/src/util.c
+++ b/src/util.c
@@ -1,19 +1,21 @@
/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.tizenopensource.org/license
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
+ * pwlock
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
#include <stdio.h>
#include <stdarg.h>
@@ -28,29 +30,29 @@
#include <stdio.h>
#include <libintl.h>
#include <glib.h>
+#include <iniparser.h>
#include "util.h"
#define LINEMAX 256
-#define MAXFILELEN 1048576
+#define MAXFILELEN 1048576 /* 32000 */
#define PHLOCK_SOCK_PREFIX "/tmp/phlock"
#define PHLOCK_SOCK_MAXBUFF 65535
const char *sys_str_table[] = {
- "IDS_COM_SK_SET",
- "IDS_COM_SK_DONE",
+ "IDS_COM_SK_DONE", /* 0 */
"IDS_COM_BODY_ENTER_PASSWORD",
"IDS_COM_BODY_PREVIOUS",
"IDS_COM_SK_NEXT",
"IDS_COM_SK_OK",
"IDS_COM_SK_CANCEL",
+ "IDS_COM_SK_START"
};
const char *app_str_table[] = {
"IDS_IDLE_BODY_AUTOMATIC",
"IDS_IDLE_HEADER_NETWORK_LOCK",
- "IDS_IDLE_HEADER_PHONE_LOCK",
"IDS_IDLE_HEADER_PIN_LOCK",
"IDS_IDLE_HEADER_PUK_LOCK",
"IDS_IDLE_HEADER_SIM_BLOCKED",
@@ -62,39 +64,58 @@ const char *app_str_table[] = {
"IDS_IDLE_BODY_ENTER_PUK",
"IDS_IDLE_BODY_INCORRECT_PIN",
"IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN",
- "IDS_IDLE_BODY_INCORRECT_PUK",
- "IDS_IDLE_BODY_LANGUAGE_NOT_SUPPORTED",
"IDS_IDLE_BODY_NETWORK_PERSONALISATION_ON_ENTER_CONTROL_KEY",
"IDS_IDLE_BODY_NETWORK_SUBSET_PERSONALISATION_ON_ENTER_CONTROL_KEY",
- "IDS_IDLE_BODY_PASSWORD_MUST_BE_4_DIGITS_LONG",
"IDS_IDLE_BODY_PD_ATTEMPTS_LEFT",
"IDS_IDLE_BODY_SERVICE_PROVIDER_PERSONALISATION_ON_ENTER_CONTROL_KEY",
"IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER",
- "IDS_IDLE_BODY_UNABLE_TO_READ_SIM_CARD_LANGUAGE",
"IDS_IDLE_BODY_WRONG_PASSWORD",
- "IDS_IDLE_BUTTON_CANCEL",
"IDS_IDLE_BUTTON_DIALER",
"IDS_IDLE_HEADER_DISPLAY_LANGUAGE",
- "Do you want to skip Setup Wizard?",
+ "Do you want to skip Setup Wizard?", /* TODO: String request */
"IDS_IDLE_BODY_PASSWORD_EMPTY",
"IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED",
- "IDS_IDLE_BODY_NEW_PIN",
- "IDS_IDLE_BODY_PIN",
- "IDS_IDLE_BODY_PUK",
- "IDS_IDLE_POP_PIN_BLOCKED",
- "IDS_IDLE_POP_PIN_UNBLOCKED",
- "IDS_IDLE_BODY_CONFIRM_NEW_PIN",
- "IDS_IDLE_POP_INCORRECT_PIN_1_ATTEMPT_LEFT",
- "IDS_IDLE_POP_INCORRECT_PIN_PD_ATTEMPTS_LEFT",
- "%d to %d digits or letters required",
- "Passwords do not match",
- "PIN code has been changed",
- "SIM card error",
- "%d s left,please try later!",
- "Please input password again after 30 seconds.",
- "Checking SIM..."
+ "Passwords do not match", /* TODO: System string request */
+ "PIN code has been changed", /* TODO: String request */
+ "SIM card error", /* TODO: String request */
+ "IDS_IDLE_POP_CHECKING_SIM_CARD_ING",
+ "Welcome to your", /* TODO: String request */
+ "IDS_SCM_BODY_WELCOME_E",
+ "IDS_STU_BODY_SELECT_LANGUAGE",
+ "IDS_ST_SK_EMERGENCY_CALL",
+ "IDS_ST_BODY_TAP_TO_SET_UP",
+ "Skip", /* TODO: String request */
+ "IDS_ST_BODY_INSTALTAB_FINISH",
+ "IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE",
+ "IDS_STU_POP_SETUP_COMPLETE",
+ "No SIM card in device", /* TODO: String request */
+ "IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG",
+ "IDS_ST_BUTTON_TRY_AGAIN_ABB"
};
+static void _log(char *msg)
+{
+ FILE *fp;
+
+ fp = fopen(LOGFILE, "a");
+ if (fp == NULL)
+ return;
+ fprintf(fp, "%s\n", msg);
+ fclose(fp);
+}
+
+void pwlock_log(char *fmt, ...)
+{
+ va_list ap;
+ char buf[LINEMAX];
+
+ va_start(ap, fmt);
+ vsnprintf(buf, sizeof(buf), fmt, ap);
+ va_end(ap);
+
+ _log(buf);
+}
+
void pwlock_log_t(char *fmt, ...)
{
va_list ap;
@@ -110,7 +131,7 @@ void pwlock_log_t(char *fmt, ...)
time_t current_time = 0;
bzero((char *)&debugString, LINEMAX);
time(&current_time);
- gmtime_r(&current_time, &local_t);
+ gmtime_r(&current_time, &local_t); /* for prevent 53555 */
int len = snprintf(debugString, sizeof(debugString),
"[%d-%02d-%02d, %02d:%02d:%02d]: ",
local_t.tm_year + 1900, local_t.tm_mon + 1,
@@ -123,10 +144,12 @@ void pwlock_log_t(char *fmt, ...)
}
len = g_strlcat(debugString, buf, LINEMAX);
if (len >= LINEMAX) {
+ /* TODO:ERROR handling */
return;
} else {
debugString[len] = '\n';
}
+ /* FIXME this is for permission.. later we should fix and remove this... */
if ((fd = fopen(LOGFILE, "at+")) == NULL) {
PWLOCK_ERR("File fopen fail for writing Pwlock information");
} else {
@@ -209,8 +232,10 @@ char *pwlock_get_string(int id)
char *str = NULL;
if (id < IDS_PWLOCK_SYSTEM_STRING_MAX) {
+ /* get system string */
str = dgettext("sys_string", sys_str_table[id]);
} else {
+ /* get application string */
str =
dgettext("pwlock",
app_str_table[id - IDS_PWLOCK_SYSTEM_STRING_MAX]);
@@ -220,3 +245,19 @@ char *pwlock_get_string(int id)
return str;
}
+
+void pwlock_tolower(char *src, char *dest)
+{
+ int i;
+ int src_len=0;
+
+ if (!src || !dest) {
+ _DBG(" src=%p, dest=%p\n", src, dest);
+ return;
+ }
+ src_len = strlen(src);
+ for(i=0;i<src_len;i++) {
+ dest[i] = tolower(src[i]);
+ }
+ dest[i] = '\0';
+}