From 797eccd2f8c7097be02f06fe24a6eb8f0e7171d9 Mon Sep 17 00:00:00 2001 From: "jk7744.park" Date: Sun, 1 Feb 2015 13:03:57 +0900 Subject: [PATCH] tizen 2.3 release --- AUTHORS | 1 - CMakeLists.sub | 26 + CMakeLists.txt | 197 +-- LICENSE | 204 +++ LICENSE.Flora | 206 --- NOTICE | 3 - data/CMakeLists.txt | 96 ++ data/contextual-info.edc | 459 ++++++ data/control-panel.edc | 386 +++++ data/default-unlock.edc | 1113 +++++++++++++++ data/groups/lock-complex-password.edc | 1310 ----------------- data/groups/lock-info.edc | 187 --- data/groups/lock-main.edc | 321 ----- data/groups/lock-noti.edc | 52 - data/groups/lock-simple-password.edc | 376 ----- data/groups/lock-slider.edc | 432 ------ ..._icon_Unlock_02.png => B09_btn_doubletab_h.png} | Bin 3635 -> 3654 bytes data/images/Notification_ic_message.png | Bin 0 -> 3330 bytes data/images/Notification_ic_missedcall.png | Bin 0 -> 3351 bytes data/images/RB07_icon_shift_press.png | Bin 0 -> 3143 bytes ..._Unlock_arrow.png => RB07_icon_space_press.png} | Bin 3010 -> 2892 bytes data/images/RB07_key_btn_press.png | Bin 0 -> 3713 bytes data/images/camera_arrow.png | Bin 0 -> 1215 bytes data/images/camera_default_arrow.png | Bin 0 -> 1325 bytes data/images/celsius_icon.png | Bin 0 -> 3440 bytes data/images/circular_gauge_bg.png | Bin 0 -> 4874 bytes ...n_Unlock_01.png => circular_gauge_password.png} | Bin 3625 -> 3685 bytes data/images/circular_gauge_pin.png | Bin 0 -> 4251 bytes data/images/dismiss_button.png | Bin 0 -> 467 bytes data/images/edit_btn_icon_keyboard_nor.png | Bin 0 -> 1400 bytes data/images/edit_btn_icon_keyboard_press.png | Bin 0 -> 1468 bytes ...nlock_arrow_press.png => event_clock_colon.png} | Bin 3044 -> 3000 bytes data/images/event_close_bg.#.png | Bin 0 -> 3177 bytes data/images/event_list_bg.#.png | Bin 0 -> 2841 bytes ...RB07_Unlock_bg.png => event_list_divider.#.png} | Bin 2797 -> 2807 bytes ...7_Unlock_bg_press.png => event_number_bg.#.png} | Bin 2797 -> 2839 bytes data/images/fahrenheit_icon.png | Bin 0 -> 3234 bytes data/images/gradation_bg.#.png | Bin 0 -> 2857 bytes data/images/icon_backtocall_nor.png | Bin 0 -> 4182 bytes data/images/icon_backtocall_press.png | Bin 0 -> 3945 bytes data/images/indicator_high.png | Bin 0 -> 985 bytes data/images/indicator_nor.png | Bin 0 -> 990 bytes data/images/keyboard_basic_pad.png | Bin 0 -> 3816 bytes data/images/keyboard_basic_pad_press.png | Bin 0 -> 3713 bytes data/images/keypad_press_bg.png | Bin 0 -> 4247 bytes data/images/lock_circle_line_camera.png | Bin 0 -> 12323 bytes data/images/lock_circle_line_camera_drag.png | Bin 0 -> 8719 bytes data/images/ls_back_01_nor.png | Bin 0 -> 4209 bytes data/images/ls_back_01_press.png | Bin 0 -> 4190 bytes data/images/ls_back_02_nor.png | Bin 0 -> 4010 bytes ...on_Unlock_press_07.png => ls_back_02_press.png} | Bin 3564 -> 3971 bytes data/images/ls_button_02_default.png | Bin 0 -> 7799 bytes data/images/ls_button_02_press.png | Bin 0 -> 10112 bytes data/images/ls_password_box_02.png | Bin 0 -> 1979 bytes data/images/ls_password_dot.png | Bin 0 -> 3119 bytes data/images/ls_phone_01_nor.png | Bin 0 -> 4404 bytes data/images/ls_phone_01_press.png | Bin 0 -> 5120 bytes data/images/quick_shot.png | Bin 0 -> 4889 bytes data/images/quick_shot_drag.png | Bin 0 -> 3197 bytes data/images/slider/RB07_icon_Unlock_press_01.png | Bin 3588 -> 0 bytes data/images/slider/RB07_icon_Unlock_press_02.png | Bin 3660 -> 0 bytes data/images/slider/RB07_icon_Unlock_press_03.png | Bin 3626 -> 0 bytes data/images/slider/RB07_icon_Unlock_press_04.png | Bin 3624 -> 0 bytes data/images/slider/RB07_icon_Unlock_press_05.png | Bin 3638 -> 0 bytes data/images/slider/RB07_icon_Unlock_press_06.png | Bin 3599 -> 0 bytes data/images/slider/RB07_icon_Unlock_press_08.png | Bin 3442 -> 0 bytes data/images/slider/RB07_icon_Unlock_press_09.png | Bin 3421 -> 0 bytes data/images/slider/RB07_icon_Unlock_press_10.png | Bin 3581 -> 0 bytes data/images/slider/RB07_icon_Unlock_press_11.png | Bin 3617 -> 0 bytes data/images/slider/RB07_icon_Unlock_press_12.png | Bin 3632 -> 0 bytes data/images/slider/RB07_icon_Unlock_press_13.png | Bin 3639 -> 0 bytes data/images/slider/RB07_icon_Unlock_press_14.png | Bin 3673 -> 0 bytes data/images/slider/RB07_icon_Unlock_press_15.png | Bin 3646 -> 0 bytes data/images/weather_icon_01.png | Bin 0 -> 2541 bytes data/images/weather_icon_02.png | Bin 0 -> 2715 bytes data/images/weather_icon_03.png | Bin 0 -> 2225 bytes data/images/weather_icon_04.png | Bin 0 -> 2406 bytes data/images/weather_icon_05.png | Bin 0 -> 2650 bytes data/images/weather_icon_06.png | Bin 0 -> 2764 bytes data/images/weather_icon_07.png | Bin 0 -> 3124 bytes data/images/weather_icon_08.png | Bin 0 -> 2878 bytes data/images/weather_icon_09.png | Bin 0 -> 3100 bytes data/images/weather_icon_10.png | Bin 0 -> 3116 bytes data/images/weather_icon_11.png | Bin 0 -> 2848 bytes data/images/weather_icon_12.png | Bin 0 -> 3136 bytes data/images/weather_icon_13.png | Bin 0 -> 2988 bytes data/images/weather_icon_14.png | Bin 0 -> 3018 bytes data/images/weather_icon_15.png | Bin 0 -> 5558 bytes data/images/weather_icon_16.png | Bin 0 -> 6170 bytes data/images/weather_icon_17.png | Bin 0 -> 2902 bytes data/images/weather_icon_18.png | Bin 0 -> 2348 bytes data/images/weather_icon_19.png | Bin 0 -> 2656 bytes data/lock-complex-password.edc | 266 ++++ data/lock-simple-password.edc | 418 ++++++ data/lock-simple-password2.edc | 889 ++++++++++++ data/lockscreen-bg.edc | 336 +++++ data/lockscreen-button.edc | 459 ++++++ data/lockscreen-camera.edc | 752 ++++++++++ data/lockscreen-entry.edc | 73 +- data/lockscreen-lite.edc | 890 ++++++++++++ data/lockscreen.edc | 24 - data/notification-item.edc | 408 ++++++ ...g.tizen.lockscreen-lite_ChangeableColorInfo.xml | 165 +++ ...rg.tizen.lockscreen-lite_ChangeableFontInfo.xml | 48 + data/weather.edc | 135 ++ debian/changelog | 7 - debian/compat | 1 - debian/control | 17 - debian/org.tizen.lockscreen.install.in | 5 - debian/org.tizen.lockscreen.postinst | 20 - debian/rules | 114 -- include/background-view.h | 40 + include/battery.h | 31 + include/camera.h | 31 + include/complex-password.h | 37 + include/contextual-info.h | 92 ++ include/control-panel-password.h | 29 + include/control-panel.h | 52 + include/daemon/daemon.h | 201 +++ include/daemon/dbus.h | 86 ++ include/daemon/property.h | 50 + include/daemon/view-mgr.h | 22 + include/default-unlock.h | 46 + include/dynamic-index.h | 45 + include/lockscreen-lite.h | 156 ++ include/music-player.h | 45 + include/notification-item.h | 68 + include/notification-panel.h | 39 + include/password-verification.h | 84 ++ include/progress_circle.h | 85 ++ include/sim-state.h | 29 + include/simple-password.h | 37 + include/tizen-account.h | 41 + include/underbar.h | 34 + include/util-time.h | 39 + include/util.h | 78 + src/info.h => include/various-utils.h | 18 +- include/weather.h | 27 + org.tizen.lockscreen.efl | 94 ++ org.tizen.lockscreen.manifest | 3 + org.tizen.lockscreen.rule | 47 - org.tizen.lockscreen.xml | 26 + org.tizen.lockscreen.xml.in | 11 - packaging/org.tizen.lockscreen.spec | 144 +- po/CMakeLists.txt | 2 +- po/ar.po | 36 - po/as.po | 309 ++++ po/az.po | 36 - po/bg.po | 36 - po/bn.po | 309 ++++ po/ca.po | 36 - po/cs.po | 36 - po/da.po | 36 - po/de_DE.po | 36 - po/el_GR.po | 36 - po/en.po | 311 +++- po/en_PH.po | 313 +++- po/en_US.po | 311 +++- po/es_ES.po | 36 - po/es_MX.po | 36 - po/es_US.po | 309 ++++ po/et.po | 36 - po/eu.po | 36 - po/fi.po | 36 - po/fr_CA.po | 36 - po/fr_FR.po | 36 - po/ga.po | 36 - po/gl.po | 36 - po/gu.po | 309 ++++ po/hi.po | 313 +++- po/hr.po | 36 - po/hu.po | 36 - po/hy.po | 36 - po/id.po | 309 ++++ po/is.po | 36 - po/it_IT.po | 36 - po/ja_JP.po | 36 - po/ka.po | 36 - po/kk.po | 36 - po/km.po | 309 ++++ po/kn.po | 309 ++++ po/ko_KR.po | 313 +++- po/lo.po | 309 ++++ po/lt.po | 36 - po/lv.po | 36 - po/mk.po | 36 - po/ml.po | 309 ++++ po/mr.po | 309 ++++ po/ms.po | 309 ++++ po/my.po | 309 ++++ po/nb.po | 36 - po/ne.po | 309 ++++ po/nl_NL.po | 36 - po/or.po | 309 ++++ po/pa.po | 309 ++++ po/pl.po | 36 - po/pt_BR.po | 311 +++- po/pt_PT.po | 36 - po/ro.po | 36 - po/ru_RU.po | 36 - po/si.po | 309 ++++ po/sk.po | 36 - po/sl.po | 36 - po/sr.po | 36 - po/sv.po | 36 - po/ta.po | 309 ++++ po/te.po | 309 ++++ po/th.po | 309 ++++ po/tl.po | 309 ++++ po/tr_TR.po | 36 - po/uk.po | 36 - po/ur.po | 309 ++++ po/uz.po | 36 - po/vi.po | 309 ++++ po/zh_CN.po | 309 +++- po/zh_HK.po | 36 - po/zh_SG.po | 36 - po/zh_TW.po | 36 - po_sdk/CMakeLists.txt | 23 + po_sdk/ar.po | 267 ++++ po_sdk/az.po | 267 ++++ po_sdk/bg.po | 267 ++++ po_sdk/ca.po | 267 ++++ po_sdk/cs.po | 267 ++++ po_sdk/da.po | 267 ++++ po_sdk/de.po | 267 ++++ po_sdk/el_GR.po | 267 ++++ po_sdk/en.po | 267 ++++ po_sdk/en_PH.po | 267 ++++ po_sdk/en_US.po | 267 ++++ po_sdk/es_ES.po | 267 ++++ po_sdk/es_US.po | 267 ++++ po_sdk/et.po | 267 ++++ po_sdk/eu.po | 267 ++++ po_sdk/fi.po | 267 ++++ po_sdk/fr.po | 267 ++++ po_sdk/fr_CA.po | 267 ++++ po_sdk/ga.po | 267 ++++ po_sdk/gl.po | 267 ++++ po_sdk/hi.po | 267 ++++ po_sdk/hr.po | 267 ++++ po_sdk/hu.po | 267 ++++ po_sdk/hy.po | 267 ++++ po_sdk/is.po | 267 ++++ po_sdk/it_IT.po | 267 ++++ po_sdk/ja_JP.po | 267 ++++ po_sdk/ka.po | 267 ++++ po_sdk/kk.po | 267 ++++ po_sdk/ko_KR.po | 267 ++++ po_sdk/lt.po | 267 ++++ po_sdk/lv.po | 267 ++++ po_sdk/mk.po | 267 ++++ po_sdk/nb.po | 267 ++++ po_sdk/nl.po | 267 ++++ po_sdk/pl.po | 267 ++++ po_sdk/pt_BR.po | 267 ++++ po_sdk/pt_PT.po | 267 ++++ po_sdk/ro.po | 267 ++++ po_sdk/ru_RU.po | 267 ++++ po_sdk/sk.po | 267 ++++ po_sdk/sl.po | 267 ++++ po_sdk/sr.po | 267 ++++ po_sdk/sv.po | 267 ++++ po_sdk/tr_TR.po | 267 ++++ po_sdk/uk.po | 267 ++++ po_sdk/uz.po | 267 ++++ po_sdk/zh_CN.po | 267 ++++ po_sdk/zh_HK.po | 267 ++++ po_sdk/zh_TW.po | 267 ++++ src/background-view.c | 247 ++++ src/battery.c | 266 ++++ src/bg.c | 300 ---- src/bg.h | 30 - src/camera.c | 227 +++ src/complex-password.c | 1050 +++++++++----- src/complex-password.h | 22 - src/contextual-info.c | 1499 ++++++++++++++++++++ src/control-panel-password.c | 452 ++++++ src/control-panel.c | 775 ++++++++++ src/daemon/daemon.c | 957 +++++++++++++ src/daemon/dbus.c | 325 +++++ src/daemon/dbus_util.c | 248 ++++ src/daemon/event.c | 182 +++ src/daemon/module.c | 310 ++++ src/daemon/property.c | 521 +++++++ src/daemon/util-daemon.c | 211 +++ src/daemon/view-mgr.c | 155 ++ src/daemon/window.c | 138 ++ src/default-unlock.c | 926 ++++++++++++ src/dynamic-index.c | 264 ++++ src/info.c | 289 ---- src/lockscreen-lite.c | 1290 +++++++++++++++++ src/lockscreen.c | 194 --- src/lockscreen.h | 90 -- src/log.h | 39 - src/music-player.c | 201 +++ src/noti.c | 185 --- src/noti.h | 22 - src/notification-item.c | 349 +++++ src/notification-panel.c | 289 ++++ src/password-verification.c | 969 ++++++++++--- src/password-verification.h | 27 - src/progress_circle.c | 783 ++++++++++ src/sim-state.c | 1019 ++++++++++--- src/sim-state.h | 23 - src/simple-password.c | 940 +++++++----- src/simple-password.h | 22 - src/tizen-account.c | 195 +++ src/underbar.c | 460 ++++++ src/util-time.c | 1355 ++++++++++++++++++ src/util.c | 731 ---------- src/util.h | 35 - src/various-utils.c | 27 + src/weather.c | 465 ++++++ 314 files changed, 47276 insertions(+), 8029 deletions(-) delete mode 100755 AUTHORS create mode 100644 CMakeLists.sub create mode 100755 LICENSE delete mode 100755 LICENSE.Flora delete mode 100755 NOTICE create mode 100755 data/CMakeLists.txt create mode 100755 data/contextual-info.edc create mode 100755 data/control-panel.edc create mode 100755 data/default-unlock.edc delete mode 100755 data/groups/lock-complex-password.edc delete mode 100755 data/groups/lock-info.edc delete mode 100755 data/groups/lock-main.edc delete mode 100755 data/groups/lock-noti.edc delete mode 100755 data/groups/lock-simple-password.edc delete mode 100755 data/groups/lock-slider.edc rename data/images/{slider/RB07_icon_Unlock_02.png => B09_btn_doubletab_h.png} (75%) create mode 100755 data/images/Notification_ic_message.png create mode 100755 data/images/Notification_ic_missedcall.png create mode 100755 data/images/RB07_icon_shift_press.png rename data/images/{slider/RB07_icon_Unlock_arrow.png => RB07_icon_space_press.png} (89%) create mode 100755 data/images/RB07_key_btn_press.png create mode 100644 data/images/camera_arrow.png create mode 100755 data/images/camera_default_arrow.png create mode 100755 data/images/celsius_icon.png create mode 100644 data/images/circular_gauge_bg.png rename data/images/{slider/RB07_icon_Unlock_01.png => circular_gauge_password.png} (72%) mode change 100755 => 100644 create mode 100644 data/images/circular_gauge_pin.png create mode 100755 data/images/dismiss_button.png create mode 100755 data/images/edit_btn_icon_keyboard_nor.png create mode 100755 data/images/edit_btn_icon_keyboard_press.png rename data/images/{slider/RB07_icon_Unlock_arrow_press.png => event_clock_colon.png} (88%) mode change 100755 => 100644 create mode 100755 data/images/event_close_bg.#.png create mode 100755 data/images/event_list_bg.#.png rename data/images/{slider/RB07_Unlock_bg.png => event_list_divider.#.png} (95%) rename data/images/{slider/RB07_Unlock_bg_press.png => event_number_bg.#.png} (94%) mode change 100755 => 100644 create mode 100755 data/images/fahrenheit_icon.png create mode 100755 data/images/gradation_bg.#.png create mode 100755 data/images/icon_backtocall_nor.png create mode 100755 data/images/icon_backtocall_press.png create mode 100755 data/images/indicator_high.png create mode 100755 data/images/indicator_nor.png create mode 100755 data/images/keyboard_basic_pad.png create mode 100755 data/images/keyboard_basic_pad_press.png create mode 100755 data/images/keypad_press_bg.png create mode 100755 data/images/lock_circle_line_camera.png create mode 100755 data/images/lock_circle_line_camera_drag.png create mode 100755 data/images/ls_back_01_nor.png create mode 100755 data/images/ls_back_01_press.png create mode 100755 data/images/ls_back_02_nor.png rename data/images/{slider/RB07_icon_Unlock_press_07.png => ls_back_02_press.png} (67%) create mode 100755 data/images/ls_button_02_default.png create mode 100755 data/images/ls_button_02_press.png create mode 100755 data/images/ls_password_box_02.png create mode 100755 data/images/ls_password_dot.png create mode 100755 data/images/ls_phone_01_nor.png create mode 100755 data/images/ls_phone_01_press.png create mode 100755 data/images/quick_shot.png create mode 100755 data/images/quick_shot_drag.png delete mode 100755 data/images/slider/RB07_icon_Unlock_press_01.png delete mode 100755 data/images/slider/RB07_icon_Unlock_press_02.png delete mode 100755 data/images/slider/RB07_icon_Unlock_press_03.png delete mode 100755 data/images/slider/RB07_icon_Unlock_press_04.png delete mode 100755 data/images/slider/RB07_icon_Unlock_press_05.png delete mode 100755 data/images/slider/RB07_icon_Unlock_press_06.png delete mode 100755 data/images/slider/RB07_icon_Unlock_press_08.png delete mode 100755 data/images/slider/RB07_icon_Unlock_press_09.png delete mode 100755 data/images/slider/RB07_icon_Unlock_press_10.png delete mode 100755 data/images/slider/RB07_icon_Unlock_press_11.png delete mode 100755 data/images/slider/RB07_icon_Unlock_press_12.png delete mode 100755 data/images/slider/RB07_icon_Unlock_press_13.png delete mode 100755 data/images/slider/RB07_icon_Unlock_press_14.png delete mode 100755 data/images/slider/RB07_icon_Unlock_press_15.png create mode 100755 data/images/weather_icon_01.png create mode 100755 data/images/weather_icon_02.png create mode 100755 data/images/weather_icon_03.png create mode 100755 data/images/weather_icon_04.png create mode 100755 data/images/weather_icon_05.png create mode 100755 data/images/weather_icon_06.png create mode 100755 data/images/weather_icon_07.png create mode 100755 data/images/weather_icon_08.png create mode 100755 data/images/weather_icon_09.png create mode 100755 data/images/weather_icon_10.png create mode 100755 data/images/weather_icon_11.png create mode 100755 data/images/weather_icon_12.png create mode 100755 data/images/weather_icon_13.png create mode 100755 data/images/weather_icon_14.png create mode 100755 data/images/weather_icon_15.png create mode 100755 data/images/weather_icon_16.png create mode 100755 data/images/weather_icon_17.png create mode 100755 data/images/weather_icon_18.png create mode 100755 data/images/weather_icon_19.png create mode 100755 data/lock-complex-password.edc create mode 100755 data/lock-simple-password.edc create mode 100755 data/lock-simple-password2.edc create mode 100755 data/lockscreen-bg.edc create mode 100755 data/lockscreen-button.edc create mode 100755 data/lockscreen-camera.edc create mode 100755 data/lockscreen-lite.edc delete mode 100755 data/lockscreen.edc create mode 100755 data/notification-item.edc create mode 100755 data/org.tizen.lockscreen-lite_ChangeableColorInfo.xml create mode 100755 data/org.tizen.lockscreen-lite_ChangeableFontInfo.xml create mode 100755 data/weather.edc delete mode 100755 debian/changelog delete mode 100755 debian/compat delete mode 100755 debian/control delete mode 100755 debian/org.tizen.lockscreen.install.in delete mode 100755 debian/org.tizen.lockscreen.postinst delete mode 100755 debian/rules create mode 100755 include/background-view.h create mode 100755 include/battery.h create mode 100755 include/camera.h create mode 100755 include/complex-password.h create mode 100755 include/contextual-info.h create mode 100755 include/control-panel-password.h create mode 100755 include/control-panel.h create mode 100755 include/daemon/daemon.h create mode 100755 include/daemon/dbus.h create mode 100755 include/daemon/property.h create mode 100755 include/daemon/view-mgr.h create mode 100755 include/default-unlock.h create mode 100755 include/dynamic-index.h create mode 100755 include/lockscreen-lite.h create mode 100755 include/music-player.h create mode 100755 include/notification-item.h create mode 100755 include/notification-panel.h create mode 100755 include/password-verification.h create mode 100755 include/progress_circle.h create mode 100755 include/sim-state.h create mode 100755 include/simple-password.h create mode 100755 include/tizen-account.h create mode 100755 include/underbar.h create mode 100755 include/util-time.h create mode 100755 include/util.h rename src/info.h => include/various-utils.h (50%) create mode 100755 include/weather.h create mode 100755 org.tizen.lockscreen.efl mode change 100755 => 100644 org.tizen.lockscreen.manifest delete mode 100644 org.tizen.lockscreen.rule create mode 100755 org.tizen.lockscreen.xml delete mode 100755 org.tizen.lockscreen.xml.in delete mode 100755 po/ar.po create mode 100755 po/as.po delete mode 100755 po/az.po delete mode 100755 po/bg.po create mode 100755 po/bn.po delete mode 100755 po/ca.po delete mode 100755 po/cs.po delete mode 100755 po/da.po delete mode 100755 po/de_DE.po delete mode 100755 po/el_GR.po delete mode 100755 po/es_ES.po delete mode 100755 po/es_MX.po create mode 100755 po/es_US.po delete mode 100755 po/et.po delete mode 100755 po/eu.po delete mode 100755 po/fi.po delete mode 100755 po/fr_CA.po delete mode 100755 po/fr_FR.po delete mode 100755 po/ga.po delete mode 100755 po/gl.po create mode 100755 po/gu.po delete mode 100755 po/hr.po delete mode 100755 po/hu.po delete mode 100755 po/hy.po create mode 100755 po/id.po delete mode 100755 po/is.po delete mode 100755 po/it_IT.po delete mode 100755 po/ja_JP.po delete mode 100755 po/ka.po delete mode 100755 po/kk.po create mode 100755 po/km.po create mode 100755 po/kn.po create mode 100755 po/lo.po delete mode 100755 po/lt.po delete mode 100755 po/lv.po delete mode 100755 po/mk.po create mode 100755 po/ml.po create mode 100755 po/mr.po create mode 100755 po/ms.po create mode 100755 po/my.po delete mode 100755 po/nb.po create mode 100755 po/ne.po delete mode 100755 po/nl_NL.po create mode 100755 po/or.po create mode 100755 po/pa.po delete mode 100755 po/pl.po delete mode 100755 po/pt_PT.po delete mode 100755 po/ro.po delete mode 100755 po/ru_RU.po create mode 100755 po/si.po delete mode 100755 po/sk.po delete mode 100755 po/sl.po delete mode 100755 po/sr.po delete mode 100755 po/sv.po create mode 100755 po/ta.po create mode 100755 po/te.po create mode 100755 po/th.po create mode 100755 po/tl.po delete mode 100755 po/tr_TR.po delete mode 100755 po/uk.po create mode 100755 po/ur.po delete mode 100755 po/uz.po create mode 100755 po/vi.po delete mode 100755 po/zh_HK.po delete mode 100755 po/zh_SG.po delete mode 100755 po/zh_TW.po create mode 100644 po_sdk/CMakeLists.txt create mode 100755 po_sdk/ar.po create mode 100755 po_sdk/az.po create mode 100755 po_sdk/bg.po create mode 100755 po_sdk/ca.po create mode 100755 po_sdk/cs.po create mode 100755 po_sdk/da.po create mode 100755 po_sdk/de.po create mode 100755 po_sdk/el_GR.po create mode 100755 po_sdk/en.po create mode 100755 po_sdk/en_PH.po create mode 100755 po_sdk/en_US.po create mode 100755 po_sdk/es_ES.po create mode 100755 po_sdk/es_US.po create mode 100755 po_sdk/et.po create mode 100755 po_sdk/eu.po create mode 100755 po_sdk/fi.po create mode 100755 po_sdk/fr.po create mode 100755 po_sdk/fr_CA.po create mode 100755 po_sdk/ga.po create mode 100755 po_sdk/gl.po create mode 100755 po_sdk/hi.po create mode 100755 po_sdk/hr.po create mode 100755 po_sdk/hu.po create mode 100755 po_sdk/hy.po create mode 100755 po_sdk/is.po create mode 100755 po_sdk/it_IT.po create mode 100755 po_sdk/ja_JP.po create mode 100755 po_sdk/ka.po create mode 100755 po_sdk/kk.po create mode 100755 po_sdk/ko_KR.po create mode 100755 po_sdk/lt.po create mode 100755 po_sdk/lv.po create mode 100755 po_sdk/mk.po create mode 100755 po_sdk/nb.po create mode 100755 po_sdk/nl.po create mode 100755 po_sdk/pl.po create mode 100755 po_sdk/pt_BR.po create mode 100755 po_sdk/pt_PT.po create mode 100755 po_sdk/ro.po create mode 100755 po_sdk/ru_RU.po create mode 100755 po_sdk/sk.po create mode 100755 po_sdk/sl.po create mode 100755 po_sdk/sr.po create mode 100755 po_sdk/sv.po create mode 100755 po_sdk/tr_TR.po create mode 100755 po_sdk/uk.po create mode 100755 po_sdk/uz.po create mode 100755 po_sdk/zh_CN.po create mode 100755 po_sdk/zh_HK.po create mode 100755 po_sdk/zh_TW.po create mode 100755 src/background-view.c create mode 100755 src/battery.c delete mode 100755 src/bg.c delete mode 100755 src/bg.h create mode 100755 src/camera.c delete mode 100755 src/complex-password.h create mode 100755 src/contextual-info.c create mode 100755 src/control-panel-password.c create mode 100755 src/control-panel.c create mode 100755 src/daemon/daemon.c create mode 100755 src/daemon/dbus.c create mode 100755 src/daemon/dbus_util.c create mode 100755 src/daemon/event.c create mode 100755 src/daemon/module.c create mode 100755 src/daemon/property.c create mode 100755 src/daemon/util-daemon.c create mode 100755 src/daemon/view-mgr.c create mode 100755 src/daemon/window.c create mode 100755 src/default-unlock.c create mode 100755 src/dynamic-index.c delete mode 100755 src/info.c create mode 100755 src/lockscreen-lite.c delete mode 100755 src/lockscreen.c delete mode 100755 src/lockscreen.h delete mode 100755 src/log.h create mode 100755 src/music-player.c delete mode 100755 src/noti.c delete mode 100755 src/noti.h create mode 100755 src/notification-item.c create mode 100755 src/notification-panel.c delete mode 100755 src/password-verification.h create mode 100755 src/progress_circle.c delete mode 100755 src/sim-state.h delete mode 100755 src/simple-password.h create mode 100755 src/tizen-account.c create mode 100755 src/underbar.c create mode 100755 src/util-time.c delete mode 100755 src/util.c delete mode 100755 src/util.h create mode 100755 src/various-utils.c create mode 100755 src/weather.c diff --git a/AUTHORS b/AUTHORS deleted file mode 100755 index 196e85e..0000000 --- a/AUTHORS +++ /dev/null @@ -1 +0,0 @@ -seungtaek chung diff --git a/CMakeLists.sub b/CMakeLists.sub new file mode 100644 index 0000000..27df942 --- /dev/null +++ b/CMakeLists.sub @@ -0,0 +1,26 @@ +## PROJECT NAME +PROJECT(${CMAKE_TARGET} C) + +## INCLUDES +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include) + +## DEFINITIONS +ADD_DEFINITIONS("") + +## LIBRARY PATH +SET(SLP_LD_PATH_FLAGS "") + +## LIBRARY +SET(SLP_LD_FLAGS "") + +## DEBUG +SET(SLP_DEBUG_FLAGS "-g") + +## OPTIMIZATION +SET(SLP_OPT_FLAGS "-O0") + +## COMPILER FLAGS +SET(SLP_COMPILER_FLAGS "-Wall -Wunused") + +## LINKER FLAGS +SET(SLP_LINKER_FLAGS "") diff --git a/CMakeLists.txt b/CMakeLists.txt index b9691bc..3636d23 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,112 +1,133 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -PROJECT(lockscreen C) - -SET(SRCS - ${CMAKE_SOURCE_DIR}/src/lockscreen.c - ${CMAKE_SOURCE_DIR}/src/util.c - ${CMAKE_SOURCE_DIR}/src/sim-state.c - ${CMAKE_SOURCE_DIR}/src/info.c - ${CMAKE_SOURCE_DIR}/src/bg.c - ${CMAKE_SOURCE_DIR}/src/noti.c - ${CMAKE_SOURCE_DIR}/src/simple-password.c - ${CMAKE_SOURCE_DIR}/src/complex-password.c - ${CMAKE_SOURCE_DIR}/src/password-verification.c -) - -SET(VENDOR "tizen") -SET(PACKAGE ${PROJECT_NAME}) -SET(PKGNAME "org.${VENDOR}.${PACKAGE}") -SET(PREFIX ${CMAKE_INSTALL_PREFIX}) -SET(BINDIR "${PREFIX}/bin") -SET(RESDIR "${PREFIX}/res") -SET(DATADIR "/opt/usr/${PKGNAME}/data") -SET(LOCALEDIR "${RESDIR}/locale") -SET(IMAGEDIR "${RESDIR}/image/${PROJECT_NAME}") -SET(EDJEDIR "${RESDIR}/edje/${PROJECT_NAME}") -SET(ETCDIR "${RESDIR}/etc/${PROJECT_NAME}") -SET(MANIFESTXMLDIR "/usr/share/packages") - -IF("${CMAKE_BUILD_TYPE}" STREQUAL "") - SET(CMAKE_BUILD_TYPE "Release") -ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") -MESSAGE("Build type: ${CMAKE_BUILD_TYPE}") - -INCLUDE_DIRECTORIES( - ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/src -) - +PROJECT(lockscreen-lite) +# FIND ALL SOURCE IN A SOURCE DIRECTORY +AUX_SOURCE_DIRECTORY(${CMAKE_SOURCE_DIR}/src SRCS) +AUX_SOURCE_DIRECTORY(${CMAKE_SOURCE_DIR}/src/daemon SRCS) + +#INCLUDE FILE +INCLUDE(CMakeLists.sub) +SET(PACKAGE "${PROJECT_NAME}") +SET(RESOURCE_DIR "${CMAKE_SOURCE_DIR}/res") +SET(EDJDIR "${RESOURCE_DIR}/edje/${PACKAGE}") +SET(LOCALEDIR "/usr/apps/org.tizen.lockscreen/res/locale") + +MESSAGE("BRANCH: ${BRANCH}") +IF("${BRANCH}" STREQUAL "PRIVATE") INCLUDE(FindPkgConfig) pkg_check_modules(pkgs REQUIRED - capi-appfw-application - ecore-x + bundle appcore-efl + evas + edje + elementary + ecore + ecore-x + eina + capi-system-sensor + capi-appfw-application + aul + ail + notification + minicontrol-viewer + contacts-service2 + security-server + mdm + minicontrol-monitor utilX + ui-gadget-1 + feedback + tapi + efl-assist + key-manager + accounts-svc + dbus-1 + dbus-glib-1 + capi-telephony-network-info + capi-appfw-app-manager + deviced + wallpaper-service +) +ELSE() +INCLUDE(FindPkgConfig) +pkg_check_modules(pkgs REQUIRED + bundle + appcore-efl + evas + edje + elementary + ecore + ecore-x + eina + capi-system-sensor + capi-appfw-application + aul ail notification + minicontrol-viewer + contacts-service2 security-server + minicontrol-monitor + utilX ui-gadget-1 - heynoti - capi-system-info + feedback + msg-service + tapi + efl-assist + key-manager +# capi-telephony-network-info + accounts-svc + dbus-1 + dbus-glib-1 + capi-appfw-app-manager + deviced ) +ENDIF() + +ADD_DEFINITIONS("-DPROJECT=\"${PROJECT_NAME}\"") FOREACH(flag ${pkgs_CFLAGS}) - SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag} -fpie") + SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") -SET(CMAKE_C_FLAGS_DEBUG "-O0 -g") -SET(CMAKE_C_FLAGS_RELEASE "-O2") +SET(CMAKE_C_FLAGS "${SLP_DEBUG_FLAGS} ${SLP_OPT_FLAGS} ${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${SLP_COMPILER_FLAGS}") +SET(CMAKE_CXX_FLAGS "${SLP_DEBUG_FLAGS} ${SLP_OPT_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${SLP_COMPILER_FLAGS}") -FIND_PROGRAM(UNAME NAMES uname) -EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH") -IF("${ARCH}" STREQUAL "arm") - ADD_DEFINITIONS("-DTARGET") - MESSAGE("add -DTARGET") -ENDIF("${ARCH}" STREQUAL "arm") +ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS}) -ADD_DEFINITIONS("-DVENDOR=\"${VENDOR}\"") -ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"") -ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"") -ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"") -ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"") -ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"") -ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"") -ADD_DEFINITIONS("-DIMAGEDIR=\"${IMAGEDIR}\"") -ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"") -ADD_DEFINITIONS("-DEDJEDIR=\"${EDJEDIR}\"") -ADD_DEFINITIONS("-DETCDIR=\"${ETCDIR}\"") -SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie") +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} ${SLP_LD_PATH_FLAGS} ${SLP_LD_FLAGS} ${SLP_LINKER_FLAGS} "Xtst") -ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS}) -TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} "-lm") +# Install +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin) -INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR}) - -ADD_CUSTOM_TARGET(lockscreen.edj - COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/data/images/ - ${CMAKE_CURRENT_SOURCE_DIR}/data/lockscreen.edc - ${CMAKE_BINARY_DIR}/lockscreen.edj - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/data/lockscreen.edc -) -ADD_CUSTOM_TARGET(lockscreen-entry.edj - COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/data/images/ - ${CMAKE_CURRENT_SOURCE_DIR}/data/lockscreen-entry.edc - ${CMAKE_BINARY_DIR}/lockscreen-entry.edj - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/data/lockscreen-entry.edc -) +#Install images +INSTALL(DIRECTORY data/images/ DESTINATION res/images) -ADD_DEPENDENCIES(${PROJECT_NAME} lockscreen.edj _theme.edj) -ADD_DEPENDENCIES(${PROJECT_NAME} lockscreen-entry.edj) -INSTALL(FILES ${CMAKE_BINARY_DIR}/lockscreen.edj DESTINATION ${EDJEDIR}) -INSTALL(FILES ${CMAKE_BINARY_DIR}/lockscreen-entry.edj DESTINATION ${EDJEDIR}) +# Install Manifest File +INSTALL(FILES org.tizen.lockscreen.xml DESTINATION /usr/share/packages) +INSTALL(FILES org.tizen.lockscreen.efl DESTINATION /etc/smack/accesses.d) -CONFIGURE_FILE(${PKGNAME}.xml.in ${CMAKE_BINARY_DIR}/${PKGNAME}.xml) -INSTALL(FILES ${CMAKE_BINARY_DIR}/${PKGNAME}.xml DESTINATION ${MANIFESTXMLDIR}) +#Install edje files +INSTALL(FILES data/lockscreen-lite.edj DESTINATION res/edje) +INSTALL(FILES data/default-unlock.edj DESTINATION res/edje) +INSTALL(FILES data/weather.edj DESTINATION res/edje) +INSTALL(FILES data/control-panel.edj DESTINATION res/edje) +INSTALL(FILES data/contextual-info.edj DESTINATION res/edje) +#INSTALL(FILES data/lock-swipe.edj DESTINATION res/edje) +INSTALL(FILES data/notification-item.edj DESTINATION res/edje) +INSTALL(FILES data/lock-simple-password.edj DESTINATION res/edje) +INSTALL(FILES data/lock-simple-password2.edj DESTINATION res/edje) +INSTALL(FILES data/lock-complex-password.edj DESTINATION res/edje) +INSTALL(FILES data/lockscreen-entry.edj DESTINATION res/edje) +INSTALL(FILES data/lockscreen-button.edj DESTINATION res/edje) +INSTALL(FILES data/lockscreen-bg.edj DESTINATION res/edje) +INSTALL(FILES data/lockscreen-camera.edj DESTINATION res/edje) -#Install smack file -INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PKGNAME}.rule DESTINATION /opt/etc/smack/accesses.d) -INSTALL(DIRECTORY DESTINATION ${DATADIR}) +# End of a file +ADD_SUBDIRECTORY(data) +IF("${BRANCH}" STREQUAL "PRIVATE") ADD_SUBDIRECTORY(po) +ELSE() +ADD_SUBDIRECTORY(po_sdk) +ENDIF() diff --git a/LICENSE b/LICENSE new file mode 100755 index 0000000..82fc741 --- /dev/null +++ b/LICENSE @@ -0,0 +1,204 @@ +Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/LICENSE.Flora b/LICENSE.Flora deleted file mode 100755 index 571fe79..0000000 --- a/LICENSE.Flora +++ /dev/null @@ -1,206 +0,0 @@ -Flora License - -Version 1.1, April, 2013 - -http://floralicense.org/license/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, -and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by -the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and -all other entities that control, are controlled by, or are -under common control with that entity. For the purposes of -this definition, "control" means (i) the power, direct or indirect, -to cause the direction or management of such entity, -whether by contract or otherwise, or (ii) ownership of fifty percent (50%) -or more of the outstanding shares, or (iii) beneficial ownership of -such entity. - -"You" (or "Your") shall mean an individual or Legal Entity -exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, -including but not limited to software source code, documentation source, -and configuration files. - -"Object" form shall mean any form resulting from mechanical -transformation or translation of a Source form, including but -not limited to compiled object code, generated documentation, -and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, -made available under the License, as indicated by a copyright notice -that is included in or attached to the work (an example is provided -in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, -that is based on (or derived from) the Work and for which the editorial -revisions, annotations, elaborations, or other modifications represent, -as a whole, an original work of authorship. For the purposes of this License, -Derivative Works shall not include works that remain separable from, -or merely link (or bind by name) to the interfaces of, the Work and -Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original -version of the Work and any modifications or additions to that Work or -Derivative Works thereof, that is intentionally submitted to Licensor -for inclusion in the Work by the copyright owner or by an individual or -Legal Entity authorized to submit on behalf of the copyright owner. -For the purposes of this definition, "submitted" means any form of -electronic, verbal, or written communication sent to the Licensor or -its representatives, including but not limited to communication on -electronic mailing lists, source code control systems, and issue -tracking systems that are managed by, or on behalf of, the Licensor -for the purpose of discussing and improving the Work, but excluding -communication that is conspicuously marked or otherwise designated -in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity -on behalf of whom a Contribution has been received by Licensor and -subsequently incorporated within the Work. - -"Tizen Certified Platform" shall mean a software platform that complies -with the standards set forth in the Tizen Compliance Specification -and passes the Tizen Compliance Tests as defined from time to time -by the Tizen Technical Steering Group and certified by the Tizen -Association or its designated agent. - -2. Grant of Copyright License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -copyright license to reproduce, prepare Derivative Works of, -publicly display, publicly perform, sublicense, and distribute the -Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -(except as stated in this section) patent license to make, have made, -use, offer to sell, sell, import, and otherwise transfer the Work -solely as incorporated into a Tizen Certified Platform, where such -license applies only to those patent claims licensable by such -Contributor that are necessarily infringed by their Contribution(s) -alone or by combination of their Contribution(s) with the Work solely -as incorporated into a Tizen Certified Platform to which such -Contribution(s) was submitted. If You institute patent litigation -against any entity (including a cross-claim or counterclaim -in a lawsuit) alleging that the Work or a Contribution incorporated -within the Work constitutes direct or contributory patent infringement, -then any patent licenses granted to You under this License for that -Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the -Work or Derivative Works thereof pursuant to the copyright license -above, in any medium, with or without modifications, and in Source or -Object form, provided that You meet the following conditions: - - 1. You must give any other recipients of the Work or Derivative Works - a copy of this License; and - 2. You must cause any modified files to carry prominent notices stating - that You changed the files; and - 3. You must retain, in the Source form of any Derivative Works that - You distribute, all copyright, patent, trademark, and attribution - notices from the Source form of the Work, excluding those notices - that do not pertain to any part of the Derivative Works; and - 4. If the Work includes a "NOTICE" text file as part of its distribution, - then any Derivative Works that You distribute must include a readable - copy of the attribution notices contained within such NOTICE file, - excluding those notices that do not pertain to any part of - the Derivative Works, in at least one of the following places: - within a NOTICE text file distributed as part of the Derivative Works; - within the Source form or documentation, if provided along with the - Derivative Works; or, within a display generated by the Derivative Works, - if and wherever such third-party notices normally appear. - The contents of the NOTICE file are for informational purposes only - and do not modify the License. You may add Your own attribution notices - within Derivative Works that You distribute, alongside or as an addendum - to the NOTICE text from the Work, provided that such additional attribution - notices cannot be construed as modifying the License. You may add Your own - copyright statement to Your modifications and may provide additional or - different license terms and conditions for use, reproduction, or - distribution of Your modifications, or for any such Derivative Works - as a whole, provided Your use, reproduction, and distribution of - the Work otherwise complies with the conditions stated in this License - and your own copyright statement or terms and conditions do not conflict - the conditions stated in the License including section 3. - -5. Submission of Contributions. Unless You explicitly state otherwise, -any Contribution intentionally submitted for inclusion in the Work -by You to the Licensor shall be under the terms and conditions of -this License, without any additional terms or conditions. -Notwithstanding the above, nothing herein shall supersede or modify -the terms of any separate license agreement you may have executed -with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade -names, trademarks, service marks, or product names of the Licensor, -except as required for reasonable and customary use in describing the -origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or -agreed to in writing, Licensor provides the Work (and each -Contributor provides its Contributions) on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -implied, including, without limitation, any warranties or conditions -of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A -PARTICULAR PURPOSE. You are solely responsible for determining the -appropriateness of using or redistributing the Work and assume any -risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, -whether in tort (including negligence), contract, or otherwise, -unless required by applicable law (such as deliberate and grossly -negligent acts) or agreed to in writing, shall any Contributor be -liable to You for damages, including any direct, indirect, special, -incidental, or consequential damages of any character arising as a -result of this License or out of the use or inability to use the -Work (including but not limited to damages for loss of goodwill, -work stoppage, computer failure or malfunction, or any and all -other commercial damages or losses), even if such Contributor -has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing -the Work or Derivative Works thereof, You may choose to offer, -and charge a fee for, acceptance of support, warranty, indemnity, -or other liability obligations and/or rights consistent with this -License. However, in accepting such obligations, You may act only -on Your own behalf and on Your sole responsibility, not on behalf -of any other Contributor, and only if You agree to indemnify, -defend, and hold each Contributor harmless for any liability -incurred by, or claims asserted against, such Contributor by reason -of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Flora License to your work - -To apply the Flora License to your work, attach the following -boilerplate notice, with the fields enclosed by brackets "[]" -replaced with your own identifying information. (Don't include -the brackets!) The text should be enclosed in the appropriate -comment syntax for the file format. We also recommend that a -file or class name and description of purpose be included on the -same "printed page" as the copyright notice for easier -identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Flora License, Version 1.1 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://floralicense.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. - diff --git a/NOTICE b/NOTICE deleted file mode 100755 index db64ab0..0000000 --- a/NOTICE +++ /dev/null @@ -1,3 +0,0 @@ -Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved. -Except as noted, this software is licensed under Flora License, Version 1.1 -Please, see the LICENSE file for Flora License, Version 1.1 terms and conditions. diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt new file mode 100755 index 0000000..218551e --- /dev/null +++ b/data/CMakeLists.txt @@ -0,0 +1,96 @@ +ADD_CUSTOM_TARGET(lockscreen-lite.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_SOURCE_DIR}/data/lockscreen-lite.edc ${CMAKE_BINARY_DIR}/data/lockscreen-lite.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/lockscreen-lite.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} lockscreen-lite.edj) + +ADD_CUSTOM_TARGET(default-unlock.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_SOURCE_DIR}/data/default-unlock.edc ${CMAKE_BINARY_DIR}/data/default-unlock.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/default-unlock.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} default-unlock.edj) + +ADD_CUSTOM_TARGET(control-panel.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_SOURCE_DIR}/data/control-panel.edc ${CMAKE_BINARY_DIR}/data/control-panel.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/control-panel.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} control-panel.edj) + +ADD_CUSTOM_TARGET(contextual-info.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_SOURCE_DIR}/data/contextual-info.edc ${CMAKE_BINARY_DIR}/data/contextual-info.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/contextual-info.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} contextual-info.edj) + +ADD_CUSTOM_TARGET(weather.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_SOURCE_DIR}/data/weather.edc ${CMAKE_BINARY_DIR}/data/weather.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/weather.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} weather.edj) + +ADD_CUSTOM_TARGET(notification-item.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_SOURCE_DIR}/data/notification-item.edc ${CMAKE_BINARY_DIR}/data/notification-item.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/notification-item.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} notification-item.edj) + +ADD_CUSTOM_TARGET(lock-simple-password.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_SOURCE_DIR}/data/lock-simple-password.edc ${CMAKE_BINARY_DIR}/data/lock-simple-password.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/lock-simple-password.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} lock-simple-password.edj) + +ADD_CUSTOM_TARGET(lock-simple-password2.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_SOURCE_DIR}/data/lock-simple-password2.edc ${CMAKE_BINARY_DIR}/data/lock-simple-password2.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/lock-simple-password2.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} lock-simple-password2.edj) + +ADD_CUSTOM_TARGET(lock-complex-password.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_SOURCE_DIR}/data/lock-complex-password.edc ${CMAKE_BINARY_DIR}/data/lock-complex-password.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/lock-complex-password.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} lock-complex-password.edj) + +ADD_CUSTOM_TARGET(lockscreen-entry.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_SOURCE_DIR}/data/lockscreen-entry.edc ${CMAKE_BINARY_DIR}/data/lockscreen-entry.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/lockscreen-entry.edc +) + +ADD_CUSTOM_TARGET(lockscreen-button.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_SOURCE_DIR}/data/lockscreen-button.edc ${CMAKE_BINARY_DIR}/data/lockscreen-button.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/lockscreen-button.edc +) + +ADD_CUSTOM_TARGET(lockscreen-bg.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_SOURCE_DIR}/data/lockscreen-bg.edc ${CMAKE_BINARY_DIR}/data/lockscreen-bg.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/lockscreen-bg.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} lockscreen-bg.edj) + +ADD_CUSTOM_TARGET(lockscreen-camera.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_SOURCE_DIR}/data/lockscreen-camera.edc ${CMAKE_BINARY_DIR}/data/lockscreen-camera.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/lockscreen-camera.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} lockscreen-camera.edj) + +ADD_DEPENDENCIES(${PROJECT_NAME} lockscreen-entry.edj) +ADD_DEPENDENCIES(${PROJECT_NAME} lockscreen-button.edj) + +INSTALL(FILES org.tizen.${PROJECT_NAME}-lite_ChangeableColorInfo.xml DESTINATION +/usr/apps/org.tizen.${PROJECT_NAME}/shared/res/tables) +INSTALL(FILES org.tizen.${PROJECT_NAME}-lite_ChangeableFontInfo.xml DESTINATION +/usr/apps/org.tizen.${PROJECT_NAME}/shared/res/tables) diff --git a/data/contextual-info.edc b/data/contextual-info.edc new file mode 100755 index 0000000..1c86b81 --- /dev/null +++ b/data/contextual-info.edc @@ -0,0 +1,459 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define CONTEXTUAL_AREA_WIDTH 480 +#define CONTEXTUAL_AREA_HEIGHT (39+174+39) + +#define _BG_DIM_X_MIN 0 +#define _BG_DIM_X_MAX 480 +#define _BG_DIM_Y_MIN 0 +#define _BG_DIM_Y_MAX 39 + +#define _SCROLLER_X_MIN 0 +#define _SCROLLER_X_MAX 480 +#define _SCROLLER_Y_MIN 39 +#define _SCROLLER_Y_MAX (39+174) + +#define _CLOSE_BUTTON_X_MIN (480-20) +#define _CLOSE_BUTTON_Y_MIN (7+12) + +#define BG_DIM_X_MIN _BG_DIM_X_MIN/CONTEXTUAL_AREA_WIDTH +#define BG_DIM_X_MAX _BG_DIM_X_MAX/CONTEXTUAL_AREA_WIDTH +#define BG_DIM_Y_MIN _BG_DIM_Y_MIN/CONTEXTUAL_AREA_HEIGHT +#define BG_DIM_Y_MAX _BG_DIM_Y_MAX/CONTEXTUAL_AREA_HEIGHT + +#define SCROLLER_X_MIN _SCROLLER_X_MIN/CONTEXTUAL_AREA_WIDTH +#define SCROLLER_X_MAX _SCROLLER_X_MAX/CONTEXTUAL_AREA_WIDTH +#define SCROLLER_Y_MIN _SCROLLER_Y_MIN/CONTEXTUAL_AREA_HEIGHT +#define SCROLLER_Y_MAX _SCROLLER_Y_MAX/CONTEXTUAL_AREA_HEIGHT + +#define CLOSE_BUTTON_X_MIN _CLOSE_BUTTON_X_MIN/CONTEXTUAL_AREA_WIDTH +#define CLOSE_BUTTON_Y_MIN _CLOSE_BUTTON_Y_MIN/CONTEXTUAL_AREA_HEIGHT + +#define CLOSE_TEXT_CLASS "ATO008" + +#define PART_DBG(part_name, R, G, B, A) \ +part { \ +name: part_name",dbg"; \ +type: RECT; \ +mouse_events: 1; \ +repeat_events: 1; \ +description { \ +state: "default" 0.0; \ +rel1.relative: 0.0 0.0; \ +rel2.relative: 1.0 1.0; \ +rel1.to: part_name; \ +rel2.to: part_name; \ +color: R G B A; \ +} + + +collections +{ + base_scale: 1.8; + group + { + name: "contextual_info_layout"; + + styles + { + style + { name: "close_style"; + base: "font=Tizen:style=Regular color=#FFFFFF font_size=18 wrap=none text_class=ATO008 align=center"; + } + style + { name: "close_style_small"; + base: "font=Tizen:style=Regular color=#FFFFFF font_size=14 wrap=none text_class=ATO008 align=center"; + } + } + + images + { + image: "event_list_bg.#.png" COMP; + image: "event_close_bg.#.png" COMP; + } + + parts + { + part + { + name: "bg"; + type: SPACER; + scale : 1; + description + { + state: "default" 0.0; + } + } + + part { + name : "bg,dim"; + type : IMAGE; + scale : 1; + description { + state : "default" 0.0; + rel1 { + relative: BG_DIM_X_MIN BG_DIM_Y_MIN; + to: "bg"; + } + rel2 { + relative: BG_DIM_X_MAX BG_DIM_Y_MAX; + to: "bg"; + } + image + { + normal: "event_list_bg.#.png"; + } + color_class: AO019; + } + description + { + state: "show_noti_text" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part + { + name: "scroller"; + type: SWALLOW; + scale : 1; + description + { + state : "default" 0.0; + fixed: 1 1; + rel1 { + relative: SCROLLER_X_MIN SCROLLER_Y_MIN; + to: "bg"; + } + rel2 { + relative: SCROLLER_X_MAX SCROLLER_Y_MAX; + to: "bg"; + } + } + description + { + state: "show_noti_text" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part + { + name: "scroller,index"; + type: SWALLOW; + scale : 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 1.0; to, "scroller"; } + rel2 { relative: 1.0 1.0; to, "scroller"; } + visible: 1; + align: 0.5 0.0; + min: 480 39; + } + } + + part + { + name: "close_button"; + type: IMAGE; + scale : 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.5; to:"close_text"; } + rel2 { relative: 1.0 0.5; to:"close_text"; } + rel1.to: "close_text"; + rel1.offset: -11 -1; + rel2.to: "close_text"; + rel2.offset: 10 -1; + image + { + normal: "event_close_bg.#.png"; + } + color_class: "AO016"; + align: 0.5 0.5; + min: 0 25; + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + color_class: "AO016P"; + } + description + { + state: "show_noti_text" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part + { + name: "close_text"; + type: TEXTBLOCK; + scale : 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { + relative: CLOSE_BUTTON_X_MIN CLOSE_BUTTON_Y_MIN; + to: "bg"; + } + rel2 { + relative: CLOSE_BUTTON_X_MIN CLOSE_BUTTON_Y_MIN; + to: "bg"; + } + text { + min: 1 1; + align: 0.5 0.5; + style: "close_style"; + } + align: 1.0 0.5; + min: 60 25; + } + description + { + state: "show_noti_text" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description + { + state: "small_text" 0.0; + inherit: "default" 0.0; + text { + min: 1 1; + align: 0.5 0.5; + style: "close_style_small"; + } + } + description + { + state: "normal_text" 0.0; + inherit: "default" 0.0; + text { + min: 1 1; + align: 0.5 0.5; + style: "close_style"; + } + } + } + part + { + name: "close_event"; + type: RECT; + scale : 1; + mouse_events: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1.to: "close_text"; + rel1.offset: -60 -30; + rel2.to: "close_text"; + rel2.offset: 100 30; + color: 255 255 255 0; + visible: 1; + } + description + { + state: "show_noti_text" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + } + programs + { + program + { + name: "close"; + signal: "clicked"; + source: "close_event"; + action: SIGNAL_EMIT "close" "close_event"; + } + program + { + name: "close,pressed"; + signal: "mouse,down,1"; + action: STATE_SET "pressed" 0.0; + source: "close_event"; + target: "close_button"; + } + program + { + name: "close,unpressed"; + signal: "mouse,up,1"; + action: STATE_SET "default" 0.0; + source: "close_event"; + target: "close_button"; + } + program + { + name: "show.noti.text"; + signal: "show_noti_text"; + action: STATE_SET "show_noti_text" 0.0; + source: "layout"; + target: "scroller"; + target: "close_button"; + target: "close_text"; + target: "close_event"; + target: "bg,dim"; + } + program + { + name: "small.text"; + signal: "small_text"; + action: STATE_SET "small_text" 0.0; + source: "close_text"; + target: "close_text"; + } + program + { + name: "normal.text"; + signal: "normal_text"; + action: STATE_SET "normal_text" 0.0; + source: "close_text"; + target: "close_text"; + } + } + } //group + group + { + name: "page"; + parts + { + part + { + name : "bg"; + type : IMAGE; + scale: 1; + description { + state : "default" 0.0; + rel1 { + relative: 0.0 0.0; + } + rel2 { + relative: 1.0 1.0; + } + image + { + normal: "event_list_bg.#.png"; + } + color_class: AO019; + min: 480 0; + visible : 1; + } + } + part + { + name : "content"; + type : SWALLOW; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + } + rel2 { + relative: 1.0 1.0; + } + } + } + } //parts + }//group + group + { + name: "index"; + images + { + image: "indicator_nor.png" COMP; + image: "indicator_high.png" COMP; + } + 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; } + min: 26 26; + color: 0 0 0 0; + } + } + part + { + name : "index"; + type : IMAGE; + scale: 1; + description { + state : "default" 0.0; + rel1 { + relative: 0.0 0.0; + to: "bg"; + } + rel2 { + relative: 1.0 1.0; + to: "bg"; + } + image + { + normal: "indicator_nor.png"; + } + visible : 1; + color: 255 255 255 100; + } + description { + state: "index,on" 0.0; + inherit: "default" 0.0; + image + { + normal: "indicator_high.png"; + } + color: 255 255 255 255; + } + } + } //parts + programs + { + program + { + name : "index,on"; + signal: "index,on"; + action: STATE_SET "index,on" 0.0; + source: "index"; + target: "index"; + } + program + { + name : "index,off"; + signal: "index,off"; + action: STATE_SET "default" 0.0; + source: "index"; + target: "index"; + } + } //programs + }//group +} diff --git a/data/control-panel.edc b/data/control-panel.edc new file mode 100755 index 0000000..09e282e --- /dev/null +++ b/data/control-panel.edc @@ -0,0 +1,386 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define CONTROL_PANEL_WIDTH 420 +#define PADDING_RIGHT 7 +#define EMG_BTN_WIDTH 170 +#define EMG_BTN_HEIGHT 36 +#define ARROW_WIDTH 20 +#define ARROW_HEIGHT 66 +#define ARROW_PADDING_TOP 80 +#define ARROW_PADDING_BOTTOM 14 +#define UNLOCK_TEXT_WIDTH 150 +#define UNLOCK_TEXT_HEIGHT 52 +#define UNLOCK_TEXT_PADDING 20 +#define UNLOCK_CIRCLE_BG_SIZE 90 + +#define CAMERA_ICON_WIDTH 90 + +#define TEXT_OPERATOR_CLASS "ATO007" + +#define PART_DBG(part_name, R, G, B, A) \ +part { \ +name: part_name",dbg"; \ +type: RECT; \ +mouse_events: 1; \ +repeat_events: 1; \ +description { \ +state: "default" 0.0; \ +rel1.relative: 0.0 0.0; \ +rel2.relative: 1.0 1.0; \ +rel1.to: part_name; \ +rel2.to: part_name; \ +color: R G B A; \ +} + +collections +{ + base_scale: 1.8; + group + { + name: "control_panel_layout_dual_text"; + images { + image: "quick_shot.png" COMP; + } + styles { + style { + name: "unlock_text"; + base: "font=Tizen:style=Regular color=#FFFFFFFF color_class=ATO006 font_size=20 text_class=ATO006 style=shadow shadow_color=#000000bf align: 0 0"; + } + } + parts + { + part + { + name: "bg"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + } + } + + /** + * Paddings + */ + part + { + name: "padding.top"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; to: "bg"; } + rel2 { relative: 1.0 0.0; to: "bg"; } + } + } + part + { + name: "padding.left"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; to: "bg"; } + rel2 { relative: 0.0 1.0; to: "bg"; } + } + } + part + { + name: "padding.bottom"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 1.0; to: "bg"; } + rel2 { relative: 1.0 1.0; to: "bg"; } + } + } + part + { + name: "padding.right"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; to: "bg"; } + rel2 { relative: 1.0+PADDING_RIGHT/CONTROL_PANEL_WIDTH 1.0; to: "bg"; } + } + } + part + { + name: "unlock_circle_padding.left"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + min: 15 0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; to: "camera_icon"; } + rel2 { relative: 0.0 1.0; to: "camera_icon"; } + } + } + part + { + name: "text_spacer"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + fixed: 0 0; + rel1 { relative: 0.0 0.0; to_x: "bg"; to_y: "camera_icon"; } + rel2 { relative: 0.0 1.0; to_x: "unlock_circle_padding.left"; to_y: "camera_icon"; } + } + } + part + { + name: "text_spacer_padding_top"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + min: 0 10; + rel1 { relative: 0.0 0.0; to: "text_spacer"; } + rel2 { relative: 1.0 0.0; to: "text_spacer"; } + } + } + part + { + name: "text_spacer_padding_middle"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + max: 9999 4; + align: 0.0 0.5; + rel1 { relative: 0.0 0.0; to: "text_spacer"; } + rel2 { relative: 1.0 1.0; to: "text_spacer"; } + } + } + part + { + name: "text_spacer_padding_bottom"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + min: 0 10; + rel1 { relative: 0.0 1.0; to: "text_spacer"; } + rel2 { relative: 1.0 1.0; to: "text_spacer"; } + } + } + + part { + name : "camera_icon"; + type : SPACER; + scale : 1; + description { + state : "default" 0.0; + align : 0.5 0.5; + fixed : 1 1; + min : CAMERA_ICON_WIDTH CAMERA_ICON_WIDTH; + max : CAMERA_ICON_WIDTH CAMERA_ICON_WIDTH; + rel1 { relative: 1.0-UNLOCK_CIRCLE_BG_SIZE/PADDING_RIGHT 0.0; to: "padding.right"; } + rel2 { relative: 1.0 1.0; to: "padding.right"; } + } + } + + part + { + name: "emg_call_clipper"; + type: RECT; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + visible: 1; + color: 255 255 255 255; + rel1 { relative: 0.0 0.0; to_x: "text_spacer_padding_middle"; to_y: "text_spacer"; } + rel2 { relative: 1.0 1.0; to_x: "text_spacer_padding_middle"; to_y: "text_spacer"; } + } + } + + /** + * Emergency CALL button swallow and text + */ + part + { + name: "emg_call_button"; + type: SWALLOW; + scale: 1; + clip_to: "emg_call_clipper"; + description + { + state: "default" 0.0; + fixed: 1 1; + //min : EMG_BTN_WIDTH EMG_BTN_HEIGHT; + //max : EMG_BTN_WIDTH EMG_BTN_HEIGHT; + min : 322 EMG_BTN_HEIGHT; + max : 322 EMG_BTN_HEIGHT; + align: 0 0.5; + rel1 { relative: 0.0 0.5; to: "emg_call_clipper"; } + rel2 { relative: 1.0 0.5; to: "emg_call_clipper"; } + visible: 1; + } + description + { + state: "invisible" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part + { + name: "unlock,text"; + type: TEXTBLOCK; + scale: 1; + effect: SHADOW BOTTOM; + description + { + state: "default" 0.0; + fixed: 1 1; + visible: 1; + min : UNLOCK_TEXT_WIDTH UNLOCK_TEXT_HEIGHT; + max : UNLOCK_TEXT_WIDTH UNLOCK_TEXT_HEIGHT; + align: 0 0.0; + visible: 0; + rel1 { relative: 1.0 0.0; offset: UNLOCK_TEXT_PADDING -10; to: "emg_call_button";} + rel2 { relative: 1.0 0.0; offset: UNLOCK_TEXT_PADDING+UNLOCK_TEXT_WIDTH UNLOCK_TEXT_HEIGHT-10; to: "emg_call_button";} + color: 255 255 255 255; + text { + style: "unlock_text"; + } + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + /** + * Tizen Account button swallow + */ + part { + name: "tizen.account.spacer"; //This is the white line between Emergency Call button and Tizen Account Button + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 {relative: 1.0 0.0; to_x: "emg_call_button"; to_y: "emg_call_button";} + rel2 {relative: 1.015 1.0; to_x: "emg_call_button"; to_y: "emg_call_button";} + color: 255 255 255 150; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { + name: "tizen.account.button"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.42 -0.1; to_x: "bg"; to_y: "tizen.account.spacer";} + rel2 { relative: 0.72 1.1; to_x: "bg"; to_y: "tizen.account.spacer";} + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + } + + programs + { + program { + name: "hide.emg.button"; + action: STATE_SET "invisible" 0.0; + signal: "hide,emg,btn"; + source: ""; + target: "emg_call_button"; + } + program { + name: "show.emg.button"; + action: STATE_SET "default" 0.0; + signal: "show,emg,btn"; + source: ""; + target: "emg_call_button"; + } + program { + name: "show.unlock.text"; + action: STATE_SET "visible" 0.0; + signal: "show,unlock,text"; + source: ""; + target: "unlock,text"; + } + program { + name: "hide.unlock.text"; + action: STATE_SET "default" 0.0; + signal: "hide,unlock,text"; + source: ""; + target: "unlock,text"; + } + + /** + * Hide and show Tizen account button + */ + program { + name: "tizen.account.button.show"; + action: STATE_SET "visible" 0.0; + signal: "show.tizen.account.button"; + source: "default_unlock"; + target: "tizen.account.button"; + target: "tizen.account.spacer"; + } + program { + name: "tizen.account.button.hide"; + action: STATE_SET "default" 0.0; + signal: "hide.tizen.account.button"; + source: "default_unlock"; + target: "tizen.account.button"; + target: "tizen.account.spacer"; + } + } + } +} diff --git a/data/default-unlock.edc b/data/default-unlock.edc new file mode 100755 index 0000000..b2a734e --- /dev/null +++ b/data/default-unlock.edc @@ -0,0 +1,1113 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define WINDOW_HEIGHT 800 +#define WINDOW_WIDTH 480 +#define INDICATOR_SIZE 36 + +#define BG_WIDTH WINDOW_WIDTH +#define BG_HEIGHT (WINDOW_HEIGHT-INDICATOR_SIZE) + +#define PADDING_TOP 30.0 +#define PADDING_LEFT 30.0 +#define PADDING_RIGHT 30.0 +#define PADDING_BOTTOM 23.0 +#define PADDING_EVENT 6.0 + + +/*----------Dual Clock is positioned to the bg-----------------------*/ +/*----------If GUI will change please modify only this values--------*/ +#define _ROAMING_X_MIN 30 +#define _ROAMING_X_MAX (30+210) +#define _ROAMING_Y_MIN (10-2) +#define _ROAMING_Y_MAX (36-2) + +#define _HOME_X_MIN (30+225) +#define _HOME_X_MAX (30+225+210) +#define _HOME_Y_MIN (10-2) +#define _HOME_Y_MAX (36-2) + +#define _DUAL_CLOCK_ROAMING_X_MIN 30 +#define _DUAL_CLOCK_ROAMING_X_MAX (30+195+25) +#define _DUAL_CLOCK_ROAMING_Y_MIN (10+26-2) +#define _DUAL_CLOCK_ROAMING_Y_MAX (10+26+75-2) + +#define _DUAL_CLOCK_HOME_X_MIN (255) +#define _DUAL_CLOCK_HOME_X_MAX (255+195+25) +#define _DUAL_CLOCK_HOME_Y_MIN (10+26-2) +#define _DUAL_CLOCK_HOME_Y_MAX (10+26+75-2) + +#define _DATE_ROAMING_X_MIN 30 +#define _DATE_ROAMING_X_MAX (30+210) +#define _DATE_ROAMING_Y_MIN (10+26+75-2) +#define _DATE_ROAMING_Y_MAX (10+26+75+26-2) + +#define _DATE_HOME_X_MIN (30+225) +#define _DATE_HOME_X_MAX (30+240+210) +#define _DATE_HOME_Y_MIN (10+26+75-2) +#define _DATE_HOME_Y_MAX (10+26+75+26-2) + +#define _CHARGING_TEXT_X_MIN (30) +#define _CHARGING_TEXT_X_MAX (450) +#define _CHARGING_TEXT_Y_MIN (254) +#define _CHARGING_TEXT_Y_MAX (254+28) + +#define _CHARGING_EVENT_TEXT_Y_MIN (254+28+10) +#define _CHARGING_EVENT_TEXT_Y_MAX (254+28+10+28) + +#define _WEATHER_X_MIN (30) +#define _WEATHER_X_MAX (207) +#define _WEATHER_Y_MIN (162) +#define _WEATHER_Y_MAX (162+84) + +#define _CLOCK_EVENT_X_MIN 10 +#define _CLOCK_EVENT_X_MAX 210 +#define _CLOCK_EVENT_Y_MIN 0 +#define _CLOCK_EVENT_Y_MAX 30 + +#define _DATE_EVENT_X_MIN 230 +#define _DATE_EVENT_X_MAX 470 +#define _DATE_EVENT_Y_MIN 0 +#define _DATE_EVENT_Y_MAX 30 + +#define _CONTEXTUAL_AREA_X_MIN 0 +#define _CONTEXTUAL_AREA_X_MAX 480 +#define _CONTEXTUAL_AREA_Y_MIN 30 +#define _CONTEXTUAL_AREA_Y_MAX (30+39+174+39) + +/*-----------------------------Dual Clock Relativees--------------*/ +#define ROAMING_X_MIN _ROAMING_X_MIN/BG_WIDTH +#define ROAMING_X_MAX _ROAMING_X_MAX/BG_WIDTH +#define ROAMING_Y_MIN _ROAMING_Y_MIN/BG_HEIGHT +#define ROAMING_Y_MAX _ROAMING_Y_MAX/BG_HEIGHT + +#define HOME_X_MIN _HOME_X_MIN/BG_WIDTH +#define HOME_X_MAX _HOME_X_MAX/BG_WIDTH +#define HOME_Y_MIN _HOME_Y_MIN/BG_HEIGHT +#define HOME_Y_MAX _HOME_Y_MAX/BG_HEIGHT + +#define DUAL_CLOCK_ROAMING_X_MIN _DUAL_CLOCK_ROAMING_X_MIN/BG_WIDTH +#define DUAL_CLOCK_ROAMING_X_MAX _DUAL_CLOCK_ROAMING_X_MAX/BG_WIDTH +#define DUAL_CLOCK_ROAMING_Y_MIN _DUAL_CLOCK_ROAMING_Y_MIN/BG_HEIGHT +#define DUAL_CLOCK_ROAMING_Y_MAX _DUAL_CLOCK_ROAMING_Y_MAX/BG_HEIGHT + +#define DUAL_CLOCK_HOME_X_MIN _DUAL_CLOCK_HOME_X_MIN/BG_WIDTH +#define DUAL_CLOCK_HOME_X_MAX _DUAL_CLOCK_HOME_X_MAX/BG_WIDTH +#define DUAL_CLOCK_HOME_Y_MIN _DUAL_CLOCK_HOME_Y_MIN/BG_HEIGHT +#define DUAL_CLOCK_HOME_Y_MAX _DUAL_CLOCK_HOME_Y_MAX/BG_HEIGHT + +#define DATE_ROAMING_X_MIN _DATE_ROAMING_X_MIN/BG_WIDTH +#define DATE_ROAMING_X_MAX _DATE_ROAMING_X_MAX/BG_WIDTH +#define DATE_ROAMING_Y_MIN _DATE_ROAMING_Y_MIN/BG_HEIGHT +#define DATE_ROAMING_Y_MAX _DATE_ROAMING_Y_MAX/BG_HEIGHT + +#define DATE_HOME_X_MIN _DATE_HOME_X_MIN/BG_WIDTH +#define DATE_HOME_X_MAX _DATE_HOME_X_MAX/BG_WIDTH +#define DATE_HOME_Y_MIN _DATE_HOME_Y_MIN/BG_HEIGHT +#define DATE_HOME_Y_MAX _DATE_HOME_Y_MAX/BG_HEIGHT + +#define CHARGING_TEXT_X_MIN _CHARGING_TEXT_X_MIN/BG_WIDTH +#define CHARGING_TEXT_X_MAX _CHARGING_TEXT_X_MAX/BG_WIDTH +#define CHARGING_TEXT_Y_MIN _CHARGING_TEXT_Y_MIN/BG_HEIGHT +#define CHARGING_TEXT_Y_MAX _CHARGING_TEXT_Y_MAX/BG_HEIGHT + +#define CHARGING_EVENT_TEXT_Y_MIN _CHARGING_EVENT_TEXT_Y_MIN/BG_HEIGHT +#define CHARGING_EVENT_TEXT_Y_MAX _CHARGING_EVENT_TEXT_Y_MAX/BG_HEIGHT + +#define WEATHER_X_MIN _WEATHER_X_MIN/BG_WIDTH +#define WEATHER_X_MAX _WEATHER_X_MAX/BG_WIDTH +#define WEATHER_Y_MIN _WEATHER_Y_MIN/BG_HEIGHT +#define WEATHER_Y_MAX _WEATHER_Y_MAX/BG_HEIGHT + +#define CLOCK_EVENT_X_MIN _CLOCK_EVENT_X_MIN/BG_WIDTH +#define CLOCK_EVENT_X_MAX _CLOCK_EVENT_X_MAX/BG_WIDTH +#define CLOCK_EVENT_Y_MIN _CLOCK_EVENT_Y_MIN/BG_HEIGHT +#define CLOCK_EVENT_Y_MAX _CLOCK_EVENT_Y_MAX/BG_HEIGHT + +#define DATE_EVENT_X_MIN _DATE_EVENT_X_MIN/BG_WIDTH +#define DATE_EVENT_X_MAX _DATE_EVENT_X_MAX/BG_WIDTH +#define DATE_EVENT_Y_MIN _DATE_EVENT_Y_MIN/BG_HEIGHT +#define DATE_EVENT_Y_MAX _DATE_EVENT_Y_MAX/BG_HEIGHT + +#define CONTEXTUAL_AREA_X_MIN _CONTEXTUAL_AREA_X_MIN/BG_WIDTH +#define CONTEXTUAL_AREA_X_MAX _CONTEXTUAL_AREA_X_MAX/BG_WIDTH +#define CONTEXTUAL_AREA_Y_MIN _CONTEXTUAL_AREA_Y_MIN/BG_HEIGHT +#define CONTEXTUAL_AREA_Y_MAX _CONTEXTUAL_AREA_Y_MAX/BG_HEIGHT + +//TIME_WIDTH_DEFAULT and TIME_HEIGHT_EVENT values differ from the one given in GUI +//because they didn't fit right in the layout + +#define TIME_HEIGHT_DEFAULT 75.0 + +#define TIME_AM_PM_HEIGHT_DEFAULT 40.0 +#define TIME_AM_PM_WIDTH_DEFAULT 68.0 +#define COLON_WIDTH_DEFAULT 13.0 +#define PADDING_AM_PM_DEFAULT 8.0 +#define PADDING_DATE_DEFAULT 15.0 +#define DATE_HEIGHT_DEFAULT 36.0 + +#define PADDING_CHARGING 95.0 +#define CHARGING_HEIGHT 31.0 + +#define TIME_HEIGHT_EVENT 42.0 +#define TIME_WIDTH_EVENT 54.0 +#define TIME_AM_PM_HEIGHT_EVENT 25.0 +#define TIME_AM_PM_WIDTH_EVENT 43.0 +#define TIME_AM_PM_EVENT 39.0 + +#define COLON_WIDTH_EVENT 12.0 +#define PADDING_DATE_EVENT 14.0 + +#define DISMISS_BUTTON_SIZE 27.0 + +#define CONTEXTUAL_AREA_HEIGHT 210.0 +#define CONTEXTUAL_AREA_WIDTH 480.0 +#define CONTROL_PANEL_HEIGHT 90.0 + +#define TIME_DUAL_CLOCK_HOME_HOUR_X 255.0 +#define TIME_DUAL_CLOCK_HOME_HOUR_Y 45.0 +#define TIME_DUAL_CLOCK_ROAMING_HOUR_X 30.0 +#define TIME_DUAL_CLOCK_ROAMING_HOUR_Y 45.0 +#define TIME_DUAL_CLOCK_WIDTH 75.0 +#define TIME_DUAL_CLOCK_HEIGHT 75.0 + +#define COLON_WIDTH_DUAL_CLOCK 11.0 +#define TIME_AM_PM_HEIGHT_DUAL_CLOCK 45.0 +#define TIME_AM_PM_WIDTH_DUAL_CLOCK 45.0 +#define TIME_AM_PM_WIDTH_DUAL 50.0 + +#define TIME_AM_PM_HEIGHT_DUAL 50.0 +#define PADDING_DATE_DUAL_CLOCK 10.0 +#define PADDING_CLOCK_HOME_ROAMING 2.0 +#define DATE_HEIGHT_DUAL_CLOCK 26.0 +#define PADDING_CHARGING_DUAL_CLOCK 200.0 + +#define CONTROL_PANEL_Y_KEYBOARD_ON 380.0 + +#define SWIPE_PANEL_TEXT_TOP_OFFSET 44.0 +#define SWIPE_PANEL_TEXT_BOTTOM_OFFSET 16.0 + +//TIME PART - DEFAULT STATE +#define TIME_PART_WIDTH 105.0 //Time container is splited to 3 parts (hours) | (colon) | (minutes) , container should have 207 px in WVGA - so hours and minutes shoud have 97 px. +#define TIME_PART_HEIGHT 98.0 //Time height in default state (UI guideline - 75 but font is 93 px) +#define TIME_PART_COLON 17.0 //UI GUi +#define TIME_PART_AM_PM_W 72.0 +#define TIME_PART_AM_PM_H 44.0 //UI guideline 40 but font is 42 + +//TIME PART - EVENT STATE +#define TIME_PART_EVENT_WIDTH 54.0 +#define TIME_PART_EVENT_HEIGHT 51.0 +#define TIME_PART_EVENT_COLON 12.0 +#define TIME_PART_EVENT_AM_PM_W 39.0 +#define TIME_PART_EVENT_AM_PM_H 30.0 + +#define CONTROL_PANEL_KEY_ON_Y_MIN (800-339-100)/BG_HEIGHT +#define CONTROL_PANEL_KEY_ON_Y_MAX (800-339)/BG_HEIGHT + +#define CLOCK_NUMBER_TEXT_CLASS "ATO001" +#define CLOCK_AM_PM_TEXT_CLASS "ATO002" +#define CLOCK_DAY_TEXT_CLASS "ATO003" + +#define CHARGING_TEXT_CLASS "ATO004" + +#define EVENT_CLOCK_NUMBER_TEXT_CLASS "ATO009" +#define EVENT_CLOCK_AM_PM_TEXT_CLASS "ATO009" + +#define DUAL_CLOCK_NUMBER_TEXT_CLASS "ATO019" +#define DUAL_CLOCK_AM_PM_TEXT_CLASS "ATO021" +#define DUAL_CLOCK_DAY_TEXT_CLASS "ATO020" +#define ROMAING_TEXT_CLASS "ATO036" + +#define PART_DBG(part_name, R, G, B, A) \ +part { \ +name: part_name",dbg"; \ +type: RECT; \ +mouse_events: 1; \ +repeat_events: 1; \ +description { \ +state: "default" 0.0; \ +rel1.relative: 0.0 0.0; \ +rel2.relative: 1.0 1.0; \ +rel1.to: part_name; \ +rel2.to: part_name; \ +color: R G B A; \ +} \ +} \ + +collections +{ + base_scale: 1.8; + group + { + styles + { + style + { name: "time_style_default"; + base: "style=far_shadow,bottom shadow_color=#00000033 font=SamsungNeoNum-3T:style=Regular color=#FFFFFF font_size=93 wrap=none"; + tag: "small_font" "+ font_size=42 font=SamsungNeoNum-3T:style=Light"; + } + style + { name: "time_style_dual"; + base: "style=far_shadow,bottom shadow_color=#00000033 font=SamsungNeoNum-3T:style=Regular font_size=67 color=#FFFFFF wrap=none text_class=ATO019"; + tag: "small_font" "+ font_size=30 font=SamsungNeoNum-3T:style=Light color=#FFFFFF text_class=ATO021"; + } + style + { name: "time_style_event"; + base: "style=far_shadow,bottom shadow_color=#00000033 font=Tizen:style=Regular font_size=26 color=#FFFFFF wrap=none align=right"; + tag: "small_font" "+ font_size=24"; + } + style + { name: "time_style_event_center"; + base: "style=far_shadow,bottom shadow_color=#00000033 font=Tizen:style=Regular font_size=24 color=#FFFFFF wrap=none align=center valign=top text_class=ATO009"; + tag: "small_font" "+ font_size=22 font=Tizen:style=Regular color=#FFFFFF valign=top text_class=ATO038"; + } + style + { name: "date_style_default"; + base: "style=far_shadow,bottom shadow_color=#00000033 font=Tizen:style=Regular font_size=30 color=#FFFFFF wrap=none align=left text_class=ATO003"; + tag: "small_font" "+ font_size=24"; + } + style + { name: "date_style_dual"; + base: "style=far_shadow,bottom shadow_color=#00000033 font=SamsungNeoNum-3T:style=Regular font_size=67 color=#FFFFFF wrap=none text_class=ATO020"; + tag: "small_font" "+ font_size=30 font=SamsungNeoNum-3T:style=Light"; + } + style + { name: "date_style_event"; + base: "style=far_shadow,bottom shadow_color=#00000033 font=Tizen:style=Regular font_size=24 color=#FFFFFF wrap=none align=left"; + tag: "small_font" "+ font_size=24"; + } + } + images { + image: "event_clock_colon.png" COMP; + image: "event_clock_colon.png" COMP; + } + + name: "default_unlock_layout"; + parts + { + part + { + name: "bg"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + rel1 {relative: 0.0 0.0;} + rel2 {relative: 1.0 1.0;} + } + } + + /** + * Paddings + */ + part + { + name: "padding_top"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: "bg"; } + rel2 { relative: 0.5 PADDING_TOP/BG_HEIGHT; to: "bg";} + } + description + { + state: "event" 0.0; + rel1 { relative: 0.0 0.0; to: "bg"; } + rel2 { relative: 1.0 0.0; to: "bg"; } + } + description + { + state: "dual_clock" 0.0; + inherit: "default" 0.0; + } + } + part + { + name: "padding_left"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; to: "bg"; } + rel2 { relative: PADDING_LEFT/BG_WIDTH 1.0; to: "bg";} + } + } + part + { + name: "padding_right"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0-PADDING_RIGHT/BG_WIDTH 0.0; to: "bg";} + rel2 { relative: 1.0 1.0; to: "bg"; } + } + } + + part + { + name: "padding_bottom"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 1.0-PADDING_BOTTOM/BG_HEIGHT; to: "bg";} + rel2 { relative: 1.0 1.0; to: "bg"; } + } + } + + /** + * Time Parts + */ + part { + name: "padding_hours"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: "bg"; } + rel2 { relative: 1.0 (30)/BG_HEIGHT; to: "bg";} + } + description + { + state: "event" 0.0; + rel1 { relative: 0.0 0.0; to: "bg"; } + rel2 { relative: 1.0 (51)/BG_HEIGHT; to: "bg"; } + } + description + { + state: "dual_clock" 0.0; + inherit: "default" 0.0; + } + } +//PART_DBG("time_hours", 150, 150, 0, 150) + part + { + name: "time_hours"; + type: TEXTBLOCK; + scale: 1; + description + { + state: "default" 0.0; + align : 0.0 0.0; + min: (207+8+62) (120); + fixed: 1 1; + rel1 { relative: 1.0 1.0; to_x: "padding_left"; to_y: "padding_hours"; offset: 0 -10;} + rel2 { relative: 1.0 1.0; to_x: "padding_left"; to_y: "padding_hours"; } + text + { + style: "time_style_default"; + align: 0.0 0.0; + min : 1 1; + } + } + description + { + state: "event" 0.0; + fixed: 1 1; + align: 0.0 1.0; + rel1 {relative: 0.0 CLOCK_EVENT_Y_MIN; to: "bg"; } + rel2 {relative: 1.0 CLOCK_EVENT_Y_MAX; to: "bg";} + text + { + style: "time_style_event_center"; + align: 0.5 1.0; + } + } + description + { + state: "dual_clock" 0.0; + fixed: 1 1; + rel1 {relative: DUAL_CLOCK_ROAMING_X_MIN DUAL_CLOCK_ROAMING_Y_MIN; to: "bg";} + rel2 {relative: DUAL_CLOCK_ROAMING_X_MAX DUAL_CLOCK_ROAMING_Y_MAX; to: "bg";} + text + { + style: "time_style_dual"; + align: 0.0 0.0; + } + } + } + + part + { + name: "time_hours_roaming"; + type: TEXTBLOCK; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: TIME_DUAL_CLOCK_ROAMING_HOUR_X/BG_WIDTH TIME_DUAL_CLOCK_ROAMING_HOUR_Y/BG_HEIGHT;; to: "bg"; } + rel2 { relative: 2.57*(TIME_DUAL_CLOCK_ROAMING_HOUR_X+TIME_DUAL_CLOCK_WIDTH)/BG_WIDTH (TIME_DUAL_CLOCK_ROAMING_HOUR_Y+TIME_DUAL_CLOCK_HEIGHT)/BG_HEIGHT; to: "bg"; } + text + { + style: "time_style_default"; + align: 0.0 0.5; + } + visible: 0; + } + description + { + state: "event" 0.0; + inherit: "default" 0.0; + min: 0 0; + fixed: 1 1; + visible: 0; + } + description + { + state: "dual_clock" 0.0; + fixed: 1 1; + rel1 {relative: DUAL_CLOCK_HOME_X_MIN DUAL_CLOCK_HOME_Y_MIN; to: "bg"; } + rel2 {relative: DUAL_CLOCK_HOME_X_MAX DUAL_CLOCK_HOME_Y_MAX; to: "bg";} + text + { + style: "time_style_dual"; + align: 0.0 0.5; + } + visible: 1; + } + } +//PART_DBG("date_text", 150, 150, 0, 150) + /** + * Date parts + */ + part + { + name : "padding_date"; + type : SPACER; + scale : 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; to: "bg"; } + rel2 { relative: 1.0 120/BG_HEIGHT; to: "bg";} + } + } + part + { + name: "date_text"; + type: TEXTBLOCK; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + align : 0.0 0.0; + rel1 { + relative : 1.0 1.0; + to_x : "padding_left"; + to_y : "padding_date"; + } + rel2 { + relative : 1.0 1.0; + to_x : "padding_left"; + to_y : "padding_date"; + } + text + { + align: 0.0 0.0; + min : 1 1; + style: "date_style_default"; + } + } + description + { + state: "event" 0.0; + fixed: 1 1; + align : 0.0 1.0; + rel1 {relative: DATE_EVENT_X_MIN DATE_EVENT_Y_MIN; to: "bg";} + rel2 {relative: DATE_EVENT_X_MAX DATE_EVENT_Y_MAX; to: "bg";} + text + { + style: "date_style_event"; + //min : 1 0; + align : 0.0 1.0; + } + visible: 0; + } + description + { + state: "dual_clock" 0.0; +// inherit: "default" 0.0; + rel1 {relative: DATE_ROAMING_X_MIN DATE_ROAMING_Y_MIN; to: "bg";} + rel2 {relative: DATE_ROAMING_X_MAX DATE_ROAMING_Y_MAX; to: "bg";} + text + { + min : 1 0; + align: 0.0 0.0; + style: "date_style_dual"; + } + } + } +//PART_DBG("date_text", 0,255,0,150) + part + { + name: "date_text_roaming"; + type: TEXT; + scale: 1; + effect: FAR_SHADOW BOTTOM; + description + { + state: "default" 0.0; + fixed: 1 1; + color3 : 0 0 0 (255 * 0.2); + rel1 {relative: DATE_HOME_X_MIN DATE_HOME_Y_MIN; to: "bg";} + rel2 {relative: DATE_HOME_X_MAX DATE_HOME_Y_MAX; to: "bg";} + text + { + align: 0.0 0.0; + text_class: DUAL_CLOCK_DAY_TEXT_CLASS; + } + visible: 0; + } + description + { + state: "event" 0.0; + inherit: "default" 0.0; + min: 0 0; + fixed: 1 1; + visible: 0; + } + description + { + state: "dual_clock" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } +//PART_DBG("date_text_roaming", 0,255,134,150) + /** + * Roaming parts + */ + part + { + name: "roaming"; + type: TEXT; + scale: 1; + effect: FAR_SHADOW BOTTOM; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 {relative: ROAMING_X_MIN ROAMING_Y_MIN; to: "bg";} + rel2 {relative: ROAMING_X_MAX ROAMING_Y_MAX; to: "bg";} + color3 : 0 0 0 (255 * 0.2); + text + { + align: 0.0 0.0; + text: "Roaming"; + text_class: ROMAING_TEXT_CLASS; + } + visible: 0; + } + description + { + state: "event" 0.0; + inherit: "default" 0.0; + min: 0 0; + fixed: 1 1; + visible: 0; + } + description + { + state: "dual_clock" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part + { + name: "home"; + type: TEXT; + scale: 1; + effect: FAR_SHADOW BOTTOM; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 {relative: HOME_X_MIN HOME_Y_MIN; to: "bg";} + rel2 {relative: HOME_X_MAX HOME_Y_MAX; to: "bg";} + color3 : 0 0 0 (255 * 0.2); + text + { + align: 0.0 0.0; + text: "Home"; + text_class: ROMAING_TEXT_CLASS; + } + visible: 0; + } + description + { + state: "event" 0.0; + inherit: "default" 0.0; + min: 0 0; + fixed: 1 1; + visible: 0; + } + description + { + state: "dual_clock" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + /** + * Weather container + */ + part + { + name: "weather_swallow"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + align : 0.0 0.0; + rel1 {relative: WEATHER_X_MIN WEATHER_Y_MIN; to: "bg";} + rel2 {relative: WEATHER_X_MAX WEATHER_Y_MAX; to: "bg";} + } + description { + state: "event" 0.0; + inherit: "default" 0.0; + min: 0 0; + fixed: 1 1; + visible: 0; + } + description + { + state: "dual_clock" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } +//PART_DBG("weather_swallow", 100, 0, 0, 100); + + /** + * Charging text + */ + part + { + name: "charging_text"; + type: TEXT; + scale: 1; + effect: FAR_SHADOW BOTTOM; + description + { + state: "default" 0.0; + align : 0.0 0.0; + fixed : 1 1; + rel1 {relative: CHARGING_TEXT_X_MIN CHARGING_TEXT_Y_MIN; to: "bg";} + rel2 {relative: CHARGING_TEXT_X_MAX CHARGING_TEXT_Y_MAX; to: "bg";} + color3 : 0 0 0 (255 * 0.2); + text + { + min : 1 1; + align: 0.0 0.0; + text_class: CHARGING_TEXT_CLASS; + } + } + description + { + state: "event" 0.0; + inherit: "default" 0.0; + rel1 {relative: CHARGING_TEXT_X_MIN CHARGING_EVENT_TEXT_Y_MIN; to: "bg";} + rel2 {relative: CHARGING_TEXT_X_MAX CHARGING_EVENT_TEXT_Y_MAX; to: "bg";} + } + description + { + state: "hidden" 0.0; + visible: 0; + } + description + { + state: "dual_clock" 0.0; + inherit: "default" 0.0; + } + } + /** + * Contextual swallow + */ + part { + name : "event_info_swallow"; + type : SWALLOW; + scale : 1; + description { + state : "default" 0.0; + rel1 { + relative: CONTEXTUAL_AREA_X_MIN CONTEXTUAL_AREA_Y_MIN; + to: "bg"; + } + rel2 { + relative: CONTEXTUAL_AREA_X_MAX CONTEXTUAL_AREA_Y_MAX; + to: "bg"; + } + visible : 0; + } + description { + state : "event" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "dual_clock" 0.0; + inherit: "default" 0.0; + } + } + /*part + { + name: "event_info_swallow"; + type: SWALLOW; + scale: 1; + description + { + state: "default" 0.0; + color: 255 255 255 0; + } + description + { + state: "event" 0.0; + color: 255 255 255 255; + rel1 {relative: 0.0 1.0; to_x: "bg"; to_y: "time_hours";} + rel2 {relative: 1.0 1.0+CONTEXTUAL_AREA_HEIGHT/TIME_PART_EVENT_HEIGHT; to_x: "bg"; to_y: "time_hours";} + } + }*/ +//PART_DBG("event_info_swallow", 255,255,0,150) + /** + * Unlock panel swallow + */ + part + { + name: "unlock_panel_swallow"; + type: SWALLOW; + scale: 1; + description + { + state: "default" 0.0; + rel1 {relative: 1.0 3.0; to_x: "padding_left"; to_y: "date_text";} + rel2 {relative: 0.0 0.0-CONTROL_PANEL_HEIGHT/PADDING_BOTTOM; to_x: "padding_right"; to_y: "padding_bottom";} + } + description + { + state: "event" 0.0; + rel1 {relative: 1.0 0.31; to_x: "padding_left"; to_y: "bg";} + rel2 {relative: 0.0 0.85; to_x: "padding_right"; to_y: "bg";} + } + description + { + state: "dual_clock"; + inherit: "default" 0.0; + } + } + part + { + name: "rtc_button_swallow"; + type: SWALLOW; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + min : 300 40; + max : 300 40; + rel1 {relative: 0.5 0.5; to: "bg";} + rel2 {relative: 0.5 0.5; to: "bg";} + } + } + + /** + * Control panel swallow - block with text NO-SIM and camera button + */ + part + { + name: "control_panel_swallow"; + type: SWALLOW; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 {relative: PADDING_LEFT/BG_HEIGHT 0.0;} + rel2 {relative: 1.0-PADDING_RIGHT/BG_HEIGHT 1.0;} + } + description + { + state: "keybord,on" 0.0; + inherit: "default" 0.0; + rel1 {relative: 1.0 CONTROL_PANEL_KEY_ON_Y_MIN; to_x: "padding_left"; to_y: "bg";} + rel2 {relative: 0.0 CONTROL_PANEL_KEY_ON_Y_MAX; to_x: "padding_right"; to_y: "bg";} + } + } + + + /*part + // + + part + { + name: "swipe_panel_rect"; + type: RECT; + repeat_events: 1; + scale: 1; + description + { + state: "default" 0.0; + visible: 0; + color_class: "AO002"; + rel1 {relative: 0.0 0.0; to_x: "bg"; to_y: "unlock_panel_swallow";} + rel2 {relative: 1.0 1.0; to_x: "bg"; to_y: "unlock_panel_swallow";} + } + description + { + state: "shown" 0.0; + inherit: "default" 0.0; + visible: 1; + } + }*/ + + } + programs + { + program + { + name: "event"; + action: STATE_SET "event" 0.0; + signal: "event"; + source: "layout"; + target: "time_hours"; + target: "time_hours_roaming"; + target: "date_text"; + target: "date_text_roaming"; + target: "roaming"; + target: "home"; + target: "charging_text"; + target: "event_info_swallow"; + target: "unlock_panel_swallow"; + target: "weather_swallow"; + target: "padding_top"; + target : "padding_hours"; + } + program + { + name: "default"; + action: STATE_SET "default" 0.0; + signal: "default"; + source: "layout"; + target: "time_hours"; + target: "time_hours_roaming"; + target: "date_text"; + target: "date_text_roaming"; + target: "roaming"; + target: "home"; + target: "charging_text"; + target: "event_info_swallow"; + target: "unlock_panel_swallow"; + target: "weather_swallow"; + target: "padding_top"; + target : "padding_hours"; + } + program + { + name: "dual_clock"; + action: STATE_SET "dual_clock" 0.0; + signal: "dual_clock"; + source: "layout"; + target: "time_hours"; + target: "time_hours_roaming"; + target: "date_text"; + target: "date_text_roaming"; + target: "roaming"; + target: "home"; + target: "charging_text"; + target: "event_info_swallow"; + target: "unlock_panel_swallow"; + target: "padding_top"; + target: "weather_swallow"; + target : "padding_hours"; + } + program + { + name: "keybord,on"; + action: STATE_SET "keybord,on" 0.0; + signal: "geometry,changed"; + source: ""; + target: "control_panel_swallow"; + } + program + { + name: "keybord,off"; + action: STATE_SET "default,on" 0.0; + signal: "keyboard,hide"; + source: ""; + target: "control_panel_swallow"; + } + program + { + name: "charging,show"; + action: STATE_SET "default" 0.0; + signal: "charging,show"; + source: ""; + target: "charging_text"; + } + program + { + name: "charging,show,event"; + action: STATE_SET "event" 0.0; + signal: "charging,show,event"; + source: ""; + target: "charging_text"; + } + program + { + name: "charging,hide"; + action: STATE_SET "hidden" 0.0; + signal: "charging,hide"; + source: ""; + target: "charging_text"; + } + program + { + name: "weather,show"; + action: STATE_SET "default" 0.0; + signal: "weather,show"; + source: ""; + target: "weather_swallow"; + } + program + { + name: "weather,hide"; + action: STATE_SET "event" 0.0; + signal: "weather,hide"; + source: ""; + target: "weather_swallow"; + } + /*program + { + name: "swipe_panel,show"; + action: STATE_SET "shown" 0.0; + signal: "swipe_panel,show"; + source: ""; + target: "swipe_panel_rect"; + } + program + { + name: "swipe_panel,hide"; + action: STATE_SET "default" 0.0; + signal: "swipe_panel,hide"; + source: ""; + target: "swipe_panel_rect"; + }*/ + } + } + + group { + name: "control_panel_layout"; + + parts { + part { + name : "bg"; + type : SPACER; + scale : 1; + description { + state : "default" 0.0; + } + } + part + { + name: "padding_left"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; to: "bg"; } + rel2 { relative: PADDING_LEFT/BG_WIDTH 1.0; to: "bg";} + } + } + part + { + name: "padding_right"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0-PADDING_RIGHT/BG_WIDTH 0.0; to: "bg";} + rel2 { relative: 1.0 1.0; to: "bg"; } + } + } + + part + { + name: "padding_bottom"; + type: SPACER; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 0.0 1.0-PADDING_BOTTOM/113; to: "bg";} + rel2 { relative: 1.0 1.0; to: "bg"; } + } + } + + part + { + name: "control_panel_swallow"; + type: SWALLOW; + scale: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1 {relative: 1.0 0.0; to_x: "padding_left"; to_y: "bg";} + rel2 {relative: 0.0 0.0; to_x: "padding_right"; to_y: "padding_bottom";} + } + } + + part + { + name: "underbar"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + repeat_events: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + min: 0 20; + max: -1 20; + rel1 { relative: 0.0 1.0; to_x: "bg";} + rel2 { relative: 1.0 1.0; to_x: "bg";} + align: 0.0 1.0; + } + } + } + } +} diff --git a/data/groups/lock-complex-password.edc b/data/groups/lock-complex-password.edc deleted file mode 100755 index 77b80ed..0000000 --- a/data/groups/lock-complex-password.edc +++ /dev/null @@ -1,1310 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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. - */ - -#define KEYPAD_PANEL_WIDTH 720.0 -#define KEYPAD_PANEL_HEIGHT 536.0 -#define KEYPAD_BUTTON_WIDTH 62.0 -#define KEYPAD_BUTTON_HEIGHT 82.0 -#define KEYPAD_REL_W(x) ((x)/KEYPAD_PANEL_WIDTH) -#define KEYPAD_REL_H(y) ((y)/KEYPAD_PANEL_HEIGHT) -#define KEYPAD_BUTTON_REL_W(x) ((x)/KEYPAD_BUTTON_WIDTH) -#define KEYPAD_BUTTON_REL_H(y) ((y)/KEYPAD_BUTTON_HEIGHT) - -#define MODE_ALPHA_LOWER 0 -#define MODE_ALPHA_UPPER 1 -#define MODE_SYMBOL_1 2 -#define MODE_SYMBOL_2 3 - -#define DECLARE_KEY_CHAR_TABLE() \ - new keyChar[152] = { \ - '1', '1', ' ', ' ', \ - '2', '2', ' ', ' ', \ - '3', '3', ' ', ' ', \ - '4', '4', ' ', ' ', \ - '5', '5', ' ', ' ', \ - '6', '6', ' ', ' ', \ - '7', '7', ' ', ' ', \ - '8', '8', ' ', ' ', \ - '9', '9', ' ', ' ', \ - '0', '0', ' ', ' ', \ - 'q', 'Q', '1', '#', \ - 'w', 'W', '2', '&', \ - 'e', 'E', '3', '%', \ - 'r', 'R', '4', '+', \ - 't', 'T', '5', '=', \ - 'y', 'Y', '6', '_', \ - 'u', 'U', '7', ' ', \ - 'i', 'I', '8', '|', \ - 'o', 'O', '9', '<', \ - 'p', 'P', '0', '>', \ - 'a', 'A', '-', '{', \ - 's', 'S', '@', '}', \ - 'd', 'D', '*', '[', \ - 'f', 'F', '^', ']', \ - 'g', 'G', ':', '$', \ - 'h', 'H', ';', ' ', \ - 'j', 'J', '(', ' ', \ - 'k', 'K', ')', ' ', \ - 'l', 'L', '~', ' ', \ - 'z', 'Z', '/', ' ', \ - 'x', 'X', '\39',' ', \ - 'c', 'C', '\34',' ', \ - 'v', 'V', '.', ' ', \ - 'b', 'B', ',', ' ', \ - 'n', 'N', '?', ' ', \ - 'm', 'M', '!', ' ', \ - ',', ',', ',', ',', \ - '.', '.', '.', '.' \ - };\ - -#define DECLARE_KEY_DISP_STATUS_TABLE() \ - new keyDispInfo[152] = { \ - 1, 1, 0, 0, \ - 1, 1, 0, 0, \ - 1, 1, 0, 0, \ - 1, 1, 0, 0, \ - 1, 1, 0, 0, \ - 1, 1, 0, 0, \ - 1, 1, 0, 0, \ - 1, 1, 0, 0, \ - 1, 1, 0, 0, \ - 1, 1, 0, 0, \ - 1, 1, 1, 1, \ - 1, 1, 1, 1, \ - 1, 1, 1, 1, \ - 1, 1, 1, 1, \ - 1, 1, 1, 1, \ - 1, 1, 1, 1, \ - 1, 1, 1, 2, \ - 1, 1, 1, 1, \ - 1, 1, 1, 1, \ - 1, 1, 1, 1, \ - 1, 1, 1, 1, \ - 1, 1, 1, 1, \ - 1, 1, 1, 1, \ - 1, 1, 1, 1, \ - 1, 1, 1, 1, \ - 1, 1, 1, 2, \ - 1, 1, 1, 2, \ - 1, 1, 1, 2, \ - 1, 1, 1, 2, \ - 1, 1, 1, 2, \ - 1, 1, 1, 2, \ - 1, 1, 1, 2, \ - 1, 1, 1, 2, \ - 1, 1, 1, 2, \ - 1, 1, 1, 2, \ - 1, 1, 1, 2, \ - 1, 1, 1, 1, \ - 1, 1, 1, 1 \ - }; \ - -#define PART_KEYPAD_PLAIN_BUTTON(code, offx, offy, file, file_press) \ - part { \ - name: code; \ - type: IMAGE; \ - scale: 1; \ - mouse_events: 1; \ - description { \ - state: "default" 0.0; \ - rel1 { relative: KEYPAD_REL_W(offx) KEYPAD_REL_H(offy); to:"keypad.bg";} \ - rel2 { relative: KEYPAD_REL_W(offx+KEYPAD_BUTTON_WIDTH) KEYPAD_REL_H(offy+KEYPAD_BUTTON_HEIGHT); to:"keypad.bg"; } \ - color: 255 255 255 255; \ - image { \ - normal: file; \ - border: 9 9 9 9; \ - border_scale: 1; \ - } \ - } \ - description { \ - state: "pressed" 0.0; \ - inherit: "default" 0.0; \ - image.normal: file_press; \ - } \ - description { \ - state: "hide" 0.0; \ - visible: 0; \ - } \ - } \ - part { \ - name: code"_TEXT"; \ - type: TEXT; \ - scale: 1; \ - effect: SHADOW; \ - mouse_events: 0; \ - repeat_events: 1; \ - description { \ - state: "default" 0.0; \ - rel1 { relative: 0.0 KEYPAD_BUTTON_REL_H(0); to: code;} \ - rel2 { relative: 1.0 KEYPAD_BUTTON_REL_H(82); to: code;} \ - fixed: 1 1; \ - align: 0.5 0.5; \ - color: 255 255 255 255; \ - text { \ - font: "Tizen:style=Bold"; \ - text_class: "tizen"; \ - text: ""; \ - size: 48; \ - min: 0 0; \ - align: 0.5 0.5; \ - } \ - } \ - description { \ - state: "hide" 0.0; \ - visible: 0; \ - } \ - } - -#define PROG_BUTTON_REACTION(txt) \ - program { \ - name: "down_"txt; \ - signal: "mouse,down,*"; \ - source: txt; \ - script { \ - set_state(PART:txt, "pressed", 0.0); \ - emit("pad_down", txt); \ - } \ - } \ - program { \ - name: "ani_"txt; \ - signal: "ani"; \ - source: txt; \ - action: STATE_SET "default" 0.0; \ - transition: SINUSOIDAL 0.05; \ - target: txt; \ - } \ - program { \ - name: "up_"txt; \ - signal: "mouse,up,1"; \ - source: txt; \ - script { \ - emit("pad_up", txt); \ - emit("ani", txt); \ - } \ - } \ - -#define PROG_KEYPAD_PLAIN_BUTTON(txt) \ - program { \ - name: "down_"txt; \ - signal: "mouse,down,*"; \ - source: txt; \ - script { \ - if (get_key_disp_info_by_index(txt) == 1) { \ - set_state(PART:txt, "pressed", 0.0); \ - emit("pad_down", txt); \ - } \ - } \ - } \ - program { \ - name: "ani_"txt; \ - signal: "ani"; \ - source: txt; \ - action: STATE_SET "default" 0.0; \ - transition: SINUSOIDAL 0.05; \ - target: txt; \ - } \ - program { \ - name: "up_"txt; \ - signal: "mouse,up,1"; \ - source: txt; \ - script { \ - emit("pad_up", txt); \ - emit("ani", txt); \ - } \ - } \ - program { \ - name: "clicked_"txt; \ - signal: "mouse,clicked,1"; \ - source: txt; \ - script { \ - if (get_key_disp_info_by_index(txt) == 1) { \ - new key_str[2]; \ - get_text(PART:txt"_TEXT", key_str, 2); \ - emit("pad_qwerty_clicked", key_str); \ - } \ - } \ - } \ - -group{ - name: "lock-complex-password"; - images { - image: "ls_password_box_01.png" COMP; - image: "ls_password_star_01.png" COMP; - } - - parts{ - part{ - name: "bg"; - type: RECT; - mouse_events: 1; - description{ - state: "default" 0.0; - color: 0 0 0 0; - } - } - part{ - name: "txt.title"; - type: TEXT; - scale: 1; - mouse_events: 0; - effect: FAR_SHADOW; - description{ - state: "default" 0.0; - color: 255 255 255 255; - rel1 {relative: 0.0 122/1280; to: "bg";} - rel2 {relative: 1.0 (122+110)/1280; to: "bg";} - text{ - font: "Tizen:style=Medium"; - text_class: "tizen"; - size: 36; - align: 0.5 0.5; - } - } - } - part{ - name: "rect.password"; - type: IMAGE; - scale: 1; - mouse_events: 1; - description{ - state: "default" 0.0; - rel1 {relative: 74/720 (126+110+12)/1280; to: "bg";} - rel2 {relative: (74+572)/720 (126+110+12+140)/1280; to: "bg";} - image { - normal: "ls_password_box_01.png"; - border: 9 9 9 9; - border_scale: 1; - } - } - } - part{ - name: "sw.password"; - type: SWALLOW; - scale: 1; - mouse_events: 1; - repeat_events: 1; - description{ - state: "default" 0.0; - align: 0.0 0.5; - fixed: 1 1; - rel1{ - relative: 0.025 0.0; - to: "rect.password"; - } - rel2{ - relative: 0.975 1.0; - to: "rect.password"; - } - } - } - part{ - name: "txt.result"; - type: TEXT; - scale: 1; - mouse_events: 0; - effect: FAR_SHADOW; - description{ - state: "default" 0.0; - min: 0 88; - color: 255 255 255 255; - rel1 {relative: 42/720 1.0; to_x: "bg"; to_y: "rect.password"; offset: 0 40;} - rel2 {relative: (720-42)/720 1.0; to_x: "bg"; to_y: "rect.password"; offset: 0 40;} - text{ - font: "Tizen:style=Medium"; - text_class: "tizen"; - size: 36; - align: 0.5 0.5; - } - } - } - part{ - name: "sw.keypad.qwerty"; - type: SWALLOW; - scale: 1; - mouse_events: 1; - description{ - state: "default" 0.0; - fixed: 0 1; - align: 0.0 0.0; - rel1{ - relative: 0.0 1.0; - to: "bg"; - } - rel2{ - relative: 1.0 1.0; - to: "bg"; - } - } - description{ - state: "show" 0.0; - inherit: "default" 0.0; - rel1{ - relative: 0.0 (1280-536)/1280; - to: "bg"; - } - rel2{ - relative: 1.0 1.0; - to: "bg"; - } - } - } - } - programs { - program{ - name: "show,qwertykeyboard"; - signal: "show,qwertykeyboard"; - source: "sw.keypad.qwerty"; - action: STATE_SET "show" 0.0; - target: "sw.keypad.qwerty"; - transition: LINEAR 0.2; - } - program{ - name: "hide,qwertykeyboard"; - signal: "hide,qwertykeyboard"; - source: "sw.keypad.qwerty"; - action: STATE_SET "default" 0.0; - target: "sw.keypad.qwerty"; - transition: LINEAR 0.2; - after: "hide,complexpw"; - } - program{ - name: "hide,complexpw"; - signal: "hide,complexpw"; - source: "sw.keypad.qwerty"; - action: SIGNAL_EMIT "hide,complexpw" "event"; - } - } -} - -group{ - name: "lock-keypad-qwerty"; - - images { - image: "RB07_key_btn_01.png" COMP; - image: "RB07_key_btn_02.png" COMP; - image: "RB07_key_btn_perss.png" COMP; - image: "RB07_icon_back_normal.png" COMP; - image: "RB07_icon_back_dim.png" COMP; - image: "RB07_icon_back_press.png" COMP; - image: "RB07_key_btn_qwerty_01.png" COMP; - image: "RB07_key_btn_qwerty_02.png" COMP; - image: "RB07_icon_back_01.png" COMP; - image: "RB07_icon_enter.png" COMP; - image: "RB07_icon_shift_focused.png" COMP; - image: "RB07_icon_shift_normal.png" COMP; - image: "RB07_icon_space.png" COMP; - image: "RB07_keypad_bg.png" COMP; - image: "ls_button_sos_phone.png" COMP; - } - - script { - public g_key_mode; - - public init_qwerty_keypad() { - set_int(g_key_mode, MODE_ALPHA_LOWER); - set_key_display(MODE_ALPHA_LOWER); - set_key_text(MODE_ALPHA_LOWER); - } - - public switch_input_mode(mode) { - set_key_display(mode); - set_key_text(mode); - set_int(g_key_mode, mode); - } - - public set_key_display(mode) { - DECLARE_KEY_DISP_STATUS_TABLE() - - if (keyDispInfo[0 + mode] == 0) { - set_state(PART:"0", "hide", 0.0); - } else { - set_state(PART:"0", "default", 0.0); - } - if (keyDispInfo[4 + mode] == 0) { - set_state(PART:"1", "hide", 0.0); - } else { - set_state(PART:"1", "default", 0.0); - } - if (keyDispInfo[8 + mode] == 0) { - set_state(PART:"2", "hide", 0.0); - } else { - set_state(PART:"2", "default", 0.0); - } - if (keyDispInfo[12 + mode] == 0) { - set_state(PART:"3", "hide", 0.0); - } else { - set_state(PART:"3", "default", 0.0); - } - if (keyDispInfo[16 + mode] == 0) { - set_state(PART:"4", "hide", 0.0); - } else { - set_state(PART:"4", "default", 0.0); - } - if (keyDispInfo[20 + mode] == 0) { - set_state(PART:"5", "hide", 0.0); - } else { - set_state(PART:"5", "default", 0.0); - } - if (keyDispInfo[24 + mode] == 0) { - set_state(PART:"6", "hide", 0.0); - } else { - set_state(PART:"6", "default", 0.0); - } - if (keyDispInfo[28 + mode] == 0) { - set_state(PART:"7", "hide", 0.0); - } else { - set_state(PART:"7", "default", 0.0); - } - if (keyDispInfo[32 + mode] == 0) { - set_state(PART:"8", "hide", 0.0); - } else { - set_state(PART:"8", "default", 0.0); - } - if (keyDispInfo[36 + mode] == 0) { - set_state(PART:"9", "hide", 0.0); - } else { - set_state(PART:"9", "default", 0.0); - } - if (keyDispInfo[40 + mode] == 0) { - set_state(PART:"10", "hide", 0.0); - } else { - set_state(PART:"10", "default", 0.0); - } - if (keyDispInfo[44 + mode] == 0) { - set_state(PART:"11", "hide", 0.0); - } else { - set_state(PART:"11", "default", 0.0); - } - if (keyDispInfo[48 + mode] == 0) { - set_state(PART:"12", "hide", 0.0); - } else { - set_state(PART:"12", "default", 0.0); - } - if (keyDispInfo[52 + mode] == 0) { - set_state(PART:"13", "hide", 0.0); - } else { - set_state(PART:"13", "default", 0.0); - } - if (keyDispInfo[56 + mode] == 0) { - set_state(PART:"14", "hide", 0.0); - } else { - set_state(PART:"14", "default", 0.0); - } - if (keyDispInfo[60 + mode] == 0) { - set_state(PART:"15", "hide", 0.0); - } else { - set_state(PART:"15", "default", 0.0); - } - if (keyDispInfo[64 + mode] == 0) { - set_state(PART:"16", "hide", 0.0); - } else { - set_state(PART:"16", "default", 0.0); - } - if (keyDispInfo[68 + mode] == 0) { - set_state(PART:"17", "hide", 0.0); - } else { - set_state(PART:"17", "default", 0.0); - } - if (keyDispInfo[72 + mode] == 0) { - set_state(PART:"18", "hide", 0.0); - } else { - set_state(PART:"18", "default", 0.0); - } - if (keyDispInfo[76 + mode] == 0) { - set_state(PART:"19", "hide", 0.0); - } else { - set_state(PART:"19", "default", 0.0); - } - if (keyDispInfo[80 + mode] == 0) { - set_state(PART:"20", "hide", 0.0); - } else { - set_state(PART:"20", "default", 0.0); - } - if (keyDispInfo[84 + mode] == 0) { - set_state(PART:"21", "hide", 0.0); - } else { - set_state(PART:"21", "default", 0.0); - } - if (keyDispInfo[88 + mode] == 0) { - set_state(PART:"22", "hide", 0.0); - } else { - set_state(PART:"22", "default", 0.0); - } - if (keyDispInfo[92 + mode] == 0) { - set_state(PART:"23", "hide", 0.0); - } else { - set_state(PART:"23", "default", 0.0); - } - if (keyDispInfo[96 + mode] == 0) { - set_state(PART:"24", "hide", 0.0); - } else { - set_state(PART:"24", "default", 0.0); - } - if (keyDispInfo[100 + mode] == 0) { - set_state(PART:"25", "hide", 0.0); - } else { - set_state(PART:"25", "default", 0.0); - } - if (keyDispInfo[104 + mode] == 0) { - set_state(PART:"26", "hide", 0.0); - } else { - set_state(PART:"26", "default", 0.0); - } - if (keyDispInfo[108 + mode] == 0) { - set_state(PART:"27", "hide", 0.0); - } else { - set_state(PART:"27", "default", 0.0); - } - if (keyDispInfo[112 + mode] == 0) { - set_state(PART:"28", "hide", 0.0); - } else { - set_state(PART:"28", "default", 0.0); - } - if (keyDispInfo[116 + mode] == 0) { - set_state(PART:"29", "hide", 0.0); - } else { - set_state(PART:"29", "default", 0.0); - } - if (keyDispInfo[120 + mode] == 0) { - set_state(PART:"30", "hide", 0.0); - } else { - set_state(PART:"30", "default", 0.0); - } - if (keyDispInfo[124 + mode] == 0) { - set_state(PART:"31", "hide", 0.0); - } else { - set_state(PART:"31", "default", 0.0); - } - if (keyDispInfo[128 + mode] == 0) { - set_state(PART:"32", "hide", 0.0); - } else { - set_state(PART:"32", "default", 0.0); - } - if (keyDispInfo[132 + mode] == 0) { - set_state(PART:"33", "hide", 0.0); - } else { - set_state(PART:"33", "default", 0.0); - } - if (keyDispInfo[136 + mode] == 0) { - set_state(PART:"34", "hide", 0.0); - } else { - set_state(PART:"34", "default", 0.0); - } - if (keyDispInfo[140 + mode] == 0) { - set_state(PART:"35", "hide", 0.0); - } else { - set_state(PART:"35", "default", 0.0); - } - if (keyDispInfo[144 + mode] == 0) { - set_state(PART:"36", "hide", 0.0); - } else { - set_state(PART:"36", "default", 0.0); - } - if (keyDispInfo[148 + mode] == 0) { - set_state(PART:"37", "hide", 0.0); - } else { - set_state(PART:"37", "default", 0.0); - } - } - - public set_key_text(mode) { - DECLARE_KEY_CHAR_TABLE() - new keyStr[2]; - - snprintf(keyStr, 2, "%c", keyChar[0 + mode]); - set_text(PART:"0_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[4 + mode]); - set_text(PART:"1_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[8 + mode]); - set_text(PART:"2_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[12 + mode]); - set_text(PART:"3_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[16 + mode]); - set_text(PART:"4_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[20 + mode]); - set_text(PART:"5_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[24 + mode]); - set_text(PART:"6_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[28 + mode]); - set_text(PART:"7_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[32 + mode]); - set_text(PART:"8_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[36 + mode]); - set_text(PART:"9_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[40 + mode]); - set_text(PART:"10_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[44 + mode]); - set_text(PART:"11_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[48 + mode]); - set_text(PART:"12_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[52 + mode]); - set_text(PART:"13_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[56 + mode]); - set_text(PART:"14_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[60 + mode]); - set_text(PART:"15_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[64 + mode]); - set_text(PART:"16_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[68 + mode]); - set_text(PART:"17_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[72 + mode]); - set_text(PART:"18_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[76 + mode]); - set_text(PART:"19_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[80 + mode]); - set_text(PART:"20_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[84 + mode]); - set_text(PART:"21_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[88 + mode]); - set_text(PART:"22_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[92 + mode]); - set_text(PART:"23_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[96 + mode]); - set_text(PART:"24_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[100 + mode]); - set_text(PART:"25_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[104 + mode]); - set_text(PART:"26_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[108 + mode]); - set_text(PART:"27_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[112 + mode]); - set_text(PART:"28_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[116 + mode]); - set_text(PART:"29_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[120 + mode]); - set_text(PART:"30_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[124 + mode]); - set_text(PART:"31_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[128 + mode]); - set_text(PART:"32_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[132 + mode]); - set_text(PART:"33_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[136 + mode]); - set_text(PART:"34_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[140 + mode]); - set_text(PART:"35_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[144 + mode]); - set_text(PART:"36_TEXT", keyStr); - snprintf(keyStr, 2, "%c", keyChar[148 + mode]); - set_text(PART:"37_TEXT", keyStr); - } - - public get_key_disp_info_by_index(code[]) { - DECLARE_KEY_DISP_STATUS_TABLE() - new keyIdx; - - keyIdx = (atoi(code) * 4) + get_int(g_key_mode); - - return keyDispInfo[keyIdx]; - } - } - - parts{ - part{ - name: "keypad.bg"; - type: RECT; - mouse_events: 1; - description{ - state: "default" 0.0; - color: 0 0 0 0; - } - } - part{ - name: "keypad.bg.image"; - type: IMAGE; - scale: 1; - mouse_events: 1; - - description{ - state: "default" 0.0; - fixed: 1 1; - - rel1{ - relative: 0.0 0.0; - to: "keypad.bg"; - } - rel2{ - relative: 1.0 1.0; - to: "keypad.bg"; - } - image { - normal: "RB07_keypad_bg.png"; - border: 9 9 9 9; - border_scale: 1; - } - } - description{ - state: "small" 0.0; - inherit: "default" 0.0; - - rel1{ - relative: KEYPAD_REL_W(0) KEYPAD_REL_H(108); - to: "keypad.bg"; - } - rel2{ - relative: KEYPAD_REL_W(KEYPAD_PANEL_WIDTH) KEYPAD_REL_H(KEYPAD_PANEL_HEIGHT); - to: "keypad.bg"; - } - } - } - - PART_KEYPAD_PLAIN_BUTTON("0", 4, 10, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("1", 76, 10, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("2", 148, 10, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("3", 220, 10, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("4", 292, 10, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("5", 364, 10, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("6", 436, 10, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("7", 508, 10, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("8", 580, 10, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("9", 652, 10, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - - PART_KEYPAD_PLAIN_BUTTON("10", 4, 118, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("11", 76, 118, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("12", 148, 118, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("13", 220, 118, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("14", 292, 118, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("15", 364, 118, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("16", 436, 118, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("17", 508, 118, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("18", 580, 118, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("19", 652, 118, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - - PART_KEYPAD_PLAIN_BUTTON("20", 40, 226, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("21", 112, 226, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("22", 184, 226, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("23", 256, 226, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("24", 328, 226, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("25", 400, 226, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("26", 472, 226, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("27", 544, 226, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("28", 616, 226, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - - PART_KEYPAD_PLAIN_BUTTON("29", 112, 334, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("30", 184, 334, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("31", 256, 334, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("32", 328, 334, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("33", 400, 334, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("34", 472, 334, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("35", 544, 334, "RB07_key_btn_01.png", "RB07_key_btn_perss.png") - - PART_KEYPAD_PLAIN_BUTTON("36", (4+98+10+98+10), 442, "RB07_key_btn_02.png", "RB07_key_btn_perss.png") - PART_KEYPAD_PLAIN_BUTTON("37", 544, 442, "RB07_key_btn_02.png", "RB07_key_btn_perss.png") - - part { - name: "FUNCTION_0"; - type: IMAGE; - scale: 1; - mouse_events: 1; - description { - state: "default" 0.0; - rel1 { relative: KEYPAD_REL_W(4) KEYPAD_REL_H(442); to:"keypad.bg";} - rel2 { relative: KEYPAD_REL_W(4+98) KEYPAD_REL_H(442+KEYPAD_BUTTON_HEIGHT); to:"keypad.bg"; } - color: 255 255 255 255; - image { - normal: "RB07_key_btn_02.png"; - border: 9 9 9 9; - border_scale: 1; - } - } - description { - state: "pressed" 0.0; - inherit: "default" 0.0; - image.normal: "RB07_key_btn_perss.png"; - } - description { - state: "hide" 0.0; - visible: 0; - } - } - part { - name: "FUNCTION_0_icon"; - type: IMAGE; - scale: 1; - mouse_events: 1; - repeat_events: 1; - description { - state: "default" 0.0; - min: 80 80; - rel1 { relative: 0.5 0.5; to:"FUNCTION_0";} - rel2 { relative: 0.5 0.5; to:"FUNCTION_0"; } - image { - normal: "ls_button_sos_phone.png"; - } - } - description { - state: "pressed" 0.0; - inherit: "default" 0.0; - image { - normal: "ls_button_sos_phone.png"; - } - } - } - - part { - name: "FUNCTION_1"; - type: IMAGE; - scale: 1; - mouse_events: 1; - description { - state: "default" 0.0; - rel1 { relative: KEYPAD_REL_W(4+98+10) KEYPAD_REL_H(442); to:"keypad.bg";} - rel2 { relative: KEYPAD_REL_W(4+98+10+98) KEYPAD_REL_H(442+KEYPAD_BUTTON_HEIGHT); to:"keypad.bg"; } - color: 255 255 255 255; - image { - normal: "RB07_key_btn_02.png"; - border: 9 9 9 9; - border_scale: 1; - } - } - description { - state: "pressed" 0.0; - inherit: "default" 0.0; - image.normal: "RB07_key_btn_perss.png"; - } - description { - state: "hide" 0.0; - visible: 0; - } - } - part { - name: "FUNCTION_1_TEXT"; - type: TEXT; - scale: 1; - effect: SHADOW; - mouse_events: 0; - repeat_events: 1; - description { - state: "default" 0.0; - rel1 { relative: 0.0 KEYPAD_BUTTON_REL_H(0); to: "FUNCTION_1";} - rel2 { relative: 1.0 KEYPAD_BUTTON_REL_H(KEYPAD_BUTTON_HEIGHT); to: "FUNCTION_1";} - fixed: 1 1; - align: 0.5 0.5; - color: 255 255 255 255; - text { - font: "Tizen:style=Bold"; - text_class: "tizen"; - text: "?123"; - size: 26; - min: 0 0; - align: 0.5 0.5; - } - } - description { - state: "mode_3_4" 0.0; - inherit: "default" 0.0; - text { - text: "abc"; - } - } - } - - part { - name: "FUNCTION_2"; - type: IMAGE; - scale: 1; - mouse_events: 1; - description { - state: "default" 0.0; - rel1 { relative: KEYPAD_REL_W(4) KEYPAD_REL_H(334); to:"keypad.bg";} - rel2 { relative: KEYPAD_REL_W(4+86) KEYPAD_REL_H(334+KEYPAD_BUTTON_HEIGHT); to:"keypad.bg"; } - color: 255 255 255 255; - image { - normal: "RB07_key_btn_02.png"; - border: 9 9 9 9; - border_scale: 1; - } - } - description { - state: "pressed" 0.0; - inherit: "default" 0.0; - image.normal: "RB07_key_btn_perss.png"; - } - description { - state: "hide" 0.0; - visible: 0; - } - } - part { - name: "FUNCTION_2_icon"; - type: IMAGE; - scale: 1; - mouse_events: 1; - repeat_events: 1; - description { - state: "default" 0.0; - min: 50 50; - rel1 { relative: 0.5 0.5; to:"FUNCTION_2";} - rel2 { relative: 0.5 0.5; to:"FUNCTION_2"; } - color: 255 255 255 255; - image { - normal: "RB07_icon_shift_normal.png"; - } - } - description { - state: "mode_3_4" 0.0; - inherit: "default" 0.0; - visible: 0; - } - description { - state: "pressed" 0.0; - inherit: "default" 0.0; - image { - normal: "RB07_icon_shift_focused.png"; - } - } - description { - state: "hide" 0.0; - visible: 0; - } - } - part { - name: "FUNCTION_2_TEXT"; - type: TEXT; - scale: 1; - effect: SHADOW; - mouse_events: 0; - repeat_events: 1; - description { - state: "default" 0.0; - rel1 { relative: 0.0 KEYPAD_BUTTON_REL_H(0); to: "FUNCTION_2";} - rel2 { relative: 1.0 KEYPAD_BUTTON_REL_H(KEYPAD_BUTTON_HEIGHT); to: "FUNCTION_2";} - fixed: 1 1; - align: 0.5 0.5; - color: 255 255 255 255; - text { - font: "Tizen:style=Bold"; - text_class: "tizen"; - text: " "; - size: 26; - min: 0 0; - align: 0.5 0.5; - } - } - description { - state: "mode_3_4_1" 0.0; - inherit: "default" 0.0; - text { - text: "1/2"; - } - } - description { - state: "mode_3_4_2" 0.0; - inherit: "default" 0.0; - text { - text: "2/2"; - } - } - } - - part { - name: "FUNCTION_3"; - type: IMAGE; - scale: 1; - mouse_events: 1; - description { - state: "default" 0.0; - rel1 { relative: KEYPAD_REL_W(628) KEYPAD_REL_H(334); to:"keypad.bg";} - rel2 { relative: KEYPAD_REL_W(628+86) KEYPAD_REL_H(334+KEYPAD_BUTTON_HEIGHT); to:"keypad.bg"; } - color: 255 255 255 255; - image { - normal: "RB07_key_btn_02.png"; - border: 9 9 9 9; - border_scale: 1; - } - } - description { - state: "pressed" 0.0; - inherit: "default" 0.0; - image.normal: "RB07_key_btn_perss.png"; - } - description { - state: "hide" 0.0; - visible: 0; - } - } - part { - name: "FUNCTION_3_icon"; - type: IMAGE; - scale: 1; - mouse_events: 1; - repeat_events: 1; - description { - state: "default" 0.0; - min: 50 50; - rel1 { relative: 0.5 0.5; to:"FUNCTION_3";} - rel2 { relative: 0.5 0.5; to:"FUNCTION_3"; } - color: 255 255 255 255; - image { - normal: "RB07_icon_back_normal.png"; - } - } - description { - state: "pressed" 0.0; - inherit: "default" 0.0; - image { - normal: "RB07_icon_back_press.png"; - } - } - } - - part { - name: "FUNCTION_4"; - type: IMAGE; - scale: 1; - mouse_events: 1; - description { - state: "default" 0.0; - rel1 { relative: KEYPAD_REL_W(616) KEYPAD_REL_H(442); to:"keypad.bg";} - rel2 { relative: KEYPAD_REL_W(616+98) KEYPAD_REL_H(442+KEYPAD_BUTTON_HEIGHT); to:"keypad.bg"; } - color: 255 255 255 255; - image { - normal: "RB07_key_btn_02.png"; - border: 9 9 9 9; - border_scale: 1; - } - } - description { - state: "pressed" 0.0; - inherit: "default" 0.0; - image.normal: "RB07_key_btn_perss.png"; - } - description { - state: "hide" 0.0; - visible: 0; - } - } - part { - name: "FUNCTION_4_icon"; - type: IMAGE; - scale: 1; - mouse_events: 1; - repeat_events: 1; - description { - state: "default" 0.0; - min: 50 50; - rel1 { relative: 0.5 0.5; to:"FUNCTION_4";} - rel2 { relative: 0.5 0.5; to:"FUNCTION_4"; } - color: 255 255 255 255; - image { - normal: "RB07_icon_enter.png"; - } - } - description { - state: "pressed" 0.0; - inherit: "default" 0.0; - image { - normal: "RB07_icon_enter.png"; - } - } - } - - part { - name: "FUNCTION_5"; - type: IMAGE; - scale: 1; - mouse_events: 1; - description { - state: "default" 0.0; - rel1 { relative: KEYPAD_REL_W(4+98+10+98+10+62+10) KEYPAD_REL_H(442); to:"keypad.bg";} - rel2 { relative: KEYPAD_REL_W(544-10) KEYPAD_REL_H(442+KEYPAD_BUTTON_HEIGHT); to:"keypad.bg"; } - color: 255 255 255 255; - image { - normal: "RB07_key_btn_02.png"; - border: 9 9 9 9; - border_scale: 1; - } - } - description { - state: "pressed" 0.0; - inherit: "default" 0.0; - image.normal: "RB07_key_btn_perss.png"; - } - description { - state: "hide" 0.0; - visible: 0; - } - } - part { - name: "FUNCTION_5_icon"; - type: IMAGE; - scale: 1; - mouse_events: 1; - repeat_events: 1; - description { - state: "default" 0.0; - min: 82 28; - rel1 { relative: 0.5 0.5; to:"FUNCTION_5";} - rel2 { relative: 0.5 0.5; to:"FUNCTION_5"; } - color: 255 255 255 255; - image { - normal: "RB07_icon_space.png"; - } - } - description { - state: "pressed" 0.0; - inherit: "default" 0.0; - image { - normal: "RB07_icon_space.png"; - } - } - } - } - - programs { - program { - name: "init_keypad"; - signal: "load"; - script{ - init_qwerty_keypad(); - } - } - PROG_KEYPAD_PLAIN_BUTTON("0") - PROG_KEYPAD_PLAIN_BUTTON("1") - PROG_KEYPAD_PLAIN_BUTTON("2") - PROG_KEYPAD_PLAIN_BUTTON("3") - PROG_KEYPAD_PLAIN_BUTTON("4") - PROG_KEYPAD_PLAIN_BUTTON("5") - PROG_KEYPAD_PLAIN_BUTTON("6") - PROG_KEYPAD_PLAIN_BUTTON("7") - PROG_KEYPAD_PLAIN_BUTTON("8") - PROG_KEYPAD_PLAIN_BUTTON("9") - PROG_KEYPAD_PLAIN_BUTTON("10") - PROG_KEYPAD_PLAIN_BUTTON("11") - PROG_KEYPAD_PLAIN_BUTTON("12") - PROG_KEYPAD_PLAIN_BUTTON("13") - PROG_KEYPAD_PLAIN_BUTTON("14") - PROG_KEYPAD_PLAIN_BUTTON("15") - PROG_KEYPAD_PLAIN_BUTTON("16") - PROG_KEYPAD_PLAIN_BUTTON("17") - PROG_KEYPAD_PLAIN_BUTTON("18") - PROG_KEYPAD_PLAIN_BUTTON("19") - PROG_KEYPAD_PLAIN_BUTTON("20") - PROG_KEYPAD_PLAIN_BUTTON("21") - PROG_KEYPAD_PLAIN_BUTTON("22") - PROG_KEYPAD_PLAIN_BUTTON("23") - PROG_KEYPAD_PLAIN_BUTTON("24") - PROG_KEYPAD_PLAIN_BUTTON("25") - PROG_KEYPAD_PLAIN_BUTTON("26") - PROG_KEYPAD_PLAIN_BUTTON("27") - PROG_KEYPAD_PLAIN_BUTTON("28") - PROG_KEYPAD_PLAIN_BUTTON("29") - PROG_KEYPAD_PLAIN_BUTTON("30") - PROG_KEYPAD_PLAIN_BUTTON("31") - PROG_KEYPAD_PLAIN_BUTTON("32") - PROG_KEYPAD_PLAIN_BUTTON("33") - PROG_KEYPAD_PLAIN_BUTTON("34") - PROG_KEYPAD_PLAIN_BUTTON("35") - PROG_KEYPAD_PLAIN_BUTTON("36") - PROG_KEYPAD_PLAIN_BUTTON("37") - - PROG_BUTTON_REACTION("FUNCTION_0") - PROG_BUTTON_REACTION("FUNCTION_1") - PROG_BUTTON_REACTION("FUNCTION_2") - PROG_BUTTON_REACTION("FUNCTION_3") - PROG_BUTTON_REACTION("FUNCTION_4") - PROG_BUTTON_REACTION("FUNCTION_5") - - program { - name: "clicked_FUNCTION_0"; - signal: "mouse,clicked,1"; - source: "FUNCTION_0"; - script{ - emit("pad_qwerty_clicked", "SOS"); - } - } - program { - name: "clicked_FUNCTION_1"; - signal: "mouse,clicked,1"; - source: "FUNCTION_1"; - script{ - new current_mode = get_int(g_key_mode); - - if (current_mode == MODE_ALPHA_LOWER || current_mode == MODE_ALPHA_UPPER) { - switch_input_mode(MODE_SYMBOL_1); - set_state(PART:"FUNCTION_1_TEXT", "mode_3_4", 0.0); - set_state(PART:"FUNCTION_2_icon", "hide", 0.0); - set_state(PART:"FUNCTION_2_TEXT", "mode_3_4_1", 0.0); - set_state(PART:"keypad.bg.image", "small", 0.0); - } - if (current_mode == MODE_SYMBOL_1 || current_mode == MODE_SYMBOL_2) { - switch_input_mode(MODE_ALPHA_LOWER); - set_state(PART:"FUNCTION_1_TEXT", "default", 0.0); - set_state(PART:"FUNCTION_2_icon", "default", 0.0); - set_state(PART:"FUNCTION_2_TEXT", "default", 0.0); - set_state(PART:"keypad.bg.image", "default", 0.0); - } - - emit("pad_qwerty_clicked", "function1"); - } - } - program { - name: "clicked_FUNCTION_2"; - signal: "mouse,clicked,1"; - source: "FUNCTION_2"; - script{ - new current_mode = get_int(g_key_mode); - - if (current_mode == MODE_ALPHA_LOWER) { - switch_input_mode(MODE_ALPHA_UPPER); - set_state(PART:"FUNCTION_2_icon", "pressed", 0.0); - set_state(PART:"FUNCTION_2_TEXT", "default", 0.0); - } - if (current_mode == MODE_ALPHA_UPPER) { - switch_input_mode(MODE_ALPHA_LOWER); - set_state(PART:"FUNCTION_2_icon", "default", 0.0); - set_state(PART:"FUNCTION_2_TEXT", "default", 0.0); - } - if (current_mode == MODE_SYMBOL_1) { - switch_input_mode(MODE_SYMBOL_2); - set_state(PART:"FUNCTION_2_icon", "hide", 0.0); - set_state(PART:"FUNCTION_2_TEXT", "mode_3_4_2", 0.0); - } - if (current_mode == MODE_SYMBOL_2) { - switch_input_mode(MODE_SYMBOL_1); - set_state(PART:"FUNCTION_2_icon", "hide", 0.0); - set_state(PART:"FUNCTION_2_TEXT", "mode_3_4_1", 0.0); - } - - emit("pad_qwerty_clicked", "function2"); - } - } - program { - name: "clicked_FUNCTION_3"; - signal: "mouse,clicked,1"; - source: "FUNCTION_3"; - script{ - emit("pad_qwerty_clicked", "bs"); - } - } - program { - name: "clicked_FUNCTION_4"; - signal: "mouse,clicked,1"; - source: "FUNCTION_4"; - script{ - emit("pad_qwerty_clicked", "enter"); - } - } - program { - name: "clicked_FUNCTION_5"; - signal: "mouse,clicked,1"; - source: "FUNCTION_5"; - script{ - emit("pad_qwerty_clicked", "space"); - } - } - } -} diff --git a/data/groups/lock-info.edc b/data/groups/lock-info.edc deleted file mode 100755 index 2a4de84..0000000 --- a/data/groups/lock-info.edc +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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. - */ - -#define INFO_WIDTH 720 -#define INFO_HEIGHT 412 - - styles{ - style { - name: "style_time"; - base: "font=Tizen:style=Medium text_class=tizen font_size=130 align=top color=#ffffffff wrap=mixed style=shadow shadow_color=#000000bf"; - tag: "br" "\n"; - tag: "hilight" "+ color=#ffff"; - tag: "b" "+ color=#ffff"; - tag: "tab" "\t"; - } - } - - group{ - name: "lock-info"; - parts{ - part{ - name: "info.bg"; - type: RECT; - mouse_events: 0; - description{ - state: "default" 0.0; - color: 0 0 0 0; - } - } - part{ - name: "rect.clock"; - type: RECT; - scale: 1; - mouse_events: 0; - description{ - state: "default" 0.0; - color: 0 0 0 0; - rel1{ - relative: 24/INFO_WIDTH 0.0; - to: "info.bg"; - } - rel2{ - relative: 1.0 162/INFO_HEIGHT; - to: "info.bg"; - } - } - } - part{ - name: "rect.date"; - type: RECT; - scale: 1; - mouse_events: 0; - description{ - state: "default" 0.0; - color: 0 0 0 0; - rel1{ - relative: 36/INFO_WIDTH (122+64-38+30)/INFO_HEIGHT;//the height of date is 38 - to: "info.bg"; - } - rel2{ - relative: 1.0 (122+64+30)/INFO_HEIGHT; - to: "info.bg"; - } - } - } - part{ - name: "txt.clock"; - type: TEXTBLOCK; - scale: 1; - mouse_events: 0; - description{ - state: "default" 0.0; - color: 255 255 255 255; - rel1{ - to: "rect.clock"; - } - rel2{ - to: "rect.clock"; - } - text { - style: "style_time"; - } - } - } - part{ - name: "txt.date"; - type: TEXT; - effect: SHADOW BOTTOM; - scale: 1; - mouse_events: 0; - description{ - state: "default" 0.0; - color: 255 255 255 255; - color2: 0 0 0 127; - rel1{ - to: "rect.date"; - } - rel2{ - to: "rect.date"; - } - text{ - font: "Tizen:style=Medium"; - text_class: "tizen"; - size: 40; - align: 0.0 0.5; - } - } - } - part{ - name: "rect.helptext"; - type: RECT; - scale: 1; - mouse_events: 0; - description{ - state: "default" 0.0; - color: 0 0 0 0; - rel1{ - relative: 0.0 379/INFO_HEIGHT; - to: "info.bg"; - } - rel2{ - relative: 1.0 1.0; - to: "info.bg"; - } - } - } - part{ - name: "txt.helptext"; - type: TEXT; - scale: 1; - mouse_events: 0; - effect: SHADOW BOTTOM; - description{ - state: "default" 0.0; - color: 255 255 255 255; - color2: 0 0 0 127; - rel1{ - to: "rect.helptext"; - } - rel2{ - to: "rect.helptext"; - } - text{ - font: "Tizen:style=Medium"; - text_class: "tizen"; - size: 32; - align: 0.5 1.0; - } - } - description{ - state: "invisible" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - } - - programs{ - program{ - name: "visible,helptext"; - signal: "visible,helptext"; - source: "txt.helptext"; - action: STATE_SET "default" 0.0; - target: "txt.helptext"; - } - program{ - name: "invisible,helptext"; - signal: "invisible,helptext"; - source: "txt.helptext"; - action: STATE_SET "invisible" 0.0; - target: "txt.helptext"; - } - } - } diff --git a/data/groups/lock-main.edc b/data/groups/lock-main.edc deleted file mode 100755 index 4b6997f..0000000 --- a/data/groups/lock-main.edc +++ /dev/null @@ -1,321 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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. - */ - -#define WIDTH 720 -#define HEIGHT 1280 - -#define PROG_PART_SHOW_HIDE(part_name)\ - program{\ - name: "show,"part_name;\ - signal: "show,"part_name;\ - source: part_name;\ - action: STATE_SET "default" 0.0;\ - target: part_name;\ - }\ - program{\ - name: "hide,"part_name;\ - signal: "hide,"part_name;\ - source: part_name;\ - action: STATE_SET "hidden" 0.0;\ - target: part_name;\ - }\ - - group{ - name: "lock-main"; - parts{ - part{ - name: "clipper"; - type: RECT; - description{ - state : "default" 0.0; - } - description{ - state : "transit" 0.0; - color: 0 0 0 0; - } - } - part{ - name: "bg"; - type: RECT; - clip_to: "clipper"; - description{ - state : "default" 0.0; - color: 0 0 0 255; - } - description{ - state : "transit" 0.0; - color: 0 0 0 0; - } - } - part{ - name: "sw.bg"; - type: SWALLOW; - scale: 1; - mouse_events: 1; - clip_to: "clipper"; - description{ - state: "default" 0.0; - rel1{ - to: "bg"; - } - rel2{ - to: "bg"; - } - } - } - part{ - name: "tts.bg"; - type: RECT; - repeat_events: 1; - description{ - state: "default" 0.0; - fixed: 1 1; - rel1.to: "bg"; - rel2.to: "bg"; - color : 0 0 0 0; - } - } - part{ - name: "text.area"; - type: TEXT; - effect: SHADOW BOTTOM; - scale: 1; - mouse_events: 0; - clip_to: "clipper"; - description{ - state: "default" 0.0; - visible: 1; - color: 255 255 255 255; - color2: 0 0 0 127; - rel1{ - relative: 36/WIDTH (62+64)/HEIGHT; - to: "bg"; - } - rel2{ - relative: (WIDTH-36)/WIDTH (62+64+140)/HEIGHT; - to: "bg"; - } - text{ - font: "Tizen:style=Medium"; - text_class: "tizen"; - size: 100; - align: 0.0 0.5; - text: "Life Magazine"; - } - } - description{ - state: "hidden" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part{ - name: "tts.title"; - type: RECT; - repeat_events: 1; - description{ - state: "default" 0.0; - fixed: 1 1; - rel1.to: "text.area"; - rel2.to: "text.area"; - color : 0 0 0 0; - } - } - part{ - name: "sw.noti"; - type: SWALLOW; - scale: 1; - mouse_events: 0; - clip_to: "clipper"; - description{ - state: "default" 0.0; - fixed: 1 1; - min: 0 144; - visible: 1; - rel1{relative: 36/WIDTH 1.0; to_x: "bg"; to_y: "text.area"; offset: 0 110; } - rel2{relative: (WIDTH-36)/WIDTH 1.0; to_x: "bg"; to_y: "text.area";} - } - description{ - state: "hidden" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part{ - name: "sim.state"; - type: TEXT; - effect: SHADOW BOTTOM; - scale: 1; - mouse_events: 0; - clip_to: "clipper"; - description{ - state: "default" 0.0; - visible: 1; - color: 255 255 255 255; - color2: 0 0 0 127; - rel1{ - relative: 36/WIDTH (60+10)/HEIGHT;//for it covers indicator, so move done 20 pixels - to: "bg"; - } - rel2{ - relative: 1.0 (92+10)/HEIGHT; - to: "bg"; - } - text{ - font: "Tizen:style=Bold"; - text_class: "tizen"; - size: 26; - align: 0.0 0.5; - } - } - description{ - state: "hidden" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part{ - name: "tts.sim.state"; - type: RECT; - repeat_events: 1; - description{ - state: "default" 0.0; - fixed: 1 1; - rel1.to: "sim.state"; - rel2.to: "sim.state"; - color : 0 0 0 0; - } - } - part{ - name: "rect.info"; - type: SWALLOW; - scale: 1; - mouse_events: 0; - clip_to: "clipper"; - description{ - state: "default" 0.0; - visible: 1; - color: 0 0 0 0; - rel1{ - relative: 0.0 898/HEIGHT; - to: "bg"; - } - rel2{ - relative: 1.0 1.0; - to: "bg"; - } - } - description{ - state: "up" 1.0; - visible: 1; - color: 0 0 0 0; - rel1{ - relative: 0.0 (898-110)/HEIGHT; - to: "bg"; - } - rel2{ - relative: 1.0 (1280-110)/HEIGHT; - to: "bg"; - } - } - description{ - state: "hidden" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part{ - name: "tts.info"; - type: RECT; - repeat_events: 1; - description{ - state: "default" 0.0; - fixed: 1 1; - rel1.to: "rect.info"; - rel2.to: "rect.info"; - color : 0 0 0 0; - } - } - part{ - name: "dim.bg"; - type: SWALLOW; - scale: 1; - mouse_events: 1; - description{ - state: "default" 0.0; - color: 0 0 0 0; - rel1{ - to: "bg"; - } - rel2{ - to: "bg"; - } - } - } - part{ - name: "sw.phone-lock"; - type: SWALLOW; - scale: 1; - mouse_events: 1; - description{ - state: "default" 0.0; - color: 0 0 0 0; - rel1{ - to: "bg"; - } - rel2{ - to: "bg"; - } - } - } - } - programs{ - program{ - name: "transit,clipper"; - signal: "transit,clipper"; - source: "clipper"; - action: STATE_SET "transit" 0.0; - target: "bg"; - target: "clipper"; - transition: LINEAR 0.5; - after: "exit,app"; - } - program{ - name: "exit,app"; - signal: "exit,app"; - source: "clipper"; - action: SIGNAL_EMIT "exit,app" "event"; - } - program{ - name: "flick,up"; - signal: "flick,up"; - source: "rect.info"; - action: STATE_SET "up" 1.0; - target: "rect.info"; - } - program{ - name: "flick,down"; - signal: "flick,down"; - source: "rect.info"; - action: STATE_SET "default" 0.0; - target: "rect.info"; - } - PROG_PART_SHOW_HIDE("text.area") - PROG_PART_SHOW_HIDE("sw.noti") - PROG_PART_SHOW_HIDE("sim.state") - PROG_PART_SHOW_HIDE("rect.info") - } - } diff --git a/data/groups/lock-noti.edc b/data/groups/lock-noti.edc deleted file mode 100755 index fe8f69b..0000000 --- a/data/groups/lock-noti.edc +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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. - */ - -#define NOTI_TEXTS_PART(num, topart)\ - part{\ - name: "noti_title"num;\ - type: TEXT;\ - scale: 1;\ - description{\ - state: "default" 0.0;\ - rel1 { relative: 0.0 48*(num-1)/144; to: topart; }\ - rel2 { relative: 1.0 48*num/144; to: topart; }\ - text {\ - text: "";\ - font: "Tizen:style=Medium";\ - text_class: "tizen";\ - size: 36;\ - align: 0.0 0.5;\ - }\ - color: 255 255 255 127;\ - }\ - }\ - -group{ - name: "lock-noti"; - parts{ - part{ - name: "bg"; - type: RECT; - description{ - state: "default" 0.0; - visible: 0; - } - } - NOTI_TEXTS_PART(1, "bg") - NOTI_TEXTS_PART(2, "bg") - NOTI_TEXTS_PART(3, "bg") - } -} diff --git a/data/groups/lock-simple-password.edc b/data/groups/lock-simple-password.edc deleted file mode 100755 index 73b9b04..0000000 --- a/data/groups/lock-simple-password.edc +++ /dev/null @@ -1,376 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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. - */ - -#define NUMBER_KEYPAD_PANEL_WIDTH 636 -#define NUMBER_KEYPAD_PANEL_HEIGHT 680 -#define NUMBER_KEYPAD_BUTTON_WIDTH 194 -#define NUMBER_KEYPAD_BUTTON_HEIGHT 194 -#define NUMBER_KEYPAD_BUTTON_PAD_X 27 -#define NUMBER_KEYPAD_BUTTON_PAD_Y 20 -#define NUMBER_KEYPAD_REL_W(x) ((x)/NUMBER_KEYPAD_PANEL_WIDTH) -#define NUMBER_KEYPAD_REL_H(y) ((y)/NUMBER_KEYPAD_PANEL_HEIGHT) -#define NUMBER_KEYPAD_BUTTON_REL_W(x) ((x)/NUMBER_KEYPAD_BUTTON_WIDTH) -#define NUMBER_KEYPAD_BUTTON_REL_H(y) ((y)/NUMBER_KEYPAD_BUTTON_HEIGHT) - -#define PART_INPUT_PASSWORD(password_area, index, password_area_icon, password, password_icon) \ - part { \ - name: password_area; \ - type: IMAGE; \ - scale: 1; \ - mouse_events: 1; \ - description { \ - state: "default" 0.0; \ - rel1 { relative: (72+144*(index-1))/720 (122+110+6)/1280; to:"bg";} \ - rel2 { relative: (72+144*index)/720 (122+110+6+144)/1280; to:"bg"; } \ - image { \ - normal: password_area_icon; \ - } \ - } \ - } \ - part { \ - name: password; \ - type: IMAGE; \ - scale: 1; \ - mouse_events: 0; \ - repeat_events: 1; \ - description { \ - state: "default" 0.0; \ - visible: 0; \ - max: 52 48;\ - rel1 { relative: 0.0 0.0; to: password_area;} \ - rel2 { relative: 1.0 1.0; to: password_area;} \ - align: 0.5 0.5; \ - image { \ - normal: password_icon; \ - } \ - } \ - description { \ - state: "show" 0.0; \ - inherit: "default" 0.0; \ - visible: 1; \ - } \ - } - -#define PROG_PASSWORD_SHOW_HIDE(password) \ - program{\ - name: "show,"password;\ - signal: "show,"password;\ - source: password;\ - action: STATE_SET "show" 0.0;\ - target: password;\ - }\ - program{\ - name: "hide,"password;\ - signal: "hide,"password;\ - source: password;\ - action: STATE_SET "default" 0.0;\ - target: password;\ - }\ - -#define PART_KEYPAD_BUTTON_NUMBER(keypad_button, offx, offy, default_icon, press_icon, button_text, button_text_font, button_text_size) \ - part { \ - name: keypad_button; \ - type: IMAGE; \ - scale: 1; \ - mouse_events: 1; \ - description { \ - state: "default" 0.0; \ - rel1 { relative: NUMBER_KEYPAD_REL_W(offx) NUMBER_KEYPAD_REL_H(offy); to:"bg";} \ - rel2 { relative: NUMBER_KEYPAD_REL_W(offx+NUMBER_KEYPAD_BUTTON_WIDTH) NUMBER_KEYPAD_REL_H(offy+NUMBER_KEYPAD_BUTTON_HEIGHT); to:"bg"; } \ - color: 255 255 255 255; \ - image { \ - normal: default_icon; \ - border: 9 9 9 9; \ - border_scale: 1; \ - } \ - } \ - description { \ - state: "pressed" 0.0; \ - inherit: "default" 0.0; \ - image.normal: press_icon; \ - } \ - description { \ - state: "hide" 0.0; \ - visible: 0; \ - } \ - } \ - part { \ - name: keypad_button"_text"; \ - type: TEXT; \ - scale: 1; \ - effect: FAR_SHADOW; \ - mouse_events: 0; \ - repeat_events: 1; \ - description { \ - state: "default" 0.0; \ - rel1 { relative: 0.0 0.0; to: keypad_button;} \ - rel2 { relative: 1.0 1.0; to: keypad_button;} \ - fixed: 1 1; \ - align: 0.5 0.5; \ - color: 255 255 255 255; \ - text { \ - font: button_text_font; \ - text: button_text; \ - size: button_text_size; \ - text_class: "tizen";\ - min: 0 0; \ - align: 0.5 0.5; \ - } \ - } \ - description { \ - state: "hide" 0.0; \ - visible: 0; \ - } \ - } - -#define PROG_KEYPAD_BUTTON(keypad_button) \ - program { \ - name: "down_"keypad_button; \ - signal: "mouse,down,*"; \ - source: keypad_button; \ - script { \ - set_state(PART:keypad_button, "pressed", 0.0); \ - emit("keypad_down", keypad_button); \ - } \ - } \ - program { \ - name: "ani_"keypad_button; \ - signal: "ani"; \ - source: keypad_button; \ - action: STATE_SET "default" 0.0; \ - transition: SINUSOIDAL 0.05; \ - target: keypad_button; \ - } \ - program { \ - name: "up_"keypad_button; \ - signal: "mouse,up,1"; \ - source: keypad_button; \ - script { \ - emit("keypad_down_up", keypad_button); \ - emit("ani", keypad_button); \ - } \ - } \ - program { \ - name: "clicked_"keypad_button; \ - signal: "mouse,clicked,1"; \ - source: keypad_button; \ - script { \ - emit("keypad_down_clicked", keypad_button); \ - } \ - } \ - -group{ - name: "lock-simple-password"; - images { - image: "ls_password_box_01.png" COMP; - image: "ls_password_star_01.png" COMP; - } - - parts{ - part{ - name: "bg"; - type: RECT; - mouse_events: 1; - description{ - state: "default" 0.0; - color: 0 0 0 0; - } - } - part{ - name: "txt.title"; - type: TEXT; - scale: 1; - mouse_events: 0; - effect: FAR_SHADOW; - description{ - state: "default" 0.0; - color: 255 255 255 255; - rel1 {relative: 0.0 122/1280; to: "bg";} - rel2 {relative: 1.0 (122+110)/1280; to: "bg";} - text{ - font: "Tizen:style=Medium"; - text_class: "tizen"; - size: 36; - align: 0.5 0.5; - } - } - } - PART_INPUT_PASSWORD("password_box1", 1, "ls_password_box_01.png", "password1", "ls_password_star_01.png") - PART_INPUT_PASSWORD("password_box2", 2, "ls_password_box_01.png", "password2", "ls_password_star_01.png") - PART_INPUT_PASSWORD("password_box3", 3, "ls_password_box_01.png", "password3", "ls_password_star_01.png") - PART_INPUT_PASSWORD("password_box4", 4, "ls_password_box_01.png", "password4", "ls_password_star_01.png") - part{ - name: "txt.result"; - type: TEXT; - scale: 1; - mouse_events: 0; - effect: FAR_SHADOW; - description{ - state: "default" 0.0; - min: 0 88; - color: 255 255 255 255; - rel1 {relative: 42/720 1.0; to_x: "bg"; to_y: "password_box1"; offset: 0 40;} - rel2 {relative: (720-42)/720 1.0; to_x: "bg"; to_y: "password_box1"; offset: 0 40;} - text{ - font: "Tizen:style=Medium"; - text_class: "tizen"; - size: 36; - align: 0.5 0.5; - } - } - } - part{ - name: "sw.keypad.number"; - type: SWALLOW; - scale: 1; - mouse_events: 1; - description{ - state: "default" 0.0; - fixed: 0 1; - align: 0.0 0.0; - rel1{ - relative: 42/720 (1280-55)/1280; - to: "bg"; - } - rel2{ - relative: (720-42)/720 (1280-55)/1280; - to: "bg"; - } - } - description{ - state: "show" 0.0; - inherit: "default" 0.0; - rel1{ - relative: 42/720 (1280-55-656)/1280; - to: "bg"; - } - rel2{ - relative: (720-42)/720 (1280-55)/1280; - to: "bg"; - } - } - } - } - - programs { - PROG_PASSWORD_SHOW_HIDE("password1") - PROG_PASSWORD_SHOW_HIDE("password2") - PROG_PASSWORD_SHOW_HIDE("password3") - PROG_PASSWORD_SHOW_HIDE("password4") - program{ - name: "show,numberkeyboard"; - signal: "show,numberkeyboard"; - source: "sw.keypad.number"; - action: STATE_SET "show" 0.0; - target: "sw.keypad.number"; - transition: LINEAR 0.2; - } - program{ - name: "hide,numberkeyboard"; - signal: "hide,numberkeyboard"; - source: "sw.keypad.number"; - action: STATE_SET "default" 0.0; - target: "sw.keypad.number"; - transition: LINEAR 0.2; - after: "hide,simplepw"; - } - program{ - name: "hide,simplepw"; - signal: "hide,simplepw"; - source: "sw.keypad.number"; - action: SIGNAL_EMIT "hide,simplepw" "event"; - } - } -} - -group{ - name: "lock-keypad-number"; - images { - image: "ls_button_default.png" COMP; - image: "ls_button_press.png" COMP; - image: "ls_button_sos_phone.png" COMP; - image: "ls_button_x.png" COMP; - } - - parts{ - part{ - name: "bg"; - type: RECT; - mouse_events: 1; - description{ - state: "default" 0.0; - color: 0 0 0 0; - } - } - - PART_KEYPAD_BUTTON_NUMBER("1", 0, 0, "ls_button_default.png", "ls_button_press.png", "1", "Tizen:style=Roman", 60) - PART_KEYPAD_BUTTON_NUMBER("2", NUMBER_KEYPAD_BUTTON_WIDTH+NUMBER_KEYPAD_BUTTON_PAD_X, 0, "ls_button_default.png", "ls_button_press.png", "2", "Tizen:style=Roman", 60) - PART_KEYPAD_BUTTON_NUMBER("3", 2*(NUMBER_KEYPAD_BUTTON_WIDTH+NUMBER_KEYPAD_BUTTON_PAD_X), 0, "ls_button_default.png", "ls_button_press.png", "3", "Tizen:style=Roman", 60) - PART_KEYPAD_BUTTON_NUMBER("4", 0, NUMBER_KEYPAD_BUTTON_HEIGHT-NUMBER_KEYPAD_BUTTON_PAD_Y, "ls_button_default.png", "ls_button_press.png", "4", "Tizen:style=Roman", 60) - PART_KEYPAD_BUTTON_NUMBER("5", NUMBER_KEYPAD_BUTTON_WIDTH+NUMBER_KEYPAD_BUTTON_PAD_X, NUMBER_KEYPAD_BUTTON_HEIGHT-NUMBER_KEYPAD_BUTTON_PAD_Y, "ls_button_default.png", "ls_button_press.png", "5", "Tizen:style=Roman", 60) - PART_KEYPAD_BUTTON_NUMBER("6", 2*(NUMBER_KEYPAD_BUTTON_WIDTH+NUMBER_KEYPAD_BUTTON_PAD_X), NUMBER_KEYPAD_BUTTON_HEIGHT-NUMBER_KEYPAD_BUTTON_PAD_Y, "ls_button_default.png", "ls_button_press.png", "6", "Tizen:style=Roman", 60) - PART_KEYPAD_BUTTON_NUMBER("7", 0, 2*(NUMBER_KEYPAD_BUTTON_HEIGHT-NUMBER_KEYPAD_BUTTON_PAD_Y), "ls_button_default.png", "ls_button_press.png", "7", "Tizen:style=Roman", 60) - PART_KEYPAD_BUTTON_NUMBER("8", NUMBER_KEYPAD_BUTTON_WIDTH+NUMBER_KEYPAD_BUTTON_PAD_X, 2*(NUMBER_KEYPAD_BUTTON_HEIGHT-NUMBER_KEYPAD_BUTTON_PAD_Y), "ls_button_default.png", "ls_button_press.png", "8", "Tizen:style=Roman", 60) - PART_KEYPAD_BUTTON_NUMBER("9", 2*(NUMBER_KEYPAD_BUTTON_WIDTH+NUMBER_KEYPAD_BUTTON_PAD_X), 2*(NUMBER_KEYPAD_BUTTON_HEIGHT-NUMBER_KEYPAD_BUTTON_PAD_Y), "ls_button_default.png", "ls_button_press.png", "9", "Tizen:style=Roman", 60) - //PART_KEYPAD_BUTTON_NUMBER("SOS", 0, 3*(NUMBER_KEYPAD_BUTTON_HEIGHT-NUMBER_KEYPAD_BUTTON_PAD_Y), "ls_button_default.png", "ls_button_press.png", "", "Tizen:style=Roman", 60) - PART_KEYPAD_BUTTON_NUMBER("0", NUMBER_KEYPAD_BUTTON_WIDTH+NUMBER_KEYPAD_BUTTON_PAD_X, 3*(NUMBER_KEYPAD_BUTTON_HEIGHT-NUMBER_KEYPAD_BUTTON_PAD_Y), "ls_button_default.png", "ls_button_press.png", "0", "Tizen:style=Roman", 60) - //PART_KEYPAD_BUTTON_NUMBER("Backspace", 2*(NUMBER_KEYPAD_BUTTON_WIDTH+NUMBER_KEYPAD_BUTTON_PAD_X), 3*(NUMBER_KEYPAD_BUTTON_HEIGHT-NUMBER_KEYPAD_BUTTON_PAD_Y), "ls_button_default.png", "ls_button_press.png", "", "Tizen:style=Roman", 60) - /*part{ - name: "img.sos"; - type: IMAGE; - scale: 1; - mouse_events: 0; - repeat_events: 1; - description{ - max: 100 100; - align: 0.5 0.5; - rel1{relative: 0.0 0.0; to: "SOS";} - rel2{relative: 1.0 1.0; to: "SOS";} - image.normal: "ls_button_sos_phone.png"; - } - } - part{ - name: "img.cancel"; - type: IMAGE; - scale: 1; - mouse_events: 0; - repeat_events: 1; - description{ - state: "default" 0.0; - max: 100 100; - align: 0.5 0.5; - rel1{relative: 0.0 0.0; to: "Backspace";} - rel2{relative: 1.0 1.0; to: "Backspace";} - image.normal: "ls_button_x.png"; - } - }*/ - } - - programs { - PROG_KEYPAD_BUTTON("1") - PROG_KEYPAD_BUTTON("2") - PROG_KEYPAD_BUTTON("3") - PROG_KEYPAD_BUTTON("4") - PROG_KEYPAD_BUTTON("5") - PROG_KEYPAD_BUTTON("6") - PROG_KEYPAD_BUTTON("7") - PROG_KEYPAD_BUTTON("8") - PROG_KEYPAD_BUTTON("9") - //PROG_KEYPAD_BUTTON("SOS") - PROG_KEYPAD_BUTTON("0") - //PROG_KEYPAD_BUTTON("Backspace") - } -} diff --git a/data/groups/lock-slider.edc b/data/groups/lock-slider.edc deleted file mode 100755 index 2428d5d..0000000 --- a/data/groups/lock-slider.edc +++ /dev/null @@ -1,432 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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. - */ - -#define DRAGSLIDER_ARROW_RECT(pname, rel1x, rel2x)\ - part {\ - name: "rect."#pname;\ - type: RECT;\ - scale: 1;\ - description {\ - state: "default" 0.0;\ - rel1 {\ - relative: rel1x 0.0;\ - to: "rect.arrow";\ - }\ - rel2 {\ - relative: rel2x 1.0;\ - to: "rect.arrow";\ - }\ - visible: 0;\ - }\ - }\ - -#define DRAGSLIDER_ARROW_IMAGE(pname, rname)\ - part {\ - name: "arrow."#pname;\ - type: IMAGE;\ - scale: 1;\ - description {\ - state: "default" 0.0;\ - min: 23 29;\ - align: 0.5 0.5;\ - rel1 {\ - relative: 0.5 0.5;\ - to: "rect."#rname;\ - }\ - rel2 {\ - relative: 0.5 0.5;\ - to: "rect."#rname;\ - }\ - image.normal: "slider/RB07_icon_Unlock_arrow.png";\ - visible: 0;\ - }\ - description {\ - state: "press" 0.0;\ - inherit: "default" 0.0;\ - image.normal: "slider/RB07_icon_Unlock_arrow_press.png";\ - visible: 1;\ - }\ - }\ - -#define DRAGSLIDER_LOCK_PRESS_DESC(pstate, file)\ - description {\ - state: #pstate 0.0;\ - inherit: "default" 0.0;\ - image.normal: #file;\ - visible: 1;\ - }\ - -#define DRAGSLIDER_LOCK_PRESS_PROC(pname)\ - program{\ - name: #pname".lock.r";\ - signal: #pname;\ - source: "lock.image.r";\ - action: STATE_SET #pname 0.0;\ - target: "lock.image.r";\ - }\ - -group { - name: "lock-slider"; - - images { - image: "slider/RB07_Unlock_bg.png" COMP; - image: "slider/RB07_Unlock_bg_press.png" COMP; - image: "slider/RB07_icon_Unlock_01.png" COMP; - image: "slider/RB07_icon_Unlock_02.png" COMP; - image: "slider/RB07_icon_Unlock_arrow.png" COMP; - image: "slider/RB07_icon_Unlock_arrow_press.png" COMP; - image: "slider/RB07_icon_Unlock_press_01.png" COMP; - image: "slider/RB07_icon_Unlock_press_02.png" COMP; - image: "slider/RB07_icon_Unlock_press_03.png" COMP; - image: "slider/RB07_icon_Unlock_press_04.png" COMP; - image: "slider/RB07_icon_Unlock_press_05.png" COMP; - image: "slider/RB07_icon_Unlock_press_06.png" COMP; - image: "slider/RB07_icon_Unlock_press_07.png" COMP; - image: "slider/RB07_icon_Unlock_press_08.png" COMP; - image: "slider/RB07_icon_Unlock_press_09.png" COMP; - image: "slider/RB07_icon_Unlock_press_10.png" COMP; - image: "slider/RB07_icon_Unlock_press_11.png" COMP; - image: "slider/RB07_icon_Unlock_press_12.png" COMP; - image: "slider/RB07_icon_Unlock_press_13.png" COMP; - image: "slider/RB07_icon_Unlock_press_14.png" COMP; - image: "slider/RB07_icon_Unlock_press_15.png" COMP; - } - - parts { - part { - name: "bg"; - type: RECT; - scale: 1; - - description { - state: "default" 0.0; - min: 0 114; - color: 0 0 0 0; - } - } - - part { - name: "image.bg"; - type: IMAGE; - scale: 1; - - description { - state: "default" 0.0; - - rel1 { - to: "bg"; - } - rel2 { - to: "bg"; - } - image.normal: "slider/RB07_Unlock_bg.png"; - visible: 0; - } - description { - state: "press" 0.0; - inherit: "default" 0.0; - image.normal: "slider/RB07_Unlock_bg_press.png"; - visible: 1; - } - } - - part { - name: "lock.padding.l"; - type: RECT; - scale: 1; - - description { - state: "default" 0.0; - min: 47 0; - align: 0.0 0.0; - - rel1 { - to: "bg"; - } - rel2 { - relative: 0.0 1.0; - to: "bg"; - } - visible: 0; - } - } - - part { - name: "lock.padding.r"; - type: RECT; - scale: 1; - - description { - state: "default" 0.0; - min: 46 0; - align: 1.0 0.0; - - rel1 { - relative: 1.0 0.0; - to: "bg"; - } - rel2 { - to: "bg"; - } - visible: 0; - } - } - - part { - name: "lock.wrapper.image.l"; - type: RECT; - scale: 1; - - description { - state: "default" 0.0; - min: 119 119; - align: 0.5 0.5; - - rel1 { - relative: 0.5 0.5; - to: "lock.image.l"; - } - rel2 { - relative: 0.5 0.5; - to: "lock.image.l"; - } - color: 0 0 0 0; - } - } - - part { - name: "lock.image.l"; - type: IMAGE; - scale: 1; - - description { - state: "default" 0.0; - min: 76 76; - align: 0.0 0.5; - - rel1 { - relative: 1.0 0.5; - to_x: "lock.padding.l"; - to_y: "bg"; - } - rel2 { - relative: 1.0 0.5; - to_x: "lock.padding.l"; - to_y: "bg"; - } - image.normal: "slider/RB07_icon_Unlock_01.png"; - } - description { - state: "press" 0.0; - inherit: "default" 0.0; - image.normal: "slider/RB07_icon_Unlock_press_01.png"; - } - } - - part { - name: "lock.image.r"; - type: IMAGE; - scale: 1; - - description { - state: "default" 0.0; - min: 76 76; - align: 1.0 0.5; - - rel1 { - relative: 0.0 0.5; - to_x: "lock.padding.r"; - to_y: "bg"; - } - rel2 { - relative: 0.0 0.5; - to_x: "lock.padding.r"; - to_y: "bg"; - } - image.normal: "slider/RB07_icon_Unlock_02.png"; - visible: 0; - } - DRAGSLIDER_LOCK_PRESS_DESC(press02, slider/RB07_icon_Unlock_press_02.png); - DRAGSLIDER_LOCK_PRESS_DESC(press03, slider/RB07_icon_Unlock_press_03.png); - DRAGSLIDER_LOCK_PRESS_DESC(press04, slider/RB07_icon_Unlock_press_04.png); - DRAGSLIDER_LOCK_PRESS_DESC(press05, slider/RB07_icon_Unlock_press_05.png); - DRAGSLIDER_LOCK_PRESS_DESC(press06, slider/RB07_icon_Unlock_press_06.png); - DRAGSLIDER_LOCK_PRESS_DESC(press07, slider/RB07_icon_Unlock_press_07.png); - DRAGSLIDER_LOCK_PRESS_DESC(press08, slider/RB07_icon_Unlock_press_08.png); - DRAGSLIDER_LOCK_PRESS_DESC(press09, slider/RB07_icon_Unlock_press_09.png); - DRAGSLIDER_LOCK_PRESS_DESC(press10, slider/RB07_icon_Unlock_press_10.png); - DRAGSLIDER_LOCK_PRESS_DESC(press11, slider/RB07_icon_Unlock_press_11.png); - DRAGSLIDER_LOCK_PRESS_DESC(press12, slider/RB07_icon_Unlock_press_12.png); - DRAGSLIDER_LOCK_PRESS_DESC(press13, slider/RB07_icon_Unlock_press_13.png); - DRAGSLIDER_LOCK_PRESS_DESC(press14, slider/RB07_icon_Unlock_press_14.png); - DRAGSLIDER_LOCK_PRESS_DESC(press15, slider/RB07_icon_Unlock_press_15.png); - } - - part { - name: "lock.wrapper.image.r"; - type: RECT; - scale: 1; - - description { - state: "default" 0.0; - min: 122 114; - align: 1.0 0.0; - - rel1 { - relative: 1.0 0.0; - to: "bg"; - } - rel2 { - to: "bg"; - } - color: 0 0 0 0; - } - } - - part { - name: "arrow.padding.l"; - type: RECT; - scale: 1; - - description { - state: "default" 0.0; - min: 126 0; - align: 0.0 0.0; - fixed: 1.0 1.0; - - rel1 { - to: "bg"; - } - rel2 { - relative: 0.0 1.0; - to: "bg"; - } - visible: 0; - } - } - - part { - name: "arrow.padding.r"; - type: RECT; - scale: 1; - - description { - state: "default" 0.0; - min: 126 0; - align: 1.0 0.0; - fixed: 1.0 1.0; - - rel1 { - relative: 1.0 0.0; - to: "bg"; - } - rel2 { - to: "bg"; - } - visible: 0; - } - } - - part { - name: "rect.arrow"; - type: RECT; - scale: 1; - - description { - state: "default" 0.0; - - rel1 { - relative: 1.0 0.0; - to: "arrow.padding.l"; - } - rel2 { - relative: 0.0 1.0; - to: "arrow.padding.r"; - } - visible: 0; - } - } - - DRAGSLIDER_ARROW_RECT(arrow1, 0.0, 1/6); - DRAGSLIDER_ARROW_RECT(arrow2, 1/6, 2/6); - DRAGSLIDER_ARROW_RECT(arrow3, 2/6, 3/6); - DRAGSLIDER_ARROW_RECT(arrow4, 3/6, 4/6); - DRAGSLIDER_ARROW_RECT(arrow5, 4/6, 5/6); - DRAGSLIDER_ARROW_RECT(arrow6, 5/6, 6/6); - - DRAGSLIDER_ARROW_IMAGE(image1, arrow1); - DRAGSLIDER_ARROW_IMAGE(image2, arrow2); - DRAGSLIDER_ARROW_IMAGE(image3, arrow3); - DRAGSLIDER_ARROW_IMAGE(image4, arrow4); - DRAGSLIDER_ARROW_IMAGE(image5, arrow5); - DRAGSLIDER_ARROW_IMAGE(image6, arrow6); - } - - programs { - program{ - name: "press.lock.l"; - signal: "press"; - source: "lock.image.l"; - action: STATE_SET "press" 0.0; - target: "lock.image.l"; - target: "arrow.image1"; - target: "arrow.image2"; - target: "arrow.image3"; - target: "arrow.image4"; - target: "arrow.image5"; - target: "arrow.image6"; - target: "image.bg"; - } - - program{ - name: "release.lock.l"; - signal: "release"; - source: "lock.image.l"; - action: STATE_SET "default" 0.0; - target: "lock.image.l"; - target: "arrow.image1"; - target: "arrow.image2"; - target: "arrow.image3"; - target: "arrow.image4"; - target: "arrow.image5"; - target: "arrow.image6"; - target: "image.bg"; - } - - DRAGSLIDER_LOCK_PRESS_PROC(press02); - DRAGSLIDER_LOCK_PRESS_PROC(press03); - DRAGSLIDER_LOCK_PRESS_PROC(press04); - DRAGSLIDER_LOCK_PRESS_PROC(press05); - DRAGSLIDER_LOCK_PRESS_PROC(press06); - DRAGSLIDER_LOCK_PRESS_PROC(press07); - DRAGSLIDER_LOCK_PRESS_PROC(press08); - DRAGSLIDER_LOCK_PRESS_PROC(press09); - DRAGSLIDER_LOCK_PRESS_PROC(press10); - DRAGSLIDER_LOCK_PRESS_PROC(press11); - DRAGSLIDER_LOCK_PRESS_PROC(press12); - DRAGSLIDER_LOCK_PRESS_PROC(press13); - DRAGSLIDER_LOCK_PRESS_PROC(press14); - DRAGSLIDER_LOCK_PRESS_PROC(press15); - - program{ - name: "release.lock.r"; - signal: "release"; - source: "lock.image.r"; - action: STATE_SET "default" 0.0; - target: "lock.image.r"; - } - } -} \ No newline at end of file diff --git a/data/images/slider/RB07_icon_Unlock_02.png b/data/images/B09_btn_doubletab_h.png similarity index 75% rename from data/images/slider/RB07_icon_Unlock_02.png rename to data/images/B09_btn_doubletab_h.png index 01329e483f03f744fc8c26d6a2ee63129e524da9..9c027fe9c1d3dc88a84e5131a744b94560ba71a6 100755 GIT binary patch delta 952 zcmV;p14sO`9L5|WiBL{Q4GJ0x0000DNk~Le0000Q0000i2nGNE0DEbuez75+3V(4) zL_t(|+U%H5XjE4e#(($DjP-A<|4KC=0bNL7C=%*M*98k!-DV{gw7M1ChVF{cZPQIl zS6x+1l{O%_t2WSu)QGr;QHF>ww=> zb*NpU4Zvr>-@ug?1Vw~LfGxn+KrNe4Rl7WI>wzzTqaAF=QNviDCu&^LIp7{J1aS7s zopojJ&Nw&$RGR>gDts422fsSf`y}V~J;0YmM8|-wz_$QrF5l_)j$u)%QGXP%g)8a6 zkv^PvQ1TA%7!~F4;3vJ4Ms^bT3m8&WeD28(06zkpx^#Puhz=(~s*6da9)u)B>LHQ@ zAqisRbZ#+;BtfboI(+KV?KOt?6VR7|XGA@~0`LeRYCIi8s&x^92vG$=S9}B|YHDM) z)u{2bVa`~@_T-7Wfo#dd5P$nc6cI%gctKZ%%sz(LpYzhBVW$Tc=mO?!yjJmjDM_{? zZ8U}Gz~TFVwZK!u?8+0BfoS8cqEu9cmq|{V9!i{Z6$`2Eayvv$J6KVM(GF1>ulgGPkAGJ3bnLpfmq`9& zD?&PmI``%V!@s+v*FePEOqAw2U9AKAe=w}}9yR%0MihW|p4WAWcwh2a!SOOXlhmJv z-0c#um@gn71Dmti`RR%IybIgy0JR5GwH(oA!(Jj(;OTOse-s8pS%wjP+h z_3KQ|5laPzK)JqHh$y7wPq``%(5_Hb;J$(z40etkGf40nNVfPa6iTD{Or@ofM;2Oa`@ zfsaj%mtGKb(bW0Rz!jyqEvQ72?l?J=S0OyV5D)2oZjhUv^dj?GBd;shN-Y;-r1pWl>0>7IkDokl^wO-LY a8vvW*EOF~8jDcizkQ=N)!t-na99zM1)U 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 literal 0 HcmV?d00001 diff --git a/data/images/RB07_icon_shift_press.png b/data/images/RB07_icon_shift_press.png new file mode 100755 index 0000000000000000000000000000000000000000..0190d7cf023ae48d5d9af0da62b37d8dcb841a69 GIT binary patch literal 3143 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 literal 0 HcmV?d00001 diff --git a/data/images/slider/RB07_icon_Unlock_arrow.png b/data/images/RB07_icon_space_press.png similarity index 89% rename from data/images/slider/RB07_icon_Unlock_arrow.png rename to data/images/RB07_icon_space_press.png index 7b5f9ab729746a22a36fe2d5ab3afd436f623afa..da4b3e69635021a0697d130b3eb807e3d7e08d77 100755 GIT binary patch delta 184 zcmX>kenw2OGr-TCmrII^fq{Y7)59eQNQ1Bp2OE(5RQIBNqvCw7`f^Vf$B>F!Z*Cmq zY*3JBxX5E(z}8-{zAUFBErZRvlzZwfm%Z;*9=-g?owQ=BU)8-Hh9|4Lo+~}QwCC~f zZEdUnPC0$Ow=KqJ$!cDqB@Rt2oIwhXO(Gr>6dYGY%h=xdz20OZ6DL^a=k4+*O^@r? fftLUO&&gTe~DWM4fzfecp delta 303 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 literal 0 HcmV?d00001 diff --git a/data/images/camera_arrow.png b/data/images/camera_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..621e346c287ba1640ca4f573e088fbe940066532 GIT binary patch literal 1215 zcmeAS@N?(olHy`uVBq!ia0vp^B0%iK!3HG58U}fi7AzZCsS=07?_nZLn2Bde0{8v^Kf6`()~Xj@TAnpKdC8`Lf!&sHg;q@=(~U%$M( zT(8_%FTW^V-_X+15@d#vkuFe$ZgFK^Nn(X=Ua>OF1ees}+T7#d8#0MoBXEYLU9GXQxBrqI_HztY@Xxa#7Ppj3o=u^L<)Qdy9y zACy|0Us{w5jJPyqkW~d%&PAz-CHX}m`T04pPz=b(FUc>?$S+WE4mMNJ2+zz*$uBR~ z1grP;werj>E=kNwPW5!LRRWrzmzkMjW$NZ=11f) zW@KpY2Gi@3pIn-onpXnTn}X15j#DovDdZLaZFWg5$}CGwaVyHtRRDY0DigO`OmLb9 z)tiFbEv7j2>H{644~kf%h=vIPQxAvxFC1wV@xV}hN6magl>P* zsgpSObB{(>c0~KGkp2MiPdi?Jzguf5^R+1|6BuD0eiWE;*KbLh*2~7YN$g0c$ literal 0 HcmV?d00001 diff --git a/data/images/camera_default_arrow.png b/data/images/camera_default_arrow.png new file mode 100755 index 0000000000000000000000000000000000000000..5518ebfe94d8268fc4a1608abf698371e82bf04b GIT binary patch literal 1325 zcmeAS@N?(olHy`uVBq!ia0vp^GC-Wb!3HGx-U{gfDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49rTIArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKWfE$}v3=Jk=fazBx7U&!58GyV5Q|Rl9UukYGTy=3tP%6T`SPd=?sVqp< z4@xc0FD*(2MqHXQ$f^P>=c3falKi5O{QMkPCP^Az7IU0>^?{Dj2SqGWM8kxDsRzV_CtDx~p72xifT_I*n5&=Y)S%(~Cju!{YFbPU`pG@HSqC2NX{{DjO-wLyCEzRD}!ZgvRP?%kQQAcx7)Rma` zPEFSr<({>V`ce0=?eyPC{`~yZ+(5)|bz3Wh$>9?GJS!Uc+rpqR4Usm3mQRgYZBFvU6dhbl( z96?**``^`DO>M8QnX=5@RC~+I{Mn+HzFbP%IV&x9+RDs(Y2v23t8T7b_Qv?f&dl}K zjng*Y6xP-3KKf|q{r9uyxJvkJ%l%zuAaQ4H*y`_h^S(=M{9tTXkdXM@<>l#(i*0RZ zRnD3x?4(j>dvp0?_H9{n{oMHuf2gyNu@iC)%zE>>eskRV=$d)D9~*<179Y>85$mj; zC!(=WX8z;HU#nu1=4^jk_FGAjqe%gTnEaWcaPsNPEr~zMZF(1Y{-~RuC35hz%O;)T zcIU}IudJN&&7>{y$h@|@0@YFnPam1*CgRAc{_EJ|IbTg?pH=&2vgDAx^iP2VhMNYx UOYbH1>;@HJp00i_>zopr0Qm6NCIA2c literal 0 HcmV?d00001 diff --git a/data/images/celsius_icon.png b/data/images/celsius_icon.png new file mode 100755 index 0000000000000000000000000000000000000000..5d2de29aa1857020ae19f9e5c7bfbef6923c378b GIT binary patch literal 3440 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 literal 0 HcmV?d00001 diff --git a/data/images/slider/RB07_icon_Unlock_01.png b/data/images/circular_gauge_password.png old mode 100755 new mode 100644 similarity index 72% rename from data/images/slider/RB07_icon_Unlock_01.png rename to data/images/circular_gauge_password.png index c868560a5c0bf852a189af384ad24b29f5e117d5..1031ac040a9aaefd9bd7235500ce76c16740dfc2 GIT binary patch delta 983 zcmZ1}^HfH$Gr-TCmrII^fq{Y7)59eQNVkD72OE%-sQff>qvCw7`U##cjv*Dd-rV)i z6ZVv7`?y}`0ZTDU7*BM9VKK)hna$6g{7j@RoF;J}P*~DA$Nu!h2t~!lDJP~qV>(i{ zabuvzt-|1UWtSd)_t;wyGk^c8cgrWQ+rzzlPBFvumzJywY#oeA4HBpngP{YD0P_(D zRS%_)Fkn%sz=os}rf`R1kk`bZu8tS(M*>}H=E@%z{FwCd-=@V2cYQYf{Z)TY{qK{O z_kShZou9jB&i?h0@tJoQwANYAwR|2sBjw!A`Qe`zJyM!_?eEp3{dR`4tn2%-=6rbE z#T^<|9a9!>V-Y-&u3i4Y?%ykI&EU`C0Vw-P&k#sor&0dfgUZ`_+5=vHp>aj=Oj7 zZeM-u&HMNJGdH|DyK2|oy?YncmD=4d+xoA*?CZ}0i<<3kGT(jp@S)ZvCsb$sj&~0p zJea@iH*fpla>0$M;g{w}@GC!hnqW{-T2=Kc(`v5Yvdb@@ym|BH^0#l_UUyVj$`{X6 zd%f)S7ik{0^2SaQpY2;!rrB&=wf~Ar|6+sUqQ1Mk{JH10-*3)m zzRrz1l;!K)kK}*8{@?vbz2L{fqwaTBStXh1ADg>?`+3Z+u6Nyr=Oz1!&c#1JUKpBo zG3f5kS$}`c{k>H!cI}$U>%79(U-1lIy82S+%dFD5C0keX&%YF!6rvQX>ZW=r^mgdW zRk58VSJy3>xyEIemP@qMBG2&7K+R)w9d>n{D-yqS^`HN>sX_I({C8C~zkGGh^!4qN zXM;gJ=9gLZC+FT4Tl)9cw$*0~Wd!}hdMrIPZTFTe>{EJ_8C~q9X{-IB{L-U2b!%fi zXTN+URXpoU)n56apqHq+&ks(Ss^XIWV*H6H_%HZkh=d#Wzp$Pz|DAO7M delta 922 zcmV;L17-Z>9H|^3iBL{Q4GJ0x0000DNk~Le0000?0000?2nGNE0LPb6E3qM;3V&2d zL_t(|+U%TPWE@cxhrj$0N?Ahhgc4FAl#&Q}s6+@Q50wg`eGH|QO11R0O8OL{Pc6}E zDW!zSL$nelB`nowv_xs>(>^69EK3MsO&|6~WHWcW$xgC&XU~s)m^(9PXTLq?%(>^z zZbKM`sLEHPB2ZuoOo1sd1*TG93V%$2DX;{px!M;XA^`2c7;qKn23ml9AP@WkHh_6x ztN46l%(-4~LpA4;A~FIz1A5CmB@H|UR_h9wh;#vOf&NpPSO)F`neztLSOr+az>f-G z0Sp7*fx$#4eGwT4mVk>fm}>*R*sxAsNQy{5uwoOsOFK3{W$pGQ>qV_4&VR`P1ICz* z!~heKR^X2X5T$Q6nSXWc9|5N99W+XRfgWSbZc;*W$^k16JOr+nfCaD!^Z?Ht`#XWj zM0l8pbOOH}p?C+FJE6%*;H4upuNY&pweDdP4p=kBn7LEfdj-6Y7*7FrlMs?)5o22= z!mAuT0iyEN?V1K=3)J?AU4OF`Cg?2iF=D)1L{hcvVO@^#&oS7Jve9JcqcsccvSU0G zgYC@{1#Qg&iwciDW6Vwrwp}(ZBx){6p=}d~^3~|DXaiA!DKG`5!0Je6wg@639gaGz zNkn>Mcnen(vO`4LjWLy0$HtgtZ$nZ6-7mMw|M zl$Rc6J!`?!)H7g=N&DtullZF%A4Bq*$G~E{wm9#SEiu^G0^R}Z6k0XCz&%Q@8kLky zIVm53RjO6sCPzD|^S}&+wamT<5OrI)W`SE_819B)NYN`BhT*Y&iLUe`AQZpegkhNb zPpE!KRHa|xx4u@!F@Nhimps`Gqe+1sYN(83ZYZ!rjZ;|ecc~i~RbWR$a>Y?#4g#Mv zB#)~d_{s6L%mv)bb#)EwAhG8oYBUs>TR8=GGVLm`^0g1_6^-pEu=2gjHKxFow2#21J%zOo z%z6hb2!b?)$H9G49(WK0L2SQ6iv8J&?d|O$;E}DLs?}x4*c34x1i@OIh8y(XowTe_ wUVD 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 JPDHLkV1kVMxFG-l literal 0 HcmV?d00001 diff --git a/data/images/edit_btn_icon_keyboard_nor.png b/data/images/edit_btn_icon_keyboard_nor.png new file mode 100755 index 0000000000000000000000000000000000000000..da150ad322fc33bdc201bcee034798f6545403bb GIT binary patch literal 1400 zcmeAS@N?(olHy`uVBq!ia0vp^c0g>x!3HERMRh9yDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49rTIArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKWfE$}v3=Jk=fazBx7U&!58GyV5Q|Rl9UukYGTy=3tP%6T`SPd=?sVqp< z4@xc0FD*(2MqHXQ$f^P>=c3falKi5O{QMkPCP^Az7AKr~^?{Dj2SqGWM8kxDsRzV_CtDx~p72xifT_I*n5=F6z5+7^;~P&G$B>F! zZzA^Vvp9;}bDeNOQRI*)*To9~o-yvNPL8RIr+Tl*P$}W+l;8X05Bn4;zvVWnSH1im z2?+`b9i98tO!8z!<@V}tWrpv5Ptu>c{deBCeP^ma-|Kl>IWM$7W5X*E0ltS&l&3dq z-@|O_C8t-H9*yo?p0%j_aD~X0h%%4$cD^=-7K_+BuLp+hIsYN#U6<6WZ4VDgKfZBC zXX^XgZ*FoFhHnnRqcL z{%EpzjZE&Ju%j~T9!yU9w)E5Gk1bX}H^c?^^>fem>)$ZZ^3Z#`i<)N+8friJ!mzo# zL*MD{x^=v~nF&Tmn487TeD^r4xGwN&{So$s^WR^4vq&pajQhQrsh%+Rp*w$X{fN}? zeS3uO>^|jbEnBizzLRiXD0iUeyJ+M=^|LjXn*776--rE}*5~_h@8O!DCjY*lJ|UOd zir5|s{M+AX)feE-to*2}LTAoo@tdkmvk%mN)wfAAsgBPmlDWq5w~ASq{o(r5;w^B@+6h_u(P#K^S?KBN=d#Wzp$P!S CnFdGz literal 0 HcmV?d00001 diff --git a/data/images/edit_btn_icon_keyboard_press.png b/data/images/edit_btn_icon_keyboard_press.png new file mode 100755 index 0000000000000000000000000000000000000000..7b7742da048c83b2ec4539baf98b9c663d61765c GIT binary patch literal 1468 zcmeAS@N?(olHy`uVBq!ia0vp^c0g>x!3HERMRh9yDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49rTIArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKWfE$}v3=Jk=fazBx7U&!58GyV5Q|Rl9UukYGTy=3tP%6T`SPd=?sVqp< z4@xc0FD*(2MqHXQ$f^P>=c3falKi5O{QMkPCG;uUG zF?4ixf$4S0PcF?(%`1WFO+n~2#iP^Az7Gs=x^?{Dj2SqGWM8kxDsRzV_CtDx~p72xifT_I*n5^HKPRV6pU^4J@aSW-r z^=5{>4s)Q)@oJ7qw*=T6ANd~%;_h@=6r8P`xWZLGY@)$Nk1S)4DX}4I*xa~H4X>RF z@>I=jnlM4))|KxkC-3?5>C3BI*?WHcos|FU-rd(%z6)t~CJ9ID}ZZH;rH~(?ttG#;)WP$El zuW?LWz}@6!NtVz|-~G#bZku#=-|A6Y_WNXwbd|DY+6nCsb}NI#$}HZuFXGE)N=tixCZ&f zdAFAIv3q_Nym;k7%cFaezJKcWN37`e@VU$_GhvV8>m5JtdX|-f0;&8~W8|^p^A6TH zs_gf!d&Kkaw^beU+>CpZ7pDj-zCF0Ni?=^Bb>HgDqMS<{p}aP&GdeS+W@u!FO_FQ4 z&0@1IGok5eQ*n>6g}V7#Ugf?p88eP&DN3uh^-lb$^u@E9yZ&DB@%y^CpdE7zEt-vC=)dA`kpzZ)*;Og_ SFRn9!%2Q8QKbLh*2~7ZN0v)yh literal 0 HcmV?d00001 diff --git a/data/images/slider/RB07_icon_Unlock_arrow_press.png b/data/images/event_clock_colon.png old mode 100755 new mode 100644 similarity index 88% rename from data/images/slider/RB07_icon_Unlock_arrow_press.png rename to data/images/event_clock_colon.png index 972cedcb356622960a5848dc470a94e61a84f72c..26a51c6cdf5f2944ccfc74a0624fdb9640395cd4 GIT binary patch delta 293 zcmV+=0owlL7q}N8iBL{Q4GJ0x0000DNk~Le000080000Y2nGNE0Ae_p+p!^@3V#6O zNklK^EZ>bndPk2%QTK%pf2nlc3}`A8b-S zUI+e`7(vI`00000NkvXXu0mjf^M-xK delta 338 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 literal 0 HcmV?d00001 diff --git a/data/images/slider/RB07_Unlock_bg.png b/data/images/event_list_divider.#.png similarity index 95% rename from data/images/slider/RB07_Unlock_bg.png rename to data/images/event_list_divider.#.png index 0e0a6ea203b79615e8d5a9cddce2211ce161128f..3be1e5ecd412a604e1cca7eac87da4042a8ca630 100755 GIT binary patch delta 98 zcmaDW`dw79Gr-TCmrII^fq{Y7)59eQNHc>l2OE$K)7ZLyqvCunb0tp~$B>F!Nk9Jo vw`XQ%K3vbH@#Fk~0}s0O4gi%g{Qu9)u=^IfyJ3rgG>Gr%>gTe~DWM4fHw+!& delta 88 zcmew^`c_o2Gr-TCmrII^fq{Y7)59eQNHYR)5eFNPoV0lNvyF=LxpXBwT^vIyZY3oo lBp9TDNC{Op&LEBh40%f##h6kw3W16lJYD@<);T3K0RYr77V`iA diff --git a/data/images/slider/RB07_Unlock_bg_press.png b/data/images/event_number_bg.#.png old mode 100755 new mode 100644 similarity index 94% rename from data/images/slider/RB07_Unlock_bg_press.png rename to data/images/event_number_bg.#.png index 17caba0e7da6863f7e078d3c3cd0d4e876860fe8..de0f8a50336f5074b2fdb65f5500daf61222d4a3 GIT binary patch delta 130 zcmaDWI$cb$Gr-TCmrII^fq{Y7)59eQNQ2m19Be?c*XaD-jf(TR!ks)_978H@EtznU zlR=T^s8IN>zvczYpZ6bncremnzN*OE0HW~y0(6)yZiUp gsvZ9-URkp-@GchStNFbCGSFBCPgg&ebxsLQ0QuW7@&Et; delta 88 zcmbO(_EuD}Gr-TCmrII^fq{Y7)59eQNHYR)5eFNPoV0lNvyF=LxpXBwT^vIyZY3oo lBzPo)NC{Op&LEBh4ENI+J)a!9$qQ7>;OXk;vd$@?2>{kE7@PnA diff --git a/data/images/fahrenheit_icon.png b/data/images/fahrenheit_icon.png new file mode 100755 index 0000000000000000000000000000000000000000..5629e1a1339b67ae7b350de66545f444937ffae9 GIT binary patch literal 3234 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 UyKoA_Jpcdz07*qoM6N<$f-xZp;Q#;t literal 0 HcmV?d00001 diff --git a/data/images/gradation_bg.#.png b/data/images/gradation_bg.#.png new file mode 100755 index 0000000000000000000000000000000000000000..3589b3b00ba132d9482384b25558a603f5e34b9d GIT binary patch literal 2857 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 Hu0mjfnjlEU literal 0 HcmV?d00001 diff --git a/data/images/icon_backtocall_nor.png b/data/images/icon_backtocall_nor.png new file mode 100755 index 0000000000000000000000000000000000000000..ab0140ca1a863bf2c28c3228b9c123ee32c1ab32 GIT binary patch literal 4182 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 literal 0 HcmV?d00001 diff --git a/data/images/icon_backtocall_press.png b/data/images/icon_backtocall_press.png new file mode 100755 index 0000000000000000000000000000000000000000..96781afdb87b11bc83196221f1171fb3958aa842 GIT binary patch literal 3945 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 KXs;{1yMF+J>oT7J literal 0 HcmV?d00001 diff --git a/data/images/indicator_nor.png b/data/images/indicator_nor.png new file mode 100755 index 0000000000000000000000000000000000000000..3ab25a79b57ea0dc687bf3268c9aec9f70cf4ca5 GIT binary patch literal 990 zcmaJ=J#W)M7&eVmp`r{32}B1tIZ^?M_#?61#EMCiIH9TPQqo9`m~iY%p(aFOd1HpArdk#AZZh(Qx>IG)D-c>9h8j;*olvLP6L3AUZZegN0{D|M^i zv9dOszXo!VN(5YpO%S(*7^|R!0tjR-owNi|1d76m zlB_7=Rge-#N;Kgh< zOEprdBtay@o`=mS>4k}rf(}C~aD40_4^Tz3iMFxEl1z_|;QC`(FC3PM6pW8dpBFiS z9%%$LjQ>MjcZ?2k4IbzFPvNlM^C4e@A=(Zs(zsTFhVs=?08Na7Izn5cDz3H>MqwNI zptPod%j=G3qi%R*fHw@a>V??!ELhbwmMCzJW2=gks_5xTR**{-Q7lUZNszM{shklq zx|AsvM_e6Q+b;C*h-)8n3lq823a(Eg>o9P3pj`=&3kFA4oyob(Pt+T7?a8@hCUSX_ z3{M;TSEEN;#65I6wk=tVjSoHI_JG)WXgTupoOk>W(p1yxs-aos0 zOWHiW^Js4B=SA@QM&jVygBR(kQ(yRn>G@slSM2+~vvBa_{^PsF&fK@QEN*_Lr1)N$ aIWf(Aczx;SvkUrjdgH3)75z=|_Psy-bu=sh literal 0 HcmV?d00001 diff --git a/data/images/keyboard_basic_pad.png b/data/images/keyboard_basic_pad.png new file mode 100755 index 0000000000000000000000000000000000000000..2cf16b4ec09f680f5fc576a167098a3d821c79e6 GIT binary patch literal 3816 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 literal 0 HcmV?d00001 diff --git a/data/images/keypad_press_bg.png b/data/images/keypad_press_bg.png new file mode 100755 index 0000000000000000000000000000000000000000..533ebb9cf3e37263e6359f250376331045b51bdd GIT binary patch literal 4247 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 literal 0 HcmV?d00001 diff --git a/data/images/lock_circle_line_camera.png b/data/images/lock_circle_line_camera.png new file mode 100755 index 0000000000000000000000000000000000000000..476de64ca5d513f475310592094c2d886469cf88 GIT binary patch literal 12323 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 literal 0 HcmV?d00001 diff --git a/data/images/ls_back_01_nor.png b/data/images/ls_back_01_nor.png new file mode 100755 index 0000000000000000000000000000000000000000..c98baf23d68e622e628b624c54c2d6f62f7df8b9 GIT binary patch literal 4209 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 Hu0mjfBsb6z literal 0 HcmV?d00001 diff --git a/data/images/ls_back_01_press.png b/data/images/ls_back_01_press.png new file mode 100755 index 0000000000000000000000000000000000000000..5904846ec2e3e34ed30e42faeca8751e16b615d9 GIT binary patch literal 4190 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 literal 0 HcmV?d00001 diff --git a/data/images/ls_back_02_nor.png b/data/images/ls_back_02_nor.png new file mode 100755 index 0000000000000000000000000000000000000000..af67780eba56b3345e5af997084fcd2876230a0c GIT binary patch literal 4010 zcmV;b4^{AqP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000ElNkl;PqnQz>#-%Yh~!dxk{D^ivRm;BOw_uqCTmf)FuR#?T=UU+d)NugT6b5Y zV`B3BAsAsY13#X5-uIn1gky|>a&|Eh0f7@Zg}@1%Lf`~WA#egGa0-DFIEBCooI>CP zPT&**CveJfQeo7IIgUHhaf+ho|Gf_2SM6`1q5|++t=5l?*ze_x+C)Ascq)~;VX;_3 z9LK#?1cj(tt=3A$Sf(UfN|9mbTx=!T!!_*bBErtaT5{l`DCV#)7vcEEmlU`tir4eO zW{hEbdwWL|Me(Sg$z(E_L?W@ZzrVjCzHu!cX#(_BobKwFbCkC z*=%02+wGUi0$jtMIq3j7I5;T8Vlgv-4FFM9Ro4!p=di=!@B)Bk0P9^{U0d;Ze4w_r zwvdaevsw6@7PfBS{5zdae^^sf69@1n0EfwBx;Z&H+1u3Abj#&(jfTVFMGbpX5QJx5 zuXmK^`A?2KC$w4{7-O5~4qVqp-agIqzXbh;!{N9TjYiir?6@EZdtR^id!FY%J=P@r zJc1jAtwY~Rr_(Ju^mhPU0FVHX$QS#(f^)Jg$4n;EEhBs40dyMxGk{&KjpT)GB)E}- zW@RRmu^2rFWwTlH;^JZzfGmI~0R9267YGC@WLdsYY|B?8!K()b2ELSKIcd}dWLZx3 z_xFF{bUL2`;1xw-ilV5BqOg^fm8!bBI^XQ<>~G})&iVcRZI8z@YQ*YJk|fFPcKaqK zCU*4K)OvZY`kB+|{5c#B&z1wY3}7=D3@&;+9-l1B(rIG%^z@8|LZJl!4*@(81VIHb z3}7~uN?il62Oy!U>ch6SwjYWG-AM3#ZMG1do}Qj}yWMwB16`6N$>Z_(G;ICU?;8LE z0IpgrmKjkLuK;)qAf~G7TG600#teDsZt-dWw*hpww6uJ+v$K=bdTm~>zP`Q@0NnuI z15hmpf=QC3?+zZfySp0~Me&+8Yq<>IBeU6jXLWV;(NV4gpxy`Kr|Ez z&3QbYlTtdKV({Z)nc)P^p&2;Wd4Z9;~S;^Eae6CU@$m;0(34A z2)qj*9*IO!Ua$9Cp6BnpVl9wEuLtnBzrX)!V`JmZl7E(>YcEy+^#E?SwzhuY_xnGy z*=)8v+Ta3!iyX(*AMqp40L-hZ`o76zdZVPDr5J^7bk5^S^L6cIS!*voS(as#NeZ#W z_CNIA-rl?Af?lXitY!i=#;r+xB@Vz`5Km9A>(~Z~~_gIDr#5Hq)$ literal 0 HcmV?d00001 diff --git a/data/images/slider/RB07_icon_Unlock_press_07.png b/data/images/ls_back_02_press.png similarity index 67% rename from data/images/slider/RB07_icon_Unlock_press_07.png rename to data/images/ls_back_02_press.png index 2ee6dfe695e3124afd5010a42380931c65d94ce9..bd59d79b0bd1ef9125c314f4e60a0d02996ba992 100755 GIT binary patch delta 1272 zcmV0)T=a%z%2u^?jcIh%b+g?t#tU1Y?MV=^Y>L~HnzH&} zPy7Sq2Jzu=9jp%oizfO&F<_n;7y;S(XhqhE9V=8D=PD>@7h98^-#xjEvvtKEITMr5 z`$-<;?wi~zpL~B^2*(%$<>bN>0e^uLIEBCooI>CPP9bmtCvXaZ6F7yy37kUU1fB;e z)T?2R;|_fa03!fFedID^q5y~kc*Yn@o*M8YV4DG)1#lifSq8s-2>{Cg765GIB6teB z8h}$pH)XiO0bnT?!S`TGl5}}wWaLXx6yM0y8)A&Hg@uKmo12?|(&d8nx_^m$fIj>c z>_8xJ!)mn(nf}T##+b!oImZ}#oGY`GJ=h+P=e=yfR*OZq?u^eMc2x>{bab>gTd;F& z9H?`smSvOQ@4vMl zx{57{qWA>B82}e~p1)98Sy`2ndnx;22ZKT1aRh!Z8h-@<$g;cy;8uTs zKMD#8ZoY)QtYSNOp0|g?;qL0{>a)38;YI*&18}Ab8vq1B5Q4#=&+T?M0jSqjI)Lv0 z?1xMR&i1#qwzfJuJ8ws$(R%=X0k9g6 z#}xqO0M^WAvrX+rE`QC;%zV+>+S+`W_RVH<&1qX{avdEVm1DkS6#AXK*-O!&|EUA^W9>XU6bg0C&dz?_($doO5_)g8pr6QIii$3!13j5cK8?j< z*Y?5wT#}@#Hh-JVHZd{b)1X(&vTW+<>G5rDZr;t8&8xJb4-E}{Q&(5F1E2b0|TD`s4*IiHPh46*Ck2%@PGdfR?%;`TrMYob9TG^LPJA? zBUcwbuYG=FW5aGR7=Gk9uHvw5udJ-BnoOpWva+($1NQs>#A314ii(PIqtR&0pitLLntK^LTn6tRJ_+c`c^kgA=JSV{cz+f;eW*Pb}fM+=i zo(~Z~~_gIDu0L ioWKd3Lg1%6{|*4Fzzfax=2s5@0000>nSOf(_KsiVX18Sj#5KxHV)QTW}5CjoR1se;o z)6&Wf7zD9U{6dI$5Qqdt@T*bq6A{i2a-Nv6*o_IB$+{t%+~fBB;o$bo6th3(y?Hb9 z);Q--rPmVa12h2zU;x+-tOPy-cYmDaLQTdad4`#QZr~EIIo9+W_yF`d%M%3_!deg9 z1J)#T`vvTFmRpN8t_H#0c;!E^0G0yROu)Ka12X}~fXMgu79;AU|Sx6 z6+N~wXL&sN;4BY;H?cm=KwqwanSeH6g{SF8N?T9fX4s}ERfy|>$2R1#wVQyJya9{r zIq=fwra&bg$6#S|GHJkkiRu?;XQUB0OT`oT0aoV;*m95UTSEV;$JUl7UKhIq30ZQI{i+@yuj2?O%Dj5V1neNZg)RcCYV=+ofl=VB zvy{XFGXW=nbAl$sAK-wqTown+1oQ&K0==jTbUMpxX))}O(6Cb=!+%1REP?e3j@3np zX+>*B?lTkx?8fLt`=kH!QByr`ja~qInOXbQ4O|77Zuo)_LE%KwJ}OB6j-Dd;Px!3!v^4b2Dw;W z0R!kFEYIwS*@rzg1%Eaz_{V3`xTFC}JU}eRp1&$E1(unr9v3Vtu;e`@3M{=^J^5Id zqyb9%NWKwx2HXeU0ecW~tRoc|gdZmKBUE}XSwmoD!S6XP5!jeuV51U&ox%UHl!R2} zyf|RaG76j$mJk?grnX`$aGLPIucbzy%8?rmIP1Mwkuw8KS4ouuQ(y{AfhjNr orcz)EOo1sd1*TG9^U~h|0En@vO9K!)=Kufz07*qoM6N<$f`2o33;+NC diff --git a/data/images/ls_button_02_default.png b/data/images/ls_button_02_default.png new file mode 100755 index 0000000000000000000000000000000000000000..357247eb9b024ff0336bafd0b2e080d26a38c101 GIT binary patch literal 7799 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 literal 0 HcmV?d00001 diff --git a/data/images/ls_button_02_press.png b/data/images/ls_button_02_press.png new file mode 100755 index 0000000000000000000000000000000000000000..e713390705fae24da97e4ea0303ae5f3b90594ed GIT binary patch literal 10112 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 Cj-)66 literal 0 HcmV?d00001 diff --git a/data/images/ls_password_box_02.png b/data/images/ls_password_box_02.png new file mode 100755 index 0000000000000000000000000000000000000000..5a4069b729c9463ebcf46505ff942ed76b87d22e GIT binary patch literal 1979 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 JPDHLkV1oZL$65dY literal 0 HcmV?d00001 diff --git a/data/images/ls_phone_01_nor.png b/data/images/ls_phone_01_nor.png new file mode 100755 index 0000000000000000000000000000000000000000..3580d8404dde8b4cda7d7c0911f60ee9ac728432 GIT binary patch literal 4404 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

b%_rcKL&VFJMN<;!(jwrsJ< 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 LNkvXXu0mjff^Rye literal 0 HcmV?d00001 diff --git a/data/images/quick_shot_drag.png b/data/images/quick_shot_drag.png new file mode 100755 index 0000000000000000000000000000000000000000..34ea67f758eb5557f4ffdb3b54901cacbda9381f GIT binary patch literal 3197 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 KMNUMnLSTYA(57+# diff --git a/data/images/slider/RB07_icon_Unlock_press_02.png b/data/images/slider/RB07_icon_Unlock_press_02.png deleted file mode 100755 index 68a1c3c6386f4d7fc0714e725464f0860698f0be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3660 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 diff --git a/data/images/slider/RB07_icon_Unlock_press_04.png b/data/images/slider/RB07_icon_Unlock_press_04.png deleted file mode 100755 index 35f459f88d0bcc9c9a4604e856909a2d832039ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3624 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 IM6N<$f-LULrvLx| diff --git a/data/images/slider/RB07_icon_Unlock_press_06.png b/data/images/slider/RB07_icon_Unlock_press_06.png deleted file mode 100755 index 9a8370f8bb09068873ed13dcdf4d7a753a8d3ebe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3599 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 diff --git a/data/images/slider/RB07_icon_Unlock_press_10.png b/data/images/slider/RB07_icon_Unlock_press_10.png deleted file mode 100755 index 3b1f99ffcce5735a6de4eb95ea9d1159a24b9ccd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3581 zcmVKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0009hNklQ1LPQY3h=oqkwRsuJH{So^a;1O^d zsI>A19Vvpf40s^G0_X-#0WVvfb6S9Tz!1)-ELgeSzsP;NwAj< zm?7cX0IpklO4ZD#vB1ME&`Kc*R4qT zPzF9k#%u-FIR(t~$pLGHOHTyb9l=&`ZH288Y$L$9V1F#wwz&puO^xg*ZIC|+w)L(7 z>lSPuYmEIV*min;yzSva2ewqOeXB7x0KN$Jj7z{43AV{P9k^A zq`({l7AUZIswgna?_aZ|27Lvlz}lE4v#tY+nL}YZ30$)dSWu({T(GbZJ{uI}hq%qiOZv--Jf9teUyG0@Jho}q_NoM&3yM`w zq3i;tSyH9I6qo{2U00000NkvXXu0mjf D@OYUR diff --git a/data/images/slider/RB07_icon_Unlock_press_11.png b/data/images/slider/RB07_icon_Unlock_press_11.png deleted file mode 100755 index 4342186a7018346a9da1ba806bd776d32f26dc23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3617 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 diff --git a/data/images/slider/RB07_icon_Unlock_press_12.png b/data/images/slider/RB07_icon_Unlock_press_12.png deleted file mode 100755 index 48b45016e2d7396d31ab98c1429ab9b7b152ad6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3632 zcmV-04$tw4P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000A9Nkl2Rc6;UgQq97IoX;G+z%6Ql*joaBK*(B{`^ZvKISzdO3 zJMYb#of$_dg(!DbmHPuYUe-&N0K0(oz%p$c23`ZtmCN^v0yd4d1D!x?7T^zoF6Htf zrx#T2A!+Dg^MT927GOgjt{wqx%H>xj0c!y60XrhP`vL4$E<<4#%!yG5E&%Qq01IFd z@XGOMssvy+fo&mepMh>*C$K{2w~N{yR4vfwc+|%^Bo6_%49#DF>l)4Dg!S)#F$H9ovTh8nvTS&hcy6;1GawP zSww&RdfJq!m5#@}xBy!nGBT#4I8!d;z^8zDbLLAacVJ5mwl@X(G}UGc;{vS4U>hmW z=g4&bQ|`c=68Ibssr6zvHJT9#FaajO1egF5U?Kq~z)Gen0hXUk%WR39XjZ76;D2LV zrGLKzehRP1l}j$4{`CN`W{m-JgK&ecg9 z%Zj=ph0h(GuoL=0TQlc!5mghLIxIsUfHtNs#BK#{1Iwjwoz!n&Kk(Ji_7XU(2b9P? zE#KsBd*ON|1lEKGbf`+DpV5o5X+VJGmz1joSboEPQh-hBDE^tCFs&oY5tvE?R*Szc z)l@pH#Xqo+5MckS85jcA1nhkVn*hs5{=uF!X44JY_yKV=@cX9#6JSMC+7N=H0&My@ zB?2sW)fwusW}9x%ww3P$@D_Lqd;<<*$!8r~fdSOpQq`BsC~38d32fBj=Nz*U*r3J0 zQZ@oRN5oTPGf=AZSO-kGq<~Wv7Q!c#YhJ{SqEhUw*n@vCJ&FI>X11nRDWF}s1s?}2 zEif4+MFLEK2`~XBzyz2`fC(@GCcp%kNPrcje**x!FSMa9>+)#;0000KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000AGNklQ1QOfD556TBY$1 zbm2-Y>OxS8f6$F6xEQbscH=_CMT1jp*qLf;QG>O-=JhdtH6x^IQeokCfcPWP&?sbyZZ3Gd_60bs%1_@Sum z-w418e1vCL+0M0itEjxuc3`jI=^kZ&<2d$V2X4VGyoNs#^{>J6MP<6JG3*|EiJKEu zzQqCj)@PLM#p}&1+O2s^)ukWX=3(#jfb||8?E_0)TBu8(;h`qzcWVMii|R@?(FS0X zm`d0`#xyQ1r;)mJ29G7+-i~M51nf}4HiLs$QM{>3f8oVM(f-R`HqyX~$`~F<6n%() z2Whh|eT9>Y%y%_$a^yYiMr==b*B7g7_ejFFrwzbvP1w#3>Rny>CShxZhiy;TejY-* z=M%PVMWq;ZU|SNle^%RQT_$JN-548nV5#?CSj%~)ZHw=9`9h%p7Qg~n01IHD02aUk zSa#YR2zu&WJdCmC`8zBGu-*&s=@^m`!!}?HTgL61@UT(V&`-XL$|HD5=e%&+I`!)u zW_3=pXO;-=>j$i;9KxF!Im9KML)cHU16EX~a3aG|bW!I9;_t%%Hq01yAk(lj-h_zk zg8o#-v3fGcv|{U!hR^3sz#eNly0>e2GN`t+aV_~Po^bU+?7cWDeVu8;F23h=?s5H@ zC_9NKn+auLPg`kl&pmPdpa-nWnrVh=WcpoRw3KE7*vf+PcmP}3v_BcZu4o@_>Qla> zNiPCeqX~T7BXzg~$A*xLwF(&Q#A#RGl|PZN1+cE*zu1#5uOty7$1qRpWlGTsOESa^232ZLo zeqP8C*r|+x&E^Q~aFa*nrg^-b9k9AIiKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000AoNklW$1u~iq1xDY{5^lh~wT}VZ- zDB?n)ATGKPAyQCW`J}oLT)D79i$Nt=vHoe*jZiEu)M%v;ZJ&#Ip>=v^lF7U{cV6yq zdG5<$-Z$r*d+wi?m1QYu`5GJb7s!ewA8FxQ+=}b5p|bysAMpu}l)1mx1h5{Oz$17F zw=ePR7g=E+X3E@r&wtRUr(~B1yARLewm#kcgxzIs?^*$t;bq*5O#`_77}I6$pU#2v z8kUAL*fk(5xC`HBh4Cf>dmfMX82=nQaT6}XWcB<({1$lrN*vCL|1xR{up9AMm$6SP zNSpC0zQi#c#@;fwwVFZq2mbaN>}w*h*KkF^{wB6okh-eO9mO{62@Kzp6}B}A*v%D` zPQ8uoEU&*RbEnJP(|A45p6ppn%_acb6|l`>2UgMo?8Mg{wnFd2$u$;>zx7pet_d0wyUzj`J)c(>VWMS{u;z-wXXcO!+Z-ijykZ7 z0o$RPe18+LZ5VZ669L=rHTe$tnP}S52u{`HCp5#hMjhDc)trPw#wJGCswx5NlT8Aa zQZl7v0+xU!U`g8NnF&}Q`ZHh~8%tceYQOe2&*F~AQT&pCbz4a04r-q$rIbuX|9{lb zQ*s%%Z&HMf^a8W)%P3i48c$&g7Z2&Zj$;nHwGTyl75Cu*%L>onm52i3l=ku1ThRf_ z3R`d>!Yo?A4fvrBV0G589g&uu@v1~bSM;|;T&t&IY%A8+ls@lO1-n(f=mXsr!hPt1 z#`Ixl=?EUgR~`1vco&za#`TO&;BM_pxt;n94_6b)iX*Mx;vReBI@1N#qGqd9O`ZN( zQM8n16R`e@@^}K)-?TrKfSu8!xTMGUrmDS2z$&f7hh18S>+pUJy;!4w(Y|>5opWy$ z9uU51xaNT^7XQvjIvLXsjBx|8^Ygo36R-rVHZ25Fa6SR+y{43aEnn*c{n%toKQOkF z@0Rv=J|Ag+pm4uPwsm3!1{cQC)sM<78MW#JHXreOo{SOLp@@Oa#R%-Bs*j3ICxkyu z9xkvlH;3mUY=oaE^Y9_=O0*hxEAGUL+8ciBhPb?%!;@ux&M8z}z|t(4lz=5*30MM_ rfF)o_30MM_fF)oFSW*Hukp3M2n-;lEeX4St00000NkvXXu0mjfXCCTU diff --git a/data/images/slider/RB07_icon_Unlock_press_15.png b/data/images/slider/RB07_icon_Unlock_press_15.png deleted file mode 100755 index 57dec325f6302ff3613b7de7a84b14acbb1d0f14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3646 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 literal 0 HcmV?d00001 diff --git a/data/images/weather_icon_03.png b/data/images/weather_icon_03.png new file mode 100755 index 0000000000000000000000000000000000000000..bebd319fe28aae72934cb629465d2b64370681cd GIT binary patch literal 2225 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 literal 0 HcmV?d00001 diff --git a/data/images/weather_icon_06.png b/data/images/weather_icon_06.png new file mode 100755 index 0000000000000000000000000000000000000000..357fd16bdb920c59b7979905d5bdb9fa6f898057 GIT binary patch literal 2764 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 YP~s~0Oim^Jvibi^BDxV8?fhf^1I{Z0r2qf` literal 0 HcmV?d00001 diff --git a/data/images/weather_icon_14.png b/data/images/weather_icon_14.png new file mode 100755 index 0000000000000000000000000000000000000000..ac4415cbe2f5f2f22c193beb3eef9d29044408a6 GIT binary patch literal 3018 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 literal 0 HcmV?d00001 diff --git a/data/images/weather_icon_16.png b/data/images/weather_icon_16.png new file mode 100755 index 0000000000000000000000000000000000000000..9a1f895a2758475a00cb10e447e2341e1f93b81e GIT binary patch literal 6170 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 literal 0 HcmV?d00001 diff --git a/data/images/weather_icon_17.png b/data/images/weather_icon_17.png new file mode 100755 index 0000000000000000000000000000000000000000..c96a4ca0317e8a8556d84a0d58753f6de31f462c GIT binary patch literal 2902 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 literal 0 HcmV?d00001 diff --git a/data/images/weather_icon_19.png b/data/images/weather_icon_19.png new file mode 100755 index 0000000000000000000000000000000000000000..4f44fd063912749d3e7d7b217db5452a5adb0774 GIT binary patch literal 2656 zcmbVOcUV*R8jdJbMx<34BG4ED#$xv3gqejz2_T|Gf0v7!C?0smXny z4-B?AUK+vI@_E5@u~Lo|&dXr+autMz!F>GnDxo+D)FMP+f>hy)oN7OhL`WsR$Vdtg z&r`9$L}`#g4Q?@nM2HPZVnBlQ_e1#T>5u|Bs1+jga+yLy*ZU&h>7_&S`E48$@lHgW z0RVt`9Yi7qlE7$E6z%Yl8xH>0 zjlY%FM5L-fTsWvvrl`eGKH}XLzz}!;Y-nB(@`fI&mO@Dp%GgSAiX2pExolq~^ad-D zO6Wi!z@!004hdiZ93p|hAh1YYc)*KDp>gnJ26I8j-(e{Lo=l<<7*rAjByh+~BEaM@ z052Ma#0aFa84FmhLZcNb#NdKmDP;FO7WhXjouvkaTBSNdsgx~LKv<$utJEYaRS4D= zDgqrTRY;UN&AR#Y{2479R7-b(l0damj(Eo}UHUinnLr?gN@f!{Oe&E>hT`Th@m^#W zA&^33k|9En@3E5qhcg`H3~s(S{-;eQQ-fos5A z`3v9s15>}hKCY2?6!uA}`9Mgs)+-x$cXFMqUgQUR6r$q3x$-$*+3dFhBt(v7-g%h& zB6H{1valteU9%T?I!?HGXKV_1C=sYea@T{9-r0cY_HY>hGL$%U#kkBpMq#zsOOziRL?OX9B6 z&B1v*UMvy7G^i_bu9m`V@o-z)Ek@P!>}+}7)sGG5Vrn8jDLC8O>M%BJ-COdr6MfCa z(UFmfZz+y8fzMDQ&d$z1tgyGA6{e@BFMeY%8>WqCr|R`DuWzdvyl2O6YOAO)?g|MB zLB7>~W=!rz*_y34t!T_e4 z4zM2>K#BTJYgsH7we6@oh;(zKy}p|C65FDQH*5SVz<=HGk`hNDrRi{E5S=4D5kBJ@XF^LRoE=V-+U-3oudc4% z{d~?4RbZ(I-u}EM{YRo#w$qMew1>w-=`jaMR&jCUvqv{8FMXt|_Tu$a7H)0LU)vaK z-n^lC`w|IhkJ00{k4@0ZSlOkxaBKGIJ(8rIXQJDtzdmRq*aiQvb146He)uz4Xz0M) z`gE9H5uMG*ak9Ug(Bw1b%Nn{-SIOS6VV`Buv9;ez>4Its7W&_MRX*+WB~Sx$B~FANLZI zsdj&~_EPaMhZ3A?Uy|4DNV=ABcw%U95G1z!l5r6$I(6z)sOXD!?%g)ck?I@$ltunDYf}gG)bBQZ!5Hz}bzA7pzLNzpOL(eTe zbIPYW*ZLRKE9W=(ep}U7kLE{3_chP_6E-PzxRp8!>_w zSyydjBTQWvV11hDr75+ru*mJda>X`mlF{?~+?4H+fLzhpgX7Ka7!0O69KF)c&V_yW zW`m+fhPmGV>rbuwMBV*-7^QV;@r&&ld2K)6zI7{&Nt>CQyWhKgOK726=CHLJ<#Jpi z!)VCLsWs}q?$K@X>iAc_tFM!}+HhO`CFXMP<)qiIUsG=n4V^INXINalWjTg-nVFs4 z7G~&fd((Szk?dT{=H+=?Pmag#{m`qdsOa0W!fQWlUVeqy|LwDbD{61HwzNd3%NtKl zOiZ9hO48E#j+;Ob~wM4+wTuXOQnxio2|mi&cSjnS7rUSxzTm}H@^u&ZGV)Y7=wC14Qtj+hPWBA<-N$+ zdOLgjj!#XG2d(#N4pezt$V|)2c0Qh7o!J<3Kj(MTjb%Pvg6Ssn$u3RgbXjHPq(zId z;(1zAl4n2=kABK|iPdjt*|8fgGk%}=`}@PO0oGm1qC7(${8TYmUthnmD9iQ8#*{0@ zyz`AVC7(9t zrt2=Qt{qqF?X>an53$#>i$vq!{ZYD}II~n_=`X1pODT69?emKf4x19=R^=L#lQCtv znX2y&9X{N&?^TpAi0dB6!K2;W#wo``bc=>kf|130_*EbAE~eJnjsu=&#v?DiwZxQ` z7QtiTVU=&MlV2Kzuqub4VA98*FUi#LOKb&U1TH(PdePW4^GrHr#E1X(+NJIrJtc2G nZuqff%HHLE_`)|J-4YKwef0r7y6@ w_max) ? w_max : min; + min = (min < w_center) ? w_center : min; + + custom_state(PART:"filler", "idle", 0.0); + set_state_val(PART:"filler", STATE_MIN, min, min); + set_state_val(PART:"filler", STATE_MAX, min, min); + set_state(PART:"filler", "custom", 0.0); + + if (min >= w_max) { + if (get_int(g_full_state) == 0) { + emit("full", "prog"); + stop_programs_on(PART:"outline"); + run_program(PROGRAM:"outline,expand,noanim"); + } + set_int(g_full_state, 1); + } else { + if (get_int(g_full_state) == 1) { + emit("thin", "prog"); + } + set_int(g_full_state, 0); + } + set_int(g_filler_expanded, 1); + } + + public animator1(val, Float:pos) { + new pre_angle = get_int(g_angle_old); + new angle = get_int(g_angle); + + new delta_i; + new Float:delta; + new distance = angle - pre_angle; + new distance_r = (angle - pre_angle) - 360; + + if (abs(distance) < abs(distance_r)) { + delta_i = distance; + delta = float(distance); + } else { + delta_i = distance_r; + delta = float(distance_r); + } + + new Float:rot = float(pre_angle) + (delta * pos); + set_state_val(PART:"icon", STATE_MAP_ROT_Z, rot); + + if (pos >= 1.0) { + if (pre_angle + delta_i == -360) { + set_int(use_custom, 0); + set_int(g_angle_old, 0); + } else { + set_int(g_angle_old, pre_angle + delta_i); + } + run_program(PROGRAM:"rotation,end"); + } + } + + public change_angle(angle) { + if (get_int(use_custom) == 0) { + custom_state(PART:"icon", "default", 0.0); + set_state_val(PART:"icon", STATE_MAP_ON, 1); + set_state_val(PART:"icon", STATE_MAP_ROT_Z, 0.0); + set_state(PART:"icon", "custom", 0.0); + set_int(use_custom, 1); + } + + anim(0.3, "animator1", 1); + + set_int(g_angle, angle); + set_int(g_angle_new, angle); + } + + public message(Msg_Type:type, id, ...) { + if((type == MSG_INT_SET) && (id == 2)) { + new angle = getarg(2); + new is_busy = get_int(g_angle_busy); + + if (is_busy) { + set_int(g_angle_new, angle); + } else { + change_angle(angle); + set_int(g_angle_busy, 1); + } + } + else if((type == MSG_INT_SET) && (id == 1)) { + new enable = getarg(2); + + if (enable) { + set_int(g_anim_fill_enable, 1); + run_program(PROGRAM:"outline,expand"); + } else { + stop_programs_on(PART:"filler"); + run_program(PROGRAM:"outline,hide"); + run_program(PROGRAM:"filler,hide"); + set_int(g_anim_fill_enable, 0); + set_int(g_full_state, 0); + } + } + } + + public reset_circle() { + run_program(PROGRAM:"outline,shrink"); + new st[31]; + new Float:vl; + get_state(PART:"filler", st, 30, vl); + if (strcmp(st, "default") != 0) { + run_program(PROGRAM:"filler,idle"); + } + run_program(PROGRAM:"clipper,fadeout"); + set_int(g_anim_fill_enable, 0); + set_int(g_filler_expanded, 0); + } + } + program + { + name: "init.layout"; + signal: "load"; + source: ""; + script{ + set_int(g_mouse_down, 0); + set_int(g_angle, 0); + set_int(g_angle_new, 0); + set_int(g_angle_busy, 0); + set_int(g_anim_fill_enable, 0); + set_int(g_full_state, 0); + set_int(g_filler_expanded, 0); + set_int(use_custom, 0); + } + } + program + { + signal: "mouse,up,1"; + source: "event"; + script { + if (get_int(g_full_state) == 0) { + reset_circle(); + } + set_int(g_mouse_down, 0); + } + } + program + { + signal: "mouse,down,1"; + source: "event"; + script { + set_int(g_mouse_down, 1); + } + } + program + { + signal: "mouse,move"; + source: "event"; + script { + if (get_int(g_anim_fill_enable)) { + fill_circle(); + } + } + } + program + { + in: 0.25 0.0; + name: "clipper,fadeout"; + action: STATE_SET "fadeout" 0.0; + target: "clipper"; + transition: SIN_FAC 0.25 1.7; + after: "clipper,show"; + } + program + { + name: "clipper,show"; + action: STATE_SET "default" 0.0; + target: "clipper"; + } + program + { + name: "filler,idle"; + action: STATE_SET "idle" 0.0; + target: "filler"; + transition: SIN_FAC 0.5 1.7; + after: "filler,hide"; + } + program + { + name: "filler,hide"; + action: STATE_SET "default" 0.0; + target: "filler"; + } + program + { + name: "outline,shrink"; + action: STATE_SET "shrink" 0.0; + target: "outline"; + transition: SIN_FAC 0.5 1.7; + after: "outline,hide"; + } + program + { + name: "outline,hide"; + action: STATE_SET "default" 0.0; + target: "outline"; + } + program + { + name: "outline,expand"; + action: STATE_SET "idle" 0.0; + target: "outline"; + after: "outline,expand,after"; + } + program + { + name: "outline,expand,after"; + action: STATE_SET "expand" 0.0; + target: "outline"; + transition: SIN_FAC 0.2 1.7; + } + program + { + name: "outline,expand,noanim"; + action: STATE_SET "expand" 0.0; + target: "outline"; + } + program + { + name: "circle,reset"; + signal: "circle,reset"; + source: "prog"; + script { + reset_circle(); + } + } + program + { + name: "rotation,end"; + script { + new angle_old; + new angle_new; + + angle_old = get_int(g_angle); + angle_new = get_int(g_angle_new); + + if (angle_old != angle_new) { + change_angle(angle_new); + set_int(g_angle_busy, 1); + } else { + set_int(g_angle_busy, 0); + } + } + } + } + } + + group + { + name: "camera_icon"; + parts + { + part { + name : "icon"; + type : IMAGE; + scale : 1; + description { + state : "default" 0.0; + visible: 1; + image.normal : "quick_shot.png"; + visible : 1; + } + description { + state : "release" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state : "press" 0.0; + inherit: "default" 0.0;; + image.normal : "quick_shot_drag.png"; + } + } + part + { + name: "event"; + type: RECT; + scale: 1; + mouse_events: 1; + description + { + state: "default" 0.0; + color: 0 0 0 0; + visible: 1; + } + } + } + programs + { + program + { + signal: "mouse,down,1"; + source: "event"; + action: STATE_SET "press" 0.0; + target: "icon"; + } + program + { + signal: "mouse,up,1"; + source: "event"; + action: STATE_SET "release" 0.0; + target: "icon"; + } + } + } + + group + { + name: "camera_cue_1"; + parts + { + part { + name : "icon"; + type : IMAGE; + scale : 1; + description { + state : "default" 0.0; + visible: 1; + image.normal : "camera_default_arrow.png"; + color: 0 0 0 0; + visible : 0; + } + description { + state : "ready" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state : "fadein" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + visible: 1; + } + description { + state : "fadeout" 0.0; + color: 0 0 0 0; + visible: 1; + } + } + part + { + name: "event"; + type: RECT; + scale: 1; + mouse_events: 1; + description + { + state: "default" 0.0; + color: 0 0 0 0; + visible: 1; + } + } + } + programs + { + script + { + public g_count; + public g_enable; + } + program + { + name: "arrow,fadein,before"; + in: 0.5 0.0; + script: { + if (get_int(g_enable)) { + run_program(PROGRAM:"arrow,fadein"); + } else { + set_state(PART:"icon", "default", 0.0); + } + } + } + program + { + name: "arrow,fadein"; + action: STATE_SET "fadein" 0.0; + target: "icon"; + transition: ACCELERATE 0.5; + after: "arrow,fadeout"; + } + program + { + name: "arrow,fadeout"; + action: STATE_SET "fadeout" 0.0; + target: "icon"; + transition: ACCELERATE 0.45; + after: "arrow,fadeout,after"; + } + program + { + name: "arrow,fadeout,after"; + script: { + set_int(g_count, get_int(g_count) + 1); + if (get_int(g_count) < 3 && get_int(g_enable)) { + run_program(PROGRAM:"arrow,fadein,before"); + } else { + set_state(PART:"icon", "default", 0.0); + } + } + } + program + { + signal: "anim,start"; + source: "prog"; + script { + set_int(g_enable, 1); + set_int(g_count, 0); + set_state(PART:"icon", "ready", 0.0); + run_program(PROGRAM:"arrow,fadein,before"); + } + } + program + { + signal: "anim,stop"; + source: "prog"; + script { + set_int(g_count, 5); + set_int(g_enable, 0); + } + } + program + { + signal: "hide"; + source: "prog"; + script { + set_int(g_count, 5); + set_int(g_enable, 0); + stop_program(PROGRAM:"arrow,fadein,before"); + stop_program(PROGRAM:"arrow,fadein"); + stop_program(PROGRAM:"arrow,fadeout"); + stop_program(PROGRAM:"arrow,fadeout,after"); + stop_programs_on(PART:"icon"); + set_state(PART:"icon", "default", 0.0); + } + } + } + } +} diff --git a/data/lockscreen-entry.edc b/data/lockscreen-entry.edc index ccb6a6e..2ab3bf3 100755 --- a/data/lockscreen-entry.edc +++ b/data/lockscreen-entry.edc @@ -1,51 +1,58 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved * - * Licensed under the Flora License, Version 1.1 (the License); + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, + * 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. */ collections { + base_scale: 1.8; group { name: "elm/entry/base-single/default"; - data.item: "default_font_size" "24"; + data.item: "default_font_size" "43"; data.item: "min_font_size" "8"; data.item: "max_font_size" "60"; styles { - style { - name: "entry_single_textblock_style"; - base: "font=Tizen:style=Light text_class=tizen font_size=88 color=#F9F9F9FF wrap=none"; - tag: "br" "\n"; - tag: "ps" "ps"; - tag: "tab" "\t"; - tag: "em" "+ font=Tizen:style=Oblique"; - tag: "b" "+ font=Tizen:style=Bold"; - tag: "link" "+ color=#800 underline=on underline_color=#8008"; - tag: "hilight" "+ font=Tizen:style=Bold"; - tag: "preedit" "+ underline=on underline_color=#000000FF"; - tag: "preedit_sel" "+ backing=on backing_color=#000000FF color=#FFFFFFFF"; + style { name: "entry_single_textblock_style"; + base: "font=Tizen:style=Roman font_size=43 align=center color=#FFFFFFFF wrap=none left_margin=1 right_margin=3 text_class=Tizen style=shadow shadow_color=#000000bf"; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "tab" "\t"; + tag: "em" "+ font=Tizen:style=Oblique"; + tag: "b" "+ font=Tizen:style=Bold"; + tag: "link" "+ color=#800 underline=on underline_color=#8008"; + tag: "hilight" "+ font=Tizen:style=Bold"; + tag: "preedit" "+ underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC; + tag: "preedit_sel" "+ backing=on backing_color="ENTRY_PREEDIT_BACKGROUND_COLOR_INC" color="ENTRY_PREEDIT_TEXT_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC; + tag: "preedit_sub1" "+ backing=on backing_color="ENTRY_PREEDIT_SUB1_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC; + tag: "preedit_sub2" "+ backing=on backing_color="ENTRY_PREEDIT_SUB2_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC; + tag: "preedit_sub3" "+ backing=on backing_color="ENTRY_PREEDIT_SUB3_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC; + tag: "preedit_sub4" "+ backing=on backing_color="ENTRY_PREEDIT_SUB4_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC; } - style { - name: "entry_single_textblock_disabled_style"; - base: "font=Tizen:style=Light text_class=tizen font_size=88 color=#00000080 wrap=none"; - tag: "br" "\n"; - tag: "ps" "ps"; - tag: "tab" "\t"; - tag: "em" "+ font=Tizen:style=Oblique"; - tag: "b" "+ font=Tizen:style=Bold"; - tag: "link" "+ color=#00000080 underline=on underline_color=#00000080"; - tag: "hilight" "+ font=Tizen:style=Bold"; - tag: "preedit" "+ underline=on underline_color=#000000FF"; - tag: "preedit_sel" "+ backing=on backing_color=#000000FF color=#FFFFFFFF"; + style { name: "entry_single_textblock_disabled_style"; + base: "font=Tizen:style=Roman font_size=43 color=00000080 wrap=none left_margin=1 right_margin=3 text_class=Tizen"; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "tab" "\t"; + tag: "em" "+ font=Tizen:style=Oblique"; + tag: "b" "+ font=Tizen:style=Bold"; + tag: "link " "+ color=#00000080 underline=on underline_color=#00000080"; + tag: "hilight" "+ font=Tizen:style=Bold"; + tag: "preedit" "+ underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC; + tag: "preedit_sel" "+ backing=on backing_color="ENTRY_PREEDIT_BACKGROUND_COLOR_INC" color="ENTRY_PREEDIT_TEXT_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC; + tag: "preedit_sub1" "+ backing=on backing_color="ENTRY_PREEDIT_SUB1_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC; + tag: "preedit_sub2" "+ backing=on backing_color="ENTRY_PREEDIT_SUB2_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC; + tag: "preedit_sub3" "+ backing=on backing_color="ENTRY_PREEDIT_SUB3_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC; + tag: "preedit_sub4" "+ backing=on backing_color="ENTRY_PREEDIT_SUB4_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC; } } data { @@ -55,6 +62,7 @@ collections { part { name: "entry.swallow.background"; type: SWALLOW; + scale: 1; description { state: "default" 0.0; visible: 1; @@ -120,7 +128,7 @@ collections { } group { name: "elm/entry/base-password/lockscreen_complex_password_style"; - data.item: "default_font_size" "24"; + data.item: "default_font_size" "43"; data.item: "min_font_size" "8"; data.item: "max_font_size" "60"; data { @@ -130,6 +138,7 @@ collections { part { name: "entry.swallow.background"; type: SWALLOW; + scale: 1; description { state: "default" 0.0; visible: 1; @@ -156,10 +165,9 @@ collections { state: "default" 0.0; text { style: "entry_single_textblock_style"; - repch: "*"; + repch: "•"; min: 1 1; max: 0 0; - align: 0.0 0.5; } } description { @@ -463,6 +471,7 @@ collections { part { name: "bg"; type: RECT; + scale: 1; mouse_events: 0; description { state: "default" 0.0; diff --git a/data/lockscreen-lite.edc b/data/lockscreen-lite.edc new file mode 100755 index 0000000..7cf1383 --- /dev/null +++ b/data/lockscreen-lite.edc @@ -0,0 +1,890 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define WINDOW_HEIGHT 800 +#define WINDOW_WIDTH 480 +#define INDICATOR_SIZE 36 + +#define MSG_ID 1 + +#define MSG_KEY_DISTANCE 2 +#define MSG_KEY_PASSWORD 3 +#define MSG_KEY_SCALED_UNLOCK_DISTANCE 4 +#define MSG_KEY_WIN_W 5 +#define MSG_KEY_CAMERA 6 +#define MSG_KEY_EMERGENCY 7 + +#define UNLOCK_DISTANCE 305 +#define DIM_THREHONLD 50 + +#define PART_DBG(part_name, R, G, B, A) \ +part { \ +name: part_name",dbg"; \ +type: RECT; \ +mouse_events: 1; \ +repeat_events: 1; \ +description { \ +state: "default" 0.0; \ +rel1.relative: 0.0 0.0; \ +rel2.relative: 1.0 1.0; \ +rel1.to: part_name; \ +rel2.to: part_name; \ +color: R G B A; \ +} \ +} \ + +color_classes +{ + color_class { name: "effect_cc_reverse_init"; color: 255 255 255 0; } + color_class { name: "effect_cc_reverse_auto"; color: 255 255 255 255; } +} + +collections +{ + base_scale: 1.8; + group + { + name: "lockscreen-lite"; + + images + { + image : "gradation_bg.#.png" COMP; + } + + parts + { + part { + name: "bg"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 {relative: 0.0 0.0;} + rel2 {relative: 1.0 1.0;} + } + } + + part { + name : "vi_clipper"; + type : RECT; + scale : 1; + description { + state : "default" 0.0; + color : 255 255 255 255; + } + description { + state : "effect" 0.0; + color_class : "effect_cc"; + } + description { + state : "effect_init" 0.0; + color : 255 255 255 234; + } + description { + state : "effect_auto" 0.0; + inherit : "default" 0.0; + color : 255 255 255 0; + } + } + + part { + name : "vi_clipper_bg"; + type : RECT; + scale : 1; + description { + state : "default" 0.0; + color : 255 255 255 255; + } + description { + state : "effect_fading"; + inherit : "default" 0.0; + color : 255 255 255 0; + } + } + + part { + name : "vi_clipper_reverse"; + type : RECT; + scale : 1; + description { + state : "default" 0.0; + color_class : "effect_cc_reverse_init"; + } + description { + state : "effect" 0.0; + inherit : "default" 0.0; + color_class : "effect_cc_reverse"; + } + description { + state : "effect_auto" 0.0; + inherit : "default" 0.0; + color_class : "effect_cc_reverse_auto"; + } + description { + state : "effect_fading"; + inherit : "default" 0.0; + color_class : "effect_cc_reverse_init"; + } + } + + part { + name : "vi_clipper_camera"; + type : RECT; + scale : 1; + description { + state : "default" 0.0; + color_class : "effect_cc_reverse_init"; + } + description { + state : "show" 0.0; + color_class : "effect_cc_reverse_auto"; + } + description { + state : "effect" 0.0; + inherit : "show" 0.0; + color_class : "effect_cc_camera"; + } + description { + state : "effect_auto" 0.0; + inherit : "show" 0.0; + color_class : "effect_cc_reverse_init"; + } + description { + state : "effect_fading" 0.0; + inherit : "show" 0.0; + color_class : "effect_cc_reverse_auto"; + } + } + + part { + name : "sw.bg"; + type : SWALLOW; + clip_to : "vi_clipper_bg"; + scale : 1; + description { + state : "default" 0.0; + fixed : 1 1; + } + description { + state : "effect_unlock" 0.0; + fixed : 1 1; + rel1 { + relative : 0.0 -1.0; + to : "bg"; + } + rel2 { + relative : 1.0 0.0; + to : "bg"; + } + } + } + + part + { + name: "music_dim"; + type: RECT; + scale : 1; + description + { + state: "default" 0.0; + rel1 {relative: 0.0 0.0; to: "sw.bg";} + rel2 {relative: 1.0 1.0; to: "sw.bg";} + color: 0 0 0 0; + visible: 0; + } + description + { + state: "music_on" 0.0; + inherit: "default" 0.0; + color: 20 20 20 100; + visible: 1; + } + } + + part { + name : "img.bg_gradation"; + type : IMAGE; + scale : 1; + description { + state : "default" 0.0; + rel1 { + relative : 0.0 0.0; + to : "bg"; + } + rel2 { + relative : 1.0 38/WINDOW_HEIGHT; + to : "bg"; + } + image.normal : "gradation_bg.#.png"; + } + description { + state : "hidden" 0.0; + visible : 0; + } + } + + /* password layout for VI */ + part { + name : "password_rect"; + type : RECT; + scale : 1; + clip_to : "vi_clipper_reverse"; + description { + state : "default" 0.0; + visible : 0; + } + description { + state : "effect_init" 0.0; + visible : 1; + color : 0 0 0 102; + } + description { + state : "effect_end" 0.0; + inherit : "effect_init"; + visible : 1; + } + description { + state : "effect_auto" 0.0; + inherit : "effect_init"; + visible : 1; + } + description { + state : "effect_unlock" 0.0; + inherit : "effect_init"; + rel1 { + relative : 0.0 -1.0; + to : "bg"; + } + rel2 { + relative : 1.0 0.0; + to : "bg"; + } + } + } + part { + name : "password_ly"; + type : SWALLOW; + scale : 1; + clip_to : "vi_clipper_reverse"; + description { + state : "default" 0.0; + visible : 0; + } + description { + state : "effect_init" 0.0; + visible : 1; + } + description { + state : "effect_end" 0.0; + visible : 1; + } + description { + state : "effect_auto" 0.0; + visible : 1; + } + description { + state : "effect_unlock" 0.0; + rel1 { + relative : 0.0 -1.0; + to : "bg"; + } + rel2 { + relative : 1.0 0.0; + to : "bg"; + } + } + } + part { + name : "password_block"; + type : RECT; + scale : 1; + description { + state : "default" 0.0; + visible : 1; + color : 0 0 0 0; + } + description { + state : "effect_init" 0.0; + visible : 1; + color : 0 0 0 0; + } + description { + state : "effect_end" 0.0; + inherit : "default" 0.0; + visible : 0; + } + description { + state : "effect_auto" 0.0; + inherit : "default" 0.0; + color : 0 0 0 0; + visible : 0; + } + } + + /* Main contents area */ + part { + name : "default_layout"; + type : SWALLOW; + scale : 1; + clip_to : "vi_clipper"; + description { + state : "default" 0.0; + rel1 { + relative : 0.0 INDICATOR_SIZE/WINDOW_HEIGHT; + to : "bg"; + } + rel2 { + relative : 1.0 1.0; + to : "bg"; + } + } + description { + state : "effect" 0.0; + inherit: "default" 0.0; + rel1.offset : 0 -73; + rel2.offset : 0 -73; + } + description { + state : "effect_init" 0.0; + inherit: "default" 0.0; + rel1.offset : 0 -6; + rel2.offset : 0 -6; + } + description { + state : "effect_auto"; + inherit : "default" 0.0; + rel1.relative : 0.0 -1.0; + rel2.relative : 1.0 0.0; + } + } + + /* camera icon for VI */ + part { + name : "camera_icon"; + type : RECT; + scale : 1; + mouse_events: 0; + description { + state : "default" 0.0; + align : 1.0 1.0; + fixed : 1 1; + min: 90 90; + max: 90 90; + rel1 { + relative : (WINDOW_WIDTH-23)/WINDOW_WIDTH (WINDOW_HEIGHT-23)/WINDOW_HEIGHT; + to : "sw.bg"; + } + rel2 { + relative : (WINDOW_WIDTH-23)/WINDOW_WIDTH (WINDOW_HEIGHT-23)/WINDOW_HEIGHT; + to : "sw.bg"; + } + color: 0 0 0 0; + } + description { + state : "show" 0.0; + inherit : "default" 0.0; + } + description { + state : "pressed" 0.0; + inherit : "default" 0.0; + } + description { + state : "effect_auto"; + inherit : "default" 0.0; + rel1 { + relative : (WINDOW_WIDTH-23)/WINDOW_WIDTH 1+(WINDOW_HEIGHT-23)/WINDOW_HEIGHT; + to : "sw.bg"; + } + rel2 { + relative : (WINDOW_WIDTH-23)/WINDOW_WIDTH 1+(WINDOW_HEIGHT-23)/WINDOW_HEIGHT; + to : "sw.bg"; + } + } + } + part { + name : "camera_icon_swallow"; + type : SWALLOW; + scale : 1; + clip_to : "vi_clipper_camera"; + mouse_events: 1; + repeat_events: 1; + description { + state : "default" 0.0; + fixed : 1 1; + min : 383 383; + max : 383 383; + rel1 { + relative : 0.5 0.5; + to : "camera_icon"; + } + rel2 { + relative : 0.5 0.5; + to : "camera_icon"; + } + visible : 1; + align : 0.5 0.5; + } + } + /* Bottom */ + part { + name : "control_panel"; + type : SWALLOW; + scale : 1; + clip_to : "vi_clipper"; + description { + state : "default" 0.0; + rel1 { + relative : 0.0 (WINDOW_HEIGHT-23-90)/WINDOW_HEIGHT; to : "bg"; + } + rel2 { + relative : 1.0 1.0; to : "bg"; + } + } + description { + state : "effect" 0.0; + inherit: "default" 0.0; + rel1.offset : 0 63; + rel2.offset : 0 63; + } + description { + state : "effect_init" 0.0; + inherit: "default" 0.0; + rel1.offset : 0 5; + rel2.offset : 0 5; + } + description { + state : "effect_auto"; + inherit : "default" 0.0; + rel1.relative : 0.0 1.0; + rel2.relative : 1.0 2.0; + } + } + } + + programs + { + program + { + name: "music_on"; + signal: "music_on"; + source: "bg"; + action: STATE_SET "music_on" 0.0; + target: "music_dim"; + } + + program + { + name: "music_off"; + signal: "music_off"; + source: "bg"; + action: STATE_SET "default" 0.0; + target: "music_dim"; + } + + /* camera icon */ + program + { + name : "show.camera.icon"; + signal : "show.camera.icon"; + action : STATE_SET "show" 0.0; + source : ""; + target : "camera_icon"; + target : "vi_clipper_camera"; + } + program + { + name : "hide.camera.icon"; + signal : "hide.camera.icon"; + action : STATE_SET "defaul" 0.0; + source : ""; + target : "camera_icon"; + target : "vi_clipper_camera"; + } + + + /* affordance */ + program { + name : "vi_effect_start"; + signal : "vi_effect_start"; + source : "bg"; + action : STATE_SET "effect_init" 0.0; + target : "password_ly"; + target : "password_block"; + target : "password_rect"; + after : "vi_effect_start_affordance"; + } + program + { + name : "vi_effect_start_affordance"; + signal : "vi_effect_start"; + source : "bg"; + action : STATE_SET "effect_init" 0.0; + target : "default_layout"; + target : "control_panel"; + target : "vi_clipper"; + transition : SIN_FAC 0.1 1.7; + } + + program + { + name : "set_default"; + signal : "set_default"; + source : "bg"; + action : STATE_SET "default" 0.0; + script { + stop_program(PROGRAM:"vi_effect_unlock_fadding"); + stop_program(PROGRAM:"vi_effect_unlock"); + stop_programs_on(PART:"default_layout"); + stop_programs_on(PART:"control_panel"); + stop_programs_on(PART:"control_panel"); + stop_programs_on(PART:"vi_clipper"); + stop_programs_on(PART:"sw.bg"); + stop_programs_on(PART:"vi_clipper_bg"); + stop_programs_on(PART:"vi_clipper_reverse"); + stop_programs_on(PART:"password_rect"); + stop_programs_on(PART:"password_block"); + stop_programs_on(PART:"password_ly"); + set_state(PART:"default_layout", "default", 0.0); + set_state(PART:"control_panel", "default", 0.0); + set_state(PART:"vi_clipper", "default", 0.0); + set_state(PART:"sw.bg", "default", 0.0); + set_state(PART:"vi_clipper_bg", "default", 0.0); + set_state(PART:"vi_clipper_reverse", "default", 0.0); + set_state(PART:"password_rect", "default", 0.0); + set_state(PART:"password_block", "default", 0.0); + set_state(PART:"password_ly", "default", 0.0); + } + } + program + { + name : "set_default_with_transition"; + signal : "set_default_with_transition"; + source : "bg"; + action : STATE_SET "default" 0.0; + target : "default_layout"; + target : "control_panel"; + target : "vi_clipper"; + target : "sw.bg"; + target : "vi_clipper_bg"; + + target : "vi_clipper_reverse"; + target : "password_rect"; + target : "password_block"; + target : "password_ly"; + + transition : LINEAR 0.2; + } + + program + { + name : "set_camera_default"; + signal : "set_camera_default"; + source : "bg"; + action : STATE_SET "show" 0.0; + + target : "vi_clipper_camera"; + target : "camera_icon"; + } + program + { + name : "set_camera_default_with_transition"; + signal : "set_camera_default_with_transition"; + source : "bg"; + action : STATE_SET "show" 0.0; + + target : "vi_clipper_camera"; + target : "camera_icon"; + + transition : LINEAR 0.2; + } + + program + { + name : "set_password_with_transition_after"; + signal : "set_layout_with_transition_after"; + source : "bg"; + action : STATE_SET "effect_auto" 0.0; + target : "default_layout"; + target : "control_panel"; + target : "vi_clipper"; + + target : "vi_clipper_reverse"; + + target : "password_block"; + target : "password_rect"; + + target : "camera_icon"; + target : "vi_clipper_camera"; + + transition : LINEAR 0.5; + } + program + { + name : "set_password_with_transition"; + signal : "set_password_with_transition"; + source : "bg"; + action : STATE_SET "effect_init" 0.0; + target : "password_ly"; + after : "set_password_with_transition_after"; + } + + program + { + name : "set_password"; + signal : "set_password"; + source : "bg"; + action : STATE_SET "effect_auto" 0.0; + target : "default_layout"; + target : "control_panel"; + target : "vi_clipper"; + target : "sw.bg"; + + target : "vi_clipper_reverse"; + + target : "password_block"; + target : "password_ly"; + target : "password_rect"; + } + + program + { + name : "vi_effect_stop_after"; + action : SIGNAL_EMIT "vi_effect_stop_after" "*"; + } + program + { + name : "vi_effect_stop"; + signal : "vi_effect_stop"; + source : "bg"; + action : STATE_SET "default" 0.0; + target : "default_layout"; + target : "control_panel"; + target : "vi_clipper"; + + transition : BOUNCE 0.6 2.5 3.0; + + after : "vi_effect_stop_after"; + } + + program + { + name : "vi_effect_stop_camera"; + signal : "vi_effect_stop_camera"; + source : "bg"; + action : STATE_SET "show" 0.0; + target : "camera_icon"; + target : "vi_clipper_camera"; + + transition : BOUNCE 0.6 2.5 3.0; + } + + program + { + name : "vi_effect_stop_behind"; + signal : "vi_effect_stop_behind"; + source : "bg"; + action : STATE_SET "default" 0.0; + target : "vi_clipper_reverse"; + + transition : LINEAR 0.25; + } + + program + { + name : "vi_simple_password_start"; + signal : "vi_simple_password_start"; + source : "bg"; + action : STATE_SET "effect" 0.0; + target : "password_rect"; + transition : LINEAR 0.5; + } + + program + { + name : "vi_effect_unlock_end"; + signal : "vi_effect_unlock_end"; + action : SIGNAL_EMIT "vi_effect_unlock_end" "*"; + } + + program + { + name : "vi_effect_unlock"; + signal : "vi_effect_unlock"; + source : "sw.bg"; + action : STATE_SET "effect_unlock" 0.0; + target : "sw.bg"; + target : "password_ly"; + target : "password_rect"; + transition : SIN_FAC 0.5 1.7; + after : "vi_effect_unlock_end"; + } + + program + { + name : "vi_effect_unlock_fadding"; + signal : "vi_effect_unlock_fadding"; + source : "sw.bg"; + action : STATE_SET "effect_fading" 0.0; + target : "vi_clipper_bg"; + target : "vi_clipper_reverse"; + transition : SIN_FAC 0.5 1.7; + after : "vi_effect_unlock_end"; + } + + program { + name : "hide_ly_hide_img"; + signal : "hide_ly_hide_img"; + source : "bg"; + action : STATE_SET "default" 0.0; + target : "vi_clipper_reverse"; + target : "password_ly"; + target : "password_rect"; + } + + program { + name : "hide_ly_hide_img_with_transition"; + signal : "hide_ly_hide_img_with_transition"; + source : "bg"; + action : STATE_SET "default" 0.0; + target : "password_ly"; + target : "password_rect"; + after : "img_with_transiton"; + } + + program { + name : "img_with_transiton"; + signal : "img_with_transition"; + source : "bg"; + action : STATE_SET "default" 0.0; + target : "vi_clipper_reverse"; + target : "password_ly"; + target : "password_rect"; + transition : LINEAR 0.2; + } + + /* status bar gradation */ + program { + name : "show.gradation"; + signal : "show.gradation"; + source : ""; + action : STATE_SET "default" 0.0; + target : "img.bg_gradation"; + } + program { + name : "hide.gradation"; + signal : "hide.gradation"; + source : ""; + action : STATE_SET "hidden" 0.0; + target : "img.bg_gradation"; + } + + script { + + public v_is_camera_unlock; + + public message(Msg_Type:type, id, ...) { + if((type == MSG_INT_SET) && (id == MSG_ID)) { + new distance = getarg(MSG_KEY_DISTANCE); + new is_pw = getarg(MSG_KEY_PASSWORD); + new scaled_unlock_distance = getarg(MSG_KEY_SCALED_UNLOCK_DISTANCE); + new win_w = getarg(MSG_KEY_WIN_W); + new is_camera = getarg(MSG_KEY_CAMERA); + new is_emergency = getarg(MSG_KEY_EMERGENCY); + + new default_layout_offset = (-73*distance)/scaled_unlock_distance; + + if(distance >= (scaled_unlock_distance-10)) { + custom_state(PART:"default_layout", "default", 0.0); + set_state_val(PART:"default_layout", STATE_VISIBLE, 0); + set_state(PART:"default_layout", "custom", 0.0); + } else { + custom_state(PART:"default_layout", "default", 0.0); + set_state_val(PART:"default_layout", STATE_VISIBLE, 1); + set_state_val(PART:"default_layout", STATE_MAX, win_w, -1); + set_state_val(PART:"default_layout", STATE_REL1_OFFSET, 0, default_layout_offset); + set_state_val(PART:"default_layout", STATE_REL2_OFFSET, 0, default_layout_offset); + set_state(PART:"default_layout", "custom", 0.0); + } + + new control_panel_offset = (63*distance)/scaled_unlock_distance; + + if(distance >= (scaled_unlock_distance-10)) { + custom_state(PART:"control_panel", "default", 0.0); + set_state_val(PART:"control_panel", STATE_VISIBLE, 0); + set_state(PART:"control_panel", "custom", 0.0); + } else { + custom_state(PART:"control_panel", "default", 0.0); + set_state_val(PART:"control_panel", STATE_VISIBLE, 1); + set_state_val(PART:"control_panel", STATE_REL1_OFFSET, 0, control_panel_offset); + set_state_val(PART:"control_panel", STATE_REL2_OFFSET, 0, control_panel_offset); + set_state(PART:"control_panel", "custom", 0.0); + } + + new cc = (255*(scaled_unlock_distance-distance))/scaled_unlock_distance; + set_state(PART:"vi_clipper", "effect", 0.0); + if(is_emergency == 0) { + set_color_class("effect_cc", 255, 255, 255, cc); + } else { + if(distance >= (scaled_unlock_distance-10)) { + set_color_class("effect_cc", 255, 255, 255, cc); + } else { + set_color_class("effect_cc", 255, 255, 255, 255); + } + } + + if(is_camera == 1) { + custom_state(PART:"camera_icon", "show", 0.0); + set_state_val(PART:"camera_icon", STATE_REL1_OFFSET, 0, control_panel_offset); + set_state_val(PART:"camera_icon", STATE_REL2_OFFSET, 0, control_panel_offset); + set_state(PART:"camera_icon", "custom", 0.0); + + set_state(PART:"vi_clipper_camera", "effect", 0.0); + if(is_emergency == 0) { + set_color_class("effect_cc_camera", 255, 255, 255, cc); + } else { + set_color_class("effect_cc_camera", 255, 255, 255, 255); + } + } else if (is_camera == 2) { + set_state(PART:"camera_icon", "pressed", 0.0); + } else { + set_state(PART:"camera_icon", "default", 0.0); + } + + if(is_pw == 1) { + /* password */ + if(distance >= DIM_THREHONLD) { + new cc_reverse = (255*(distance-DIM_THREHONLD))/(scaled_unlock_distance-DIM_THREHONLD); + set_state(PART:"vi_clipper_reverse", "effect", 0.0); + if(is_emergency == 0) { + set_color_class("effect_cc_reverse", 255, 255, 255, cc_reverse); + } else { + set_color_class("effect_cc_reverse", 255, 255, 255, 0); + } + } + if(distance >= (scaled_unlock_distance-10)) { + set_state(PART:"password_block", "effect_end", 0.0); + if(is_emergency == 1) { + set_state(PART:"vi_clipper_reverse", "effect", 0.0); + set_color_class("effect_cc_reverse", 255, 255, 255, 255); + } + } + } + } + } + } + } + } +} diff --git a/data/lockscreen.edc b/data/lockscreen.edc deleted file mode 100755 index 6ab9cf7..0000000 --- a/data/lockscreen.edc +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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. - */ - -collections { - #include "groups/lock-main.edc" - #include "groups/lock-info.edc" - #include "groups/lock-noti.edc" - #include "groups/lock-simple-password.edc" - #include "groups/lock-complex-password.edc" - #include "groups/lock-slider.edc" -} diff --git a/data/notification-item.edc b/data/notification-item.edc new file mode 100755 index 0000000..52f645a --- /dev/null +++ b/data/notification-item.edc @@ -0,0 +1,408 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define NOTIFICATION_ITEM_WIDTH 480 +#define NOTIFICATION_ITEM_HEIGHT 87 +#define NOTIFICATION_SEPARATOR_WIDTH 460 +#define NOTIFICATION_SEPARATOR_HEIGHT 1 + +#define CONTENT_SIZE 240 +#define ICON_SIZE 48 +#define VARIABLE_BG_SIZE_ONE_DIGIT 21 +#define VARIABLE_BG_SIZE_TWO_DIGITS 34 +#define VARIABLE_BG_SIZE_THREE_DIGITS 47 +#define VARIABLE_BG_SIZE_MORE_DIGITS 60 +#define TIME_TEXT_SIZE 56 + +#define PADDING_LEFT 30/NOTIFICATION_ITEM_WIDTH +#define PADDING_RIGHT 30 +#define PADDING_ICON 15 +#define PADDING_TITLE 12 +#define PADDING_VARIABLE 4 + +#define ICON_MAX_X 78/NOTIFICATION_ITEM_WIDTH + +#define _NOTIFICATION_TITLE_SELECTED_X_MIN 78 +#define _NOTIFICATION_TITLE_SELECTED_X_MAX 465 +#define _NOTIFICATION_TITLE_SELECTED_Y_MIN 0 +#define _NOTIFICATION_TITLE_SELECTED_Y_MAX 0 + +#define _NOTIFICATION_DETAILS_SELECTED_X_MIN 78 +#define _NOTIFICATION_DETAILS_SELECTED_X_MAX 465 +#define _NOTIFICATION_DETAILS_SELECTED_Y_MIN (6) +#define _NOTIFICATION_DETAILS_SELECTED_Y_MAX (84) + +#define _NOTIFICATION_ICON_X_MIN 15 +#define _NOTIFICATION_ICON_X_MAX (15+48) +#define _NOTIFICATION_ICON_Y_MIN (19) +#define _NOTIFICATION_ICON_Y_MAX (19+48) + +#define _NOTIFICATION_TITLE_DEFAULT_X_MIN (15+48+15) +#define _NOTIFICATION_TITLE_DEFAULT_X_MAX (340) +#define _NOTIFICATION_TITLE_DEFAULT_Y_MIN (10) +#define _NOTIFICATION_TITLE_DEFAULT_Y_MAX (47) + +#define _NOTIFICATION_DETAILS_DEFAULT_X_MIN (15+48+15) +#define _NOTIFICATION_DETAILS_DEFAULT_X_MAX (340) +#define _NOTIFICATION_DETAILS_DEFAULT_Y_MIN (49) +#define _NOTIFICATION_DETAILS_DEFAULT_Y_MAX (49+27) + +#define _NOTIFICATION_TIME_X_MIN (340+15) +#define _NOTIFICATION_TIME_X_MAX (480-15) +#define _NOTIFICATION_TIME_Y_MIN (49) +#define _NOTIFICATION_TIME_Y_MAX (49+27) + +#define _NOTIFICATION_COUNT_X_MIN (340+15) +#define _NOTIFICATION_COUNT_X_MAX (480-15) +#define _NOTIFICATION_COUNT_Y_MIN (15) +#define _NOTIFICATION_COUNT_Y_MAX (14+27) + +#define NOTIFICATION_TITLE_SELECTED_X_MIN _NOTIFICATION_TITLE_SELECTED_X_MIN/NOTIFICATION_ITEM_WIDTH +#define NOTIFICATION_TITLE_SELECTED_X_MAX _NOTIFICATION_TITLE_SELECTED_X_MAX/NOTIFICATION_ITEM_WIDTH +#define NOTIFICATION_TITLE_SELECTED_Y_MIN _NOTIFICATION_TITLE_SELECTED_Y_MIN/NOTIFICATION_ITEM_HEIGHT +#define NOTIFICATION_TITLE_SELECTED_Y_MAX _NOTIFICATION_TITLE_SELECTED_Y_MAX/NOTIFICATION_ITEM_HEIGHT + +#define NOTIFICATION_DETAILS_SELECTED_X_MIN _NOTIFICATION_DETAILS_SELECTED_X_MIN/NOTIFICATION_ITEM_WIDTH +#define NOTIFICATION_DETAILS_SELECTED_X_MAX _NOTIFICATION_DETAILS_SELECTED_X_MAX/NOTIFICATION_ITEM_WIDTH +#define NOTIFICATION_DETAILS_SELECTED_Y_MIN _NOTIFICATION_DETAILS_SELECTED_Y_MIN/NOTIFICATION_ITEM_HEIGHT +#define NOTIFICATION_DETAILS_SELECTED_Y_MAX _NOTIFICATION_DETAILS_SELECTED_Y_MAX/NOTIFICATION_ITEM_HEIGHT + +#define NOTIFICATION_TITLE_DEFAULT_X_MIN _NOTIFICATION_TITLE_DEFAULT_X_MIN/NOTIFICATION_ITEM_WIDTH +#define NOTIFICATION_TITLE_DEFAULT_X_MAX _NOTIFICATION_TITLE_DEFAULT_X_MAX/NOTIFICATION_ITEM_WIDTH +#define NOTIFICATION_TITLE_DEFAULT_Y_MIN _NOTIFICATION_TITLE_DEFAULT_Y_MIN/NOTIFICATION_ITEM_HEIGHT +#define NOTIFICATION_TITLE_DEFAULT_Y_MAX _NOTIFICATION_TITLE_DEFAULT_Y_MAX/NOTIFICATION_ITEM_HEIGHT + +#define NOTIFICATION_DETAILS_DEFAULT_X_MIN _NOTIFICATION_DETAILS_DEFAULT_X_MIN/NOTIFICATION_ITEM_WIDTH +#define NOTIFICATION_DETAILS_DEFAULT_X_MAX _NOTIFICATION_DETAILS_DEFAULT_X_MAX/NOTIFICATION_ITEM_WIDTH +#define NOTIFICATION_DETAILS_DEFAULT_Y_MIN _NOTIFICATION_DETAILS_DEFAULT_Y_MIN/NOTIFICATION_ITEM_HEIGHT +#define NOTIFICATION_DETAILS_DEFAULT_Y_MAX _NOTIFICATION_DETAILS_DEFAULT_Y_MAX/NOTIFICATION_ITEM_HEIGHT + +#define NOTIFICATION_TIME_X_MIN _NOTIFICATION_TIME_X_MIN/NOTIFICATION_ITEM_WIDTH +#define NOTIFICATION_TIME_X_MAX _NOTIFICATION_TIME_X_MAX/NOTIFICATION_ITEM_WIDTH +#define NOTIFICATION_TIME_Y_MIN _NOTIFICATION_TIME_Y_MIN/NOTIFICATION_ITEM_HEIGHT +#define NOTIFICATION_TIME_Y_MAX _NOTIFICATION_TIME_Y_MAX/NOTIFICATION_ITEM_HEIGHT + +#define NOTIFICATION_COUNT_X_MIN _NOTIFICATION_COUNT_X_MIN/NOTIFICATION_ITEM_WIDTH +#define NOTIFICATION_COUNT_X_MAX _NOTIFICATION_COUNT_X_MAX/NOTIFICATION_ITEM_WIDTH +#define NOTIFICATION_COUNT_Y_MIN _NOTIFICATION_COUNT_Y_MIN/NOTIFICATION_ITEM_HEIGHT +#define NOTIFICATION_COUNT_Y_MAX _NOTIFICATION_COUNT_Y_MAX/NOTIFICATION_ITEM_HEIGHT + +#define NOTIFICATION_ICON_X_MIN _NOTIFICATION_ICON_X_MIN/NOTIFICATION_ITEM_WIDTH +#define NOTIFICATION_ICON_X_MAX _NOTIFICATION_ICON_X_MAX/NOTIFICATION_ITEM_WIDTH +#define NOTIFICATION_ICON_Y_MIN _NOTIFICATION_ICON_Y_MIN/NOTIFICATION_ITEM_HEIGHT +#define NOTIFICATION_ICON_Y_MAX _NOTIFICATION_ICON_Y_MAX/NOTIFICATION_ITEM_HEIGHT + + +collections +{ + group + { + styles + { + style { + name: "variable_style"; + base: "font=Tizen:style=Regular color=#FFFFFFFF color_class=ATO009 font_size=30 text_class=ATO009 align=right"; + } + style { + name: "title_style"; + base: "font=Tizen:style=Regular color=#FFFFFFFF color_class=ATO039 font_size=30 text_class=ATO039 ellipsis=1.0"; + } + style { + name: "details_style"; + base: "font=Tizen:style=Regular color=#FFFFFFFF color_class=ATO010 font_size=20 text_class=ATO010 ellipsis=1.0"; + } + style { + name: "time_style"; + base: "font=Tizen:style=Regular color=#FFFFFFFF color_class=ATO010 font_size=21 text_class=ATO010 align=right"; + } + style { + name: "selected_style"; + base: "font=Tizen:style=Regular color=#FFFFFFFF color_class=ATO011 font_size=21 text_class=ATO011 align=left valign=top wrap=mixed ellipsis=1.0"; + } + } + images + { + image: "event_number_bg.#.png" COMP; + image: "event_list_bg.#.png" COMP; + image: "event_list_divider.#.png" COMP; + } + name: "notification_item_main"; + parts + { + part + { + name: "bg"; + type: IMAGE; + mouse_events: 1; + repeat_events: 1; + description + { + state: "default" 0.0; + //TODO it should not have fixed size + min: NOTIFICATION_ITEM_WIDTH NOTIFICATION_ITEM_HEIGHT; + max: NOTIFICATION_ITEM_WIDTH NOTIFICATION_ITEM_HEIGHT; + rel1 {relative: 0.0 0.0;} + rel2 {relative: 1.0 1.0;} + image + { + normal: "event_list_bg.#.png"; + } + color_class: AO019; + } + } + + part + { + name: "separator"; + type: IMAGE; + mouse_events: 1; + repeat_events: 1; + description + { + state: "default" 0.0; + min: NOTIFICATION_SEPARATOR_WIDTH NOTIFICATION_SEPARATOR_HEIGHT; + max: NOTIFICATION_SEPARATOR_WIDTH NOTIFICATION_SEPARATOR_HEIGHT; + visible: 0; + rel1 {relative: 0.5 0.0; to: "bg";} + rel2 {relative: 0.5 0.0; to: "bg";} + image + { + normal: "event_list_divider.#.png"; + } + } + description + { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part + { + name: "icon"; + type: SWALLOW; + description + { + fixed: 1 1; + state: "default" 0.0; + align: 0.0 0.5; + rel1 {relative: NOTIFICATION_ICON_X_MIN NOTIFICATION_ICON_Y_MIN;} + rel2 {relative: NOTIFICATION_ICON_X_MAX NOTIFICATION_ICON_Y_MAX;} + } + } + part + { + name: "event_title"; + type: TEXTBLOCK; + description + { + state: "default" 0.0; + min: CONTENT_SIZE 0; + align: 0.0 1.0; + rel1 { relative: NOTIFICATION_TITLE_DEFAULT_X_MIN NOTIFICATION_TITLE_DEFAULT_Y_MIN; to: "bg"; } + rel2 { relative: NOTIFICATION_TITLE_DEFAULT_X_MAX NOTIFICATION_TITLE_DEFAULT_Y_MAX; to: "bg"; } + text + { + style: "title_style"; + //text: "Missed call"; + } + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + rel1 { relative: NOTIFICATION_TITLE_SELECTED_X_MIN NOTIFICATION_TITLE_SELECTED_Y_MIN; to: "bg"; } + rel2 { relative: NOTIFICATION_TITLE_SELECTED_X_MAX NOTIFICATION_TITLE_SELECTED_Y_MIN; to: "bg"; } + text { + style: "selected_style"; + min : 0 1; + } + visible: 0; + } + } + + part + { + name: "event_details"; + type: TEXTBLOCK; + mouse_events: 1; + repeat_events: 1; + description + { + state: "default" 0.0; + min: CONTENT_SIZE 0; + align: 0.0 0.5; + rel1 { relative: NOTIFICATION_DETAILS_DEFAULT_X_MIN NOTIFICATION_DETAILS_DEFAULT_Y_MIN; to: "bg"; } + rel2 { relative: NOTIFICATION_DETAILS_DEFAULT_X_MAX NOTIFICATION_DETAILS_DEFAULT_Y_MAX; to: "bg"; } + text + { + style: "details_style"; + //text: "Details"; + } + } + description + { + state: "selected" 0.0; + //inherit: "default" 0.0; + align: 0.0 0.0; + rel1 { relative: NOTIFICATION_DETAILS_SELECTED_X_MIN NOTIFICATION_DETAILS_SELECTED_Y_MIN; to: "bg"; } + rel2 { relative: NOTIFICATION_DETAILS_SELECTED_X_MAX NOTIFICATION_DETAILS_SELECTED_Y_MAX; to: "bg"; } + text { + style: "selected_style"; + //min : 0 1; + } + } + } + + part + { + name: "variable_text"; + type: TEXTBLOCK; + mouse_events: 1; + repeat_events: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + align: 1.0 0.5; + rel1 { relative: NOTIFICATION_COUNT_X_MIN NOTIFICATION_COUNT_Y_MIN; to: "bg"; } + rel2 { relative: NOTIFICATION_COUNT_X_MAX NOTIFICATION_COUNT_Y_MAX; to: "bg"; } + text + { + style: "variable_style"; + } + visible: 1; + } + description + { + state: "hidden" 0.0; + inherit: "default"; + visible: 0; + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part + { + name: "time_text"; + type: TEXTBLOCK; + mouse_events: 1; + repeat_events: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + min: TIME_TEXT_SIZE 0; + align: 1.0 1.0; + rel1 { relative: NOTIFICATION_TIME_X_MIN NOTIFICATION_TIME_Y_MIN; to: "bg"; } + rel2 { relative: NOTIFICATION_TIME_X_MAX NOTIFICATION_TIME_Y_MAX; to: "bg"; } + text + { + style: "time_style"; + } + visible: 1; + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part + { + name: "event"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description + { + state: "default" 0.0; + fixed: 1 1; + rel1.to: "bg"; + rel2.to: "bg"; + visible: 1; + } + } + } + + programs + { + program + { + name: "set_bg_selected"; + source: "layout"; + signal: "set_selected"; + action: STATE_SET "selected" 0.0; + // target: "bg"; + target: "event_title"; + target: "event_details"; + target: "variable_text"; + target: "time_text"; + } + program + { + name: "set_bg_default"; + source: "layout"; + signal: "set_default"; + action: STATE_SET "default" 0.0; + target: "bg"; + target: "event_title"; + target: "event_details"; + target: "variable_text"; + target: "time_text"; + } + program + { + name: "show_separator"; + source: "layout"; + signal: "show_separator"; + action: STATE_SET "visible" 0.0; + target: "separator"; + } + program + { + name: "hide_separator"; + source: "layout"; + signal: "hide_separator"; + action: STATE_SET "default" 0.0; + target: "separator"; + } + program + { + name: "hide_noti_num_digits"; + source: "count"; + signal: "hide_count"; + action: STATE_SET "hidden" 0.0; + target: "variable_text"; + } + program + { + name: "show_noti_num_digits"; + source: "count"; + signal: "show_count"; + action: STATE_SET "default" 0.0; + target: "variable_text"; + } + } + } +} diff --git a/data/org.tizen.lockscreen-lite_ChangeableColorInfo.xml b/data/org.tizen.lockscreen-lite_ChangeableColorInfo.xml new file mode 100755 index 0000000..70f7863 --- /dev/null +++ b/data/org.tizen.lockscreen-lite_ChangeableColorInfo.xml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/org.tizen.lockscreen-lite_ChangeableFontInfo.xml b/data/org.tizen.lockscreen-lite_ChangeableFontInfo.xml new file mode 100755 index 0000000..9c82216 --- /dev/null +++ b/data/org.tizen.lockscreen-lite_ChangeableFontInfo.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/weather.edc b/data/weather.edc new file mode 100755 index 0000000..ddaa1ae --- /dev/null +++ b/data/weather.edc @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "default-unlock.edc" + +#define WEATHER_WIDTH (BG_WIDTH-PADDING_LEFT-PADDING_RIGHT) +#define WEATHER_HEIGHT 96 +#define WEATHER_ICON_SIZE 54 +#define WEATHER_TEMP_WIDTH 38 +#define WEATHER_UNIT_WIDTH 28 +#define WEATHER_UNIT_HEIGHT 32 +#define WEATHER_CITY_HEIGHT 28 +#define WEATHER_PADDING_TOP 6 + +#define TEXT_TEMP_CLASS "ATO005" +#define TEXT_CITY_CLASS "ATO006" + +collections +{ + base_scale: 1.8; + group + { + name: "weather_layout"; + parts + { + part + { + name: "bg"; + type: RECT; + scale: 1; + description + { + state: "default" 0.0; + color: 0 0 0 0; + } + } + part { + name: "weather.icon.swallow"; + type: SWALLOW; + scale: 1; + description { + state: "deafult" 0.0; + align : 0.0 0.0; + min : WEATHER_ICON_SIZE WEATHER_ICON_SIZE; + fixed : 1 1; + rel1 { relative: 0.0 0.0; to: "bg"; } + rel2 { relative: 0.0 0.0; to: "bg"; } + } + } + part { + name: "temp.text"; + type: TEXT; + scale: 1; + effect: FAR_SHADOW BOTTOM; + description { + state: "default" 0.0; + align : 0.0 0.5; + fixed : 1 1; + rel1 { + relative : 1.0 0.5; to : "weather.icon.swallow"; + } + rel2 { + relative : 1.0 0.5; to : "weather.icon.swallow"; + } + color_class: TEXT_TEMP_CLASS; + color3 : 0 0 0 (255 * 0.2); + text { + text_class: TEXT_TEMP_CLASS; + align: 0.5 0.5; + min : 1 1; + } + min: WEATHER_TEMP_WIDTH WEATHER_UNIT_HEIGHT; + max: WEATHER_TEMP_WIDTH WEATHER_UNIT_HEIGHT; + } + } + part { + name: "unit.icon.swallow"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + align : 0.0 0.5; + min : WEATHER_UNIT_WIDTH WEATHER_UNIT_HEIGHT; + max : WEATHER_UNIT_WIDTH WEATHER_UNIT_HEIGHT; + fixed : 1 1; + rel1 { + relative : 1.0 0.5; to: "temp.text"; offset: 0 -3; + } + rel2 { + relative : 1.0 0.5; to: "temp.text"; offset: 0 -3; + } + } + } + part { + name: "city.text"; + type: TEXT; + scale: 1; + effect: FAR_SHADOW BOTTOM; + description { + state: "default" 0.0; + align : 0.0 0.0; + fixed: 1 1; + rel1 { + relative : 0.0 1.0; + to : "weather.icon.swallow"; + } + rel2 { + relative : 0.0 1.0; + to : "weather.icon.swallow"; + } + color_class: TEXT_CITY_CLASS; + color3 : 0 0 0 (255 * 0.2); + text { + min : 1 1; + align: 0.0 0.0; + text_class: TEXT_CITY_CLASS; + } + } + } + } + } +} diff --git a/debian/changelog b/debian/changelog deleted file mode 100755 index 96f1479..0000000 --- a/debian/changelog +++ /dev/null @@ -1,7 +0,0 @@ -lock-screen (0.0.1) unstable; urgency=low - - * released first - * Git: 165.213.180.234:/magnolia/apps/home/lockscreen - * Tag: lock-screen_0.1.1 - - -- geunsun lee Mon, 07 Mar 2012 13:51:11 +0900 diff --git a/debian/compat b/debian/compat deleted file mode 100755 index 7ed6ff8..0000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -5 diff --git a/debian/control b/debian/control deleted file mode 100755 index f4ed7c5..0000000 --- a/debian/control +++ /dev/null @@ -1,17 +0,0 @@ -Source: lockscreen -Section: devel -Priority: extra -Maintainer: Geun Sun, Lee -Build-Depends: debhelper (>= 5), libelm-dev, libslp-setting-dev, libheynoti-dev, libappcore-efl-dev, libslp-utilx-dev, libsvi-dev, libaul-1-dev, libbundle-dev, libslp-pm-dev, libui-gadget-dev, libcontacts-service-dev, libsoup2.4-dev, libxml2-dev, libecore-dev, libevas-dev, libedje-dev, dlog-dev, libicu-dev, libnotification-dev, libssl-dev,security-server, livebox-viewer, shortcut -Standards-Version: 3.7.2 - -Package: org.tizen.lockscreen -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, libicu -Description: lockscreen - -Package: org.tizen.lockscreen-dbg -Section: debug -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, org.tizen.lockscreen (= ${Source-Version}) -Description: lockscreen (unstripped) diff --git a/debian/org.tizen.lockscreen.install.in b/debian/org.tizen.lockscreen.install.in deleted file mode 100755 index b3c3f34..0000000 --- a/debian/org.tizen.lockscreen.install.in +++ /dev/null @@ -1,5 +0,0 @@ -@PREFIX@/bin/* -@PREFIX@/res/* -@PREFIX@/data -/opt/share/applications/* -/opt/ug/* diff --git a/debian/org.tizen.lockscreen.postinst b/debian/org.tizen.lockscreen.postinst deleted file mode 100755 index 88d7a39..0000000 --- a/debian/org.tizen.lockscreen.postinst +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -if [ x"${USER}" == x"root" ] -then - #5000 is inhouse user id - #do not use relative path - chown -R 5000:5000 /opt/apps/org.tizen.lockscreen/data -fi - -GOPTION="" # Set without -g, -u options -if [ ${USER} == "root" ] -then - # Set vconf values with -g/-u options - GOPTION="-g 6514" -fi - -vconftool $GOPTION set -t string file/private/org.tizen.lockscreen/title "Welcome" -vconftool $GOPTION set -t string file/private/org.tizen.lockscreen/title2 " " -vconftool $GOPTION set -t int file/private/org.tizen.lockscreen/title_line "1" -vconftool $GOPTION set -t int db/org.tizen.lockscreen/info_position "2" diff --git a/debian/rules b/debian/rules deleted file mode 100755 index 4254cb5..0000000 --- a/debian/rules +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/make -f -# -*- makefile -*- -# Sample debian/rules that uses debhelper. -# This file was originally written by Joey Hess and Craig Small. -# As a special exception, when this file is copied by dh-make into a -# dh-make output file, you may use that output file without restriction. -# This special exception was added by Craig Small in version 0.37 of dh-make. - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - -CFLAGS ?= -Wall -g -LDFLAGS ?= -PREFIX ?= /opt/apps/org.tizen.lockscreen -RESDIR ?= /opt/apps/org.tizen.lockscreen/res -DATADIR ?= /opt/apps/org.tizen.lockscreen/data - -ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) - CFLAGS += -O0 -else - CFLAGS += -O2 -endif - -LDFLAGS += -Wl,--rpath=$(PREFIX)/lib -Wl,--as-needed - -CMAKE_BUILD_DIR ?= $(CURDIR)/cmake_build_tmp - -configure: configure-stamp -configure-stamp: - dh_testdir - # Add here commands to configure the package. - mkdir -p $(CMAKE_BUILD_DIR) && cd $(CMAKE_BUILD_DIR) && \ - CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" cmake .. -DCMAKE_INSTALL_PREFIX="$(PREFIX)" - - touch configure-stamp - -build: build-stamp - -build-stamp: configure-stamp - dh_testdir - - # Add here commands to compile the package. - cd $(CMAKE_BUILD_DIR) && $(MAKE) - - for f in `find $(CURDIR)/debian/ -name "*.in"`; do \ - cat $$f > $${f%.in}; \ - sed -i -e "s#@PREFIX@#$(PREFIX)#g" $${f%.in}; \ - sed -i -e "s#@RESDIR@#$(RESDIR)#g" $${f%.in}; \ - sed -i -e "s#@DATADIR@#$(DATADIR)#g" $${f%.in}; \ - done - - touch $@ - -clean: - dh_testdir - dh_testroot - rm -f build-stamp configure-stamp - - # Add here commands to clean up after the build process. - rm -rf $(CMAKE_BUILD_DIR) - - for f in `find $(CURDIR)/debian/ -name "*.in"`; do \ - rm -f $${f%.in}; \ - done - - dh_clean - -install: build - dh_testdir - dh_testroot - dh_clean -k -# dh_installdirs - - # Add here commands to install the package into debian/wavplayer. - cd $(CMAKE_BUILD_DIR) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install - - -# Build architecture-independent files here. -binary-indep: build install -# We have nothing to do by default. - -# Build architecture-dependent files here. -binary-arch: build install - dh_testdir - dh_testroot -# dh_installchangelogs -# dh_installdocs -# dh_installexamples - dh_install --sourcedir=debian/tmp -# dh_installmenu -# dh_installdebconf -# dh_installlogrotate -# dh_installemacsen -# dh_installpam -# dh_installmime -# dh_python -# dh_installinit -# dh_installcron -# dh_installinfo - dh_installman - dh_link - dh_strip --dbg-package=org.tizen.lockscreen-dbg - dh_compress - dh_fixperms -# dh_perl - dh_makeshlibs - dh_installdeb - dh_shlibdeps - dh_gencontrol - dh_md5sums - dh_builddeb - -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/include/background-view.h b/include/background-view.h new file mode 100755 index 0000000..e6191a7 --- /dev/null +++ b/include/background-view.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __BACKGROUND_VIEW_H__ +#define __BACKGROUND_VIEW_H__ + +#define LOCK_BG_DEFAULT 1 +#define LOCK_BG_ALBUM_ART 2 + +/** + * Sets next image from wallpaper dir + * @param wallpaper directory + */ +extern void *get_next_background_image(const char *dir); + +/** + * Function updates background image on vconf key (VCONFKEY_IDLE_LOCK_BGSET) value change. Function is used as callback routine for vconf_notify_key_changed(). + * @param vconf node + * @param background object + */ +void update_background_image_cb(keynode_t *node, void *data); + +extern int background_image_set(int type, const char *file, int force); +extern int background_image_set_to(Evas_Object *layout, Evas_Object *bg, int type, const char *file, int force); +extern void background_image_next_set(void); + +#endif diff --git a/include/battery.h b/include/battery.h new file mode 100755 index 0000000..9c24ac4 --- /dev/null +++ b/include/battery.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __BATTERY_H__ +#define __BATTERY_H__ + +#include +#include + +#define BATT_LAYOUT_NORMAL 1 +#define BATT_LAYOUT_EVENT 2 + +extern void battery_view_init(Evas_Object *layout); +extern void battery_view_fini(void); +extern void battery_view_show(int type); +extern void battery_view_hide(void); + +#endif diff --git a/include/camera.h b/include/camera.h new file mode 100755 index 0000000..5c91193 --- /dev/null +++ b/include/camera.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CAMERA_VIEW_H__ +#define __CAMERA_VIEW_H__ + +#define CAMERA_VIEW_DRAGGING_START 1 +#define CAMERA_VIEW_DRAGGING_STOP 2 +#define CAMERA_VIEW_ROTATE 3 +#define CAMERA_VIEW_CUE_1_START 4 +#define CAMERA_VIEW_CUE_1_STOP 5 +#define CAMERA_VIEW_CUE_1_HIDE 6 + +Evas_Object *camera_view_create(Evas_Object *parent); +void camera_view_action(int action, int value); +int camera_view_is_circle_full(void); + +#endif diff --git a/include/complex-password.h b/include/complex-password.h new file mode 100755 index 0000000..c986756 --- /dev/null +++ b/include/complex-password.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __COMPLEX_PASSWORD_H__ +#define __COMPLEX_PASSWORD_H__ + +#include + +/** +* Creates complex password layout +*/ +const Eina_Bool is_complex_password_blocked(); + +extern void clear_complex_password_entry(void); +extern void complex_password_focus_entry(void); +extern void complex_password_input_panel_show(void); +extern void complex_password_focus_enable_set(void); +extern void complex_password_focus_disable_set(void); + +extern Evas_Object* create_complex_password_layout_2(Evas_Object *parent, Eina_Bool is_for_img); +extern Evas_Object* complex_password_layout_get(void); +extern void complex_password_reset(void); + +#endif diff --git a/include/contextual-info.h b/include/contextual-info.h new file mode 100755 index 0000000..c32a89e --- /dev/null +++ b/include/contextual-info.h @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __INFO_PANEL_H__ +#define __INFO_PANEL_H__ + +#include +#include +#include +#include +#include "music-player.h" + +#define CONTEXTUAL_INFO_EDJE_FILE EDJE_DIR"contextual-info.edj" + +#define MAX_PAGE_NUMBER 3 +#define PAGE_WIDTH 480 +#define PAGE_HEIGHT 174 + +typedef enum { + TYPE_MISSED_CALL = 0, + TYPE_NEW_MESSAGE +} contextual_info_noti_type_e; + +/** +Function creates contextual info panel. +*/ +extern Evas_Object* contextual_info_create(Evas_Object *parent); + +extern void contextual_info_minicontroller_music_add(Evas_Object *control_panel, const char* name); + +extern int contextual_info_minicontroller_music_dismiss(Eina_Bool close); + +extern void contextual_info_minicontroller_radio_add(Evas_Object *control_panel); + +extern int contextual_info_minicontroller_radio_dismiss(Eina_Bool close); + +extern void contextual_info_minicontroller_voice_record_add(Evas_Object *control_panel); + +extern int contextual_info_minicontroller_voice_record_dismiss(Eina_Bool close); + +extern int contextual_info_notification_page_dismiss(); + +extern void contextual_info_notification_page_hide(); + +extern void contextual_info_check_noti_count(void); + +extern void add_notification_item(char *icon_path, char *content, char *title, char *time, char *count_str, contextual_info_noti_type_e type, notification_h noti); + +extern void contextual_info_delete_missed_call(void); + +extern void contextual_info_delete_unread_message(void); + +extern void contextual_info_run_selected_notification_item_app(void (*lock_app_control_reply_cb)(app_control_h, app_control_h, app_control_result_e, void*)); + +extern void contextual_info_display_music_minicontroller_if_needed(void); + +extern void contextual_info_show(void); + +extern void contextual_info_hide(void); + +extern Evas_Object* contextual_info_noti_box_get(void); +extern Evas_Object* contextual_info_scroller_get(void); +extern Evas_Object* contextual_info_layout_get(void); + +extern bool contextual_info_visible_get(void); + +extern int contextual_info_is_dual_clock_enabled(void); + +extern int contextual_info_missed_messages_count_get(void); +extern int contextual_info_missed_calls_count_get(void); + +extern music_state_t contextual_info_music_state_get(void); +extern int contextual_info_music_player_get(void); +extern int contextual_info_radio_get(void); +extern int contextual_info_voice_record_get(void); + +extern void contextual_info_time_update(void); + +#endif diff --git a/include/control-panel-password.h b/include/control-panel-password.h new file mode 100755 index 0000000..540105e --- /dev/null +++ b/include/control-panel-password.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CONTROL_PANDEL_PASSWORD_H__ +#define __CONTROL_PANDEL_PASSWORD_H__ + +#include + +extern Evas_Object* control_panel_password_create(Evas_Object *parent, Eina_Bool is_img); +extern void control_panel_password_update(void); +extern void control_panel_password_destroy(void); +extern void control_panel_password_tizen_account_show(void); +extern void control_panel_password_tizen_account_hide(void); +extern void control_panel_password_cancel_enable_set(int enable); + +#endif diff --git a/include/control-panel.h b/include/control-panel.h new file mode 100755 index 0000000..cfaa270 --- /dev/null +++ b/include/control-panel.h @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CONTROL_PANEL_H__ +#define __CONTROL_PANEL_H__ + +#include +#include + +/** +Function creates control panel with camera icon and dual clock widet. +*/ +extern Evas_Object* control_panel_create(void); +extern void control_panel_sim_state_changed(void); + +extern void control_panel_operator_name_hide(void); +extern void control_panel_operator_name_show(void); +extern void control_panel_password_panel_visible_flag_set(bool state); +extern void control_panel_create_tizen_account_button(void); +extern void control_panel_tizen_account_btn_show(void); +extern void control_panel_tizen_account_btn_hide(void); + +extern void hide_dual_text(void); +extern void show_emg_call_btn(void); +extern void hide_emg_call_btn(void); +extern void show_unlock_text(void); +extern void hide_unlock_text(void); +extern void destroy_emg_button(void); +extern void create_emg_button(void); + +extern void emg_button_clicked_event_emit(void); +extern Eina_Bool is_camera_visible(void); + +extern void lockscreen_set_bg_on(void); +extern void lockscreen_set_bg_off(void); + +extern Evas_Object* control_panel_layout_get(void); + +#endif diff --git a/include/daemon/daemon.h b/include/daemon/daemon.h new file mode 100755 index 0000000..a933b67 --- /dev/null +++ b/include/daemon/daemon.h @@ -0,0 +1,201 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __LOCK_DAEMON_H__ +#define __LOCK_DAEMON_H__ + +#include +#include "daemon/property.h" +#include "daemon/view-mgr.h" +#include "daemon/dbus.h" + +/* + * Return value + */ +#define LKD_RET_OK 0 +#define LKD_RET_FAIL 1 + +/* + * Event util + */ +#define LKD_EVT_MAP(SOURCE, TYPE) ((SOURCE << 16) | TYPE) +#define LKD_EVT_SRC(X) LKD_EVT_MAP(X, 0x0) + +/* + * Events will be feeded to lock daemon + */ +#define LKD_EVT 0x0000 +#define LKD_EVT_WILL_LOCK LKD_EVT_MAP(LKD_EVT, 0x0) +#define LKD_EVT_LOCK LKD_EVT_MAP(LKD_EVT, 0x1) +#define LKD_EVT_UNLOCK LKD_EVT_MAP(LKD_EVT, 0x2) +#define LKD_EVT_WIN 0x0001 +#define LKD_EVT_WIN_CREATE LKD_EVT_MAP(LKD_EVT_WIN, 0x0) +#define LKD_EVT_WIN_BECOME_VISIBLE LKD_EVT_MAP(LKD_EVT_WIN, 0x1) +#define LKD_EVT_WIN_BECOME_INVISIBLE LKD_EVT_MAP(LKD_EVT_WIN, 0x2) +#define LKD_EVT_APP 0x0002 +#define LKD_EVT_APP_CREATE LKD_EVT_MAP(LKD_EVT_APP, 0x0) +#define LKD_EVT_APP_VIEW_READY LKD_EVT_MAP(LKD_EVT_APP, 0x1) +#define LKD_EVT_APP_PAUSE LKD_EVT_MAP(LKD_EVT_APP, 0x2) +#define LKD_EVT_APP_RESUME LKD_EVT_MAP(LKD_EVT_APP, 0x4) +#define LKD_EVT_LCD 0x0003 +#define LKD_EVT_LCD_WILL_OFF LKD_EVT_MAP(LKD_EVT_LCD, 0x0) +#define LKD_EVT_LCD_ON LKD_EVT_MAP(LKD_EVT_LCD, 0x1) +#define LKD_EVT_LCD_OFF LKD_EVT_MAP(LKD_EVT_LCD, 0x2) +#define LKD_EVT_CONF 0x0004 +#define LKD_EVT_CONF_CHANGED LKD_EVT_MAP(LKD_EVT_CONF, 0x0) +#define LKD_EVT_VIEW 0x0008 +#define LKD_EVT_VIEW_IDLE LKD_EVT_MAP(LKD_EVT_VIEW, 0x0) +#define LKD_EVT_VIEW_GESTURED LKD_EVT_MAP(LKD_EVT_VIEW, 0x1) +#define LKD_EVT_VIEW_INPUT_BLOCK LKD_EVT_MAP(LKD_EVT_VIEW, 0x2) +#define LKD_EVT_VIEW_INPUT_UNBLOCK LKD_EVT_MAP(LKD_EVT_VIEW, 0x4) +#define LKD_EVT_QUICKPANEL 0x0010 +#define LKD_EVT_QUICKPANEL_ON LKD_EVT_MAP(LKD_EVT_QUICKPANEL, 0x0) +#define LKD_EVT_QUICKPANEL_OFF LKD_EVT_MAP(LKD_EVT_QUICKPANEL, 0x1) + +/* + * Lock daemon states + */ +#define LOCKD_STATE_DEAD 1 +#define LOCKD_STATE_BOOT 2 +#define LOCKD_STATE_WILL_RESUME 3 +#define LOCKD_STATE_RESUME 4 +#define LOCKD_STATE_PAUSE 5 +#define LOCKD_STATE_HIDE 6 + +/* + * Modules + */ +#define LKD_MOD_BOOT 0 +#define LKD_MOD_ALL 1 + +typedef enum { + DAEMON_EVENT_WIN_VISIBLE = 0, + DAEMON_EVENT_WIN_INVISIBLE, + DAEMON_EVENT_FIRST_UNLOCK, + DAEMON_EVENT_APP_RESUME, + DAEMON_EVENT_APP_PAUSE, + DAEMON_EVENT_MAX, +} daemon_event_type_e; + +typedef struct _LKD_State_Config { + int state_hide; + int locksound; +} LKD_State_Config; + +typedef struct _LKD_Module_Data { + Evas_Object *view; + void *data; +} LKD_Module_Data; + +struct LKD_Evt_Handler { + int event; + void (*process) (int, int, void *); +}; + +typedef struct _LKD_Module { + /* property */ + const char *id; + + /* property */ + int notifying; + int property_list; + + /* internal */ + int is_initialized; + + /* interface func */ + int (*init) (LKD_Module_Data *); + int (*fini) (LKD_Module_Data *); + Evas_Object *(*create_view) (Evas_Object *, LKD_Module_Data *); + int (*destroy_view) (LKD_Module_Data *); + void (*resume) (LKD_Module_Data *); + void (*pause) (LKD_Module_Data *); + void (*load) (LKD_Module_Data *); + void (*unload) (LKD_Module_Data *); + void (*property_changed) (LKD_Module_Data *, int); + void (*language_changed) (LKD_Module_Data *); + + /* data */ + LKD_Module_Data md; +} LKD_Module; + +/* + * lockd main + */ +void lockd_init(void); +void lockd_fini(void); +void lockd_event(int event, void *event_info); +void lockd_event_delay(int event, double time); +LKD_State_Config *lockd_state_config_new(int state_hide, int locksound); +void lockd_state_config_del(LKD_State_Config *conf); + +/* + * lockd event + */ +int lockd_event_register_cb( + int type, + void (*result_cb)(void *, void *), void *result_data); +void lockd_event_unregister_cb( + int type, + void (*result_cb)(void *, void *)); +void lockd_event_init(void); +void lockd_event_fini(void); + +/* + * lockd window + */ +Evas_Object *lockd_window_create(int is_qp_enable, int *win_w, int *win_h); +void lockd_window_qp_enable_set(int is_enable); +void lockd_window_show(void); +void lockd_window_hide(void); +void lockd_window_update(void); + +/* + * lockd module + */ +LKD_Module *module_get(const char *id); +int module_init(LKD_Module *module, void *user_data); +int module_fini(LKD_Module *module); + +Evas_Object *module_view_create(Evas_Object *parent, LKD_Module *module); +int module_view_destroy(LKD_Module *module); +Evas_Object *module_view_get(LKD_Module *module); + +void module_data_set(LKD_Module *module, void *data); +void *module_data_get(LKD_Module *module); + +void modules_init(int profile); +void modules_fini(int profile); +void modules_resume(void); +void modules_pause(void); +void modules_load(void); +void modules_unload(void); +void modules_property_changed(int property_id); +void modules_language_changed(void); + +/* + * lockd util + */ +void lockd_lock_state_set(int state, double delay); +int lockd_lcd_state_get(void); +int lockd_call_state_get(void); +void lockd_cache_flush(void); +int lockd_unlock_count_get(void); +void lockd_util_key_lock_set(int lock, const char *password); +int lockd_is_locked(void); +int lockd_lock_state_flag_get(void); +void lockd_lock_state_flag_set(int set_by_me); +#endif diff --git a/include/daemon/dbus.h b/include/daemon/dbus.h new file mode 100755 index 0000000..0b9e026 --- /dev/null +++ b/include/daemon/dbus.h @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __LOCKD_DBUS_H__ +#define __LOCKD_DBUS_H__ + +typedef enum { + DBUS_EVENT_LCD_ON = 0, + DBUS_EVENT_LCD_OFF, + DBUS_EVENT_ANGLE_CHANGED, + DBUS_EVENT_MAX, +} dbus_event_type_e; + +/*! + * DBUS interfaces and signals + */ +#define DBUS_COORD_INTEFACE "org.tizen.system.coord" +#define DBUS_ROTATION_PATH "/Org/Tizen/System/Coord/Rotation" +#define DBUS_ROTATION_INTERFACE DBUS_COORD_INTEFACE".rotation" +#define DBUS_ROTATION_MEMBER_CHANGED "Changed" +#define DBUS_ROTATION_METHOD_DEGREE "Degree" + +#define DBUS_ALPM_MANAGER_PATH "/Org/Tizen/System/AlpmMgr" +#define DBUS_ALPM_MANAGER_INTERFACE "org.tizen.system.alpmmgr" +#define DBUS_ALPM_MANAGER_MEMBER_STATUS "ALPMStatus" + +#define DBUS_WAKEUP_GESTURE_PATH "/org/tizen/sensor/context/gesture" +#define DBUS_WAKEUP_GESTURE_INTERFACE "org.tizen.sensor.context.gesture" +#define DBUS_WAKEUP_GESTURE_MEMBER_WAKEUP "wakeup" + +#define DBUS_LOW_BATTERY_PATH "/Org/Tizen/System/Popup/Lowbat" +#define DBUS_LOW_BATTERY_INTERFACE "org.tizen.system.popup.Lowbat" +#define DBUS_LOW_BATTERY_MEMBER_EXTREME_LEVEL "Extreme" + +#define DBUS_DEVICED_BUS_NAME "org.tizen.system.deviced" +#define DBUS_DEVICED_PATH "/Org/Tizen/System/DeviceD" +#define DBUS_DEVICED_INTERFACE DBUS_DEVICED_BUS_NAME +// deviced::display +#define DBUS_DEVICED_DISPLAY_PATH DBUS_DEVICED_PATH"/Display" +#define DBUS_DEVICED_DISPLAY_INTERFACE DBUS_DEVICED_INTERFACE".display" +#define DBUS_DEVICED_DISPLAY_MEMBER_LCD_ON "LCDOn" +#define DBUS_DEVICED_DISPLAY_MEMBER_LCD_OFF "LCDOff" +#define DBUS_DEVICED_DISPLAY_MEMBER_LCD_ON_BY_POWERKEY "LCDOnByPowerkey" +#define DBUS_DEVICED_DISPLAY_METHOD_LCD_OFF "PowerKeyLCDOff" +#define DBUS_DEVICED_DISPLAY_METHOD_CHANGE_STATE "changestate" +#define DBUS_DEVICED_DISPLAY_METHOD_CUSTOM_LCD_ON "CustomLCDOn" +#define DBUS_DEVICED_DISPLAY_COMMAND_LCD_ON "lcdon" +// deviced::cooldown mode +#define DBUS_DEVICED_SYSNOTI_PATH DBUS_DEVICED_PATH"/SysNoti" +#define DBUS_DEVICED_SYSNOTI_INTERFACE DBUS_DEVICED_INTERFACE".SysNoti" +#define DBUS_DEVICED_SYSNOTI_MEMBER_COOLDOWN_CHANGED "CoolDownChanged" +#define DBUS_DEVICED_SYSNOTI_METHOD_COOLDOWN_STATUS "GetCoolDownStatus" +// deviced::cpu booster +#define DBUS_DEVICED_CPU_BOOSTER_PATH DBUS_DEVICED_PATH"/PmQos" +#define DBUS_DEVICED_CPU_BOOSTER_INTERFACE DBUS_DEVICED_INTERFACE".PmQos" +#define DBUS_DEVICED_CPU_BOOSTER_METHOD_HOME "HomeScreen" +#define DBUS_DEVICED_CPU_BOOSTER_METHOD_HOME_LAUNCH "AppLaunchHome" + +/*! + * DBUS main functions + */ +extern void *lockd_dbus_connection_get(void); +extern void lockd_dbus_init(void *data); +extern void lockd_dbus_fini(void *data); +extern int lockd_dbus_register_cb(int type, void (*result_cb)(void *, void *), void *result_data); +extern void lockd_dbus_unregister_cb(int type, void (*result_cb)(void *, void *)); +/*! + * DBUS utility functions + */ +extern void lockd_dbus_lcd_on_signal_send(Eina_Bool wristup); +extern int lockd_dbus_angle_get(void); + +#endif diff --git a/include/daemon/property.h b/include/daemon/property.h new file mode 100755 index 0000000..c673303 --- /dev/null +++ b/include/daemon/property.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __LOCK_DAEMON_PROPERTY_H__ +#define __LOCK_DAEMON_PROPERTY_H__ + +#define LKD_PROP_ID(X) (1 << (X - 1)) + +/*! + * the max number of ID:31 + */ +#define LKD_PROP_ID_LOCKTYPE 0x1 +#define LKD_PROP_ID_PIN_AFTER_SWIPE_ENABLED LKD_PROP_ID(2) +#define LKD_PROP_ID_WEATHER_STATE LKD_PROP_ID(3) +#define LKD_PROP_ID_CAMERA_SHORTCUT_ENABLED LKD_PROP_ID(4) +#define LKD_PROP_ID_DUALCLOCK_ENABLED LKD_PROP_ID(5) +#define LKD_PROP_ID_SOUND_LOCK_ENABLED LKD_PROP_ID(6) +#define LKD_PROP_ID_TAP_SOUND_ENABLED LKD_PROP_ID(7) +#define LKD_PROP_ID_BUTTON_SOUND_ENABLED LKD_PROP_ID(8) + +#define LKD_PROP_ID_SYSMAN_CHARGER_STATUS LKD_PROP_ID(9) +#define LKD_PROP_ID_SYSMAN_BATTERY_CAPACITY LKD_PROP_ID(10) +#define LKD_PROP_ID_SYSMAN_BATTERY_CHARGE_NOW LKD_PROP_ID(11) +#define LKD_PROP_ID_SYSMAN_BATTERY_STATUS_LOW LKD_PROP_ID(12) +#define LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED LKD_PROP_ID(13) + +void property_init(void); +void property_fini(void); + +int property_listen(int id); +int property_ignore(int id); + +int property_get_int(int id, int *value); +int property_get_bool(int id, int *value); +const char *property_get_str(int id); + +#endif diff --git a/include/daemon/view-mgr.h b/include/daemon/view-mgr.h new file mode 100755 index 0000000..f54434e --- /dev/null +++ b/include/daemon/view-mgr.h @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __LOCK_DAEMON_VIEW_MGR_H__ +#define __LOCK_DAEMON_VIEW_MGR_H__ + +void view_mgr_event_handler(int state, int event, void *event_info); + +#endif diff --git a/include/default-unlock.h b/include/default-unlock.h new file mode 100755 index 0000000..886743c --- /dev/null +++ b/include/default-unlock.h @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __DEFAULT_UNLOCK_H__ +#define __DEFAULT_UNLOCK_H__ + +#include +#include + +extern void default_unlock_hw_back_cb(void *data, Evas_Object *obj, void *event_info); + +extern Evas_Object* default_unlock_layout_create(Evas_Object *parent); +extern Evas_Object* default_unlock_control_panel_get(void); +extern Evas_Object *control_panel_get(void); + +extern Eina_Bool default_unlock_view_back(bool is_effect_on); +extern void default_unlock_view_back_change(bool is_effect_on); + +extern void default_unlock_show_on_noti_tapped(Evas_Object *obj, const char *text); +extern void default_unlock_hide_on_noti_tapped(void); +extern Eina_Bool default_unlock_is_noti_tapped(void); +extern void default_unlock_set_noti_tapped(Evas_Object *obj); +extern void default_unlock_pause_application(void); + +extern void default_unlock_password_panel_del(void); +extern void default_unlock_password_panel_load(void); + +extern bool is_password_layout_get(void); + +extern void default_unlock_call_state_cb(void); + +extern void default_unlock_password_view_change(void); +#endif diff --git a/include/dynamic-index.h b/include/dynamic-index.h new file mode 100755 index 0000000..1b12ee3 --- /dev/null +++ b/include/dynamic-index.h @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __DYNAMIC_INDEX_H__ +#define __DYNAMIC_INDEX_H__ + +#include +#include + +#include + +#define MAX_PAGE_COUNT 7 + +typedef struct +{ + Evas_Object* index_layout[MAX_PAGE_COUNT]; + Evas_Object *index_box; + Evas_Object* page_scroller; + + unsigned int page_count; + unsigned int page_current; + +} dynamic_index_t; + +extern void dynamic_index_page_current_set(dynamic_index_t *dynamic_index, unsigned int new_page_current); + +dynamic_index_t* dynamic_index_new(Evas_Object *page_scroller); +void dynamic_index_del(dynamic_index_t *dynamic_index); +void dynamic_index_show(dynamic_index_t *dynamic_index); +void dynamic_index_hide(dynamic_index_t *dynamic_index); + +#endif diff --git a/include/lockscreen-lite.h b/include/lockscreen-lite.h new file mode 100755 index 0000000..51b4236 --- /dev/null +++ b/include/lockscreen-lite.h @@ -0,0 +1,156 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __REF_LOCKSCREEN_H__ +#define __REF_LOCKSCREEN_H__ + +#include +#include +#include +#include + +#include "util.h" +#include "daemon/daemon.h" + +#define EDJE_DIR "/usr/apps/org.tizen.lockscreen/res/edje/" +#define IMAGE_DIR "/usr/apps/org.tizen.lockscreen/res/images/" + +//#define PHONE_PKG_NAME "zktdpemtmw.Phone" +#define PHONE_PKG_NAME "com.samsung.call" + +#ifdef EMULATOR_BINARY +#define DEFAULT_BG_PATH "/opt/share/settings/Wallpapers/Default.jpg" +#else +#define DEFAULT_BG_PATH "/opt/share/settings/Wallpapers/Lock_default.png" +#endif +#define DEFAULT_DIR_1 "/usr/share/settings/Wallpapers/" +#define DEFAULT_DIR_2 "/usr/media/Images" + +#ifndef VCONFKEY_LOCKSCREEN_ENTER_PASSWORD_AFTER_SWIPING +#define VCONFKEY_LOCKSCREEN_ENTER_PASSWORD_AFTER_SWIPING "db/lockscreen+enter_password_after_swifing" +#endif +#ifndef VCONF_LOCKSCREEN_FESTIVAL_BGSET +#define VCONF_LOCKSCREEN_FESTIVAL_BGSET "db/lockscreen/pre_bgset" +#endif + +#define _EDJ(x) elm_layout_edje_get(x) +#define _SCALE(x) ELM_SCALE_SIZE(x) + +#define MAX_LENGTH_LINE 2001 +/** +* temporary using : must be fixed +*/ +#define _NOT_LOCALIZED(str) (str) + +/** +* It must be 0 before master merged!!! +*/ +#define FADING_VI_APPLIED 1 + + +#ifdef EMULATOR_BINARY +#define DISABLE_TELEPHONY 1 +#define DISABLE_CAMERA_SHORTCUT 1 +#define DISABLE_MINICONTROLLER 1 +#define DISABLE_DUAL_CLOCK 1 +#define DIABLE_WEATHER 1 +#define DISABLE_TIZEN_ACCOUNT 1 +#define DISABLE_WALLPAPER_SERIVCE 1 +#define DISABLE_MDM 1 +#endif + +static const int BUF_SIZE = 1024; +static const int SIGNAL_BUF_SIZE = 64; + +/** +* Function returbs main window of the locscreen application +*/ +extern Evas_Object* lockscreen_get_window(void); + +/** +* Funtion returns width of the window +*/ +extern int lockscreen_get_window_width(void); + +/** +* Function retursn height of the window +*/ +extern int lockscreen_get_window_height(void); + +/** +* Function returns layout of the lockscreen application +*This layout contains one swallow part "ref_lockscreen_layout" +*/ +extern Evas_Object* lockscreen_get_layout(void); + +extern void create_password_layout(void); +extern void destroy_password_layout(void); + +extern void trigger_unlock(void); + +extern int get_locktype(void); +extern void set_locktype(int locktype); + +extern bool lockscreen_password_after_swiping_get(void); + +extern bool lockscreen_is_view_simple_get(); +extern void lockscreen_is_view_simple_set(bool is_simple); + +extern Eina_Bool default_bg_set(Evas_Object *bg); + +/* + * @brief check preload image : set gradation on status bar. + */ +extern Eina_Bool lockscreen_bg_preload_path_is(const char *file); + +extern Eina_Bool is_contextual_visible_get(void); +extern int lockscreen_get_emergency(void); + +/** + * @brief Function returns lockscreen background + * @return Pointer to Evas_Object which is a background widget. + */ +extern Evas_Object *lockscreen_get_bg(void); + +extern int lockscreen_is_calling_state_get(void); + +/** + * @brief if state of the lockscreen support feedback plays sound on lock action + */ +void lockscreen_play_lock_feedback(void); + +/** + * @brief if state of the lockscreen support feedback plays sound on simple keyboard click action + */ +void lockscreen_play_key_feedback(void); + +/** + * @brief if state of the lockscreen support feedback plays sound on unlock action + */ +void lockscreen_play_unlock_feedback(double delay); + +/** + * @brief if state of the lockscreen support feedback plays sound on tap action + */ +void lockscreen_play_tap_feedback(void); + + +void lockscreen_confirm_popup(char *title, char *text, Evas_Smart_Cb func, void *data, double timeout); + +void set_recovery_mode(int enabled); +int get_recovery_mode(void); + +#endif diff --git a/include/music-player.h b/include/music-player.h new file mode 100755 index 0000000..a6f0588 --- /dev/null +++ b/include/music-player.h @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __MUSIC_CONTROL_H__ +#define __MUSIC_CONTROL_H__ + +#include + +typedef enum _music_state +{ + NO_MUSIC = 0, + MUSIC_PLAYER_ON, + SOUND_PLAYER_ON, +} music_state_t; + +typedef enum _read_file_error { + READ_FILE_ERROR_NONE = 0, + READ_FILE_ERROR_EOF, + READ_FILE_ERROR_ERROR, +} read_file_error; + +#define MUSIC_PLAYER_NAME "[music-minicontrol.LOCKSCREEN]" +#define SOUND_PLAYER_NAME "[sound-minicontrol.LOCKSCREEN]" +#define MUSIC_PLAYER "com.samsung.music-player-lite" +#define SOUND_PLAYER "com.samsung.sound-player-lite" + +extern Evas_Object* create_minicontroller(Evas_Object *layout, const char *name, int width, int height); +extern void music_player_bg_set(Evas_Object *bg, music_state_t music_state); +extern void music_player_bg_unset(void); +bool music_player_is_playing(void); + +#endif diff --git a/include/notification-item.h b/include/notification-item.h new file mode 100755 index 0000000..5dbfc78 --- /dev/null +++ b/include/notification-item.h @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __NOTIFICATION_ITEM_H__ +#define __NOTIFICATION_ITEM_H__ + +#include + +#define NOTIFICATION_ITEM_NONE 0 +#define NOTIFICATION_ITEM_MESSAGE 1 +#define NOTIFICATION_ITEM_CALL 2 + +/** +Function create elm_scroller widget with notification content +*/ + +/** + * @brief Function create elm_scroller with notification content + * @details - + * @param icon char pointer (path to icon file for content fill) + * @param content_text char pointer to text content + * @param contact char pointer for contact number or entry + * @param time char pointer refers to notification time + * @return pointer to scroller with 2 pages, notification item and empty page. + */ +extern Evas_Object* notification_item_create(char *icon, char *content_text, char *contact, char *time); + +/** + * @brief Set item state to selected + * @details Function gets as a parameter elm_scroller widget with is in the notifications genlist. For send the signal it must get the + * notification page in this scroller. It use elm_object_signal_emit for change the background color of notification item. + * @param notification_scroller pointer to elm_scroller with notification_item + */ +extern void notification_item_set_selected(Evas_Object *notification_scroller); + + +/** + * @brief Set item state to default + * @details Function gets as a parameter elm_scroller widget with is in the notifications genlist. For send the signal it must get the + * notification page in this scroller. It use elm_object_signal_emit for change the background color of notification item. + * @param notification_scroller pointer to elm_scroller with notification_item + */ +extern void notification_item_set_default(Evas_Object *notification_scroller); + +extern Evas_Object* notification_item_main_create(char *icon_path, char *content, char *title, char *time); + +extern void notification_item_selected_item_set(Evas_Object *obj); +extern Evas_Object* notification_item_selected_item_get(void); + +extern void notification_item_selected_item_type_set(int type); +extern int notification_item_selected_item_type_get(void); + + +extern void notification_item_was_scrolled_set(Eina_Bool state); +#endif diff --git a/include/notification-panel.h b/include/notification-panel.h new file mode 100755 index 0000000..b7e2e3a --- /dev/null +++ b/include/notification-panel.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __NOTIFICATION_PANEL_H__ +#define __NOTIFICATION_PANEL_H__ + +#include + +#define MESSAGE_APP "com.samsung.message-lite" +#define CALL_APP "com.samsung.call-notification" +#define PHONE_APP "com.samsung.phone" + +/** + * @brief Notification update callback + * @details Function invoked by specific vconfkey change. + */ +extern void notification_cb(Evas_Object *layout); + +extern void notification_panel_update_notification_list(Evas_Object *layout); +/** + * @brief Removes all notifications from system + * @details Function uses notification api for dismiss all notifications from system. + */ +extern void notification_panel_dismiss_notifications(void); + +#endif diff --git a/include/password-verification.h b/include/password-verification.h new file mode 100755 index 0000000..d6508fe --- /dev/null +++ b/include/password-verification.h @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __PASSWORD_VERIFICATION_H__ +#define __PASSWORD_VERIFICATION_H__ + + +#define INFINITE_ATTEMPT 0 +#define VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT VCONFKEY_SETAPPL_PREFIX"/phone_lock_attempts_left" + +#define PASSWORD_ATTEMPTS_MAX_NUM 5 + +#define PWD_EVENT_PASSWORD_EMPTY 1 +#define PWD_EVENT_PASSWORD_OVER 2 +#define PWD_EVENT_PASSWORD_CORRECT 3 +#define PWD_EVENT_PASSWORD_INCORRECT 4 +#define PWD_EVENT_PASSWORD_INCORRECT_WARNING 5 +#define PWD_EVENT_PASSWORD_INCORRECT_WAIT_RECOVERY_MODE 6 +#define PWD_EVENT_INPUT_BLOCK 7 +#define PWD_EVENT_INPUT_BLOCK_WARNING 8 +#define PWD_EVENT_RECOVERY_ENTER 9 +#define PWD_EVENT_RECOVERY_SUCCESS 10 +#define PWD_EVENT_RECOVERY_FAILED 11 + +/** + * + */ +typedef void (*done_cb) (void); +typedef void (*password_operation_cb) (int event, int max_attempt, int block_attempt, int current_attemp, int remain_attempt, void *data, done_cb cb); + +struct PWD_Event_Handler { + int event; + void (*process) (int event, int max_attempt, int block_attempt, int current_attemp, int remain_attempt, void *data, done_cb cb); +}; + +typedef struct _PWD_Popup_Data { + char *text; + void *data; + Evas_Smart_Cb okcb; +} PWD_Popup_Data; + +/** + * + */ +extern void *password_verification_policy_create(); + +/** + * + */ +extern void password_verification_policy_destroy(void *data); + +extern void password_verification_verify_unlock_trigger(void); + +/** + * + */ +extern void password_verification_verify(void *data, const char *password); + +/** + * + */ +extern void password_verification_callback_set(void *data, password_operation_cb callback, void *priv); + +/** + * + */ +extern int password_verification_lock_send_cmd(const char *cmd); + +extern int password_verification_incorrect_count_get(void *policy); + +#endif diff --git a/include/progress_circle.h b/include/progress_circle.h new file mode 100755 index 0000000..b29ae87 --- /dev/null +++ b/include/progress_circle.h @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef PROGRESS_CIRCLE_H_ +#define PROGRESS_CIRCLE_H_ + +#include +#include + +typedef struct +{ + int r; + int g; + int b; + + int a; +} Color; + + +typedef struct +{ + int radius; + int part_count; + int center_x; + int center_y; + double angle; + int thickness; + + int first_x1; + int first_y1; + int first_x2; + int first_y2; + + Color color; + Evas_Object **parts; + Evas_Map **maps; + + int number_to_show; +} Circle; + +typedef enum _lockscreen_exit_state { + LOCKSCREEN_STATE_NORMAL = 0, + LOCKSCREEN_STATE_EXIT = 1, + LOCKSCREEN_STATE_START_CAMERA = 2, + LOCKSCREEN_STATE_START_CP_LINK = 3, +} lockscreen_exit_state; + +typedef enum lockscreen_mode_state { + LOCKSCREEN_MODE_SWIPE = 0, + LOCKSCREEN_MODE_SIMPLE_PASSWORD = 1, + LOCKSCREEN_MODE_COMPLEX_PASSWORD = 2, +} lockscreen_mode_state; + +#define CIRCLE_CLICKED_POZ_TOP_Y ELM_SCALE_SIZE(332) +#define CIRCLE_CLICKED_POZ_BOTTOM_Y ELM_SCALE_SIZE(700) + +extern Eina_Bool unlock_panel_create(Evas_Object *obj); + +extern void lockscreen_password_visible_set(Eina_Bool is_transition); +extern void set_lockscreen_is_after_swipe(bool state); +extern bool get_lockscreen_is_after_swipe(void); +extern void set_lockscreen_exit_state_normal(void); +extern bool get_lockscreen_is_clicked(void); +extern void set_lockscreen_swipe_is_blocked(bool is_blocked); +extern void set_lockscreen_is_keyboard_on(bool state); + +extern void vi_end_signal_emit(Eina_Bool is_effect_on, Eina_Bool is_ignore_noti); + +void set_lockscreen_state(lockscreen_mode_state state); +lockscreen_mode_state get_lockscreen_state(void); + +#endif /* PROGRESS_CIRCLE_H_ */ diff --git a/include/sim-state.h b/include/sim-state.h new file mode 100755 index 0000000..246b852 --- /dev/null +++ b/include/sim-state.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __SIM_STATE_H__ +#define __SIM_STATE_H__ + +#include + +#if !DISABLE_TELEPHONY +extern bool sim_status_listener_init(void); +#endif +extern void sim_status_listener_deinit(void); +extern char *sim_status_network_name_get(void); +extern int sim_status_roaming_status_is_on_check(void); + +#endif diff --git a/include/simple-password.h b/include/simple-password.h new file mode 100755 index 0000000..425bcf1 --- /dev/null +++ b/include/simple-password.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __SIMPLE_PASSWORD_H__ +#define __SIMPLE_PASSWORD_H__ + +#include + +/** +* Creates simple password layout +*/ +extern Evas_Object* create_simple_password_layout(Evas_Object *parent, Ecore_Timer **password_panel_timer); + +Evas_Object* create_simple_password_layout_2(Evas_Object *parent, Eina_Bool is_for_image); + +const Eina_Bool is_simple_password_blocked(); + +extern void clear_password_entry(void); + +extern void simple_password_reset(void); + +extern Evas_Object* simple_password_layout_get(void); + +#endif diff --git a/include/tizen-account.h b/include/tizen-account.h new file mode 100755 index 0000000..72f15fc --- /dev/null +++ b/include/tizen-account.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __TIZEN_ACCOUNT_H__ +#define __TIZEN_ACCOUNT_H__ + +#include + +#define TIZEN_ACCOUNT_APPID "org.tizen.tizenaccount" +#define TIZEN_ACCOUNT_CLIENTID "j5p7llxxxx" +#define TIZEN_ACCOUNT_CLIENTSECRET "5113D0052DC14XXXXX751F753384E9XX" +#define TIZEN_ACCOUNT_SERVICECATEGORY "account_verify" +#define TIZEN_ACCOUNT_OPERATION "http://tizen.org/appcontrol/operation/confirmpassword" + +/** + * @brief Function check if phone have registed tizen account. + * @details - + * @return True if tizen account is connected with phone. + */ +Eina_Bool tizen_account_if_registered_check(void); + +/** + * @brief Clicked callback function. + * @details Function invoked when user click on "Unlock via Tizen Account button". + */ +void tizen_account_launch_cb(void *data, Evas_Object *o, const char *emission, const char *source); + +#endif diff --git a/include/underbar.h b/include/underbar.h new file mode 100755 index 0000000..dcf50d5 --- /dev/null +++ b/include/underbar.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __UNDERBAR_VIEW_H__ +#define __UNDERBAR_VIEW_H__ + +extern Evas_Object *underbar_view_create(void); +extern void underbar_view_destroy(void); +extern void underbar_view_update(void); + +extern Evas_Object *underbar_proxy_create(void); +extern void underbar_proxy_destroy(void); + +extern int underbar_is_dragable(void); +extern int underbar_geometry_get(int *x, int *y, int *w, int *h); + +extern void underbar_cp_link_trigger_set(int trigger); +extern int underbar_cp_link_trigger_get(void); +extern void underbar_cp_link(void); + +#endif diff --git a/include/util-time.h b/include/util-time.h new file mode 100755 index 0000000..804c98d --- /dev/null +++ b/include/util-time.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __UTIL_TIME_H__ +#define __UTIL_TIME_H__ + +#include +#include + +#define UTIL_TIME_MERIDIEM_TYPE_NONE 0 +#define UTIL_TIME_MERIDIEM_TYPE_PRE 1 +#define UTIL_TIME_MERIDIEM_TYPE_POST 2 + +extern int update_time(Evas_Object *info_layout); +extern void reset_time(void); +extern void util_time_init(void); +extern void util_time_fini(void); + +/** +* Callback function for change the system time on default lockscreen view. +*/ +extern char* util_time_get_formatted_noti_time(time_t notification_time); +extern int util_time_roaming_state_get(); +void util_time_roaming_state_set(int state); + +#endif diff --git a/include/util.h b/include/util.h new file mode 100755 index 0000000..0c30c36 --- /dev/null +++ b/include/util.h @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __UTIL_H__ +#define __UTIL_H__ + +#include +#include + +#ifdef LOG_TAG + #undef LOG_TAG +#endif + +#define LOG_TAG "LOCKSCREEN" +#define ENABLE_LOG_SYSTEM + +#ifdef ENABLE_LOG_SYSTEM + #define LOCK_SCREEN_TRACE_ERR(fmt, arg...) LOGE("[%s:%d:E] "fmt, __func__, __LINE__, ##arg) + #define LOCK_SCREEN_TRACE_DBG(fmt, arg...) LOGD("[%s:%d ] "fmt, __func__, __LINE__, ##arg) + #define LOCK_SCREEN_TRACE_WARN(fmt, arg...) LOGW("[%s:%d:W] "fmt, __func__, __LINE__, ##arg) + #define LOCK_SCREEN_SECURE_ERR(fmt, arg...) SECURE_LOCK_SCREEN_TRACE_DBG("["LOG_TAG"%s:%d:E] : %s "fmt, __FILE__, __LINE__, __func__, ##arg) + #define LOCK_SCREEN_SECURE_DBG(fmt, arg...) SECURE_LOCK_SCREEN_TRACE_DBG("["LOG_TAG"%s:%d ] : %s "fmt, __FILE__, __LINE__, __func__, ##arg) + #define LOCK_SCREEN_SECURE_WARN(fmt, arg...) SECURE_LOGW("["LOG_TAG"%s:%d:W] : %s "fmt, __FILE__, __LINE__, __func__, ##arg) +#else + #define LOCK_SCREEN_TRACE_ERR(fmt, arg...) + #define LOCK_SCREEN_TRACE_DBG(fmt, arg...) + #define LOCK_SCREEN_TRACE_WARN(fmt, arg...) + #define LOCK_SCREEN_SECURE_ERR(fmt, arg...) + #define LOCK_SCREEN_SECURE_DBG(fmt, arg...) + #define LOCK_SCREEN_SECURE_WARN(fmt, arg...) +#endif + +#undef _ +#define _(str) i18n_get_text(str) + +#define retv_if(expr, val) do { \ + if(expr) { \ + LOCK_SCREEN_TRACE_ERR("(%s) -> %s() return", #expr, __FUNCTION__); \ + return (val); \ + } \ +} while (0) + +#define retm_if(expr, fmt, arg...) do { \ + if(expr) { \ + LOCK_SCREEN_TRACE_ERR(fmt, ##arg); \ + LOCK_SCREEN_TRACE_ERR("(%s) -> %s() return", #expr, __FUNCTION__); \ + return; \ + } \ +} while (0) + +#define ret_if(expr) do { \ + if(expr) { \ + LOCK_SCREEN_TRACE_ERR("(%s) -> %s() return", #expr, __FUNCTION__); \ + return; \ + } \ +} while (0) + +#define continue_if(expr) { \ + if(expr) { \ + LOCK_SCREEN_TRACE_ERR("(%s) -> continue", #expr); \ + continue; \ + } \ +} + +#endif diff --git a/src/info.h b/include/various-utils.h similarity index 50% rename from src/info.h rename to include/various-utils.h index 6530eb7..e20ba56 100755 --- a/src/info.h +++ b/include/various-utils.h @@ -1,23 +1,21 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved * - * Licensed under the Flora License, Version 1.1 (the License); + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, + * 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 __INFO_H__ -#define __INFO_H__ +#ifndef VARIOUS_UTILS_H_ +#define VARIOUS_UTILS_H_ +int is_Korean_locale_enabled(); -void _set_info(void *data); -void update_time(void *data); - -#endif +#endif /* VARIOUS_UTILS_H_ */ diff --git a/include/weather.h b/include/weather.h new file mode 100755 index 0000000..1934b00 --- /dev/null +++ b/include/weather.h @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __WEATHER_H__ +#define __WEATHER_H__ + +#include +#include + +void weather_view_init(Evas_Object *base_layout); +void weather_view_fini(void); +int weather_is_visible(void); + +#endif diff --git a/org.tizen.lockscreen.efl b/org.tizen.lockscreen.efl new file mode 100755 index 0000000..48234c2 --- /dev/null +++ b/org.tizen.lockscreen.efl @@ -0,0 +1,94 @@ +org.tizen.lockscreen _ -w---- ------ +org.tizen.lockscreen cbhm r----- ------ +org.tizen.lockscreen ail::db rw---- ------ +org.tizen.lockscreen system::vconf rwxat- ------ +org.tizen.lockscreen system::homedir rwxat- ------ +org.tizen.lockscreen system::media rwxat- ------ +org.tizen.lockscreen system::share rwxat- ------ +org.tizen.lockscreen pulseaudio rwxat- ------ +org.tizen.lockscreen pkgmgr::db rw---l ------ +org.tizen.lockscreen system::use_internet rw---- ------ +system::use_internet org.tizen.lockscreen rw---- ------ +org.tizen.lockscreen starter -w---- ------ +org.tizen.lockscreen xorg rwx--- ------ +org.tizen.lockscreen isf rwx--- ------ +org.tizen.lockscreen notification::db rw---- ------ +org.tizen.lockscreen immvibed rw---- ------ +org.tizen.lockscreen org.tizen.indicator rw---- ------ +org.tizen.lockscreen org.tizen.setting r-x--- ------ +org.tizen.lockscreen org.tizen.phone r----- ------ +org.tizen.lockscreen org.tizen.gallery r----- ------ +org.tizen.lockscreen org.tizen.volume --x--- ------ +org.tizen.lockscreen dbus -wx--- ------ +org.tizen.lockscreen system-server r-x--- ------ +org.tizen.lockscreen sound_server -w---- ------ +org.tizen.lockscreen contacts-service rwx--- ------ +org.tizen.lockscreen contacts-service2 rwx--- ------ +org.tizen.lockscreen msg-service -w---- ------ +org.tizen.lockscreen svi-data r-x--- ------ +org.tizen.lockscreen csc-manager r-x--- ------ +org.tizen.lockscreen e17 r-x--- ------ +e17 org.tizen.lockscreen -w---- ------ +aul org.tizen.lockscreen --x--- ------ +dbug org.tizen.lockscreen rwx--- ------ +org.tizen.cluster-home org.tizen.lockscreen -w---- ------ +org.tizen.lockscreen sys-assert::core rwxat- ------ +org.tizen.lockscreen data-provider-master rw---- ------ +org.tizen.lockscreen data-provider-master::notification rw---- ------ +org.tizen.lockscreen data-provider-master::notification.client rw---- ------ +org.tizen.lockscreen mdm-server -w---- ------ +org.tizen.lockscreen mdm-server::admin r----- ------ +org.tizen.lockscreen mdm-server::password rw---- ------ +org.tizen.lockscreen deviced rwx--- ------ +org.tizen.lockscreen tts-server r-x--- ------ +org.tizen.lockscreen calendar-service rwx--- ------ +org.tizen.lockscreen calendar-service::service r----- ------ +org.tizen.lockscreen drmfw rw---- ------ +org.tizen.lockscreen org.tizen.sat-ui::vconf rw---- ------ +org.tizen.lockscreen syslogd -w---- ------ +org.tizen.lockscreen sdbd rwx--- ------ +org.tizen.lockscreen aul::launch --x--- ------ +org.tizen.lockscreen aul::terminate --x--- ------ +org.tizen.lockscreen aul --x--- ------ +org.tizen.lockscreen security-server::api-password-check -w---- ------ +org.tizen.lockscreen device::app_logging -w---- ------ +org.tizen.lockscreen system::vconf_inhouse rw---l ------ +org.tizen.lockscreen system::vconf_system r----l ------ +org.tizen.lockscreen testmode::vconf rw---l ------ +org.tizen.lockscreen contacts-service::phonelog r----l ------ +org.tizen.lockscreen lockscreen_private::vconf rw---- ------ +org.tizen.lockscreen lockscreen_setting::vconf rw---l ------ +org.tizen.lockscreen security-server::api-password-reset -w---- ------ +org.tizen.lockscreen system::vconf_multimedia r----l ------ +org.tizen.lockscreen org.tizen.indicator rw---- ------ +org.tizen.lockscreen system::vconf_setting rw---l ------ +org.tizen.lockscreen system-apps r-x--- ------ +org.tizen.lockscreen org.tizen.telephony-syspopup r-x--- ------ +org.tizen.lockscreen org.tizen.setting::default-resources rwx--- ------ +org.tizen.lockscreen starter::vconf rw---- ------ +org.tizen.lockscreen e17-data --x--- ------ +org.tizen.lockscreen org.tizen.music-player-lite rwx--- ------ +org.tizen.lockscreen org.tizen.oma-dm r-x--- ------ +org.tizen.lockscreen org.tizen.app-tray --x--- ------ +org.tizen.lockscreen telephony_framework::vconf rwx--l ------ +org.tizen.lockscreen key-manager::api-control -w---- ------ +org.tizen.lockscreen org.tizen.dailybriefing-weather-lite rwx--- ------ +org.tizen.lockscreen org.tizen.tizenaccount rwx--- ------ +org.tizen.volume lockscreen_setting::resources r-x--- ------ +org.tizen.volume org.tizen.wallpaper-ui-service r----- ------ +org.tizen.lockscreen org.tizen.wallpaper-ui-service::vconf rwxat- ------ +org.tizen.lockscreen libaccounts-svc::db rw---- ------ +org.tizen.lockscreen libaccounts-svc::check_read r----- ------ +org.tizen.lockscreen samsung-accounts-front r-x--- ------ +org.tizen.lockscreen contacts-service::svc --x--- ------ +org.tizen.lockscreen deviced::haptic rw---- ------ +org.tizen.lockscreen ug-setting-call-efl::vconf r----l ------ +org.tizen.lockscreen device::sys_logging -w---- ------ +org.tizen.lockscreen org.tizen.wallpaper-service rwx--- ------ +org.tizen.lockscreen org.tizen.wallpaper-service::wallpaper-service rwx--- ------ +org.tizen.lockscreen system::vconf_misc r----- ------ +org.tizen.lockscreen cloud-pdm rwxat- ------ +org.tizen.lockscreen lockscreen_setting::resources rwx--- ------ +org.tizen.lockscreen e17::notification rwx--- ------ +org.tizen.lockscreen system::ext_storage rwx--- ------ +org.tizen.lockscreen telephony_framework::api_sim rwx--l ------ diff --git a/org.tizen.lockscreen.manifest b/org.tizen.lockscreen.manifest old mode 100755 new mode 100644 index 51303c7..6dd0f35 --- a/org.tizen.lockscreen.manifest +++ b/org.tizen.lockscreen.manifest @@ -5,4 +5,7 @@ + + + diff --git a/org.tizen.lockscreen.rule b/org.tizen.lockscreen.rule deleted file mode 100644 index f5e97f8..0000000 --- a/org.tizen.lockscreen.rule +++ /dev/null @@ -1,47 +0,0 @@ -org.tizen.lockscreen _ rwx -org.tizen.lockscreen cbhm r -org.tizen.lockscreen ail::db rw -org.tizen.lockscreen system::vconf rwxat -org.tizen.lockscreen system::homedir rwxat -org.tizen.lockscreen system::media rwxat -org.tizen.lockscreen system::share rwxat -org.tizen.lockscreen pulseaudio rwxat -org.tizen.lockscreen system::use_internet rw -system::use_internet org.tizen.lockscreen rw -org.tizen.lockscreen starter w -org.tizen.lockscreen xorg rwx -org.tizen.lockscreen isf rwx -org.tizen.lockscreen notification::db rw -org.tizen.lockscreen immvibed rw -org.tizen.lockscreen org.tizen.indicator rwx -org.tizen.lockscreen org.tizen.setting rx -org.tizen.lockscreen org.tizen.phone r -org.tizen.lockscreen org.tizen.gallery r -org.tizen.lockscreen org.tizen.volume x -org.tizen.lockscreen dbus wx -org.tizen.lockscreen system-server rx -org.tizen.lockscreen sound_server w -org.tizen.lockscreen contacts-service rwx -org.tizen.lockscreen msg-service w -org.tizen.lockscreen svi-data rx -org.tizen.lockscreen csc-manager rx -org.tizen.lockscreen e17 rx -e17 org.tizen.lockscreen w -aul org.tizen.lockscreen rx -dbug org.tizen.lockscreen rwx -org.tizen.cluster-home org.tizen.lockscreen w -org.tizen.lockscreen sys-assert::core rwxat -org.tizen.lockscreen data-provider-master rw -org.tizen.lockscreen data-provider-master::notification rw -org.tizen.lockscreen data-provider-master::notification.client rw -org.tizen.lockscreen mdm-server w -org.tizen.lockscreen deviced rwx -org.tizen.lockscreen tts-server rx -org.tizen.lockscreen calendar-service rwx -org.tizen.lockscreen calendar-service::service r -org.tizen.lockscreen drmfw rw -org.tizen.lockscreen org.tizen.sat-ui::vconf rw -org.tizen.lockscreen syslogd w -org.tizen.lockscreen sdbd rwx -org.tizen.lockscreen system::vconf_multimedia rl -org.tizen.lockscreen system::vconf_system rwl diff --git a/org.tizen.lockscreen.xml b/org.tizen.lockscreen.xml new file mode 100755 index 0000000..a9a99a0 --- /dev/null +++ b/org.tizen.lockscreen.xml @@ -0,0 +1,26 @@ + + + + Michal Szczecinski + lockscreen-lite + + + + + + + + + + + + + + + + + + + + + diff --git a/org.tizen.lockscreen.xml.in b/org.tizen.lockscreen.xml.in deleted file mode 100755 index 2994515..0000000 --- a/org.tizen.lockscreen.xml.in +++ /dev/null @@ -1,11 +0,0 @@ - - - - Youngjoo Park - seungtaek chung - Lockscreen Application - - - - - diff --git a/packaging/org.tizen.lockscreen.spec b/packaging/org.tizen.lockscreen.spec index ff02939..0bce4bd 100755 --- a/packaging/org.tizen.lockscreen.spec +++ b/packaging/org.tizen.lockscreen.spec @@ -1,58 +1,134 @@ -%define PREFIX /usr/apps/org.tizen.lockscreen +%define AppInstallPath /usr/apps/org.tizen.lockscreen +%define Exec lockscreen -Name: org.tizen.lockscreen -Summary: lockscreen application -Version: 0.1.19 + +Name: org.tizen.lockscreen-lite +Summary: Lockscreen app +Version: 0.0.1 Release: 1 -Group: TBD -License: Apache +License: Apache-2.0 Source0: %{name}-%{version}.tar.gz -BuildRequires: pkgconfig(capi-appfw-application) -BuildRequires: pkgconfig(ecore-x) -BuildRequires: pkgconfig(appcore-efl) -BuildRequires: pkgconfig(utilX) -BuildRequires: pkgconfig(ail) -BuildRequires: pkgconfig(notification) -BuildRequires: pkgconfig(security-server) -BuildRequires: pkgconfig(ui-gadget-1) -BuildRequires: pkgconfig(heynoti) -BuildRequires: pkgconfig(capi-system-info) - -BuildRequires: cmake -BuildRequires: gettext -BuildRequires: edje-tools + +BuildRequires: pkgconfig(appcore-efl) +BuildRequires: pkgconfig(capi-appfw-application) +BuildRequires: pkgconfig(ecore) +BuildRequires: pkgconfig(ecore-x) +BuildRequires: pkgconfig(eina) +BuildRequires: pkgconfig(evas) +BuildRequires: pkgconfig(bundle) +BuildRequires: pkgconfig(capi-system-sensor) +BuildRequires: pkgconfig(deviced) +BuildRequires: pkgconfig(edje) +BuildRequires: pkgconfig(aul) +BuildRequires: pkgconfig(ail) +BuildRequires: edje-tools +BuildRequires: gettext-tools +BuildRequires: pkgconfig(dlog) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(dbus-glib-1) +BuildRequires: pkgconfig(elementary) +BuildRequires: cmake +BuildRequires: pkgconfig(notification) +BuildRequires: pkgconfig(minicontrol-viewer) +BuildRequires: pkgconfig(contacts-service2) +BuildRequires: pkgconfig(security-server) +BuildRequires: pkgconfig(minicontrol-monitor) +BuildRequires: libX11 +BuildRequires: libXtst-devel +BuildRequires: pkgconfig(utilX) +BuildRequires: pkgconfig(ui-gadget-1) +BuildRequires: pkgconfig(feedback) +BuildRequires: pkgconfig(msg-service) +BuildRequires: pkgconfig(tapi) +BuildRequires: pkgconfig(efl-assist) +BuildRequires: pkgconfig(key-manager) +%if ! 0%{?sec_build_binary_sdk} +BuildRequires: pkgconfig(capi-telephony-network-info) +BuildRequires: pkgconfig(wallpaper-service) +BuildRequires: pkgconfig(mdm) +%endif +BuildRequires: pkgconfig(accounts-svc) +BuildRequires: pkgconfig(capi-appfw-app-manager) + +%if 0%{?sec_build_binary_sdk} +BuildRequires: model-build-features +%else +BuildRequires: sec-product-features +%endif + +%if 0%{?sec_build_binary_sdk} +%define BRANCH SDK +%else +%define BRANCH PRIVATE +%endif + %description -lockscreen application. +Lockscreen application for Tizen. %prep %setup -q %build -LDFLAGS+="-Wl,--rpath=%{PREFIX}/lib -Wl,--as-needed";export LDFLAGS -cmake . -DCMAKE_INSTALL_PREFIX=%{PREFIX} +%if 0%{?sec_build_binary_debug_enable} +export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE" +export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE" +export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE" +%endif + +%if "%{sec_product_feature_display_resolution}" == "720x1280" +export CFLAGS="$CFLAGS -DRESOLUTION_HD" +export CXXFLAGS="$CXXFLAGS -DRESOLUTION_HD" +export FFLAGS="$FFLAGS -DRESOLUTION_HD" +echo Resolution : HD +%else +echo Resolution : WVGA +%endif + +%if 0%{?sec_build_binary_sdk} +export CFLAGS="$CFLAGS -DEMULATOR_BINARY" +export CXXFLAGS="$CXXFLAGS -DEMULATOR_BINARY" +export FFLAGS="$FFLAGS -DEMULATOR_BINARY" +echo SDK BRANCH +%else +export CFLAGS="$CFLAGS -DTARGET_BINARY" +export CXXFLAGS="$CXXFLAGS -DTARGET_BINARY" +export FFLAGS="$FFLAGS -DTARGET_BINARY" +echo PRIVATE BRANCH +%endif + +cmake . -DCMAKE_INSTALL_PREFIX="%{AppInstallPath}" -DBRANCH=%{BRANCH} -DCMAKE_TARGET="%{Exec}" -DCMAKE_PACKAGE="%{name}" make %{?jobs:-j%jobs} %install +rm -rf %{buildroot} %make_install -mkdir -p %{buildroot}/usr/apps/org.tizen.lockscreen/data -mkdir -p %{buildroot}/usr/share/license -#install -m 0755 LICENSE.Flora %{buildroot}/usr/share/license/org.tizen.lockscreen -cp LICENSE.Flora %{buildroot}/usr/share/license/%{name} %post /sbin/ldconfig +#chown -R 5000:5000 %{AppInstallPath} + +GOPTION="-u 5000 -f" +POPTION="-s lockscreen_private::vconf" -GOPTION="-g 6514" +vconftool set -t int "memory/private/org.tizen.lockscreen/first_launching" 1 -i $GOPTION $POPTION %postun -p /sbin/ldconfig %files %manifest org.tizen.lockscreen.manifest %defattr(-,root,root,-) -%attr(-,inhouse,inhouse) %dir /usr/apps/org.tizen.lockscreen/data -/usr/apps/org.tizen.lockscreen/* +%{AppInstallPath}/bin/lockscreen +%{AppInstallPath}/res/images/*.png +%{AppInstallPath}/res/edje/*.edj +%{AppInstallPath}/res/locale/*/LC_MESSAGES/* +%{AppInstallPath}/shared/res/tables/*.xml /usr/share/packages/org.tizen.lockscreen.xml -/usr/share/license/org.tizen.lockscreen -/usr/apps/org.tizen.lockscreen/res/locale/*/LC_MESSAGES/lockscreen.mo -/opt/etc/smack/accesses.d/org.tizen.lockscreen.rule -/usr/share/license/%{name} + +%if 0%{?sec_build_binary_sdk} +/etc/smack/accesses.d/*.efl +%else +/etc/smack/accesses2.d/*.rule +%endif + + diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt index 00d362b..9375fba 100755 --- a/po/CMakeLists.txt +++ b/po/CMakeLists.txt @@ -1,6 +1,6 @@ # for i18n -SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de_DE.po el_GR.po en.po en_PH.po en_US.po es_ES.po et.po eu.po fi.po fr_CA.po fr_FR.po ga.po gl.po hi.po hr.po hu.po hy.po is.po it_IT.po ja_JP.po ka.po kk.po ko_KR.po lt.po lv.po mk.po nb.po nl_NL.po pl.po pt_BR.po pt_PT.po ro.po ru_RU.po sk.po sl.po sr.po sv.po tr_TR.po uk.po uz.po zh_CN.po zh_HK.po zh_SG.po zh_TW.po) +SET(POFILES as.po bn.po en.po en_PH.po en_US.po es_US.po gu.po hi.po id.po km.po kn.po ko_KR.po lo.po ml.po mr.po ms.po my.po ne.po or.po pa.po pt_BR.po si.po ta.po ta.po te.po th.po tl.po ur.po vi.po zh_CN.po) SET(MSGFMT "/usr/bin/msgfmt") diff --git a/po/ar.po b/po/ar.po deleted file mode 100755 index 721a9da..0000000 --- a/po/ar.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "تتبقى محاولة واحدة" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d محاولات متبقية" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "مكالمات طوارئ فقط" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "اسحب بإصبعك على الشاشة لإلغاء قفلها" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "انقر مع الاستمرار فوق الشاشة ثم قم بإمالة الجهاز نحو الأمام" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "كلمة مرور غير صحيحة" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "مكالمة فائتة" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "مكالمات فائتة" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "رسالة جديدة" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "رسائل جديدة" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "بريد إلكتروني جديد" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "رسائل بريد إلكتروني جديدة" - diff --git a/po/as.po b/po/as.po new file mode 100755 index 0000000..11212f0 --- /dev/null +++ b/po/as.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "নতুন মেচেজ" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 নতুন মেচেজ" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "এপ্লিকেশ্বনসমূহ চয়ন কৰক" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "চ'ক' কুকি" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "কুল জাজ" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "ৰ'জমেৰী" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "বন্ধ কৰক" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "প্ৰক্ৰিয়াৰত..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "%d আইটেম প্ৰদৰ্শিত হৈছে" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "বাতিল" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "বতৰ" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "টিউটৰিয়েল সম্পূৰ্ণ" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "অমান্য কাৰ্য৷ পুনৰ চেষ্টা কৰক৷" + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "ৱালপেপাৰ চয়ন কৰক" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "আনলক কৰিবলৈ স্ক্ৰীণ ঘহাওক৷" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "মিল নাই" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "বৈকল্পিক পাছৱৰ্ড" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "আপোনাৰ %1$d টা মিচ কল আৰু %2$d টা নপঢ়া মেচেজ আছে৷" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "ৱালপেপাৰসমূহ" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "স্ক্ৰীণখন টিপক আৰু ধৰি ৰাখক, তাৰপিছত ডিভাইচটো আনলক কৰিবৰ বাবে আপোনাৰ দিশলৈ বেকা কৰক৷ যদি স্ক্ৰীণ আনলক নহয়, ডিভাইচটো অধিক বেকা কৰি চেষ্টা কৰক৷ যেতিয়া সঞ্চালন আনলক ছেট হৈ থাকে, ছেটিংছত সঞ্চালন স্বয়ংক্ৰিয়ভাৱে সক্ষম হ'ব৷" + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "যদি আপোনাৰ গীয়েৰ চিনাক্ত কৰিবৰ বাবে অধিক দূৰত আছে, সহজ পাছৱৰ্ড লক স্বয়ংক্ৰিয়ভাৱে সক্ষম কৰা হ'ব৷ যেতিয়া আপোনাৰ গীয়েৰ চিনাক্ত কৰা হয়, আপোনাৰ স্কীণ লকৰ প্ৰকাৰ ঘঁহোৱা লকলৈ সলনি হ'ব৷" + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "এপ্লিকেশ্বন চয়ন কৰক" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d নতুন মেচেজ" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d টা মিচ কল" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4-টা সংখ্যাৰ PIN প্ৰৱিষ্ট কৰক৷" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "লক স্ক্ৰীণ ৱালপেপাৰ পৰিৱৰ্তন হৈছে৷" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "গৃহ স্ক্ৰীণ ৱালপেপাৰ পৰিৱৰ্তন হৈছে৷" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "ঘহোৱা" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "আঙুলিৰ ছাপ" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "লক স্ক্ৰীণ ছেটিংছ" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "লক স্ক্ৰীণ" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "স্ক্ৰীণ টিপক আৰু হ'ল্ড কৰক, তাৰপিছত ইয়াক আনলক কৰিবলৈ ডিভাইচ আপোনাৰ ফালে টিল্ট কৰক৷ যদি স্ক্ৰীণ আনলক নহয়, ডিভাই অধিক টিল্ট কৰিবলৈ চেষ্টা কৰক" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "সৰল পাছৱৰ্ড" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "স্ক্ৰীণ লক টাইপ" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "ৰোমিং" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "পাছৱৰ্ড" + +msgid "IDS_ST_BODY_NONE" +msgstr "একো নাই" + +msgid "IDS_ST_BODY_MOTION" +msgstr "সঞ্চাৰণ" + +msgid "IDS_ST_BODY_EDIT" +msgstr "সম্পাদনা কৰক" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "ৰঙীন বৰ্গসমূহ ওপৰৰ ক্ষেত্ৰৰ পৰা তলৰ ক্ষেত্ৰলৈ টানক আৰু ৰাখক বা ওপৰৰ ক্ষেত্ৰৰ ৰঙীন বৰ্গসমূহ তুলনা কৰা ৰঙৰ সৈতে মিল থকা ক্ৰমত টিপক। আপুনি তলৰ ক্ষেত্ৰত বৰ্গসমূহ পুনঃ-ক্ৰমাঙ্কিত কৰিবলৈ টানিব আৰু ৰাখিব পাৰে।" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "স্বয়ংক্ৰিয়-আৱদ্ধ" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "আনলক PIN প্ৰৱিষ্ট কৰক৷" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "অশুদ্ধ PIN" + +msgid "IDS_COM_BODY_EDIT" +msgstr "সম্পাদনা কৰক" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "এই ৱেবপৃষ্ঠাটো উপলব্ধ নহয়৷" + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "DNS নিৰীক্ষণ বিফল হোৱাৰ বাবে %s-ত থকা চাৰ্ভাৰ পোৱা নগ'ল৷ DNS হৈছে এটা নেটৱৰ্ক সেৱা, যি এটা ৱেবচাইটৰ নাম ইয়াৰ ইণ্টাৰনেট ঠিকনালৈ অনুবাদ কৰে৷ এই ত্ৰুটিটো সঘনাই ইণ্টাৰনেটলৈ সংযোগ নথকাৰ বাবে বা নেটৱৰ্ক ভূলকৈ কনফিগাৰ কৰাৰ বাবে হয়৷ ই সঁহাৰি নথকা DNS চাৰ্ভাৰৰ দ্বাৰা বা ফায়াৰৱালে নেটৱৰ্কৰ পৰা ইণ্টাৰনেটলৈ প্ৰৱেশ কৰাত প্ৰতিৰোধ কৰাৰ বাবেও হয়৷" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 প্ৰচেষ্টা বাকি আছে৷" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d টা প্ৰয়াস বাকী আছে৷" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM নাই" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "মিচ কল" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "মিচ কলবিলাক" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "জৰুৰী কল" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "কেৱল জৰুৰী কল৷" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "চাৰ্জ হৈ আছে: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "পাছৱৰ্ড প্ৰৱিষ্ট কৰক৷" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "সম্পূৰ্ণ চাৰ্জ হৈছে৷" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d ৰ পৰা %2$d সংখ্যা বা বৰ্ণ প্ৰয়োজন৷" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "অশুদ্ধ পাছৱৰ্ড৷" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen Account-ৰ জৰিয়তে আনলক কৰক" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d ছে.ত পুনৰ চেষ্টা কৰক৷" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1 ছেকেণ্ডত পুনৰ চেষ্টা কৰক৷" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "কল লগ দৰ্শন কৰিবৰ বাবে স্ক্ৰীণত ঘহাওক৷" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "বাৰ্তাসমূহ খুলিবৰ বাবে স্ক্ৰীণত ঘহাওক৷" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "বাতিল" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "কেৱল জৰুৰী কল৷" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "সেৱা নাই" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "ঠিক" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "গৃহ" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen একাউণ্ট হৈ\nআনলক কৰক" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "কেমেৰা চৰ্টকাট" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "দ্বৈত ঘ্ড়ী" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 মিছ কল" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "পৰিত্যাগ কৰক" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "সংৰক্ষণ" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "কেৱল জৰুৰীকালীন কল" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "অনুসন্ধানৰত" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN প্ৰৱেশ কৰক৷" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "অশুদ্ধ PIN৷" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "কললৈ ঘুৰি যাওক" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "বন্ধ কৰক" + +msgid "IDS_COM_SK_BACK_A" +msgstr "পিছলৈ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "বাতিল কৰক" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "কল লগ দৰ্শন কৰিবলৈ স্ক্ৰীণ ঘহাঁওক" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "কল লগ দৰ্শন কৰিবলৈ PIN প্ৰৱিষ্ট কৰক" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "কল লগ দৰ্শন কৰিবলৈ পাছৱৰ্ড প্ৰৱিষ্ট কৰক" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "মেচেজ দৰ্শন কৰিবলৈ স্ক্ৰীণ ঘহাঁওক" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "মেচেজ দৰ্শন কৰিবলৈ PIN প্ৰৱিষ্ট কৰক" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "মেচেজ দৰ্শন কৰিবলৈ পাছৱৰ্ড প্ৰৱিষ্ট কৰক" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "আপুনি %1$d বাৰ অশুদ্ধভাৱে ডিভাইচ আনলক কৰিবলৈ প্ৰয়াস কৰিছে৷ আপুনি ডিভাইচটো ফেক্টৰী ডিফ'ল্ট পুনঃছেট কৰাৰ পূৰ্বে আৰু সকলো ডাটা মোহাৰিবৰ বাবে %2$d টা প্ৰয়াস বাকী আছে৷" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "আপুনি ডিভাইচটো %d বাৰ ভূলকৈ অনবৰোধ কৰিবৰ বাবে চেষ্টা কৰিছে৷ ইয়াক এতিয়া ফেক্টৰী ডিফ'ল্টলৈ পুনঃছেট কৰা হ'ব আৰু সকলো ডাটা মোহাৰি পেলোৱা হ'ব" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "বন্ধ" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "স্ক্ৰীণ আনলক কৰাত অক্ষম" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "আপুনি আপোনাৰ ডিভাইচ আনলক কৰিবৰ বাবে %1$d টা অসফল প্ৰয়াস কৰিছে৷ পুনৰাই %2$d ছেকেণ্ডত প্ৰয়াস কৰক৷" + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "ডিভাইচ আনলক হৈছে৷" + diff --git a/po/az.po b/po/az.po deleted file mode 100755 index 9734e57..0000000 --- a/po/az.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 cəhd qalmışdır" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d cəhd qalıb" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Yalnız fövqəladə zənglər üçün" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Kilidi açmaq üçün ekrana vur" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Ekrana vurub saxlayın və cihazı irəli əyin" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Yanlış şifrə" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Buraxılmış zəng" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Buraxılmış zənglər" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Yeni mesaj" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Yeni mesaj" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Yeni epoçt" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Yeni epoçtlar" - diff --git a/po/bg.po b/po/bg.po deleted file mode 100755 index d76db28..0000000 --- a/po/bg.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 оставащ опит" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "Остават %d опита" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Само спешни повиквания" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Плъзнете екрана, за да го отключите" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Чукнете и задръжте екрана и наклонете устройството напред" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Грешна парола" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Пропуснат разговор" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Пропуснати разговори" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Ново съобщение" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Нови съобщения" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Нов имейл" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Нови имейли" - diff --git a/po/bn.po b/po/bn.po new file mode 100755 index 0000000..5425de9 --- /dev/null +++ b/po/bn.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "নতুন বার্তা" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1টি নতুন বার্তা" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "অ্যাপ্লিকেশনগুলি নির্বাচন করুন" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "চকো কুকি" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "কুল জ্যাজ" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "রোজমেরি" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "বন্ধ করুন" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "প্রক্রিয়াকরণ চলছে..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "%dটি আইটেম দেখানো হচ্ছে" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "বাতিল" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "আবহাওয়া" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "টিউটোরিয়াল সম্পূর্ণ৷" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "অবৈধ ক্রিয়া৷ আবার চেষ্টা করুন৷" + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "ওয়ালপেপার নির্বাচন" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "আনলক করতে স্ক্রিন সোয়াইপ করুন।" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "কিছু মেলে না" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "বিকল্প পাসওয়ার্ড" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "আপনার %1$dটি মিসড কল এবং %2$dটি অপঠিত বার্তা আছে।" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "ওয়ালপেপারগুলি" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "স্ক্রিনটি ট্যাপ করে ধরে থাকুন তারপরে ডিভাইসটি আনলক করতে এটি আপনার দিকে কাত করুন। যদি স্ক্রিনটি আনলক না হয় তবে ডিভাইসটি আরও কাত করার চেষ্টা করুন। যখন গতি আনলক সেট থাকে তখন গতি স্বয়ংক্রিয়ভাবে সেটিংসে সক্ষম হবে।" + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "যদি আপনার গিয়ার শনাক্ত হওয়ার পক্ষে অনেক দূরে থাকে তবে সহজ পাসওয়ার্ড লক স্বয়ংক্রিয়ভাবে সক্ষম হবে। যখন আপনার গিয়ার শনাক্ত হয় তখন আপনার স্ক্রিন লকের প্রকারটি সোয়াইপ লকে পরিবর্তিত হবে।" + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "অ্যাপ্লিকেশন নির্বাচন করুন" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%dটি নতুন বার্তা" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%dটি মিসড কল" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4-সংখ্যার PINটি প্রবেশ করান।" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "লক স্ক্রিন ওয়ালপেপার পরিবর্তিত।" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "হোম স্ক্রিন ওয়ালপেপার পরিবর্তিত।" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "সোয়াইপ" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "ফিঙ্গারপ্রিন্ট" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "লক স্ক্রিন সেটিংস" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "লক স্ক্রিন" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "স্ক্রিনটি ট্যাপ করে ধরে থাকুন তারপরে এটি আনলক করতে ডিভাইসটি আপনার দিকে কাত করুন৷ যদি স্ক্রিনটি আনলক না হয় তবে ডিভাইসটি আরও কাত করার চেষ্টা করুন" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "সহজ পাসওয়ার্ড" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "স্ক্রিনের লকের ধরণ" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "রোমিং" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "পাসওয়ার্ড" + +msgid "IDS_ST_BODY_NONE" +msgstr "কিছু না" + +msgid "IDS_ST_BODY_MOTION" +msgstr "গতি" + +msgid "IDS_ST_BODY_EDIT" +msgstr "সম্পাদনা করুন" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "উপরের ক্ষেত্র থেকে নীচের ক্ষেত্রে রঙিন বর্গক্ষেত্রগুলি টেনে এনে ছেড়ে দিন বা তুলনা করা হচ্ছে এমন রঙের সমতুল্য ক্রমটিতে উপরের ক্ষেত্রটিতে রঙিন বর্গক্ষেত্রগুলি ট্যাপ করুন। আপনি বর্গক্ষেত্রগুলি পুনরায় ক্রমযুক্ত করতে নীচের ক্ষেত্রটিতে এগুলি টেনে এনে ছেড়ে দিতে পারেন।" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "স্বতঃ লক" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "আনলক PIN লিখুন।" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "ভুল PIN" + +msgid "IDS_COM_BODY_EDIT" +msgstr "সম্পাদনা করুন" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "এই ওয়েবপৃষ্ঠাটি সুলভ নয়।" + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "%s-এ থাকা সার্ভারটি DNS লুক-আপ ব্যর্থ হওয়ার কারণে খুঁজে নাও পাওয়া যেতে পারে৷ DNS হল এমন একটি নেটওয়ার্ক পরিষেবা যা কোনও ওয়েবসাইটের নাম ইন্টারনেট ঠিকানাটিতে অনুবাদ করে৷ এই ত্রুটিটি ইন্টারনেটে কোনও সংযোগ না থাকা বা কোনও ত্রুটিপূর্ণভাবে কনফিগার থাকা নেটওয়ার্কের কারণে প্রায়শই হতে পারে৷ এটি একটি অপ্রত্যুত্তরমূলক DNS সার্ভারের বা কোনও ফায়ারওয়াল যা ইন্টারনেটকে নেটওয়ার্ক অ্যাক্সেসে বাধা দিচ্ছে তার কারণে ঘটতে পারে৷" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1টি চেষ্টা বাকী।" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%dটি প্রয়াস বাকি।" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "কোনও SIM নেই" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "মিসড কল" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "মিসড কলগুলি" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "আপৎকালীন কল" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "কেবলমাত্র আপৎকালীন কল।" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "চার্জ হচ্ছে: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "পাসওয়ার্ড লিখুন।" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "পুরো চার্জ।" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d থেকে %2$dটি সংখ্যা বা অক্ষর প্রয়োজনীয়।" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "ভুল পাসওয়ার্ড।" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen account-এর মাধ্যমে আনলক করুন" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d সেকেন্ড পরে আবার চেষ্টা করুন।" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1 সেকেন্ডের মধ্যে আবার চেষ্টা করুন।" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "কল লগ দেখতে স্ক্রিনটি সোয়াইপ করুন।" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "বার্তাগুলি খুলতে স্ক্রিনটি সোয়াইপ করুন।" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "বাতিল" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "কেবলমাত্র আপৎকালীন কল।" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "কোনও পরিষেবা নেই" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "ওকে" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "হোম" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen অ্যাকাউন্টের মাধ্যমে\nআনলক করুন" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "ক্যামেরা শর্টকাট" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "দ্বৈত ঘড়ি" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1টি মিসড কল" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "পরিত্যাগ" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "সংরক্ষণ" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "শুধুমাত্র আপৎকালীন কল" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "সন্ধান চলছে" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN লিখুন।" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "ভুল PIN।" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "কলে ফিরুন" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "বন্ধ" + +msgid "IDS_COM_SK_BACK_A" +msgstr "ব্যাক" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "বাতিল" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "কল লগ দেখতে স্ক্রিন সোয়াইপ করুন" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "কল লগ দেখতে PIN লিখুন" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "কল লগ দেখতে পাসওয়ার্ড লিখুন" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "বার্তাটি দেখতে স্ক্রিন সোয়াইপ করুন" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "বার্তা দেখতে PIN লিখুন" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "বার্তা দেখতে পাসওয়ার্ড লিখুন" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "আপনি ডিভাইসটি %1$d বার ভুলভাবে আনলক করার প্রয়াস করেছেন। ডিভাইসটি ফ্যাক্টরি ডিফল্টে পুনরায় সেট করার এবং সমস্ত তথ্য মুছে যাওয়ার আগে আপনার আর %2$dটি প্রয়াস অবশিষ্ট রয়েছে।" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "আপনি ডিভাইসটি ত্রুটিপূর্ণ উপায়ে %d বার আনলক করার প্রয়াস করেছেন। এটি এখন ফ্যাক্টরি ডিফল্টে পুনরায় সেট হবে এবং সমস্ত তথ্য মুছে যাবে" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "বন্ধ করুন" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "স্ক্রিন আনলক করতে অক্ষম" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "আপনার ডিভাইসটি আনলক করতে আপনি %1$dটি অসফল প্রয়াস করেছেন। %2$d সেকেন্ডে পুনরায় চেষ্টা করুন।" + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "ডিভাইস আনলক করা হয়েছে।" + diff --git a/po/ca.po b/po/ca.po deleted file mode 100755 index c08b625..0000000 --- a/po/ca.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Queda 1 intent" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "Queden %d intents" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Només trucades d'emergència" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Mogui la pantalla per desbloquejar" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Mantingui tocada la pantalla i inclini el dispositiu endavant" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Contrasenya incorrecta" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Trucada perduda" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Trucades perdudes" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Nou missatge" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Nous missatges" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Nou correu electrònic" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Nous correus electrònics" - diff --git a/po/cs.po b/po/cs.po deleted file mode 100755 index 2688009..0000000 --- a/po/cs.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Zbývá 1 pokus" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "Počet zbývajících pokusů: %d" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Pouze tísňová volání" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Pro odemknutí přejeďte po displeji" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Klepněte na displej, držte a nakloňte zařízení dopředu" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Nesprávné heslo" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Zmeškaný hovor" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Zmeškané hovory" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Nová zpráva" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Nové zprávy" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Nový e-mail" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Nové e-maily" - diff --git a/po/da.po b/po/da.po deleted file mode 100755 index e704ed6..0000000 --- a/po/da.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 forsøg tilbage" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d forsøg tilbage" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Kun nødopkald" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Stryg med fingeren over skærmen for at låse op" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Tap og hold på skærmen, og hæld enheden fremad" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Forkert adgangskode" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Ubesvaret opkald" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Ubesvarede opkald" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Ny meddelelse" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Nye meddelelser" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Ny e-mail" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Nye e-mail" - diff --git a/po/de_DE.po b/po/de_DE.po deleted file mode 100755 index 78c90be..0000000 --- a/po/de_DE.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Noch 1 Versuch" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d Versuche übrig" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Nur Notrufe" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Zum Entsperren über den Bildschirm streichen" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Auf den Bildschirm tippen und halten und das Gerät nach vorn kippen" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Falsches Passwort" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Anr. in Abwesenheit" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Verpasste Anrufe" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Neue Nachricht" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Neue Nachrichten" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Neue E-Mail" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Neue E-Mails" - diff --git a/po/el_GR.po b/po/el_GR.po deleted file mode 100755 index a66a515..0000000 --- a/po/el_GR.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Απομένει 1 προσπάθεια" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d προσπάθειες απομένουν" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Μόνο επείγουσες κλήσεις" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Περάστε το δάχτυλό σας από την οθόνη για ξεκλείδωμα" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Πατήστε παρατεταμένα στην οθόνη και δώστε κλίση προς τα εμπρός στη συσκευή" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Λάθος κωδικός" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Αναπάντητη κλήση" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Αναπάντητες" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Νέο μήνυμα" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Νέα μηνύματα" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Νέο email" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Νέα email" - diff --git a/po/en.po b/po/en.po index 1ca2461..66d65db 100755 --- a/po/en.po +++ b/po/en.po @@ -1,20 +1,152 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 attempt left" +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "New message" -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d attempts left" +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 new message" -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Emergency calls only" +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Select applications" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Close" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Processing..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "Showing %d items" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancel" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Weather" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutorial complete." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Invalid action. Try again." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Select wallpaper" msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Swipe screen to unlock" +msgstr "Swipe screen to unlock." -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Tap and hold screen and tilt device forwards" +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "No match" -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Incorrect password" +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternative password" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "You have %1$d missed calls and %2$d unread messages." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Wallpapers" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Tap and hold the screen, then tilt the device towards you to unlock it. If the screen does not unlock, try tiling the device more. When motion unlock is set, motion will be automatically enabled in Settings." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Simple password lock will be automatically enabled if your Gear is too far away to be detected. When your Gear is detected, your screen lock type will be changed to Swipe lock." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Select application" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d new messages" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d missed calls" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Enter 4-digit PIN." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Lock screen wallpaper changed." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Home screen wallpaper changed." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Swipe" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Fingerprint" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Lock screen settings" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Lock screen" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Tap and hold the screen, then tilt the device towards you to unlock it. If the screen does not unlock, try tilting the device more." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Simple password" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Screen lock type" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Password" + +msgid "IDS_ST_BODY_NONE" +msgstr "None" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Motion" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Edit" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Drag and drop the coloured squares from the upper area to the lower area or tap the coloured squares in the upper area in order of similarity to the colour that is being compared. You can drag and drop the squares in the lower area to re-order them." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Auto lock" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Enter unlock PIN." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Incorrect PIN" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Edit" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "This webpage is not available." + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "The server at %s can't be found because the DNS look-up failed. DNS is the network service that translates a website's name to its Internet address. This error is most often caused by having no connection to the Internet or a misconfigured network. It can also be caused by an unresponsive DNS server or a firewall preventing Internet from accessing the network." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 attempt left." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d attempts left." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "No SIM" msgid "IDS_IDLE_POP_MISSED_CALL" msgstr "Missed call" @@ -22,15 +154,156 @@ msgstr "Missed call" msgid "IDS_IDLE_POP_MISSED_CALLS" msgstr "Missed calls" -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "New message" +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Emergency call" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only." + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Charging: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Enter password." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Fully charged." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d to %2$d digits or letters required." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Incorrect password." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Unlock via Tizen account" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Try again in %d seconds." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Try again in 1 second." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Swipe the screen to view the call log." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Swipe the screen to open Messages." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Cancel" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only." + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "No service" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Home" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Unlock via\nTizen account" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Camera shortcut" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Dual clock" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 missed call" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Discard" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Save" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Searching" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Enter PIN." + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Incorrect PIN." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Return to call" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Close" + +msgid "IDS_COM_SK_BACK_A" +msgstr "Back" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCEL" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Swipe screen to view call log" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Enter PIN to view call log" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Enter password to view call log" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Swipe screen to view message" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Enter PIN to view message" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Enter password to view message" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "You have attempted to unlock the device incorrectly %1$d times. You have %2$d attempts left before the device is reset to factory defaults and all data is erased." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "You have attempted to unlock the device incorrectly %d times. It will now be reset to factory defaults and all data will be erased." + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "CLOSE" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "New messages" +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "Unable to unlock screen" -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "New email" +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "You have made %1$d unsuccessful attempts to unlock your device. Try again in %2$d seconds." -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "New emails" +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "Device unlocked." diff --git a/po/en_PH.po b/po/en_PH.po index a9b73de..4ca52bc 100755 --- a/po/en_PH.po +++ b/po/en_PH.po @@ -1,36 +1,309 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 attempt left" +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "New message" -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d attempts left" +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 new message" -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Emergency calls only" +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Select applications" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Close" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Processing..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "Showing %d items" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancel" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Weather" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutorial complete." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Invalid action. Try again." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Select wallpaper" msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Swipe screen to unlock" +msgstr "Swipe screen to unlock." -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Tap and hold screen and tilt device forwards" +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "No match" -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Incorrect password" +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternative password" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "You have %1$d missed calls and %2$d unread messages." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Wallpapers" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Tap and hold the screen, then tilt the device towards you to unlock it. If the screen does not unlock, try tiling the device more. When motion unlock is set, motion will be automatically enabled in Settings." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Simple password lock will be automatically enabled if your Gear is too far away to be detected. When your Gear is detected, your screen lock type will be changed to Swipe lock." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Select application" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d new messages" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d missed calls" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Enter 4-digit PIN." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Lock screen wallpaper changed." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Home screen wallpaper changed." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Swipe" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Fingerprint" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Lock screen settings" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Lock screen" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Tap and hold the screen, then tilt the device towards you to unlock it. If the screen does not unlock, try tilting the device more" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Simple password" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Screen lock type" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Password" + +msgid "IDS_ST_BODY_NONE" +msgstr "None" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Motion" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Edit" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Drag and drop the colored squares from the upper area to the lower area or tap the colored squares in the upper area in order of similarity to the color that is being compared. You can drag and drop the squares in the lower area to re-order them" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Auto-lock" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Enter Unlock PIN." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Incorrect PIN" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Edit" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "This webpage is not available." + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "The server at %s can't be found because the DNS look-up failed. DNS is the network service that translates a website's name to its Internet address. This error is most often caused by having no connection to the Internet or a misconfigured network. It can also be caused by an unresponsive DNS server or a firewall preventing Internet from accessing the network." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 attempt left." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d attempts left." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "No SIM" msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Missed call" +msgstr "Missed call." msgid "IDS_IDLE_POP_MISSED_CALLS" msgstr "Missed calls" -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "New message" +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Emergency call" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only." + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Charging: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Enter password" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Fully charged." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d to %2$d digits or letters required." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Incorrect password." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Unlock via Tizen account" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Try again in %d seconds." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Try again in 1 second." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Swipe the screen to view the call log." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Swipe the screen to open Messages." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Cancel" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only." + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "No service" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Home" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Unlock via\nTizen account" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Camera shortcut" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Dual clock" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 missed call" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Discard" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Save" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Searching" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Enter PIN." + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Incorrect PIN." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Return to call" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Close" + +msgid "IDS_COM_SK_BACK_A" +msgstr "Back" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCEL" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Swipe screen to view call log" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Enter PIN to view call log" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Enter password to view call log" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Swipe screen to view message" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Enter PIN to view message" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Enter password to view message" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "You have attempted to unlock the device incorrectly %1$d times. You have %2$d attempts left before the device is reset to factory defaults and all data is erased." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "You have attempted to unlock the device incorrectly %d times. It will now be reset to factory defaults and all data will be erased." + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "CLOSE" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "New messages" +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "Unable to unlock screen" -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "New Email" +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "You have made %1$d unsuccessful attempts to unlock your device. Try again in %2$d seconds." -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "New Emails" +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "Device unlocked." diff --git a/po/en_US.po b/po/en_US.po index 6031cc8..b1f13b0 100755 --- a/po/en_US.po +++ b/po/en_US.po @@ -1,36 +1,309 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 attempt left" +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "New message" -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d attempts left" +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 new message" -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Emergency calls only" +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Select applications" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Close" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Processing..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "Showing %d items" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancel" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Weather" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutorial complete." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Invalid action. Try again." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Select wallpaper" msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" msgstr "Swipe screen to unlock" -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Tap and hold screen and tilt device forward" +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "No match" -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Incorrect password" +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternative password" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "You have %1$d missed calls and %2$d unread messages." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Wallpapers" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Press and hold the screen, then tilt the device towards you to unlock it. If the screen does not unlock, try tilting the device more. When motion unlock is set, motion will be automatically turned on in Settings." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Simple password lock will be turned on automatically if your Gear is too far away to be detected. When your Gear is detected, your screen lock type will change to Swipe lock." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Select application" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d new messages" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d missed calls" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Enter 4-digit PIN." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Lock screen wallpaper changed." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Home screen wallpaper changed." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Swipe" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Fingerprint" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Lock screen settings" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Lock screen" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Tap and hold the screen, then tilt the device towards you to unlock it. If the screen does not unlock, try tilting the device more." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Simple password" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Screen lock type" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Password" + +msgid "IDS_ST_BODY_NONE" +msgstr "None" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Motion" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Edit" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Drag and drop the colored squares from the upper area to the lower area or tap the colored squares in the upper area in order of similarity to the color that is being compared. You can drag and drop the squares in the lower area to re-order them." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Auto-lock" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Enter Unlock PIN." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Incorrect PIN" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Edit" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "This Web page is not available." + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "The server at %s can't be found because the DNS look-up failed. DNS is the network service that translates a website's name to its Internet address. This error is most often caused by having no connection to the Internet or a misconfigured network. It can also be caused by an unresponsive DNS server or a firewall preventing Internet from accessing the network." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 attempt left." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d attempts left." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "No SIM" msgid "IDS_IDLE_POP_MISSED_CALL" msgstr "Missed call" msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Missed calls" +msgstr "Missed calls." -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "New message" +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Emergency call" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Charging: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Enter password" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Fully charged." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d to %2$d digits or letters required." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Incorrect password." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Unlock via Tizen account" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Try again in %d seconds." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Try again in 1 second." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Swipe the screen to view the call log." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Swipe the screen to open Messages." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Cancel" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "No service" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Home" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Unlock via\nTizen account" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Camera shortcut" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Dual clock" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 missed call" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Discard" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Save" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Searching" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Enter PIN" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Incorrect PIN." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Return to call" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Close" + +msgid "IDS_COM_SK_BACK_A" +msgstr "Back" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCEL" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Swipe screen to view call log" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Enter PIN to view call log" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Enter password to view call log" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Swipe screen to view message" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Enter PIN to view message" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Enter password to view message" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "You have attempted to unlock the device incorrectly %1$d times. You have %2$d attempts left before the device is reset to factory defaults and all data is erased." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "You have attempted to unlock the device incorrectly %d times. It will now be reset to factory defaults and all data will be erased." + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "CLOSE" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "New messages" +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "Unable to unlock screen" -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "New email" +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "You have made %1$d unsuccessful attempts to unlock your device. Try again in %2$d seconds." -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "New emails" +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "Device unlocked." diff --git a/po/es_ES.po b/po/es_ES.po deleted file mode 100755 index 04d9486..0000000 --- a/po/es_ES.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Último intento" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "Quedan %d intentos" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Sólo llamadas de emergencia" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Deslizar pantalla para desbloquear" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Mantenga pulsada la pantalla e incline el dispositivo hacia adelante" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Contraseña incorrecta" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Llamada perdida" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Llamadas perdidas" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Mensaje nuevo" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Mensajes nuevos" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Correo electrónico nuevo" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Correos electrónicos nuevos" - diff --git a/po/es_MX.po b/po/es_MX.po deleted file mode 100755 index c2971e3..0000000 --- a/po/es_MX.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Último intento" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "Quedan %d intentos" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Sólo llamadas de emergencia" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Deslice el dedo por la pantalla para desbloquearla" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Mantenga pulsada la pantalla e incline el dispositivo hacia adelante" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Contraseña incorrecta" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Llamada perdida" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Llamadas perdidas" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Nuevo mensaje" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Nuevos mensajes" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Nuevo correo" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Nuevos correos" - diff --git a/po/es_US.po b/po/es_US.po new file mode 100755 index 0000000..c84f9b2 --- /dev/null +++ b/po/es_US.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nuevo mensaje" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 nuevo mensaje " + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Seleccionar aplicaciones" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Cerrar" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Procesando..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "Mostrando %d elementos" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancelar" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Clima" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutorial completo." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Acción no válida. Inténtelo de nuevo." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Seleccionar fondo de pantalla" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Deslice el dedo por la pantalla para desbloquearla." + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "No hay coincidencias" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Contraseña alterna" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Tiene %1$d llamadas perdidas y %2$d mensajes sin leer." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Fondos de pantalla" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Mantenga pulsada la pantalla, luego incline el dispositivo hacia usted para desbloquearlo. Si la pantalla no se desbloquea, intente inclinando más el dispositivo. Cuando se define el desbloqueo por movimiento, el movimiento se activará automáticamente en Configuración." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "El bloqueo de contraseña simple se activará automáticamente si Gear está demasiado lejos para ser detectado. Cuando se detecte el Gear, el tipo de bloqueo de pantalla cambiará a bloqueo al deslizar." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Seleccionar aplicación" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d nuevos mensajes" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d llamadas perdidas" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Introducir el código PIN de 4 dígitos." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Se modificó el fondo de pantalla de bloqueo." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Se cambió el fondo de pantalla de inicio." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Deslizar" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Huella digital" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Configuración del bloqueo de pantalla" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Bloqueo de pantalla" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Mantenga pulsada la pantalla, luego incline el dispositivo hacia usted para desbloquearlo. Si la pantalla no se desbloquea, intente inclinando más el dispositivo." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Contraseña simple" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Tipo de bloqueo de pantalla" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Contraseña" + +msgid "IDS_ST_BODY_NONE" +msgstr "Ninguna" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Movimiento" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Arrastre y suelte los cuadrados de colores del área superior al área inferior o pulse los cuadrados de colores del área superior en orden de similitud al color que se está comparando. Puede arrastrar y soltar los cuadrados en el área inferior para reordenarlos." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Bloqueo automático" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Introducir PIN de desbloqueo." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN incorrecto" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "Esta página web no está disponible." + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "No se puede encontrar el servidor en %s porque falló la búsqueda de DNS. DNS es el servicio de red que traduce el nombre de un sitio web a su dirección de Internet. La causa más frecuente de este error es no tener conexión a Internet o una red mal configurada. Otra causa puede ser un servidor DNS que no emita respuesta o un firewall que evite que Internet acceda a la red." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Último intento." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "Quedan %d intentos." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "No hay tarjeta SIM" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Llamada perdida" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Llamadas perdidas" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Llamada de emergencia" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Sólo llamadas de emergencia." + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Cargando: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Introducir contraseña." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Carga completa." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Se requieren de %1$d a %2$d dígitos o letras." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Contraseña incorrecta." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Desbloquear mediante cuenta Tizen" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Intentar de nuevo en %d seg." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Inténtelo de nuevo en 1 segundo." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Deslice la pantalla para ver el registro de llamadas." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Deslice la pantalla para abrir Mensajes." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Cancelar" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Sólo llamadas de emergencia." + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Sin servicio" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "Aceptar" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Privado" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Desbloquear vía\ncuenta Tizen" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Atajo de cámara" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Reloj dual" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 llamada perdida" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Descart." + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Guardar" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Sólo llamadas de emerg." + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Buscando" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Introducir PIN." + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN incorrecto." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Volver a la llamada" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Cerrar" + +msgid "IDS_COM_SK_BACK_A" +msgstr "Atrás" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCELAR" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Deslizar pantalla para ver registro de llamadas" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Introducir PIN para ver registro de llamadas" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Introducir contraseña para ver registro de llamadas" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Deslizar pantalla para ver mensaje" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Introducir PIN para ver mensaje" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Introducir contraseña para ver mensaje" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Intentó desbloquear el dispositivo incorrectamente %1$d veces. Le quedan %2$d intentos antes de que el dispositivo se restablezca a sus valores predeterminados de fábrica y se eliminen todos los datos." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Intentó desbloquear el dispositivo incorrectamente %d veces. Ahora se restablecerá a sus valores predeterminados de fábrica y se eliminarán todos los datos." + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Introd. contraseña de recup." + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "CERRAR" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "No se puede desbloq. pantalla" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "Ha intentado desbloquear su dispositivo %1$d veces sin éxito. Vuelva a intentarlo dentro de %2$d segundos." + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "Se desbloqueó el dispositivo." + diff --git a/po/et.po b/po/et.po deleted file mode 100755 index 19dae7d..0000000 --- a/po/et.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 katse on jäänud" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d katset jäänud" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Ainult hädaabikõned" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Avamiseks libistage sõrme üle ekraani" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Toksake ja hoidke sõrme ekraanil ning kallutage seadet ettepoole" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Vale parool" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Vastamata kõne" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Vastamata kõned" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Uus sõnum" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Uued sõnumid" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Uus e-kiri" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Uued e-kirjad" - diff --git a/po/eu.po b/po/eu.po deleted file mode 100755 index 417d701..0000000 --- a/po/eu.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Ahalegin 1 gelditzen zaizu" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d saiakera geratzen dira" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Larrialdi deiak bakarrik" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Irristatu pantaila desblokeatzeko" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Ukitu eta eutsi pantaila eta inklinatu gailua aurrerantz" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Pasahitz okerra" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Galdutako deia" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Galdutako deiak" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Mezu berria" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Mezu berriak" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Mezu elektroniko berria" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Mezu elektroniko berriak" - diff --git a/po/fi.po b/po/fi.po deleted file mode 100755 index 1b6da2f..0000000 --- a/po/fi.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 yritys jäljellä" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d yritystä jäljellä" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Vain hätäpuhelut" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Poista lukitus pyyhkäisemällä näyttöä" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Paina näyttöä jonkin aikaa ja kallista laitetta eteenpäin" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Virheellinen salasana" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Vastaamaton puhelu" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Vastaamattomat puhelut" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Uusi viesti" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Uudet viestit" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Uusi sähköposti" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Uudet sähköpostit" - diff --git a/po/fr_CA.po b/po/fr_CA.po deleted file mode 100755 index dd2a0e3..0000000 --- a/po/fr_CA.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 essai restant" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d essais restants" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Appels d'urgence uniquement" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Faites glisser votre doigt sur l'écran pour déverrouiller" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Touchez longuement l'écran et inclinez l'appareil vers l'avant" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Mot de passe incorrect" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Appel manqué" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Appels manqués" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Nouveau message" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Nouveaux messages" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Nouveau courriel" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Nouveaux courriels" - diff --git a/po/fr_FR.po b/po/fr_FR.po deleted file mode 100755 index 43e79b5..0000000 --- a/po/fr_FR.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 essai restant" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d essais restants" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Appels d'urgence uniquement" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Faites glisser votre doigt sur l'écran pour déverrouiller" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Maintenez votre doigt appuyé sur l'écran et inclinez l'appareil vers l'avant" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Mot de passe incorrect" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Appel manqué" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Appels manqués" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Nouveau message" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Nouveaux messages" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Nouvel e-mail" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Nouveaux e-mails" - diff --git a/po/ga.po b/po/ga.po deleted file mode 100755 index 52f5ad5..0000000 --- a/po/ga.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 iarracht fágtha" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d iarracht fágtha" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Glaonna éigeandála amháin" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Svaidhpeáil an scáileán le díghlasáil" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Tapáil agus coinnigh an scáileán agus déan an gléas a chlaonadh chun tosaigh" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Pasfhocal mícheart" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Glao caillte" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Glaonna a cailleadh" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Teachtaireacht nua" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Teachtaireachtaí nua" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "R-phost nua" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "R-phoist nua" - diff --git a/po/gl.po b/po/gl.po deleted file mode 100755 index 8ebc586..0000000 --- a/po/gl.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Queda 1 intento" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "Quedan %d intentos" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Só chamadas de urxencia" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Pasa o dedo pola pantalla para desbloqueala" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Mantén tocada a pantalla e inclina o dispositivo cara a adiante" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Contrasinal non válido" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Chamada perdida" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Chamadas perdidas" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Nova mensaxe" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Novas mensaxes" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Correo electrónico novo" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Correos electrónicos novos" - diff --git a/po/gu.po b/po/gu.po new file mode 100755 index 0000000..888c960 --- /dev/null +++ b/po/gu.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "નવો સંદેશ" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 નવો સંદેશ" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "એપ્લિકેશનો પસંદ કરો" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "ચોકો કૂકી" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "કુલ જાઝ" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "રોઝમેરી" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "બંધ કરો" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "પ્રક્રિયા શરૂ..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "%d વસ્તુઓ દર્શાવે છે" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "રદ કરો" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "હવામાન" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "ટ્યૂટોરિયલ પૂર્ણ." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "અમાન્ય ક્રિયા. ફરી પ્રયત્ન કરો" + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "વૉલપેપર પસંદ કરો" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "અનલોક કરવા માટે સ્ક્રીન પર સ્વાઇપ કરો." + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "કોઈ મેળ નથી" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "વૈકલ્પિક પાસવર્ડ" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "તમારી પાસે %1$d છૂટેલા કૉલ્સ અને %2$d ન વાંચેલ સંદેશા છે" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "વોલપેપર્સ" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "સ્ક્રીનને ટેપ કરો અને પકડી રાખો, પછી ઉપકરણને અનલોક કરવા તમારી તરફ નમાવો. જો સ્ક્રીન અનલોક ન થાય તો, ઉપકરણને વધુ નમાવવાનો પ્રયાસ કરો. ગતિ અનલોક સેટ થઈ જાય, ત્યારે સેટિંગ્સમાં ગતિ આપમેળે સક્ષમ થશે." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "જો તમારું ગિઅર શોધવામાં ખૂબ દૂર છે, તો સરળ પાસવર્ડ લોક આપમેળે સક્ષમ થશે. જ્યારે તમારું ગિઅર મળી જાય, ત્યારે તમારો સ્ક્રીન લોક પ્રકાર સ્વાઇપ લોકમાં બદલાશે." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "એપ્લિકેશન પસંદ કરો" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d નવા સંદેશા" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d છૂટેલા કૉલ્સ" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4-અંકનો PIN દાખલ કરો." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "લોક સ્ક્રીન વોલપેપર બદલાયું." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "હોમ સ્ક્રીન વૉલપેપર બદલાયું." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "સ્વાઇપ કરો" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "ફિંગરપ્રિન્ટ" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "લોક સ્ક્રીન સેટિંગ્સ" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "લોક સ્ક્રીન" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "સ્ક્રીનને ટેપ કરો અને હોલ્ડ કરો, પછી ઉપકરણને અનલોક કરવા માટે તેને તમારી તરફ નમાવો. જો સ્ક્રીન અનલોક થતી નથી, તો ઉપકરણને વધુ ટિલ્ટ કરવાનો પ્રયાસ કરો." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "સાધારણ પાસવર્ડ" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "સ્ક્રીન લોક પ્રકાર" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "રોમિંગ" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "પાસવર્ડ" + +msgid "IDS_ST_BODY_NONE" +msgstr "એકેય નહિ" + +msgid "IDS_ST_BODY_MOTION" +msgstr "મોશન" + +msgid "IDS_ST_BODY_EDIT" +msgstr "સંપાદિત કરો" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "ઉપલા ક્ષેત્રથી નીચલા ક્ષેત્ર સુધી રંગીન ચોરસોને ખેંચીને મૂકો અથવા ઉપલા ક્ષેત્રમાંના રંગીન ચોરસોને જે રંગની સરખામણી કરવાની છે તેની સમાનતાના રૂપમાં ટેપ કરો. તમે ચોરસોને ફરીથી ક્રમમાં ગોઠવવાં નીચલા ક્ષેત્રમાં ખેંચીને મૂકી શકો છો." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "સ્વતઃલોક" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "અનલોક PIN દાખલ કરો." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "ખોટો PIN" + +msgid "IDS_COM_BODY_EDIT" +msgstr "સંપાદિત કરો" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "આ વેબપૃષ્ઠ ઉપલબ્ધ નથી" + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "%s પર સર્વર શોધી શકાયું નથી કારણ કે DNS શોધવું નિષ્ફળ થયું છે. DNS એ નેટવર્ક સેવા છે કે જે વેબસાઇટના નામને તેના ઇન્ટરનેટના સરનામાની ભાષામાં અનુવાદિત કરે છે. ઇન્ટરનેટથી જોડાણ ન હોવાને કે અવ્યવસ્થિત નેટવર્કને કારણે ઘણી વાર ભૂલ આવી શકે છે. તે અપ્રતિસાદાત્મક DNS સર્વર અથવા ફાયરવૉલ ઇન્ટરનેટને નેટવર્કને પ્રવેશ કરવાથી રોકતું હોવાને કારણે પણ બની શકે છે." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 પ્રયત્ન બાકી." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d પ્રયત્ન બાકી." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM નથી" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "છૂટી ગયેલા કૉલ્સ" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "છૂટી ગયેલા કૉલ" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "તાત્કાલિક કૉલ" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "માત્ર તાત્કાલિક કૉલ." + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "ચાર્જિંગ: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "પાસવર્ડ દાખલ કરો." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "પૂરેપૂરૂં ચાર્જ." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d થી %2$d અંકો અથવા પત્રો આવશ્યક છે." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "ખોટો પાસવર્ડ." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen એકાઉન્ટ મારફતે અનલોક કરો" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d સેકંડ્સ પછી ફરી પ્રયત્ન કરો." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1 સેકંડમાં ફરીથી પ્રયાસ કરો" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "કૉલ લોગ જોવા માટે સ્ક્રીનને સરકાવો." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "સંદેશા ખોલવા માટે સ્ક્રીનને સરકાવો." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "રદ કરો" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "માત્ર તાત્કાલિક કૉલ." + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "સેવા નથી" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "ઓકે" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "હોમ" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen એકાઉન્ટ દ્વારા\nઅનલોક કરો" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "કૅમેરા શોર્ટકટ" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "ડ્યૂઅલ ઘડિયાળ" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 છૂટેલ કૉલ" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "કાઢી નાખો" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "સાચવો" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "ફક્ત તાત્કાલિક કૉલ્સ" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "શોધે છે" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN દાખલ કરો." + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "ખોટો પીન." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "કૉલ પર પરત જાઓ" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "બંધ કરો" + +msgid "IDS_COM_SK_BACK_A" +msgstr "પાછળ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "રદ કરો" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "કૉલ લોગ જોવા માટે સ્ક્રીનને સ્વાઇપ કરો" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "કૉલ લોગ જોવા માટે PIN દાખલ કરો" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "કૉલ લોગ જોવા માટે પાસવર્ડ દાખલ કરો" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "સંદેશ જોવા માટે સ્ક્રીનને સ્વાઇપ કરો" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "સંદેશ જોવા માટે PIN દાખલ કરો" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "સંદેશ જોવા માટે પાસવર્ડ દાખલ કરો" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "%1$d વખત અયોગ્ય રીતે ઉપકરણ અનલોક કરવા માટે તમે પ્રયાસ કરેલ છે. ઉપકરણ ફૅકટરી ડિફોલ્ટ્સમાં રીસૅટ થાય તે પહેલાં તમારો %2$d પ્રયાસ બાકી છે અને તમામ ડેટા ભૂંસાઇ જશે." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "તમે ઉપકરણને %d વાર ખોટી રીતે અનલોક કરવાનો પ્રયાસ કર્યો છે. હવે તેને ફેકટરી મૂળભૂત પર ફરીથી ગોઠવવામાં આવશે અને બધો ડેટા ભૂંસી નાખવામાં આવશે" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "બંધ કરો" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW મોબાઇલ" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "સ્ક્રીનને અનલોક કરવામાં અસમર્થ" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "તમારા ઉપકરણને અનલોક કરવા માટે તમે %1$d અસફળ પ્રયાસ કર્યા છે. %2$d સેકંડ્સમાં ફરી પ્રયાસ કરો." + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "ઉપકરણ અનલોક કર્યુ." + diff --git a/po/hi.po b/po/hi.po index ab714c0..a96147f 100755 --- a/po/hi.po +++ b/po/hi.po @@ -1,36 +1,309 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 प्रयास शेष" +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "नया सन्देश" -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d प्रयास शेष" +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 नया सन्देश" -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "केवल आपात कॉलें" +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "एप्लीकेशंस चुनें" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "चोको कुकी" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "कूल जैज" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "रोजमेरी" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "बंद करें" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "प्रक्रिया हो रही है..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "%d मदें दिखाना" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "रद्द" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "मौसम" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "शिक्षण पूर्ण।" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "अमान्य क्रिया। फिर से प्रयास करें।" + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "वॉलपेपर चुनें" msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "अनलॉक करने के लिए स्क्रीन स्विप करें" +msgstr "अनलॉक करने के लिए स्क्रीन स्वाइप करें" -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "स्क्रीन टैप करे रखें और डिवाइस आगे टिल्ट करें" +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "कोई मिलान नहीं" -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "गलत पासवर्ड" +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "वैकल्पिक पासवर्ड" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "आपके पास %1$d छूटी कॉल्स और %2$d अपठित सन्देश हैं।" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "वॉलपेपर्स" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "स्क्रीन टैप और होल्ड करें, फिर डिवाइस अनलॉक करने के लिए इसे अपनी ओर झुकाएँ। यदि स्क्रीन अनलॉक नहीं होती हैं, तो डिवाइस और अधिक झुकाने का प्रयास करें। जब गति अनलॉक सेट है, तो सेटिंग्स में गति स्वचालित रूप से सक्षमित हो जाएगी।" + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "यदि आपका गियर पता लगाए जाने के लिए बहुत दूर है, तो सरल पासवर्ड लॉक स्वचालित रूप से सक्षम हो जाएगा। आपके गियर का पता लगने पर, आपका स्क्रीन लॉक प्रकार स्वाइप लॉक में बदल जाएगा।" + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "एप्लीकेशन चुनें" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d नए संदेश" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d छूटी कॉल्स" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4-अंकीय PIN दर्ज करें" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "लॉक स्क्रीन वॉलपेपर बदल दिया गया।" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "होम स्क्रीन वॉलपेपर बदल दिया गया।" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "स्वाइप करें" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "फिंगरप्रिंट" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "लॉक स्क्रीन सेटिंग्स" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "लॉक स्क्रीन" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "डिवाइस को अनलॉक करने के लिए स्क्रीन टैप और होल्‍ड करें, फिर उसे अपनी ओर झुकाएँ। यदि स्क्रीन अनलॉक नहीं होती हैं, तो डिवाइस को और अधिक झुकाने का प्रयास करें।" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "आसान पासवर्ड" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "स्क्रीन लॉक प्रकार" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "रोमिंग" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "पासवर्ड" + +msgid "IDS_ST_BODY_NONE" +msgstr "कुछ नहीं" + +msgid "IDS_ST_BODY_MOTION" +msgstr "गति" + +msgid "IDS_ST_BODY_EDIT" +msgstr "संपादित करें" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "रंगीन वर्ग को ऊपरी क्षेत्र से निचले क्षेत्र में ड्रैग और ड्रॉप करें या जिस भी रंग की तुलना की जानी है उसकी समानता के क्रम में ऊपरी क्षेत्र में रंगीन वर्ग को टैप करें। आप वर्गों का क्रम परिवर्तित करने के लिए उनको निचले क्षेत्र में ड्रैग और ड्रॉप कर सकते है।" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "स्वतः लॉक" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "अनलॉक PIN प्रविष्ट करें।" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "गलत PIN" + +msgid "IDS_COM_BODY_EDIT" +msgstr "संपादित करें" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "यह वेब पेज उपलब्ध नहीं है" + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "%s पर स्थित सर्वर ढूँढ़ा नहीं जा सकता क्योंकि DNS लुक-अप विफल हुआ। DNS वह नेटवर्क सेवा है जो किसी वेबसाइट के नाम को इसके इंटरनेट पते में अनुवाद करती है। यह त्रुटि आम तौर पर इंटरनेट से कोई कनेक्शन न होने या गलत कॉन्फ़िगर किए गए नेटवर्क के कारण होती है। यह किसी अप्रतिसादी DNS सर्वर या किसी फ़ायरवॉल द्वारा इंटरनेट को नेटवर्क उपयोग करने से रोकने के कारण भी हो सकती है।" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 प्रयास शेष।" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d प्रयास शेष।" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "कोई SIM नहीं" msgid "IDS_IDLE_POP_MISSED_CALL" msgstr "छूटी कॉल" msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "छूटी कॉलें" +msgstr "छूटी कॉल्स" -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "नया सन्देश" +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "आपातकालीन कॉल" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "केवल आपातकालीन कॉलें।" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "चार्ज हो रहा है: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "पासवर्ड प्रविष्ट करें" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "पूर्ण चार्ज है।" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d से %2$d तक अंक या वर्ण आवश्यक।" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "गलत पासवर्ड।" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen खाता के द्वारा अनलॉक करें" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d सेकंड में फिर से प्रयास करें।" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1 सेकंड में फिर से कोशिश करें" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "कॉल लॉग देखने के लिए स्क्रीन स्वाइप करें।" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "संदेश खोलने के लिए स्क्रीन स्वाइप करें।" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "रद्द" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "केवल आपातकालीन कॉलें।" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "कोई सेवा नहीं" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "ओके" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "होम" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen account\nद्वारा अनलॉक करें" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "कैमरा शॉर्टकट" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "दोहरी घड़ी" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 छूटी कॉल" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "निरस्त" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "सुरक्षित" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "केवल आपातकालीन कॉल्स" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "खोज रहा है" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN प्रविष्ट करें।" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "गलत PIN." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "कॉल पर वापस जाएँ" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "बंद" + +msgid "IDS_COM_SK_BACK_A" +msgstr "पीछे" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "रद्द करें" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "कॉल लॉग देखने के लिए स्क्रीन स्वाइप करें" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "कॉल लॉग देखने के लिए PIN प्रविष्ट करें" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "कॉल लॉग देखने के लिए पासवर्ड प्रविष्ट करें" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "सन्देश देखने के लिए स्क्रीन स्वाइप करें" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "सन्देश देखने के लिए PIN प्रविष्‍ट करें" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "सन्देश देखने के लिए पासवर्ड प्रविष्‍ट करें" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "आपने %1$d बार गलत ढंग से डिवाइस अनलॉक करने का प्रयास किया है। आपके पास डिवाइस फ़ैक्टरी डिफ़ॉल्ट पर रीसेट होने और सभी डाटा मिटने से पहले %2$d प्रयास शेष है।" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "आपने %d बार ग़लत ढ़ंग से डिवाइस अनलॉक करने का प्रयास किया है। यह अब फ़ैक्टरी डिफ़ॉल्ट में रीसेट किया जाएगा और सभी डाटा मिट जाएगा" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "बंद करे" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW मोबाइल" -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "नये सन्देश" +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "स्क्रीन अनलॉक करने में अक्षम" -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "नयी ईमेल" +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "आपने अपना डिवाइस अनलॉक करने के लिए %1$d असफल प्रयास किए हैं। %2$d सेकंड्स में फिर से प्रयास करें।" -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "नए ईमेल" +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "डिवाइस अनलॉक किया गया।" diff --git a/po/hr.po b/po/hr.po deleted file mode 100755 index d46e1d5..0000000 --- a/po/hr.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Još 1 pokušaj" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d pokušaja preostalo" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Samo SOS pozivi" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Kliznite po zaslonu za otključavanje" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Dodirnite i držite zaslon te nagnite uređaj prema naprijed" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Neispravna šifra" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Propušteni poziv" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Propušteni pozivi" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Nova poruka" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Nove poruke" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Novi email" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Nove email poruke" - diff --git a/po/hu.po b/po/hu.po deleted file mode 100755 index 19e52a4..0000000 --- a/po/hu.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Még 1 próbálkozásra van" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d kísérlet maradt." - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Csak segélyhívás indítható" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Feloldás a kijelző végigsimításával" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Tartsa ujját a képernyőn, és döntse az eszközt előre" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Téves jelszó" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Nem fogadott hívás" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Nem fogadott hívások" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Új üzenet" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Új üzenet" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Új e-mail" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Új e-mail" - diff --git a/po/hy.po b/po/hy.po deleted file mode 100755 index 493a9a8..0000000 --- a/po/hy.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 փորձ է մնացել" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "Մնացել է %d փորձ" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Միայն հրատապ կանչեր" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Մատը սահեցրեք էկրանով՝ արգելաբացելու համար" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Թակեք ու պահեք էկրանը և սարքը թեքեք առաջ" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Սխալ գաղտնաբառ" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Բացթողած զանգ" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Բացթողնված կանչեր" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "նոր հաղորդագրություն" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "նոր հաղորդագրություններ" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Նոր էլ. փոստ" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Նոր էլ-նամակներ" - diff --git a/po/id.po b/po/id.po new file mode 100755 index 0000000..e5cec35 --- /dev/null +++ b/po/id.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Pesan baru" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 pesan baru" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Pilih aplikasi" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Tutup" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Memproses..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "Menampilkan %d item" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Batal" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Cuaca" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutorial selesai." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Aksi tidak valid. Coba lagi." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Pilih wallpaper" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Usap layar untuk membuka kunci." + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Tidak ada kecocokan" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Kata sandi alt" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Anda memiliki %1$d panggilan tak terjawab dan %2$d pesan tak terbaca." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Wallpaper" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Ketuk dan tahan layar, kemudian miringkan perangkat ke arah Anda untuk membuka. Jika layar tidak terbuka, coba lebih memiringkan perangkat. Saat diatur gerakan buka, gerakan akan otomatis aktif di Pengaturan." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Kunci kata sandi sederhana akan diaktifkan secara otomatis jika Gear Anda terlalu jauh untuk terdeteksi. Saat Gear Anda terdeteksi, tipe kunci layar Anda akan diubah ke kunci Usap." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Pilih aplikasi" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d pesan baru" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d panggilan tak terjawab" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Masukkan PIN 4 digit." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Wallpaper layar kunci diubah." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Wallpaper layar depan diubah." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Usap" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Sidik jari" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Pengaturan layar kunci" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Kunci layar" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Ketuk dan tahan layar, kemudian miringkan perangkat ke arah Anda untuk membuka kuncinya. Jika layar tidak membuka kunci, coba memiringkan perangkat lagi." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Kata sandi sederhana" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Tipe kunci layar" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Jelajah" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Kata sandi" + +msgid "IDS_ST_BODY_NONE" +msgstr "Tidak ada" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Gerakan" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Ubah" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Seret dan letakkan petak berwarna dari area atas ke area bawah atau ketuk petak berwarna di area atas berurutan menurut kesamaan warna yang sedang dibandingkan. Anda dapat menyeret dan meletakkan petak di area bawah untuk menyusun ulang." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Kunci otomatis" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Masukkan PIN Buka Kunci." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN salah." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Ubah" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "Halaman web ini tidak tersedia." + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "Server di %s tidak bisa ditemukan karena pencarian DNS gagal. DNS adalah layanan jaringan yang menerjemahkan nama situs web ke alamat Internetnya. Kesalahan ini sering terjadi karena tidak adanya koneksi Internet atau kesalahan konfigurasi jaringan. Kesalahan juga bisa disebabkan server DNS yang tidak responsif atau adanya firewall yang mencegah Internet mengakses jaringan." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 kesempatan tersisa." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d mencoba meninggalkan." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Tdk ada SIM" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Pgln tak terjwb" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Panggilan tak terjawab" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Panggilan darurat" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Hanya panggilan darurat." + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Mengisi daya: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Masukkan kata sandi." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Terisi penuh." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Memerlukan %1$d hingga %2$d digit atau huruf." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Kata sandi salah." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Buka kunci lewat akun Tizen" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Coba lagi dalam %d detik." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Coba lagi dalam 1 detik." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Usap layar untuk melihat log panggilan." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Usap layar untuk membuka Pesan." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Batal" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Hanya panggilan darurat." + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Tdk ada layanan" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Home" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Buka kunci lewat\nakun Tizen" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Pintasan kamera" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Jam ganda" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 panggilan tdk terjawab" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Buang" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Simpan" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Hanya panggilan darurat" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Mencari" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Masukkan PIN." + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN salah." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Kembali ke panggilan" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Tutup" + +msgid "IDS_COM_SK_BACK_A" +msgstr "Kembali" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "BATAL" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Usap layar untuk melihat log panggilan" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Masukkan PIN untuk melihat log panggilan" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Masukkan kata sandi untuk melihat log panggilan" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Usap layar untuk melihat pesan" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Masukkan PIN untuk melihat pesan" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Masukkan kata sandi untuk melihat pesan" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Anda mencoba membuka kunci perangkat dengan salah untuk %1$d kalinya. Anda hanya memiliki %2$d kesempatan lagi sebelum perangkat direset ke pengaturan pabrik default dan semua data dihapus." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Anda salah membuka kunci perangkat sebanyak %d kali. Perangkat sekarang akan direset ke default pabrik dan semua data akan dihapus." + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "TUTUP" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "Tidak bisa membuka kunci layar" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "Anda melakukan %1$d upaya yang gagal dalam membuka kunci perangkat. Coba lagi dalam %2$d detik." + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "Kunci perangkat dibuka." + diff --git a/po/is.po b/po/is.po deleted file mode 100755 index a227d2d..0000000 --- a/po/is.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 tilraun eftir" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d tilraunir eftir" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Aðeins neyðarhringingar" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Strjúktu yfir skjáinn til að opna" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Haltu fingrinum á skjánum og hallaðu tækinu fram" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Rangt aðgangsorð" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Ósvarað" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Ósvöruð símtöl" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Ný boð" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Ný skilaboð" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Nýr póstur" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Nýir póstar" - diff --git a/po/it_IT.po b/po/it_IT.po deleted file mode 100755 index 23c7f22..0000000 --- a/po/it_IT.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 tentativo rimasto" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d tentativi rimasti" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Solo chiamate di emergenza" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Trascina il dito sullo schermo per sbloccare" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Tenete premuto lo schermo e inclinate il dispositivo in avanti" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Password errata" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Chiamata persa" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Chiamate perse" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Nuovo messaggio" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Nuovi messaggi" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Nuova e-mail" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Nuove e-mail" - diff --git a/po/ja_JP.po b/po/ja_JP.po deleted file mode 100755 index c993f21..0000000 --- a/po/ja_JP.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "残りの試行回数は1回です" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "残り入力回数:%d回" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "緊急通報のみ発信可能です。" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "スワイプしてロック解除" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "画面を押しながら、端末を手前に傾けてください。" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "不正なパスワードです。" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "不在着信" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "不在着信" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "新しいメッセージ" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "新着メッセージ" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "新規Eメール" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "新規Eメール" - diff --git a/po/ka.po b/po/ka.po deleted file mode 100755 index 46b964d..0000000 --- a/po/ka.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "დარჩა 1 ცდა" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d ცდა დარჩა" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "მხოლოდ გადაუდებელი ზარები" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "გადაუსვით ხელი ეკრანზე და განიბლოკება" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "დაარტყით და არ აუშვათ ხელი ეკრანზე და გადახარეთ აპარატი წინ" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "პაროლი არასწორია" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "გამოტოვებული ზარი" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "გამოტოვებ. ზარები" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "ახალი შეტყობინება" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "ახალი წერილები" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "ახალი ელ.წერილი" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "ახალი ელ. წერილები" - diff --git a/po/kk.po b/po/kk.po deleted file mode 100755 index 95b4ea9..0000000 --- a/po/kk.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 әрекет қалды" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d әрекеттену аяқталды" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Тек жедел қоңырау үшін" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Құлпын ашу үшін экранды сипаңыз" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Экранды басып тұрып, құрылғыны еңкейтіңіз" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Қате кілтсөз" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Қабылданбаған қоңырау" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Қабылданбаған қоңыраулар" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Жаңа хабарлама" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Жаңа хабарламалар" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Жаңа email" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Жаңа emails" - diff --git a/po/km.po b/po/km.po new file mode 100755 index 0000000..91a51fa --- /dev/null +++ b/po/km.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "សារ​ថ្មី" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "សារ​ថ្មី 1" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "ជ្រើស​កម្មវិធី" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "ចូកូ កូគី" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "បិទ" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "កំពុង​ដំណើរការ..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "កំពុង​បង្ហាញ %d ធាតុ" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "បោះ​បង់" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "អាកាសធាតុ" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "ការបង្រៀន​បាន​បញ្ចប់។" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "សកម្មភាព​អសុពលភាព។ សាកល្បង​ម្តងទៀត។" + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Select wallpaper" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "អូសលើអេក្រង់ដើម្បីដោះសោ។" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "គ្មាន​ការផ្គូគ្នា" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "ពាក្យសម្ងាត់​ជំនួស" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "អ្នក​មាន​ការហៅ​ដែល​បាន​ខកខាន %1$d និង សារ​មិន​ទាន់​អាន %2$d។" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "រូប​ផ្ទៃ​អេក្រង់" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "ប៉ះ​អេក្រង់​ឲ្យ​ជាប់ រួច​ផ្អៀង​ឧបករណ៍​ទៅ​រក​អ្នក ដើម្បី​ដោះសោ​វា។ បើ​អេក្រង់​មិន​ដោះសោ​ទេ សូម​សាកល្បង​ផ្អៀង​ឧបករណ៍​បន្ថែម​ទៀត។ នៅពេល​បាន​កំណត់​ការដោះសោ​ដោយ​ចលនា នោះ​នឹង​បើកប្រើ​ចលនា​ដោយ​ស្វ័យប្រវត្តិ​ក្នុង ការកំណត់។" + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "នឹង​បើកប្រើ​ការចាក់សោ​ដោយ​ពាក្យសម្ងាត់​ធម្មតា​ដោយ​ស្វ័យប្រវត្តិ បើ Gear របស់​អ្នក​នៅ​ឆ្ងាយ​ពេក​មិន​អាច​ចាប់​បាន។ នៅពេល​ចាប់​បាន Gear របស់​អ្នក សោ​អេក្រង់​របស់​អ្នក​នឹង​ប្ដូរ​ទៅ​សោ​អូស។" + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "ជ្រើស​កម្មវិធី" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "សារ​ថ្មីៗ %d" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "ការហៅ​ដែល​បាន​ខកខាន %d" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "វាយបញ្ចូល PIN 4-ខ្ទង់។" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "បាន​ប្តូរ​រូបផ្ទៃអេក្រង់​ជាប់សោ។" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "បាន​ប្តូរ​រូបផ្ទៃ​គេហអេក្រង់។" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "អូស" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "ស្នាមម្រាមដៃ" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "ការកំណត់​អេក្រង់​ជាប់​សោ" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "អេក្រង់​ជាប់​សោ" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "ប៉ះ​ឲ្យ​ជាប់​លើ​អេក្រង់ បន្ទាប់​មក​ផ្អៀង​ឧបករណ៍​មក​រក​អ្នក ដើម្បី​ដោះ​សោ​វា។ បើ​អេក្រង់​នេះ​មិន​ដោះ​សោ​ទេ ព្យាយាម​ផ្អៀង​ឧបករណ៍​បន្ថែម​ទៀត។" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "ពាក្យសម្ងាត់​សាមញ្ញ" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "ប្រភេទសោអេក្រង់" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "រ៉ូមីង" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "ពាក្យ​សម្ងាត់" + +msgid "IDS_ST_BODY_NONE" +msgstr "គ្មាន" + +msgid "IDS_ST_BODY_MOTION" +msgstr "ចលនា" + +msgid "IDS_ST_BODY_EDIT" +msgstr "កែ" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "អូស និង ទម្លាក់​ក្រឡា​មាន​ពណ៌​ពី​តំបន់​ខាងលើ​ទៅ​តំបន់​ខាងក្រោម ឬ ប៉ះ​ក្រឡា​មាន​ពណ៌​ក្នុង​តំបន់​ខាងលើ តាម​លំដាប់​នៃ​ភាពស្រដៀង​គ្នា​នឹង​ពណ៌​ដែល​កំពុង​ប្រៀបធៀប។ អ្នក​អាច​អូស និង ទម្លាក់​ក្រឡា​ក្នុង​តំបន់​ខាងក្រោម ដើម្បី​រៀប​លំដាប់​ពួកវា​ឡើងវិញ។" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "ស្វ័យ​ចាក់​សោ" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "វាយបញ្ចូល PIN ដោះ​សោ។" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN មិន​ត្រឹមត្រូវ" + +msgid "IDS_COM_BODY_EDIT" +msgstr "កែ" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "ទំព័រ​វិប​នេះ​មិន​អាច​ប្រើ​បាន។" + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "មិន​អាច​រកឃើញ​សឺវើ​នៅ %s ពីព្រោះ​ការស្វែងរក DNS បាន​បរាជ័យ។ DNS គឺ​ជា​សេវា​បណ្ដាញ​ដែល​បកប្រែ​ឈ្មោះ​របស់​វិបសៃ​ទៅ​ជា​អាសយដ្ឋាន​អ៊ីនធឺណិត​របស់​វា។ ញឹកញាប់​បំផុត កំហុស​នេះ​តែង​បង្ក​ឡើង​ដោយ​ការគ្មាន​ការភ្ជាប់​ទៅ​អ៊ីនធឺណិត ឬ បណ្ដាញ​មិន​បាន​កំណត់​រចនាសម្ពន្ធ​ត្រឹមត្រូវ។ វា​ក៏​អាច​បង្ក​ឡើង​ដោយ​សឺវើ DNS មិន​ឆ្លើយតប ឬ ដោយ​ជញ្ជាំងអគ្គី​ដែល​បង្ការ​អ៊ីនធឺណិត​មិន​ឲ្យ​ចូលប្រើ​បណ្ដាញ​ផងដែរ" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "សល់​ការប៉ុនប៉ង 1។" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "សល់​ការប៉ុនប៉ង %d។" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "គ្មាន​ SIM" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "ការហៅ​បាន​ខក​ខាន" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "ការហៅ​បាន​ខក​ខាន" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "ការហៅ​អាសន្ន" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "ការហៅ​អាសន្ន​ប៉ុណ្ណោះ" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "កំពុងសាក: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "វាយបញ្ចូល​ពាក្យសម្ងាត់។" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "សាក​ពេញ។" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "ត្រូវការ %1$d ទៅ %2$d ខ្ទង់ ឬ អក្សរ។" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "ពាក្យសម្ងាត់​មិន​ត្រឹមត្រូវ។" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "ដោះសោ​តាម​គណនី Tizen" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "សាកល្បង​ម្ដងទៀត​ក្នុង​ពេល %d វិនាទី។" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "សាកល្បង​ម្ដងទៀត​ក្នុង​ពេល 1 វិនាទី។" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "អូស​អេក្រង់​ដើម្បី​បង្ហាញ​កំណត់ហេតុ​ហៅ។" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "អូស​អេក្រង់​ដើម្បី​បើក​សារ។" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "បោះ​បង់" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "ការហៅ​អាសន្ន​ប៉ុណ្ណោះ" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "គ្មាន​សេវា" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "ព្រម" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "ផ្ទះ" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "ដោះសោ​តាម\nគណនី Tizen" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "ផ្លូវកាត់​កាមេរ៉ា" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "នាឡិកា​ពីរ" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 ការហៅ​បាន​ខក​ខាន" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "ចោល" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "រក្សា​ទុក" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "ការហៅ​អាសន្ន​ប៉ុណ្ណោះ" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "កំពុង​ស្វែង​រក" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "វាយបញ្ចូល PIN។" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN មិន​ត្រឹមត្រូវ។" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "ត្រឡប់​ទៅ​ការហៅ" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "បិទ" + +msgid "IDS_COM_SK_BACK_A" +msgstr "ថយ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "បោះបង់" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "អូស​អេក្រង់​ដើម្បី​បង្ហាញ​កំណត់ហេតុ​ហៅ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "វាយបញ្ចូល PIN ដើម្បី​បង្ហាញ​កំណត់ហេតុ​ហៅ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "វាយបញ្ចូល​ពាក្យសម្ងាត់​ដើម្បី​បង្ហាញ​កំណត់ហេតុ​ហៅ" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "អូស​អេក្រង់​ដើម្បី​បង្ហាញ​សារ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "វាយបញ្ចូល PIN ដើម្បី​បង្ហាញ​សារ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "វាយបញ្ចូល​ពាក្យសម្ងាត់​ដើម្បី​បង្ហាញ​សារ" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "អ្នក​បាន​ប៉ុនប៉ង​ដោះសោ​ឧបករណ៍​មិន​ត្រឹមត្រូវ %1$d ដង។ អ្នក​នៅសល់​ការប៉ុនប៉ង %2$d ដង​ទៀត មុនពេល​ឧបករណ៍​ត្រូវ​បាន​កំណត់​ឡើងវិញ​ទៅ លំនាំដើម​ពី​រោងចក្រ ហើយ​ទិន្នន័យ​ទាំងអស់​នឹង​ត្រូវ​បាន​លុប​ចោល។" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "អ្នក​បាន​ប៉ុនប៉ង​ដោះសោ​ឧបករណ៍​មិន​ត្រឹមត្រូវ %d ដង។ ឥឡូវ វា​នឹង​ត្រូវ​បាន​កំណត់​ឡើងវិញ​ទៅ លំនាំដើម​ពី​រោងចក្រ ហើយ​ទិន្នន័យ​ទាំងអស់​នឹង​ត្រូវ​បាន​លុប។" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "បិទ" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "មិន​អាច​ដោះសោ​អេក្រង់" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "អ្នក​បាន​ធ្វើ​ការប៉ុនប៉ង​មិន​ជោគជ័យ %1$d ដង ដើម្បី​ដោះសោ​ឧបករណ៍​របស់​អ្នក។ សាកល្បង​ម្ដងទៀត​ក្នុង​ពេល %2$d វិនាទី។" + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "បាន​ដោះសោ​ឧបករណ៍។" + diff --git a/po/kn.po b/po/kn.po new file mode 100755 index 0000000..e64e22c --- /dev/null +++ b/po/kn.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "ಹೊಸ ಸಂದೇಶ" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 ಹೊಸ ಸಂದೇಶ" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "ಅನ್ವಯಿಸುವಿಕೆಗಳನ್ನು ಆರಿಸಿ" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "ಚೋಕೊ ಕೂಕಿ" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "ಕೂಲ್ ಜಾಜ್ಜ್" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "ರೋಸ್ಮರಿ" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "ಮುಚ್ಚಿ" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "ಪ್ರಕ್ರಿಯೆಗೊಳ್ಳುತ್ತಿದೆ..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "%d ಅಂಶಗಳನ್ನು ತೋರಿಸುತ್ತಿದೆ" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "ರದ್ದು" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "ಹವಾಮಾನ" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "ಟ್ಯುಟೋರಿಯಲ್ ಮುಕ್ತಾಯಗೊಂಡಿದೆ." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "ಸಿಂಧುವಲ್ಲದ ಕ್ರಿಯೆ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "ವಾಲ್‌ಪೇಪರ್ ಆರಿಸಿ" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "ಅನ್‌ಲಾಕ್ ಮಾಡಲು ಸ್ಕ್ರೀನ್ ಸ್ವೈಪ್ ಮಾಡಿ." + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "ಹೊಂದಾಣಿಕೆಯಿಲ್ಲ" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "ಪರ್ಯಾಯ ಪಾಸ್‌ವರ್ಡ್" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "ನೀವು %1$d ತಪ್ಪಿಹೋದ ಕರೆಗಳು ಮತ್ತು %2$d ಓದದ ಸಂದೇಶಗಳನ್ನು ಹೊಂದಿದ್ದೀರಿ." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "ವಾಲ್‌ಪೇಪರ್‌ಗಳು" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "ಸ್ಕ್ರೀನ್‌ ಅನ್ನು ಒತ್ತಿಹಿಡಿಯಿರಿ, ನಂತರ ಸಾಧನವನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ಅದನ್ನು ನಿಮ್ಮತ್ತ ಓರೆಯಾಗಿಸಿ. ಸ್ಕ್ರೀನ್ ಅನ್‌ಲಾಕ್‌ ಆಗದೇ ಇದ್ದಲ್ಲಿ, ಸಾಧನವನ್ನು ಇನ್ನಷ್ಟು ಓರೆಯಾಗಿಸಲು ಪ್ರಯತ್ನಿಸಿ. ಚಲನೆ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಹೊಂದಿಸಿದಾಗ, ಚಲನೆಯನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸಂಯೋಜನೆಗಳಲ್ಲಿ ಶಕ್ತಗೊಳಿಸಲಾಗುವುದು." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "ಪತ್ತೆಹಚ್ಚಲು ನಿಮ್ಮ ಗೇರ್ ತೀರಾ ದೂರದಲ್ಲಿದ್ದರೆ ಸರಳ ಪಾಸ್‌ವರ್ಡ್ ಲಾಕ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಶಕ್ತಗೊಳಿಸಲಾಗುತ್ತದೆ. ಗೇರ್ ಪತ್ತೆಹಚ್ಚಿದಾಗ, ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಪ್ರಕಾರವನ್ನು ಸ್ವೈಪ್ ಲಾಕ್‌ಗೆ ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "ಅನ್ವಯಿಸುವಿಕೆಯನ್ನು ಆರಿಸಿ" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d ಹೊಸ ಸಂದೇಶಗಳು" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d ಮಿಸ್ಡ್‌ ಕಾಲ್‌ಗಳು" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4-ಅಂಕಿಗಳ PIN ನಮೂದಿಸಿ." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "ಲಾಕ್ ಸ್ಕ್ರೀನ್ ವಾಲ್‌ಪೇಪರ್ ಬದಲಾಯಿಸಲಾಗಿದೆ." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "ಹೋಮ್‌ಸ್ಕ್ರೀನ್ ವಾಲ್‌ಪೇಪರ್ ಬದಲಾಯಿಸಲಾಗಿದೆ." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "ಸ್ವೈಪ್" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "ಬೆರಳಚ್ಚು" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "ಲಾಕ್‌ ಸ್ಕ್ರೀನ್ ಸಂಯೋಜನೆಗಳು" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "ಪರದೆ ಲಾಕ್ ಮಾಡಿ" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "ತೆರೆಯನ್ನು ಒತ್ತಿಹಿಡಿಯಿರಿ, ನಂತರ ಅದನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡುವುದಕ್ಕಾಗಿ ನಿಮ್ಮೆಡೆಗೆ ಸಾಧನವನ್ನು ತಿರುಗಿಸಿ. ತೆರೆಯು ಅನ್‌ಲಾಕ್ ಆಗದೇ ಇದ್ದಲ್ಲಿ, ಸಾಧನವನ್ನು ಇನ್ನಷ್ಟು ತಿರುಗಿಸುವುದಕ್ಕೆ ಪ್ರಯತ್ನಿಸಿ" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "ಸರಳ ಪಾಸ್‌ವರ್ಡ್" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "ಸ್ಕ್ರೀನ್ ಲಾಕ್ ವಿಧ" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "ರೋಮಿಂಗ್" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "ಪಾಸ್‌ವರ್ಡ್" + +msgid "IDS_ST_BODY_NONE" +msgstr "ಯಾವುದೂ ಇಲ್ಲ" + +msgid "IDS_ST_BODY_MOTION" +msgstr "ಚಲನೆ" + +msgid "IDS_ST_BODY_EDIT" +msgstr "ತಿದ್ದಿ" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "ವರ್ಣಮಯ ಚೌಕಗಳನ್ನು ಮೇಲಿನ ಪ್ರದೇಶದಿಂದ ಕೆಳಗಿನ ಪ್ರದೇಶಕ್ಕೆ ಡ್ರಾಗ್ ಮತ್ತು ಡ್ರಾಪ್ ಮಾಡಿ ಅಥವಾ ಹೋಲಿಕೆ ಮಾಡುತ್ತಿರುವ ಬಣ್ಣಕ್ಕೆ ಸಮಾನವಾಗಿರುವ ಕ್ರಮದಲ್ಲಿ ಮೇಲಿನ ಪ್ರದೇಶದಲ್ಲಿ ವರ್ಣಮಯ ಚೌಕಗಳನ್ನು ಒತ್ತಿ. ಚೌಕಗಳನ್ನು ಪುನಃ ಕ್ರಮಗೊಳಿಸಲು ಅವುಗಳನ್ನು ಕೆಳಗಿನ ಪ್ರದೇಶದಲ್ಲಿ ಡ್ರಾಗ್ ಮತ್ತು ಡ್ರಾಪ್ ಮಾಡಬಹುದು." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "ಸ್ವಯಂಚಾಲಿತ-ಲಾಕ್" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "ಅನ್‌ಲಾಕ್ PIN ನಮೂದಿಸಿ." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN ತಪ್ಪಾಗಿದೆ" + +msgid "IDS_COM_BODY_EDIT" +msgstr "ತಿದ್ದಿ" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "ಈ ವೆಬ್‌ಪುಟ ಲಭ್ಯವಿಲ್ಲ." + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "DNS ಲುಕ್-ಅಪ್ ವಿಫಲವಾದ ಕಾರಣದಿಂದ %s ನಲ್ಲಿನ ಸರ್ವರ್ ಹುಡುಕಲಾಗುವುದಿಲ್ಲ. DNS ಎನ್ನುವುದು ನೆಟ್‌ವರ್ಕ್ ಸೇವೆಯಾಗಿದ್ದು ಇದು ವೆಬ್‌ಸೈಟ್‌ನ ಹೆಸರನ್ನು ಅದರ ಇಂಟರ್ನೆಟ್ ವಿಳಾಸಕ್ಕೆ ಮಾರ್ಪಡಿಸುತ್ತದೆ. ಇಂಟರ್ನೆಟ್‌ಗೆ ಯಾವುದೇ ಸಂಪರ್ಕವನ್ನು ಹೊಂದಿರದ ಅಥವಾ ತಪ್ಪಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ ನೆಟ್‌ವರ್ಕ್ ಕಾರಣದಿಂದ ಈ ದೋಷವು ಹೆಚ್ಚು ಆಗಾಗ್ಗೆ ಸಂಭವಿಸುತ್ತದೆ. ಇದು ಪ್ರತಿಕ್ರಿಯೆ ನೀಡದ DNS ಸರ್ವರ್ ಅಥವಾ ನೆಟ್‌ವರ್ಕ್ ಪ್ರವೇಶಿಸದಂತೆ ಇಂಟರ್ನೆಟ್ ಅನ್ನು ತಡೆಗಟ್ಟುತ್ತಿರುವ ಫೈರ್‌ವಾಲ್‌ನಿಂದ ಸಹ ಸಂಭವಿಸಬಹುದು." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 ಪ್ರಯತ್ನ ಉಳಿದಿದೆ." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d ಪ್ರಯತ್ನಗಳು ಉಳಿದಿವೆ." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM ಇಲ್ಲ" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "ತಪ್ಪಿಹೊದ ಕರೆ" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "ತಪ್ಪಿಹೊದ ಕರೆಗಳು" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "ತುರ್ತು ಕರೆ" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "ತುರ್ತು ಕರೆಗಳು ಮಾತ್ರ." + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "ಚಾರ್ಜಿಂಗ್: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "ಸಂಪೂರ್ಣವಾಗಿ ಚಾರ್ಜ್ ಆಗಿದೆ." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d ರಿಂದ %2$d ಅಂಕಿಗಳು ಅಥವಾ ಅಕ್ಷರಗಳು ಅಗತ್ಯವಿರುತ್ತವೆ." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "ತಪ್ಪಾದ ಪಾಸ್‌ವರ್ಡ್." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen ಖಾತೆಯ ಮೂಲಕ ಅನ್‌ಲಾಕ್ ಮಾಡಿ" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1 ಸೆಕೆಂಡ್‌ನಲ್ಲಿ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "ಕರೆ ಲಾಗ್ ವೀಕ್ಷಿಸಲು ಸ್ಕ್ರೀನ್ ಸ್ವೈಪ್ ಮಾಡಿ." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "ಸಂದೇಶಗಳನ್ನು ತೆರೆಯಲು ಸ್ಕ್ರೀನ್ ಸ್ವೈಪ್ ಮಾಡಿ." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "ರದ್ದು" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "ತುರ್ತು ಕರೆಗಳು ಮಾತ್ರ." + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "ಯಾವುದೆ ಸೇವೆ ಇಲ್ಲ" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "ಓಕೆ" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "ಹೋಮ್" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen account\nಮೂಲಕ ಅನ್‌ಲಾಕ್ ಮಾಡಿ" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "ಕ್ಯಾಮರಾ ಶಾರ್ಟ್‌ಕಟ್‌" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "ಡ್ಯೂಯೆಲ್ ಗಡಿಯಾರ" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 ತಪ್ಪಿದ ಕರೆ" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "ತ್ಯಜಿಸಿ" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "ಉಳಿಸಿ" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "ತುರ್ತು ಕರೆಗಳು ಮಾತ್ರ" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "ಶೋಧಿಸುತ್ತಿದೆ" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN ನಮೂದಿಸಿ." + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN ತಪ್ಪಾಗಿದೆ." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "ಕರೆಗೆ ಹಿಂತಿರುಗಿ" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "ಮುಚ್ಚಿ" + +msgid "IDS_COM_SK_BACK_A" +msgstr "ಹಿಂದೆ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ರದ್ದುಮಾಡಿ" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "ಕರೆ ಲಾಗ್ ವೀಕ್ಷಿಸಲು ಸ್ಕ್ರೀನ್ ಸ್ವೈಪ್ ಮಾಡಿ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "ಕರೆ ಲಾಗ್ ವೀಕ್ಷಿಸಲು PIN ನಮೂದಿಸಿ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "ಕರೆ ಲಾಗ್ ವೀಕ್ಷಿಸಲು ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "ಸಂದೇಶವನ್ನು ವೀಕ್ಷಿಸಲು ಸ್ಕ್ರೀನ್ ಸ್ವೈಪ್ ಮಾಡಿ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "ಸಂದೇಶವನ್ನು ವೀಕ್ಷಿಸಲು PIN ನಮೂದಿಸಿ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "ಸಂದೇಶವನ್ನು ವೀಕ್ಷಿಸಲು ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "ನೀವು ಸಾಧನವನ್ನು ತಪ್ಪಾಗಿ %1$d ಸಲ ಅನ್‌ಲಾಕ್ ಮಾಡಲು ಯತ್ನಿಸಿದ್ದೀರಿ. ಸಾಧನವನ್ನು ಫ್ಯಾಕ್ಟರಿ ಡೀಫಾಲ್ಟ್‌ಗಳಿಗೆ ಮರುನಿಗದಿಗೊಳಿಸುವುದು ಮತ್ತು ಎಲ್ಲ ಡೇಟಾವು ಅಳಿಸಿಹೋಗುವ ಮೊದಲು ನಿಮಗೆ %2$d ಪ್ರಯತ್ನಗಳು ಉಳಿದಿವೆ." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "ನೀವು %d ಸಲ ಸಾಧನವನ್ನು ತಪ್ಪಾಗಿ ಅನ್‌ಲಾಕ್ ಮಾಡುವುದಕ್ಕೆ ಪ್ರಯತ್ನಿಸಿರುತ್ತೀರಿ. ಇದನ್ನು ಈಗ ಫ್ಯಾಕ್ಟರಿ ಡೀಫಾಲ್ಟ್‌ಗಳಿಗೆ ಮರುನಿಗದಿಗೊಳಿಸಲಾಗುವುದು ಮತ್ತು ಎಲ್ಲ ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗುವುದು" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ಮುಚ್ಚು" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW ಮೊಬೈಲ್" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "ಸ್ಕ್ರೀನ್ ಅನ್‌ಲಾಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನೀವು %1$d ಯಶಸ್ವಿಯಾಗದ ಪ್ರಯತ್ನಗಳನ್ನು ಮಾಡಿದ್ದೀರಿ. %2$d ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ." + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "ಸಾಧನ ಅನ್‌ಲಾಕ್ ಆಗಿದೆ." + diff --git a/po/ko_KR.po b/po/ko_KR.po index 946c70d..8f9d004 100755 --- a/po/ko_KR.po +++ b/po/ko_KR.po @@ -1,36 +1,309 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "재입력 기회가 1번 남았습니다" +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "새 메시지" -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "입력 기회가 %d회 남았습니다" +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "새 메시지 1개" -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "긴급전화만 가능합니다" +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "애플리케이션 선택" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "초코쿠키" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "쿨재즈" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "로즈마리" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "종료" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "진행 중..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "항목 %d개 표시" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "취소" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "날씨" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "가이드를 완료하였습니다." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "동작이 바르지 않습니다. 다시 시도하세요." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "배경화면 선택" msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "해제하려면 화면을 움직이세요" +msgstr "잠금을 해제하려면 화면을 미세요." -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "터치 상태에서 디바이스를 앞으로 기울이세요" +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "일치하지 않는 지문입니다" -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "비밀번호가 바르지 않습니다" +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "대체 비밀번호" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "부재중 전화 %1$d개 및 읽지 않은 메시지 %2$d개가 있습니다." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "배경화면" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "잠금을 해제하려면 화면을 길게 누르면서 디바이스를 앞으로 기울이세요. 화면 잠금이 해제되지 않으면 디바이스를 더 기울이세요. [모션 잠금해제]를 설정한 [설정]에서 모션 기능을 자동 실행합니다." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Gear가 너무 멀리 있어 인식되지 않으면 간단 비밀번호 잠금을 자동 실행합니다. Gear가 인식되면, 화면 잠금 방식을 드래그 잠금으로 변경합니다." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "애플리케이션 선택" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "새 메시지 %d개" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "부재중 전화 %d개" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "비밀번호 4자를 입력하세요." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "잠금화면 배경을 변경하였습니다." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "홈 배경화면을 변경하였습니다." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "드래그" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "지문" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "잠금화면 설정" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "잠금화면" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UD명조" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "잠금을 해제하려면 화면을 길게 누르면서 디바이스를 앞으로 기울이세요. 화면 잠금이 해제되지 않으면 디바이스를 더 기울이세요." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "간단 비밀번호" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "화면 잠금 방식" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "로밍" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "비밀번호" + +msgid "IDS_ST_BODY_NONE" +msgstr "설정 안 함" + +msgid "IDS_ST_BODY_MOTION" +msgstr "모션" + +msgid "IDS_ST_BODY_EDIT" +msgstr "편집" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "상단의 색상 사각형을 비교 중인 색상과 유사한 순서대로 상단에서 하단으로 끌어다 놓거나 색상 사각형을 상단에서 누르세요. 하단의 사각형을 이동하여 순서를 변경할 수 있습니다." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "자동 잠금" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "잠금해제 PIN을 입력하세요." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN 잘못 입력" + +msgid "IDS_COM_BODY_EDIT" +msgstr "편집" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "사용할 수 없는 웹페이지입니다." + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "DNS를 찾지 못하여 %s의 서버를 찾을 수 없습니다. DNS는 웹사이트 이름을 해당 인터넷 주소로 바꾸는 네트워크 서비스입니다. 이러한 오류는 인터넷에 연결되지 않았거나 네트워크가 잘못 구성된 경우에 주로 발생합니다. DNS 서버에서 응답이 없거나 방화벽이 인터넷으로 네트워크에 접근하는 것을 차단한 경우에도 이러한 오류가 발생할 수 있습니다." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "입력 기회가 1회 남았습니다." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "입력 기회가 %d회 남았습니다." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM 카드가 없습니다" msgid "IDS_IDLE_POP_MISSED_CALL" msgstr "부재중 전화" msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "부재중통화" +msgstr "부재중 전화" -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "새 메시지" +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "긴급전화" -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "새 메시지" +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "긴급전화만 가능합니다." + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "충전 중: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "비밀번호를 입력하세요." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "충전을 완료하였습니다." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d-%2$d자의 숫자 또는 문자를 입력하세요." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "비밀번호가 바르지 않습니다." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "타이젠 계정으로 잠금해제" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d초 후에 다시 시도하세요." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1초 후에 다시 시도하세요." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "통화기록을 보려면 화면을 미세요." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "메시지를 실행하려면 화면을 미세요." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "취소" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "긴급전화만 가능합니다." + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "서비스 지역이 아닙니다" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "확인" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "홈" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "타이젠 계정으로\n잠금해제" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "카메라 바로가기" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "듀얼 시계" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "부재중 전화 1개" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "저장 안 함" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "저장" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "긴급전화만 가능" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "검색 중..." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN을 입력하세요." + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN이 바르지 않습니다." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "통화로 돌아가기" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "닫기" + +msgid "IDS_COM_SK_BACK_A" +msgstr "뒤로가기" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "취소" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "통화기록을 보려면 화면을 미세요" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "통화기록을 보려면 PIN을 입력하세요" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "통화기록을 보려면 비밀번호를 입력하세요" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "메시지를 보려면 화면을 미세요" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "메시지를 보려면 PIN을 입력하세요" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "메시지를 보려면 비밀번호를 입력하세요" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "잠금해제 비밀번호를 %1$d회 잘못 입력하였습니다. 디바이스 설정 및 데이터가 기본 설정으로 초기화되기까지 비밀번호를 %2$d회 입력할 수 있습니다." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "잠금해제 비밀번호를 %d회 잘못 입력하였습니다. 디바이스 설정을 기본 설정으로 초기화하고 모든 데이터를 삭제합니다." + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "복구 비밀번호 입력" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "종료" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "화면 잠금을 해제할 수 없음" -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "새 이메일" +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "잠금해제를 %1$d회 잘못 입력하였습니다. %2$d초 후에 다시 시도하세요." -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "새 이메일" +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "디바이스 잠금을 해제하였습니다." diff --git a/po/lo.po b/po/lo.po new file mode 100755 index 0000000..e7afc08 --- /dev/null +++ b/po/lo.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "ຂໍ້ຄວາມໃໝ່" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 ຂໍ້ຄວາມໃໝ່" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "ເລືອກແອພພລິເຄຊັນ" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "ປິດ" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "ກຳລັງ​ປະມວນ​ຜົນ..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "ສະແດງ %d ລາຍການ" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "ຍົກເລີກ" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "ອາກາດ" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "ການແນະນໍາສໍາເລັດ." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "ການດໍາເນີນການບໍ່ຖືກຕ້ອງ. ລອງໃໝ່ອີກ." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Select wallpaper" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "ເລື່ອນໜ້າຈໍເພື່ອປົດລັອກ." + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "ບໍ່ຖືກຄູ່ກັນ" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "ລະຫັດທາງເລືອກ" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "ທ່ານມີ %1$d ສາຍບໍ່ໄດ້ອ່ານ ແລະ %2$d ຂໍ້ຄວາມບໍ່ໄດ້ອ່ານ." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "ວອລເປເປີ" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "ແຕະໜ້າຈໍຄ້າງໄວ້, ຈາກນັ້ນອຽງເຄື່ອງໄປທາງໜ້າທ່ານ ເພື່ອປົດລັອກມັນ. ຖ້າໜ້າຈໍບໍ່ປົດລັອກເທື່ອ, ລອງອຽງເຄື່ອງໄປອີກ. ເມື່ອການປົດລັອກການເຄື່ອນໄຫວໄດ້ຖືກຕັ້ງຂຶ້ນ, ການເຄື່ອນໄຫວຈະຖືກເປີດໃຊ້ງານຢູ່ໃນການຕັ້ງຄ່າໂດຍອັດຕະໂນມັດ." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "ລັອກລະຫັດທໍາມະດາຈະຖືກເປີດໃຊ້ງານອັດຕະໂນມັດ ຖ້າເກຍຂອງທ່ານຢູ່ໄກເກີນໄປກວ່າທີ່ຈະກວດຫາໄດ້. ເມື່ອກວດພົບເກຍຂອງທ່ານແລ້ວ, ປະເພດລັອກໜ້າຈໍຂອງທ່ານຈະປ່ຽນເປັນລັອກເລື່ອນ." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "ເລືອກແອພພລິເຄຊັນ" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d ຂໍ້ຄວາມໃໝ່" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d ສາຍບໍ່ໄດ້ຮັບ" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "ໃສ່ PIN 4 ຕົວເລກເຂົ້າໄປ." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "ວອລເປເປີໜ້າຈໍລັອກຖືກປ່ຽນແປງ." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "ວອລເປເປີໜ້າຈໍຫຼັກຖືກປ່ຽນແປງ." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "ເລື່ອນ" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "ລາຍນີ້ວມື" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "ຕັ້ງຄ່າໜ້າຈໍລັອກ" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "ໜ້າຈໍລັອກ" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "ເຄາະໜ້າຈໍຄ້າງໄວ້, ຈາກນັ້ນງ່ຽງເຄື່ອງໄປຫາທ່ານ ເພື່ອປົດລັອກ. ຖ້າໜ້າຈໍບໍ່ໄດ້ລັອກ, ພະຍາຍາມງ່ຽງເຄື່ອງໄປອີກ." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "ລະຫັດງ່າຍ" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "ປະເພດການລັອກໜ້າຈໍ" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "ໂຣມມິງ" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "ລະຫັດຜ່ານ" + +msgid "IDS_ST_BODY_NONE" +msgstr "ບໍ່ມີ" + +msgid "IDS_ST_BODY_MOTION" +msgstr "ການເຄື່ອນໄຫວ" + +msgid "IDS_ST_BODY_EDIT" +msgstr "​ແກ້​ໄຂ" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "ລາກຮູບສີ່ຫຼ່ຽມສີຈາກດ້ານເທິງໄປວາງລົງໃສ່ດ້ານລຸ່ມ ຫຼືເຄາະຮູບສີ່ຫຼ່ຽມສີຢູ່ບໍລິເວນດ້ານເທິງໃນລໍາດັບຂອງຄວາມຄ້າຍຄືກັນໄປໃສ່ສີທີ່ກໍາລັງປຽບທຽບ. ທ່ານສາມາດລາກເອົາຮູບສີ່ຫຼ່ຽມໄປວາງລົງຢູ່ບໍລິເວນດ້ານລຸ່ມເພື່ອຈັດລໍາດັບພວກມັນຄືນໃໝ່ໄດ້." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "ລັອກອັດຕະໂນມັດ" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "ໃສ່ລະຫັດປົກລັອກ PIN." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN ບໍ່​ຖືກຕ້ອງ" + +msgid "IDS_COM_BODY_EDIT" +msgstr "​ແກ້​ໄຂ" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "ບໍ່ມີເວັບເພສນີ້ຢູ່." + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "ບໍ່ສາມາດພົບເຊີບເວີຢູ່ທີ່ %s ເພາະວ່າການເບິ່ງ DNS ບໍ່ສໍາເລັດ. DNS ແມ່ນການບໍລິການເຄືອຂ່າຍທີ່ແປຊື່ຂອງເວັບໄຊທ໌ໄປເປັນທີ່ຢູ່ອິນເຕີເນັດຂອງມັນ. ຄວາມຜິດພາດນີ້ສ່ວນໃຫຍ່ມັກຈະເກີດຂຶ້ນໂດຍບໍ່ມີການເຊື່ອມຕໍ່ກັບອິນເຕີເນັດ ຫຼືເຄືອຂ່າຍທີ່ມີການກໍານົດຕັ້ງຜິດ. ມັນຍັງສາມາດເກີດຂຶ້ນໂດຍເຊີບເວີ DNS ທີ່ບໍ່ຕອບຮັບ ຫຼືໄຟວອລທີ່ປ້ອງກັນອິນເຕີເນັດບໍ່ໃຫ້ເຂົ້າຫາເຄືອຂ່າຍນໍາ." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "ຍັງເຫຼືອ 1 ຄັ້ງ." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "ຍັງເຫຼືອ %d ຄັ້ງ." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "ບໍ່ມີ SIM" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "ສາຍບໍ່ໄດ້ຮັບ" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "ສາຍບໍ່ໄດ້ຮັບ" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "​ໂທສຸກ​ເສີນ" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "​ໂທສຸກ​ເສີນ​ເທົ່າ​ນັ້ນ." + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "ກໍາລັງສາກ: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "ໃສ່ລະຫັດຜ່ານ." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "ສາກເຕັມແລ້ວ." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "ຕ້ອງການ %1$d ຫາ %2$d ຕົວເລກ ຫຼືຕົວໜັງສື." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "ລະຫັດ​ຜ່າ​ນບໍ່​ຖືກຕ້ອງ." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "ປົດລັອກຜ່ານບັນຊີ Tizen" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "ລອງໃໝ່ອີກໃນ %d ວິນາທີ." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "ລອງໃໝ່ອີກໃນ 1 ວິນາທີ." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "ເລື່ອນໜ້າຈໍເພື່ອເບິ່ງບັນທຶກການໂທ." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "ເລື່ອນໜ້າຈໍເພື່ອເປີດຂໍ້ຄວາມ." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "ຍົກເລີກ" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "​ໂທສຸກ​ເສີນ​ເທົ່າ​ນັ້ນ." + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "ບໍ່ມີການບໍລິການ" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "ຕົກລົງ" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "ໜ້າຫຼັກ" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "ປົດລັອກຜ່ານ\nTizen account" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "ທາງລັດກ້ອງຖ່າຍຮູບ" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "ໂມງຄູ່" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 ສາຍບໍ່ໄດ້ຮັບ" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "ລຶບຖິ້ມ" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "ບັນທຶກ" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "ໂທສຸກເສີນເທົ່ານັ້ນ" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "ການຄົ້ນຫາ" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "​ໃສ່ PIN." + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN ບໍ່​ຖືກຕ້ອງ." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "ກັບຄືນຫາການໂທ" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "ປິດ" + +msgid "IDS_COM_SK_BACK_A" +msgstr "ກັບຄືນ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ຍົກເລີກ" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "ຮູດໜ້າຈໍ ເພື່ອເບິ່ງບັນທຶກການໂທ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "ປ້ອນ PIN ເຂົ້າໄປ ເພື່ອເບິ່ງບັນທຶກການໂທ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "ປ້ອນລະຫັດເຂົ້າໄປ ເພື່ອເບິ່ງບັນທຶກການໂທ" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "ຮູດໜ້າຈໍ ເພື່ອເບິ່ງຂໍ້ຄວາມ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "ປ້ອນ PIN ເຂົ້າໄປ ເພື່ອເບິ່ງຂໍ້ຄວາມ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "ປ້ອນລະຫັດເຂົ້າໄປ ເພື່ອເບິ່ງຂໍ້ຄວາມ" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "ທ່ານໄດ້ພະຍາຍາມປົດລັອກເຄື່ອງບໍ່ຖືກຕ້ອງ %1$d ຄັ້ງແລ້ວ. ທ່ານພະຍາຍາມໄດ້ອີກ %2$d ຄັ້ງ ກ່ອນເຄື່ອງຈະຖືກຕັ້ງຄ່າໃໝ່ເປັນຄ່າມາດຕະຖານໂຮງງານ ແລະທຸກຂໍ້ມູນຈະຖືກລຶບ." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "ທ່ານພະຍາຍາມປົດລັອກເຄື່ອງບໍ່ຖືກຕ້ອງ %d ຄັ້ງ. ປະຈຸບັນ ມັນຈະຖືກຕັ້ງໄປເປັນມາດຕະຖານໂຮງງານຄືນໃໝ່ ແລະທຸກຂໍ້ມູນຈະຖືກລຶບ." + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ປິດ" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "ໄຊນາຢູນິຄອມ" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "ຈູງວາ" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW ມືຖື" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "ບໍ່ສາມາດປົດລັອກໜ້າຈໍໄດ້" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "ທ່ານໄດ້ພະຍາຍາມປົດລັອກເຄື່ອງຂອງທ່ານບໍ່ສໍາເລັດ %1$d ແລ້ວ. ລອງໃໝ່ອີກໃນ %2$d ວິນາທີ." + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "ປົດບລັອກອຸປະກອນແລ້ວ." + diff --git a/po/lt.po b/po/lt.po deleted file mode 100755 index 6f0b9ce..0000000 --- a/po/lt.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Liko 1 bandymas" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d likę bandymai" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Tik pagalbos skambučiai" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Perbraukite per ekraną ir atrakinkite" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Palaikykite bakstelėję ekraną ir paverskite įrenginį pirmyn" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Neteisingas slaptažodis" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Neatsakytas skambutis" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Praleisti skambučiai" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Nauja žinutė" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Naujos žinutės" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Naujas el. laiškas" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Nauji el. laiškai" - diff --git a/po/lv.po b/po/lv.po deleted file mode 100755 index b775a20..0000000 --- a/po/lv.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Atlicis 1 mēģinājums" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "Atlikuši %d mēģinājumi" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Tikai ārkārtas zvani" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Velciet pār ekrānu, lai atbloķētu" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Pieskarieties ekrānam un turiet, un sasveriet ierīci uz priekšu" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Nepareiza parole" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Neatbildēts zvans" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Neatbildētie zvani" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Jauna ziņa" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Jaunas ziņas" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Jauna e-pasta ziņa" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Jaunas e-pasta ziņas" - diff --git a/po/mk.po b/po/mk.po deleted file mode 100755 index 20259cf..0000000 --- a/po/mk.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Уште 1 обид" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d attempts left" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Само итни повици" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Поминете преку екранот за да отклучите" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Допрете го и држете го екранот и навалете го уредот нанапред" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Погрешна лозинка" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Пропуштен повик" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Пропуштени повици" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Нова порака" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Нови пораки" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Нова email" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Нови email пораки" - diff --git a/po/ml.po b/po/ml.po new file mode 100755 index 0000000..bf56c20 --- /dev/null +++ b/po/ml.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "പുതിയ സന്ദേശം" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 പുതിയ സന്ദേശം" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "ആപ്ലിക്കേഷനുകൾ തിരഞ്ഞെടുക്കുക" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "ചോക്കോ കുകി" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "കൂള്‍ ജാസ്" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "റോസ്മേരി" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "അടയ്ക്കുക" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "പ്രോസസ്സുചെയ്യുന്നു..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "%d ഇനങ്ങൾ കാണിക്കുന്നു" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "റദ്ദാക്കുക" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "കാലാവസ്ഥ" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "ട്യൂട്ടോറിയല്‍ പൂര്‍ത്തിയായി" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "അസാധുവായ പ്രവൃത്തി. വീണ്ടും ശ്രമിക്കുക" + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "വാള്‍പേപ്പര്‍ തിരഞ്ഞെടുക്കുക" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "അണ്‍ലോക്ക് ചെയ്യാന്‍ സ്ക്രീന്‍ സ്വൈപ് ചെയ്യുക." + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "പൊരുത്തമൊന്നുമില്ല" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "ഇതര പാസ്‌വേര്‍ഡ്‌" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "നിങ്ങള്‍ക്ക് %1$d മിസ്ഡ് കോളുകളും %2$d വായിക്കാത്ത മെസ്സേജുകളും ഉണ്ട്." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "വാൾപേപ്പറുകള്‍" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "ഉപകരണം അൺലോക്ക് ചെയ്യുന്നതിന് സ്ക്രീനിൽ സ്പർശിച്ചുപിടിക്കുക, തുടർന്ന് അതിനെ നിങ്ങളുടെ നേരെ ചെരിക്കുക. സ്ക്രീൻ അൺലോക്ക് ചെയ്യുന്നില്ലെങ്കിൽ, ഉപകരണം കൂടുതൽ ചെരിക്കാൻ ശ്രമിക്കുക. ചലന അൺലോക്ക് ക്രമീകരിച്ചിരിക്കുന്ന സമയത്ത്, ക്രമീകരണങ്ങൾ എന്നതിൽ ചലനം ഓട്ടോമാറ്റിക്കായി പ്രാപ്തമാക്കപ്പെടുന്നതാണ്." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "നിങ്ങളുടെ ഗിയർ കണ്ടെത്താനാവുന്നതിലും വളരെ അകലെയാണെങ്കിൽ ഓട്ടോമാറ്റിക്കായി ലളിതമായ പാസ്‌വേഡ് ലോക്ക് പ്രാപ്തമാക്കപ്പെടും. നിങ്ങളുടെ ഗിയർ കണ്ടെത്തപ്പെടുമ്പോൾ, സ്വൈപ് ചെയ്യുക എന്നതിലേക്ക് നിങ്ങളുടെ സ്ക്രീൻ ലോക്ക് തരം മാറ്റപ്പെടും." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "ആപ്ലിക്കേഷന്‍ തിരഞ്ഞെടുക്കുക" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d പുതിയ സന്ദേശങ്ങള്‍" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d മിസ്സ്ഡ് കോളുകള്‍" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4-അക്ക PIN നല്‍കുക." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "ലോക്ക് സ്ക്രീൻ വാൾപേപ്പർ മാറ്റി." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "ഹോം സ്ക്രീൻ വാൾപേപ്പർ മാറ്റി." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "സ്വൈപ്" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "വിരലടയാളം" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "ലോക്ക് സ്ക്രീന്‍ ക്രമീകരണങ്ങള്‍" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "ലോക്ക് സ്ക്രീന്‍" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "സ്ക്രീന്‍ ടാപ്പുചെയ്ത് പിടിച്ച്, അത് അണ്‍‌ലോക്കുചെയ്യുന്നതിനായി ഉപാധി നിങ്ങള്‍ക്ക് നേരെ ചരിക്കുക. സ്ക്രീന്‍ അണ്‍‌ലോക്കുചെയ്യുന്നില്ലെങ്കില്‍, ഉപാധി കൂടുതല്‍ ചരിക്കാന്‍ ശ്രമിക്കുക" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "ലളിതമായ പാസ്‍വേഡ്" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "സ്ക്രീന്‍ ലോക്കുചെയ്യല്‍ തരം" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "റോമിംഗ്" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "പാസ്‌വേഡ്" + +msgid "IDS_ST_BODY_NONE" +msgstr "ഒന്നുമില്ല" + +msgid "IDS_ST_BODY_MOTION" +msgstr "മോഷന്‍" + +msgid "IDS_ST_BODY_EDIT" +msgstr "എഡിറ്റുചെയ്യുക" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "മുകള്‍ ഭാഗത്തുനിന്ന് താഴത്തെ ഭാഗത്തേക്ക് നിറമുള്ള സമചതുരങ്ങള്‍ ഇഴച്ചിടുക അല്ലെങ്കില്‍ താരതമ്യപ്പെടുത്തുന്ന മുകളിലെ നിറമുള്ള സമചതുരങ്ങളില്‍ സാമ്യത അനുസരിച്ച് ടാപ്പുചെയ്യുക. വീണ്ടും ക്രമീകരിക്കുന്നതിന് സമചതുരങ്ങളെ നിങ്ങള്‍ക്ക് താഴത്തെ ഭാഗത്തേക്ക് ഇഴച്ചിടാന്‍ കഴിയും" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "ഓട്ടോ-ലോക്ക്" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "അണ്‍ലോക്ക് PIN നല്‍കുക." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "തെറ്റായ PIN" + +msgid "IDS_COM_BODY_EDIT" +msgstr "എഡിറ്റുചെയ്യുക" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "ഈ വെബ്പേജ് ലഭ്യമല്ല." + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "DNS തിരയൽ പരാജയപ്പെട്ടതിനാൽ %s-ലെ സെർവറിനെ കണ്ടെത്താനാവില്ല. ഒരു വെബ്സൈറ്റിന്‍റെ പേര് അതിന്‍റെ ഇന്‍റർനെറ്റ് വിലാസത്തിലേക്ക് വിവർത്തനം ചെയ്യുന്ന നെറ്റ്‌വർക്ക് സേവനമാണ് DNS. ഇന്‍റർനെറ്റ് ഇല്ലാതിരിക്കുന്നതുകൊണ്ടോ അല്ലെങ്കിൽ തെറ്റായി കോൺഫിഗർ ചെയ്യപ്പെട്ട ഒരു നെറ്റ്‌വർക്ക് മൂലമോ ആണ് ഈ പിശക് മിക്കപ്പോഴും സംഭവിക്കുന്നത്. പ്രതികരിക്കാത്ത ഒരു DNS സെർവർ മൂലമോ അല്ലെങ്കിൽ നെറ്റ്‌വർക്ക് ആക്സസ് ചെയ്യുന്നതിൽ നിന്ന് ഇന്‍റർനെറ്റിനെ തടയുന്ന ഒരു ഫയർവാൾ വഴിയോ ഇത് സംഭവിക്കാവുന്നതാണ്." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 ശ്രമം ശേഷിക്കുന്നു." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d ശ്രമങ്ങള്‍ ശേഷിക്കുന്നു." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM ഇല്ല" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "നഷ്ടപ്പെട്ട കോള്‍" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "നഷ്ടപ്പെട്ട കോളുകള്‍" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "എമര്‍ജന്‍സി കോള്‍" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "എമര്‍ജന്‍സി കോളുകള്‍ മാത്രം." + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "ചാര്‍ജ്ജ് ചെയ്യുന്നു: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "പാസ്‌വേഡ് നല്‍കുക." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "മുഴുവന്‍ ചാര്‍ജ്ജ് ചെയ്‌തു." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d മുതല്‍ %2$d വരെ അക്കങ്ങളോ അക്ഷരങ്ങളോ ആവശ്യമാണ്." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "തെറ്റായ പാസ്‌വേഡ്." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen അക്കൗണ്ട് വഴി അൺലോക്ക് ചെയ്യുക" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d സെക്കന്‍റിനുശേഷം വീണ്ടും ശ്രമിക്കുക." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1 സെക്കന്‍റില്‍ വീണ്ടും ശ്രമിക്കുക." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "കോൾ ലോഗ് കാണുന്നതിന് സ്ക്രീനിൽ സ്വൈപ് ചെയ്യുക." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "സന്ദേശങ്ങൾ തുറക്കുന്നതിന് സ്ക്രീനിൽ സ്വൈപ് ചെയ്യുക." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "റദ്ദാക്കുക" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "എമര്‍ജന്‍സി കോളുകള്‍ മാത്രം." + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "സേവനമില്ല" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "ശരി" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "ഹോം" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen അക്കൗണ്ട് വഴി\nഅൺലോക്ക്." + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "ക്യാമറ എളുപ്പവഴി" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "ഇരട്ട ക്ലോക്ക്" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 നഷ്ടപ്പെട്ട കോള്‍" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "ഉപേക്ഷിക്കുക" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "സേവ് ചെയ്യുക" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "എമര്‍ജന്‍സി കോളുകള്‍ മാത്രം" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "തിരയുന്നു" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN നല്‍കുക." + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "തെറ്റായ PIN." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "കോളിലേക്ക് മടങ്ങുക" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "അടയ്ക്കുക" + +msgid "IDS_COM_SK_BACK_A" +msgstr "പിന്നോ.." + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "റദ്ദാക്കുക" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "കോൾ ലോഗ് കാണാൻ സ്ക്രീൻ സ്വൈപ് ചെയ്യുക" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "കോൾ ലോഗ് കാണാൻ PIN നൽകുക" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "കോൾ ലോഗ് കാണാൻ പാസ്‌വേഡ് നൽകുക" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "സന്ദേശം കാണാൻ സ്ക്രീൻ സ്വൈപ് ചെയ്യുക" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "സന്ദേശം കാണാൻ PIN നൽകുക" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "സന്ദേശം കാണാൻ പാസ്‌വേഡ് നൽകുക" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "ഉപകരണം തുറക്കാൻ നിങ്ങൾ തെറ്റായി %1$d തവണ ശ്രമിച്ചു. ഉപകരണം ഫാക്ടറി ഡീഫോൾട്ടിലേക്ക് പുനഃസജ്ജമാക്കപ്പെടുകയും ഡാറ്റയെല്ലാം മായ്ക്കപ്പെടുകയും ചെയ്യുന്നതിന് മുമ്പായി നിങ്ങൾക്ക് %2$d ശ്രമങ്ങൾ ശേഷിക്കുന്നു." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "നിങ്ങള്‍ %1$d തവണ തെറ്റായി ഉപകരണം അണ്‍ലോക്കുചെയ്യാന്‍ ശ്രമിച്ചു. ഇത് ഇപ്പോള്‍ ഫാക്ടറി സ്ഥിരസ്ഥിതികളിലേയ്ക്ക് പുനഃക്രമീകരിക്കുകയും എല്ലാ ഡാറ്റയും മായ്ക്കുകയും ചെയ്യും" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "അടയ്ക്കുക" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "സ്ക്രീൻ ലോക്കുനീക്കാൻ ആകില്ല" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "ഉപകരണത്തിന്‍റെ ലോക്കുമാറ്റുന്നതിന് %1$d പരാജയപ്പെട്ട ശ്രമങ്ങൾ നിങ്ങൾ നടത്തി. %2$d സെക്കൻഡിൽ വീണ്ടും ശ്രമിക്കുക." + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "ഉപകരണത്തെ അൺലോക്ക് ചെയ്തു." + diff --git a/po/mr.po b/po/mr.po new file mode 100755 index 0000000..5f0593f --- /dev/null +++ b/po/mr.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "नवीन संदेश" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 नवीन संदेश" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "अनुप्रयोग निवडा" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "चोको कुकी" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "कूल जॉझ" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "रोझमॅरी" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "बंद करा" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "प्रक्रिया सुरू आहे..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "%d आयटेम्‍स दर्शवत आहे." + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "रद्द" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "हवामान" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "ट्युटोरियल पूर्ण." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "अवैध क्रिया. पुन्हा प्रयत्न." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "वॉलपेपर निवडा" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "अनलॉक करण्यासाठी स्क्रीन स्वाईप करा." + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "कोणतीही जुळणी नाही" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "वैकल्पिक पासवर्ड" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "आपणांस %1$d सुटलेले कॉल्स आणि %2$d न वाचलेले संदेश आले आहेत." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "वॉलपेपर्स" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "स्क्रीन टॅप करा आणि होल्ड करा, नंतर ते अनलॉक करण्यासाठी उपकरण आपल्या बाजूस झुकवा. जर स्क्रीन अनलॉक झाली नाही, तर उपकरण अधिक झुकवण्याचा प्रयत्न करा. जेव्हा मोशन अनलॉक सेट झाले, तेव्हा मोशन स्वयंचलितरित्या सेटिंग्स मध्ये सक्षम होईल." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "आपला गिअर फार दूर असल्‍याचे आढळल्‍यास साधा पासवर्ड लॉक स्‍वयंचलितपणे सक्षम होईल. आपला गिअर शोधल्‍यावर, आपला स्‍क्रीन लॉक प्रकार स्‍वाइप लॉकवर बदलेल." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "अनुप्रयोग निवडा" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d नवीन संदेश" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d सुटलेले कॉल्स" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4-अंकी PIN प्रविष्‍ट करा." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "लॉक स्‍क्रीन वॉलपेपर बदलले." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "होम स्‍क्रीन वॉलपेपर बदलले." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "स्वाईप" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "फिंगरप्रिंट" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "लॉक स्‍क्रीन सेटिंग्स" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "लॉक स्क्रीन" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "पडदा टॅप करा आणि धरून ठेवा,नंतर किंवा कुलुप उघडण्या साठी उपकरण तुमच्या दिशेने वाकडे करा. कुलुप उघडले नाही तर, उपकरण थोडे आणखी वाकडे करा" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "साधा पासवर्ड" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "स्क्रीन लॉक प्रकार" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "रोमिंग" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "पासवर्ड" + +msgid "IDS_ST_BODY_NONE" +msgstr "काहीही नाही" + +msgid "IDS_ST_BODY_MOTION" +msgstr "हालचाल" + +msgid "IDS_ST_BODY_EDIT" +msgstr "संपादित करा." + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "वरील क्षेत्रातून खालील क्षेत्रात रंगीत चौकोन ड्रॅग आणि ड्रॉप करा किंवा ज्या रंगाशी तुलना केली जात आहे त्यासारख्या रंगाच्या क्रमात वरील क्षेत्रात रंगीत चौकोन टॅप करा. आपण चौकोन पुन्हा-क्रमबद्ध करण्यासाठी खालील क्षेत्रात ड्रॅग आणि ड्रॉप करू शकता." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "ऑटो-लॉक" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "PIN अनलॉक करा प्रविष्ट करा." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "चूकीचा PIN" + +msgid "IDS_COM_BODY_EDIT" +msgstr "संपादित करा." + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "हे वेबपृष्‍ठ उपलब्ध नाही." + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "%s वरील सर्व्‍हर सापडू शकणार नाही कारण DNS लूक-अप अयशस्‍वी झाले आहे. DNS ही नेटवर्क सेवा आहे जी वेबसाइटचे नाव ह्याच्‍या इंटरनेट पत्त्‍यावर अनुवादित करते. ही त्रुटी बर्‍याचदा कोणतेही इंटरनेटशी कोणतेही कनेक्‍शन नसल्‍याने किंवा नेटवर्क चुकीचे कॉन्फिगर झाल्‍याकारणाने येते. हे विनाप्रतिसाद DNS सर्व्‍हरद्वारेदेखील कारणीभूत ठरू शकते किंवा फायरवॉल हे नेटवर्क ऍक्‍सेस करण्‍यापासून इंटरनेटला प्रतिबंधित करत आहे." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 प्रयत्न शिल्लक." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d प्रयत्न बाकी." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM नाही" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "सुटलेले कॉल" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "न मिळालेले कॉल" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "संकटकाळीन कॉल" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "फक्त संकटकाळीन कॉल." + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "चार्जिंग: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "पासवर्ड घाला." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "चार्ज पूर्ण झालेला." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d ते %2$d अंक किंवा अक्षरे आवश्यक." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "चूकीचा पासवर्ड." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen account द्वारे अनलॉक करा" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d सेकंदांत पुन्हा प्रयत्न क." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1 सेकंदात पुन्हा प्रयत्न करा." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "कॉल लॉग पहाण्‍यासाठी स्‍क्रीन स्‍वाइप करा." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "संदेश उघडण्‍यासाठी स्‍क्रीन स्‍वाइप करा." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "रद्द" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "फक्त संकटकाळीन कॉल." + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "सेवा नाही" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "ठीक" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "घर" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen खात्याद्वारे\nअनलॉक करा" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "कॅमेरा शॉर्टकट" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "दुहेरी घड्याळ" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 सुटलेला कॉल" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "टाकून द्या" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "जतन करा" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "फक्त संकटकाळीन कॉल" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "शोधत आहे" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN प्रविष्ट करा." + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "चूकीचा PIN." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "कॉलवर परत या" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "बंद" + +msgid "IDS_COM_SK_BACK_A" +msgstr "मागे" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "रद्द करा" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "कॉल लॉग पाहण्‍यासाठी स्‍क्रीन स्‍वाइप करा" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "कॉल लॉग पाहण्‍यासाठी PIN प्रविष्‍ट करा" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "कॉल लॉग पाहण्‍यासाठी पासवर्ड प्रविष्‍ट करा" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "संदेश पाहण्‍यासाठी स्‍क्रीन स्‍वाइप करा" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "संदेश पाहण्‍यासाठी PIN प्रविष्‍ट करा" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "संदेश पाहण्‍यासाठी पासवर्ड प्रविष्‍ट करा" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "आपण %1$d वेळा उपकरण चुकीच्‍या पद्धतीने अनलॉक करण्‍याचा प्रयत्‍न केला आहे. आपल्‍याजवळ उपकरण फॅक्‍टरी डिफॉल्‍ट्स वर पुन्‍हा सेट करण्‍याअगोदर %2$d प्रयत्‍न शिल्‍लक आहेत आणि सर्व डेटा खोडला आहे." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "आपण उपकरण %d वेळेस चुकीचे अनलॉक करण्याचा प्रयत्न केला आहे. हे आता फॅक्‍टरी डिफॉल्‍ट्सना पुन्हा मांडणी केले जातील आणि सर्व डेटा खोडला जाईल" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "बंद करा" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "स्क्रीन अनलॉक करण्यात अक्षम" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "आपण आपले उपकरण अनलॉक करण्याचे %1$d अयशस्वी प्रयत्न केले आहेत. %2$d सेकंदांमध्ये पुन्हा प्रयत्न करा." + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "उपकरण अनलॉक केले." + diff --git a/po/ms.po b/po/ms.po new file mode 100755 index 0000000..1dfbddf --- /dev/null +++ b/po/ms.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Mesej baru" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 mesej baru" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Pilih aplikasi" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Tutup" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Memproses…" + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "Menunjukkan %d item" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Batal" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Cuaca" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutorial selesai." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Tindakan tidak sah. Cuba lagi." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Pilih hiasan latar" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Sapukan skrin untuk membuka kunci." + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Tiada padanan" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Kata laluan alternatif" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Anda mempunyai %1$d panggilan tidak dijawab dan %2$d mesej tidak dibaca." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Hiasan latar" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Ketik dan tahan skrin, kemudian condongkan peranti ke arah anda untuk membuka kuncinya. Jika kunci skrin tidak terbuka, cuba condongkan lagi peranti ini. Apabila buka kunci gerakan ditetapkan, gerakan akan secara automatik diaktifkan dalam Aturan." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Kunci kata laluan mudah akan diaktifkan secara automatik jika Gear anda terlalu jauh untuk dikesan. Apabila Gear anda dikesan, jenis kunci skrin anda akan ditukar kepada kunci Leret." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Pilih aplikasi" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d mesej baru" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d panggilan tidak dijawab" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Masukkan PIN 4 digit." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Hiasan latar skrin kunci berubah." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Hiasan latar skrin utama berubah." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Sapu" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Cap jari" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Aturan skrin kunci" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Skrin kunci" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Ketik dan tahan skrin, kemudian condongkan peranti ke arah anda untuk membuka kuncinya. Jika kunci skrin tidak terbuka, cuba condongkan lagi peranti ini." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Kata laluan mudah" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Jenis kunci skrin" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Merayau" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Kata laluan" + +msgid "IDS_ST_BODY_NONE" +msgstr "Tiada" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Gerakan" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Sunting" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Seret dan lepaskan segi empat berwarna dari kawasan lebih tinggi ke kawasan yang lebih rendah atau ketik segi empat berwarna di kawasan lebih tinggi dalam susunan kesamaan warna yang sedang dibandingkan. Anda boleh seret dan lepaskan segi empat di kawasan yang lebih rendah untuk menyusunnya semula." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Auto kunci" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Masukkan PIN Buka Kunci." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN salah" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Sunting" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "Laman web ini tidak tersedia." + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "Pelayan di %s tidak dapat ditemui kerana gagal mencari DNS. DNS adalah perkhidmatan rangkaian yang menterjemahkan nama laman web ke alamat Internet. Kesilapan ini selalunya disebabkan oleh tiada sambungan ke Internet atau rangkaian salah dikonfigurasi. Ia juga boleh disebabkan oleh pelayan DNS tidak responsif atau firewall menghalang Internet dari mencapai rangkaian" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Tinggal 1 percubaan." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d percubaan lagi." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Tiada SIM" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Panggilan tidak dijawab" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Panggilan tidak dijawab" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Panggilan kecemasan" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Panggilan kecemasan saja." + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Mengecas: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Masukkan kata laluan." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Dicas sepenuhnya." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d hingga %2$d digit atau huruf yang diperlukan." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Kata laluan tidak sah." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Buka kunci melalui akaun Tizen" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Cuba lagi dalam %d saat." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Cuba semula dalam masa 1 saat." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Leret skrin untuk melihat log panggilan." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Leret skrin untuk membuka Mesej." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Batal" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Panggilan kecemasan saja." + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Tiada perkhidmatan" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Rumah" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Buka kunci mlalui\nakaun Tizen" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Pintasan kamera" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Jam duaan" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 panggilan tak dijawab" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Buang" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Simpan" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Panggiln kecemasan sahaja" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Mencari" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Masukkan PIN." + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN salah." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Kembali ke panggilan" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Tutup" + +msgid "IDS_COM_SK_BACK_A" +msgstr "Kembali" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "BATAL" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Leret skrin untuk melihat log panggilan" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Masukkan PIN untuk melihat log panggilan" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Masukkan kata laluan untuk melihat log panggilan" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Leret skrin untuk melihat mesej" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Masukkan PIN untuk melihat mesej" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Masukkan kata laluan untuk melihat mesej" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Anda telah cuba membuka kunci peranti secara salah sebanyak %1$d kali. Anda mempunyai %2$d cubaan lagi sebelum peranti ditetapkan semula kepada lalai kilang dan semua data dipadamkan." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Cubaan anda membuka kunci peranti telah tersalah %d kali. Ia kini akan ditetapkan semula ke lalai kilang dan semua data akan dipadam." + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "TUTUP" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "Tidak dapat membuka kunci skrin" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "Anda telah melakukan %1$d cubaan tidak berjaya untuk membuka kunci peranti anda. Cuba lagi dalam %2$d saat." + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "Peranti dibuka kunci." + diff --git a/po/my.po b/po/my.po new file mode 100755 index 0000000..d9bfbee --- /dev/null +++ b/po/my.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "မက္ေဆ့ခ်္အသစ္" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "မက္ေဆ့ အသစ္ ၁ ခု" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "အပလီေကးရွင္းမ်ား ေရြးပါ" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco Cooky" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "ပိတ္ပါ" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "လုပ္ငန္းေဆာင္ရြက္ေနပါသည္…." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "%d အရာပစၥည္းမ်ားကို ျပထားပါသည္" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "ပယ္ဖ်က္ပါ" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "မုိးေလ၀သ" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "သင္တန္း ျပီးျပည့္စံုပါၿပီ။" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "ထပ္မံႀကိဳးစားပါ။" + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Select wallpaper" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "ဖန္သားျပင္ကို ဖြင့္ရန္ ပြတ္ဆြဲပါ။" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "ကိုက္ညီမႈ မရွိပါ" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "အျခားေရြးစရာ စကားဝွက္" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "သင့္တြင္ လြဲသြားေသာ ေခၚဆိုမႈ %1$d ခုႏွင့္ မဖတ္ရေသးေသာ မက္ေဆ့ခ်္ %2$d ခု ရွိသည္။" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "ေနာက္ခံပုံရိပ္မ်ား" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "ေသာ့ဖြင့္ရန္ ဖန္သားျပင္ကို ႏွိပ္ျပီး ကိုင္ထားပါ၊ ထို႔ေနာက္ ကိရိယာကို သင့္ဆီသို႔ ေစာင္းလိုက္ပါ။ ဖန္သားျပင္ ေသာ့မဖြင့္ပါက ကိရိယာကုိ ပိုေစာင္းၿပီး ၾကိဳးစားပါ။ ေရြ႕လ်ား ေသာ့ဖြင့္ စီစဥ္ထားသည့္အခါ ဆက္တင္မ်ားထဲတြင္ ေရြ႕လ်ားမႈကို အလိုအေလ်ာက္ ရေစမည္။" + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "အကယ္၍ သင္၏ Gear ကို ေထာက္လွမ္းရန္ အလြန္ ေဝးကြာေနပါက သာမာန္ စကားဝွက္ ထည့္ထားေသာ ေသာ့ကို အလိုလို ဖြင့္ေပးပါလိမ့္မည္။ သင့္ Gear ရွာေတြ႔သည့္အခါ သင့္ဖန္သားျပင္ေသာ့ကို ပြတ္လႊဲေသာ့သို႔ ေျပာင္းမည္။" + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "လုပ္ငန္းသံုးပရိုဂရမ္ေရြးခ်ယ္ပါ" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d အသစ္ေသာ မက္ေဆ့ခ်္မ်ား။" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "လြဲသြားေသာ ေခၚဆိုမႈ %d။" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "ဂဏန္း ၄ လံုး PIN ထည့္ပါ။" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "ေသာ့ခပ္ဖန္သားျပင္ နံရံကပ္စကၠဴ ေျပာင္းသြားျပီး။" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "မူလဖန္သားျပင္ နံရံကပ္စကၠဴ ေျပာင္းသြားျပီး။" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "ဆြဲပါ" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "လက္ေဗြရာ" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "ဖန္သားျပင္ေသာ့ သတ္မွတ္ခ်က္မ်ား" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "ဖန္သားျပင္ေသာ့" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "ေသာ့ဖြင့္ရန္ ဖန္သားျပင္ကို ႏွိပ္ျပီး ကိုင္ထားပါ၊ ထို႔ေနာက္ ကိရိယာကို သင့္ဆီသို႔ ေစာင္းလိုက္ပါ။ ဖန္သားျပင္အား ေသာ့ဖြင့္မရေသးပါက ကိရိယာကုိ ပိုေစာင္းျပီး ၾကိဳးစားပါ။" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "ရိုးရိုး စကားဝွက္" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "ဖန္သားျပင္ေသာ့ အမ်ဳိးအစား" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "လွည့္လည္သြားလာေနျခင္း" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "စကား၀ွက္" + +msgid "IDS_ST_BODY_NONE" +msgstr "မရွိ" + +msgid "IDS_ST_BODY_MOTION" +msgstr "ေရြ႕လ်ားမႈ" + +msgid "IDS_ST_BODY_EDIT" +msgstr "တည္းျဖတ္" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "အေရာင္ျခယ္ထားေသာ အကြက္မ်ားကို အေပၚ ဧရိယာမွ ေအာက္ ဧရိယာသို႔ ပြတ္ဆြဲၿပီးခ်ပါ (သို႔) အေပၚ ဧရိယာထဲရွိ ႏိႈင္းယွဥ္ထားသည့္ အေရာင္ႏွင့္ ဆင္တူလုနီးနီး အေရာင္ျခယ္ထားေသာ အကြက္မ်ားကို ႏွိပ္ပါ။ အကြက္မ်ားကို ျပန္စဥ္ရန္ ၎တို႔ကို ပြတ္ဆြဲၿပီး ေအာက္ ဧရိယာထဲသို႔ ခ်ပါ။" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "အလိုလို ေလာ့ဒ္လုပ္ျခင္း" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "ေသာ့ဖြင့္ PIN ထည့္ပါ။" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "မမွန္ေသာ PIN" + +msgid "IDS_COM_BODY_EDIT" +msgstr "တည္းျဖတ္" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "ဤဝက္ဘ္ စာမ်က္ႏွာ မရႏိုင္ပါ။" + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "DNS ရွာ-ၾကည့္ မေအာင္ျမင္သျဖင့္ %s မွ ဆာဗာ ကိုရွာေတြ႔မည္မဟုတ္။ DNS ဆိုသည္မွာ ဝက္ဆိုက္၏ အမည္ကို ၎၏ အင္တာနက္ လိပ္စာသို႔ ျပန္ဆိုေပးမည့္ ကြန္ယက္ ဝန္ေဆာင္မႈ ျဖစ္သည္။ ဤအမွားသည္ အမ်ားအားျဖင့္ အင္တာနက္သို႔ ဆက္သြယ္ျခင္းမရွိသည့္အခါ (သို႔) လြဲမွားစြာ စီစဥ္ထားသည့္ ကြန္ယက္ ရွိျခင္းေၾကာင့္ ျဖစ္ရသည္။ ၎သည္ တုန္႔ျပန္မႈမရွိေသာ DNS ဆာဗာ (သို႔) အင္တာနက္အား ကြန္ယက္သို႔ ဝင္ေရာက္ျခင္းကို တာထားသည့္ ဖိုင္းယားေဝါလ္ေၾကာင့္လည့္း ျဖစ္ႏိုင္သည္။" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "၁ ခါ ႀကိဳးစားရန္ က်န္ေသးသည္။" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d ႀကိမ္ ႀကိဳးစားရန္ က်န္ပါေသးသည္။" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM မရွိ" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "လြတ္သြားေသာ ဖုန္းေခၚဆုိမႈ" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "လြတ္သြားေသာ ဖုန္းေခၚဆုိမႈမ်ား" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "အေရးေပၚ ဖုန္းေခၚဆုိမႈ" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "အေရးေပၚ ဖုန္းေခၚဆုိမႈမ်ားသာ။" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "အားသြင္းေနပါသည္: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "စကား၀ွက္ျဖည့္ပါ" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "အျပည့္အ၀အားသြင္းၿပီးပါၿပီ။" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "ဂဏန္း (သို႔) စာ %1$d မွ %2$d လံုး လိုသည္။" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "မမွန္ေသာ စကား၀ွက္" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen အေကာင့္မွတဆင့္ ေသာ့ဖြင့္ပါ" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d စကၠန္႔အတြင္ ထပ္ၾကိဳးစားပါ။" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "၁ စကၠန္႔အၾကာမွာ ထပ္ၾကိဳးစားပါ။" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "ေခၚဆိုမႈ မွတ္တမ္း ၾကည့္ရန္ ဖန္သားျပင္ကို ပြတ္ဆြဲပါ။" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "မက္ေဆ့ခ်္မ်ား ဖြင့္ရန္ ဖန္သားျပင္ကို ပြတ္ဆြဲပါ။" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "ပယ္ဖ်က္ပါ" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "အေရးေပၚ ဖုန္းေခၚဆုိမႈမ်ားသာ။" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "၀န္ေဆာင္မႈ မရွိပါ" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "အုိေက" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "ပင္မ" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen အေကာင့္\nကေန ေသာ့ဖြင့္ပါ" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "ကင္မရာအတုိေကာက္" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "အခ်ိန္ဇံုႏွစ္ခုရွိ အခ်ိန္ကို တစ္ၿပိဳင္တည္းျပႏိုင္ေသာနာရီ" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "လြတ္သြားသည့္ ဖုန္း ၁" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "စြန္႔ပစ္ပါ" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "သိမ္းဆည္းပါ" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "အေရးေပၚေခၚျခင္းသာလွ်င္" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "ရွာေဖြေနသည္" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN ျဖည့္ပါ" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "မမွန္ေသာ PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "ဖုန္းေခၚဆိုမႈသို႔ ျပန္သြားျခင္း" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "ပိတ္ပါ" + +msgid "IDS_COM_SK_BACK_A" +msgstr "ေနာက္" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ပယ္ဖ်က္ပါ" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "ဖုန္းေခၚမွတ္တမ္းကို ၾကည့္ရန္ ဖန္သားျပင္ကို ပြတ္ဆြဲပါ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "ဖုန္းေခၚမွတ္တမ္းကို ၾကည့္ရန္ PIN ထည့္သြင္းပါ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "ဖုန္းေခၚမွတ္တမ္းကို ၾကည့္ရန္ စကားဝွက္ ထည့္သြင္းပါ" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "မက္ေဆ့ခ်္ကို ၾကည့္ရန္ ဖန္သားျပင္ကို ပြတ္ဆြဲပါ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "မက္ေဆ့ခ်္ကို ၾကည့္ရန္ PIN ထည့္သြင္းပါ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "မက္ေဆ့ခ်္ကို ၾကည့္ရန္ စကားဝွက္ ထည့္သြင္းပါ" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "ကိရိယာ ေသာ့ဖြင့္ရန္ မမွန္ကန္စြာ ၾကိဳးစားမႈ %1$d ၾကိမ္ ရွိပါၿပီ။ ကိရိယာကို စက္ရံုထုတ္ အသင့္လုပ္ၿပီးသားသို႔ ျပန္သတ္မွတ္ကာ ေဒတာ အားလံုး ဖ်က္မပစ္မီ ၾကိဳးစားရန္ %2$d ၾကိမ္ က်န္ေသးသည္။" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "ကိရိယာ ေသာ့ဖြင့္ရန္ မမွန္ကန္စြာ ၾကိဳးစားမႈ %d ၾကိမ္ ရွိပါၿပီ။ ၎ကို ယခု စက္ရံုထုတ္ အသင့္လုပ္ၿပီးသားသို႔ ျပန္လည္သတ္မွတ္ၿပီး ေဒတာ အားလံုး ဖ်က္ပစ္လိမ့္မည္။" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ပိတ္ပါ" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "တရုတ္ ယူနီကြန္" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW မိုဘိုင္းလ္" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "ဖန္သားျပင္ ေသာ့ဖြင့္၍ မရႏိုင္ပါ" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "သင့္ကိရိယာ ေသာ့ဖြင့္ရန္ မေအာင္ျမင္ေသာ ၾကိဳးစားမႈ %1$d ၾကိမ္ လုပ္ထားသည္။ %2$d စကၠန္႔အတြင္း ျပန္ၾကိဳးစားပါ။" + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "ကိရိယာကို ေသာ့ဖြင့္ထားပါသည္။" + diff --git a/po/nb.po b/po/nb.po deleted file mode 100755 index 41c307a..0000000 --- a/po/nb.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 forsøk gjenstår" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d forsøk igjen" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Kun nødanrop" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Stryk over skjermen for å låse opp" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Trykk på og hold skjermen og vipp enheten forover" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Feil passord" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Ubesvart anrop" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Ubesvarte anrop" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Ny melding" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Nye meldinger" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Ny e-post" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Nye e-poster" - diff --git a/po/ne.po b/po/ne.po new file mode 100755 index 0000000..dd08499 --- /dev/null +++ b/po/ne.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "नयाँ संदेश" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 नयाँ संदेश" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "अनुप्रयोगहरू चयन गर्नुहोस्" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "चोको कुकी" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "कूल ज्याज" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "रोजमेरी" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "बन्द गर्नुहोस्" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "प्रक्रिया चलाइरहेको..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "%d वस्तुहरू देखाइरहेछन्" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "रद्द" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "मौसम" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "टुटोरियल पूरा भयो।" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "अवैध कार्य। फेरि प्रयास गर्नुहोस्।" + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "वालपेपर चयन गर्नुहोस्" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "अनलक गर्नको लागि स्क्रीन स्वाइप गर्नुहोस्।" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "कुनै मिलान छैन" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "वैकल्पिक पासवर्ड" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "तपाईसंग %1$d छुटेको कल र %2$d नपढेको संदेश छ।" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "वालपेपरहरू" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "स्क्रीनलाई ट्याप गरि होल्ड गर्नुहोस्, त्यसपछि अनलक गर्नको लागि यन्त्रलाई तपाई तर्फ झुकाउनुहोस्। यदि स्क्रीन अनलक हुन्न भने, यन्त्रलाई अझै झुकाउने प्रयास गर्नुहोस्। मोशन अनलक सेट गरेको बेला, सेटिङ्हरूमा मोशन स्वचालित रूपमा सक्षम गरिनेछ।" + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "यदि तपाईको गियर पत्ता लगाउन अत्यन्तै टाढा छ भने सामान्य पासवर्ड लक स्वचालित रूपमा सक्षम हुनेछ। तपाईको गियर पत्ता लागेपछि, तपाई‍को स्क्रीन लक प्रकार स्वाइप लकमा परिवर्तन हुनेछ।" + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "अनुप्रयोग चयन गर" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d नयाँ संदेशहरू" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d छुटेको कलहरू" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4-अंकिय PIN प्रविष्ट गर्नुहोस्।" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "लक स्क्रीन वालपेपर परिवर्तन भयो।" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "गृह स्क्रीन वालपेपर परिवर्तन भयो।" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "घुमाउ" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "फिंगरप्रिन्ट" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "लक स्क्रीन सेटिङहरू" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "लक स्क्रीन" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "स्क्रीनलाई ट्याप गरि होल्ड गर्नुहोस्, त्यसपछि अनलक गर्नको लागि यन्त्रलाई तपाई तर्फ ढल्काउनुहोस्। यदि स्क्रीन अनलक भएन भने, यन्त्रलाई अझ बढि ढल्काउने प्रयास गर्नुहोस्" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "सामान्य पासवर्ड" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "स्क्रीन लक प्रकार" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "रोमिङ" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "पासवर्ड" + +msgid "IDS_ST_BODY_NONE" +msgstr "शून्‍य" + +msgid "IDS_ST_BODY_MOTION" +msgstr "चलायमान" + +msgid "IDS_ST_BODY_EDIT" +msgstr "सम्‍पादन" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "माथिल्लो क्षेत्र देखि तल्लो क्षेत्रमा रंगाइएको चतुर्भुजहरू ड्रयाग गरेर ड्रप गर्नुहोस् वा तुलना गरिने रंगहरूमा समानताको क्रममा राखेको माथिल्लो क्षेत्रमा रहेको रंगाइएको चतुर्भुजहरूलाई ट्याप गर्नुहोस्। तपाई तिनीहरूलाई पुन: क्रमबद्ध गर्न तल्लो क्षेत्रमा चतुर्भुजहरूलाई ड्रयाग गर्न र ड्रप गर्न सक्नुहुन्छ।" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "स्वतः लक" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "अनलक PIN प्रविष्टि गर्नुहोस्।" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "गलत PIN" + +msgid "IDS_COM_BODY_EDIT" +msgstr "सम्‍पादन" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "यो वेबपेज उपलब्ध छैन।" + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "%s मा भएको सर्भर फेला पर्न सकेन किनभने DNS लुक-अप असफल भयो। DNS नेटवर्क सेवा हो जसले वेबसाइट नामलाई यसको इन्टरनेट ठेगानामा अनुवाद गर्छ। यो त्रुटि प्रायजसो इन्टरनेट जडान नभएर वा गलत नेटवर्क कन्फिगरको कारणले हुन्छ। यो प्रतिक्रिया नदिने DNS को कारणल वा नेटवर्क पहुँच गर्नबाट फायरवालले इन्टरनेट रोकेकोले पनि हुनसक्छ।" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 प्रयास शेष छ।" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d प्रयासहरू शेष भयो।" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM छैन" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "छुटेको कल" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "छुटेका कलहरू" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "आपातकालिन कल" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "केवल आपतकालीन कलहरू।" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "चार्ज गरिँदै: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "पासवर्ड लेख्नुहोस्।" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "पूर्णतः चार्ज भएको।" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d देखि %2$d अंक वा वर्णहरू आवश्यक छ।" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "गलत पासवर्ड।" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen Account मार्फत अनलक गर्नुहोस्" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d सेकेन्डमा पुनः प्रयास गर्नुहोस्।" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1 सेकेन्डमा फेरि प्रयास गर्नुहोस्।" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "कल लग हेर्न स्क्रीनलाई स्वाइप गर्नुहोस्।" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "संदेशहरू खोल्न स्क्रीनलाई स्वाइप गर्नुहोस्।" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "रद्द" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "केवल आपतकालीन कलहरू।" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "कुनै सेवा छैन" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "ठीक छ" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "गृह" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen एकाउंट\nमार्फत अनलक" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "क्‍यामेरा शर्टकट" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "द्वैत घडी" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 छुटेको कल भयो" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "छोड्नुहोस्" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "सेव" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "अत्यावश्यक कलहरू मात्र" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "खोज्‍दैछ" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN लेख्नुहोस्।" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "गलत PIN।" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "कलमा फर्कनुहोस्" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "बन्द गर्नुहोस्" + +msgid "IDS_COM_SK_BACK_A" +msgstr "पछाडि" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "रद्द गर्नुहोस्" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "कल लग हेर्न स्क्रीन स्वाइप गर्नुहोस्" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "कल लग हेर्न PIN प्रविष्ट गर्नुहोस्" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "कल लग हेर्न पासवर्ड प्रविष्ट गर्नुहोस्" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "संदेश हेर्न स्क्रीन स्वाइप गर्नुहोस्" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "संदेश हेर्न PIN प्रविष्ट गर्नुहोस्" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "संदेश हेर्न पासवर्ड प्रविष्ट गर्नुहोस्" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "तपाईले %1$d पटक गलत तरीकाले यन्त्र अनलक गर्ने प्रयास गर्नुभयो। यन्त्र फ्याक्टरी पूर्वनिर्धारितमा हुनु र सबै डाटा मेटिनुअघि तपाईसँग %2$d प्रयास बाँकी छ।" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "तपाईले %d पटक गलत तरिकाले अनलक गर्न प्रयास गर्नुभयो। यो अब फ्याक्टरी पूर्वनिर्धारितमा रिसेट हुनेछ र सबै डाटाहरू मेटिनेछ" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "बन्द गर" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW मोबाइल" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "स्क्रीनलाई अनलक गर्न सकेन" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "तपाईको यन्त्र अनलक गर्न तपाईले %1$d पटक असफल प्रयास गर्नुभएको छ। %2$d सेकेन्डमा फेरि प्रयास गर्नुहोस्।" + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "यन्त्र अनलक गरियो।" + diff --git a/po/nl_NL.po b/po/nl_NL.po deleted file mode 100755 index b27e2cb..0000000 --- a/po/nl_NL.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 poging over" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d pogingen over" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Alleen noodoproepen" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Veeg uw vinger over het scherm om te ontgrendelen" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Tik en houd het scherm vast, en kantel het apparaat naar voren" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Onjuist wachtwoord" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Gemiste oproep" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Gemiste oproepen" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Nieuw bericht" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Nieuwe berichten" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Nieuwe e-mail" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Nieuwe e-mails" - diff --git a/po/or.po b/po/or.po new file mode 100755 index 0000000..f310bd2 --- /dev/null +++ b/po/or.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "ନୂତନ ସନ୍ଦେଶ" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 ନୂତନ ସନ୍ଦେଶ" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "ଆପ୍ଲିକେସନଗୁଡିକ ଚୟନ କରନ୍ତୁ" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "ଚକୋ କୁକୀ" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "ବନ୍ଦ" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "ପ୍ରକ୍ରିୟାରତ..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "%dଟି ଆଇଟମ୍‌ ଦେଖାଉଛି" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "ବାତିଲ୍" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "ପାଣିପାଗ" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "ଟ୍ୟୁଟୋରିଆଲ୍ ସମ୍ପୁର୍ଣ୍ଣ ହୋଇଛି।" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "ଅବୈଧ କ୍ରିୟା। ପୁନଃ ଚେଷ୍ଟା କରନ୍ତୁ।" + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "ୱାଲ୍‌ପେପର୍ ଚୟନ କରନ୍ତୁ" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "ଅନଲକ୍ କରିବାକୁ ସ୍କ୍ରିନ୍ ସ୍ଵାଇପ୍ କରନ୍ତୁ।" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "କୌଣସି ମେଳକ ନାହିଁ" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "ବିକଳ୍ପ ପାସୱାର୍ଡ୍" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "ଆପଣଙ୍କର %1$d ହରାଇଥିବା କଲ୍ ଏବଂ ଏବଂ %2$d ଅପଠିତ ସନ୍ଦେଶ ରହିଛି।" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "ୱାଲପେପରଗୁଡିକ" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "ସ୍କ୍ରିନ୍ ଟ୍ୟାପ୍ କରନ୍ତୁ ଏବଂ ସ୍କ୍ରିନ୍ ଧରି ରଖନ୍ତୁ, ତାପରେ ଏହାକୁ ଅନଲକ୍ କରିବାକୁ ଆପଣ ଡିଭାଇସ୍‌କୁ ନିଜ ଆଡ଼କୁ ମୋଡନ୍ତୁ। ଯଦି ଆପଣଙ୍କ ସ୍କ୍ରିନ୍ ଅନ୍‌ଲକ୍ ନହୁଏ, ଡିଭାଇସ୍‌କୁ ଅଧିକ ତଳକୁ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ। ମୋସନ୍ ଅନ୍‌ଲକ୍ ସେଟ୍ ଥିବା ବେଳେ, ମୋସନ୍ ସ୍ଵତଃସ୍ପୃତ ଭାବେ ସେଟିଂରେ ସକ୍ଷମ ହେବ।" + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "ସରଳ ପାସ୍‌ୱାର୍ଡ ଲକ୍ ସ୍ଵତଃସ୍ପୃତ ଭାବରେ ଲକ୍ ହେବ ଯଦି ଆପଣଙ୍କର ଗିୟର୍ ଚିହ୍ନଟ ହେବାକୁ ବହୁତ ଦୂରରେ ରହିଛି। ଯେତେବେଳେ ଆପଣଙ୍କର ଗିୟର୍ ଚିହ୍ନଟ ହେବ, ଆପଣଙ୍କର ସ୍କ୍ରିନ୍ ଲକ୍ ପ୍ରକାର ସ୍ଵାଇପ୍ ଲକ୍‌କୁ ବଦଳିବ।" + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "ଆପ୍ଲିକେସନ୍‌ ଚୟନ କରନ୍ତୁ" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%dଟି ନୂତନ ସନ୍ଦେଶ" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d ମିସଡ୍ କଲ୍" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4-ଅକ୍ଷର PIN ପ୍ରବେଶ କରନ୍ତୁ।" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "ଲକ୍ ସ୍କ୍ରିନ୍ ୱାଲପେପର୍ ପରିବର୍ତ୍ତନ ହୋଇଛି।" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "ହୋମ୍ ସ୍କ୍ରିନ୍ ୱାଲ୍‌ପେପର୍ ପରିବର୍ତ୍ତନ ହେଲା।" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "ସ୍ଵାଇପ୍" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "ଟିପଚିହ୍ନ" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "ଲକ୍ ସ୍କ୍ରିନ୍ ସେଟିଂସମୂହ" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "ଲକ୍‍ ସ୍କ୍ରିନ୍‌" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "ସ୍କ୍ରିନ୍ ଟ୍ୟାପ୍ କରି ଧରି ରଖନ୍ତୁ, ତାପରେ ଏହା ଅନ୍‌ଲକ୍ କରିବାକୁ ଆପଣଙ୍କ ପଟକୁ ଡିଭାଇସ୍ ନୁହାଁନ୍ତୁ। ଯଦି ସ୍କ୍ରିନ୍ ଅନ୍‌ଲକ୍ ନହୁଏ, ଡିଭାଇସ୍ ଅଧିକ ନୁହାଁଇବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ।" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "ସରଳ ପାସ୍‌ୱାର୍ଡ୍" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "ସ୍କ୍ରିନ୍ ଲକ୍ ପ୍ରକାର" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "ରୋମିଂ" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "ପାସୱାର୍ଡ୍" + +msgid "IDS_ST_BODY_NONE" +msgstr "କିଛି ନାହିଁ" + +msgid "IDS_ST_BODY_MOTION" +msgstr "ମୋସନ୍" + +msgid "IDS_ST_BODY_EDIT" +msgstr "ସମ୍ପାଦନ" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "ଉପର ଅଞ୍ଚଳରୁ ନିମ୍ନ ଅଞ୍ଚଳକୁ ରଙ୍ଗ ହୋଇଥିବା ବର୍ଗକୁ ଡ୍ରାଗ୍ ଓ ଡ୍ରପ୍ କରନ୍ତୁ କିମ୍ବା ଉପର ଅଞ୍ଚଳରେ ରଙ୍ଗ ହୋଇଥିବା ବର୍ଗକୁ ଟ୍ୟାପ୍ କରନ୍ତୁ ଯେପରି ସାଦୃଶ୍ୟ ରଙ୍ଗ ସହ ତୁଳନା କରାଯାଇପାରିବ । ଆପଣ ନିମ୍ନ ଅଞ୍ଚଳରେ ବର୍ଗଗୁଡିକ ଡ୍ରାଗ୍ ଓ ଡ୍ରପ୍ କରିପାରିବେ କିମ୍ବା ସେଗୁଡିକ ପୁନଃ ସଜାଇ ପାରିବେ।" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "ସ୍ଵତଃ-ଲକ୍" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "PIN ଅନଲକ୍ ପ୍ରବେଶ କରନ୍ତୁ।" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "ଭୁଲ୍ PIN" + +msgid "IDS_COM_BODY_EDIT" +msgstr "ସମ୍ପାଦନ" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "ଏହି ୱେବପୃଷ୍ଠା ଉପଲବ୍ଧ ନାହିଁ।" + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "%sରେ ସର୍ଭର୍ ମିଳିବ ନାହିଁ କାରଣ DNS ଲୁକ-ଅପ୍ ବିଫଳ ହୋଇଛି। DNS ହେଉଛି ନେଟ୍‌ୱାର୍କ୍ ସେବା ଯାହା ଏହାର ଠିକଣାକୁ ଏକ ୱେବ୍‌ସାଇଟର ନାମ ଅନୁବାଦ କରେ। ଏହି ତ୍ରୁଟି ପ୍ରାୟତଃ ଘଟେ କାରଣ ଇଣ୍ଟର୍ନେଟ୍ କିମ୍ଵା ଏକ ଭୁଲ୍ ଭାବରେ ବିନ୍ୟାସ ହୋଇଥିବା ନେଟ୍‌ୱାର୍କ୍‌କୁ କୌଣସି ସଂଯୋଗ ନଥାଇ ପ୍ରାୟତଃ ହୋଇଥାଇପାରେ। ଏହା ମଧ୍ୟ ଅଣପ୍ରତିକ୍ରିୟା DNS ସର୍ଭର୍ କିମ୍ଵା ନେଟ୍‌ୱାର୍କ୍ ପ୍ରବେଶ ଠାରୁ ଏକ ଫାୟାର୍‌ୱାଲ୍ ପ୍ରତିରୋଧକ ଇଣ୍ଟର୍ନେଟ୍ ଦ୍ଵାରା ହୋଇଥାଇପରେ।" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 ଚେଷ୍ଟା ବାକି ରହିଛି।" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d ଚେଷ୍ଟା ବାକି ରହିଛି" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM ନାହିଁ" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "ହରାଇଥିବା କଲ୍" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "ହରାଇଥିବା କଲଗୁଡିକ" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "ଜରୁରୀକାଳୀନ କଲ୍" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "ଜରୁରୀକାଳୀନ କଲଗୁଡିକ କେବଳ।" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "ଚାର୍ଜ ହେଉଛି: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "ପାସ୍‌ୱାର୍ଡ୍ ପ୍ରବେଶ କରନ୍ତୁ।" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "ପୂର୍ଣ୍ଣ ଚାର୍ଜ୍‌ ହେଲା।" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d ତୁ %2$d ସଂଖ୍ୟା କିମ୍ବା ଅକ୍ଷର ଆବଶ୍ୟକୀୟ।" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "ଭୁଲ୍ ପାସୱାର୍ଡ୍" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen ଆକାଉଣ୍ଟ ମାଧ୍ୟମରେ ଅନ୍‌ଲକ୍ କରନ୍ତୁ" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d ସେକେଣ୍ଡରେ ପୁନଃ ଚେଷ୍ଟା କରନ୍ତୁ।" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1 ସେକେଣ୍ଡରେ ପୁନଃଚେଷ୍ଟା କରନ୍ତୁ।" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "କଲ୍ ଲଗ୍ ଦେଖିବାକୁ ସ୍କ୍ରିନ୍ ସ୍ଵାଇପ୍ କରନ୍ତୁ।" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "ସନ୍ଦେଶ ଖୋଲିବାକୁ ସ୍କ୍ରିନ୍ ସ୍ଵାଇପ୍ କରନ୍ତୁ।" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "ବାତିଲ୍" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "ଜରୁରୀକାଳୀନ କଲଗୁଡିକ କେବଳ।" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "କୌଣସି ସେବା ନାହିଁ" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "ଓକେ" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "ହୋମ୍" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen ଆକାଉଣ୍ଟ\nମାଧ୍ୟମରେ ଅନଲକ୍‌ କର." + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "କ୍ୟାମେରା ସର୍ଟକଟ୍" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "ଡୁଆଲ୍ ଘଣ୍ଟା" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 ହରାଇଥିବା କଲ୍" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "ପ୍ରତ୍ୟାଖ୍ୟାନ" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "ସଞ୍ଚୟ" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "କେବଳ ଜରୁରୀକାଳିନ କଲଗୁଡିକ" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "ସନ୍ଧାନ କରୁଛି" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN ପ୍ରବେଶ କରନ୍ତୁ।" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "ଭୁଲ୍ PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "କଲକୁ ଫେରିବା" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "ବନ୍ଦ" + +msgid "IDS_COM_SK_BACK_A" +msgstr "ପଛକୁ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ବାତିଲ୍" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "କଲ୍ ଲଗ୍ ଦେଖିବାକୁ ସ୍କ୍ରିନ୍ ସ୍ଵାଇପ୍ କରନ୍ତୁ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "କଲ୍ ଲଗ୍ ଦେଖିବାକୁ PIN ପ୍ରବେଶ କରନ୍ତୁ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "କଲ୍ ଲଗ୍ ଦେଖିବାକୁ ପାସୱାର୍ଡ୍ ପ୍ରବେଶ କରନ୍ତୁ" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "ସନ୍ଦେଶ ଦର୍ଶନ ସ୍କ୍ରିନ୍ ସ୍ଵାଇପ୍ କରନ୍ତୁ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "ସନ୍ଦେଶ ଦେଖିବାକୁ PIN ପ୍ରବେଶ କରନ୍ତୁ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "ସନ୍ଦେଶ ଦେଖିବାକୁ ପାସୱାର୍ଡ୍ ପ୍ରବେଶ କରନ୍ତୁ" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "ଆପଣ%1$d ଥର ଏହି ଡିଭାଇସ୍‍ ତ୍ରୁଟିପୁର୍ଣ୍ଣ ଭାବେ ଅନଲକ୍‍ କରିବାକୁ ଉଦ୍ୟମ କରିଛନ୍ତି। ଆପଣଙ୍କର ଡିଭାଇସ୍‍ ଫ୍ୟାକ୍ଟ୍ରି ଡିଫଲ୍ଟରେ ପୁନଃସେଟ‍ ହେବା ପୂର୍ବରୁ%2$d ଉଦ୍ୟମ ବାକି ଅଛି ଏବଂ ସମସ୍ତ ଡାଟା ବିଲୋପିତ ହେବ।" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "ଆପଣ %d ଥର ଡିଭାଇସ୍ ଭୁଲ୍ ଭାବରେ ଅନ୍‌ଲକ୍ କରିବାକୁ ଚେଷ୍ଟା କରିଛନ୍ତି। ଏହା ବର୍ତ୍ତମାନ ଫ୍ୟାକ୍ଟେରୀ ଡିଫଲ୍ଟ୍‌ଗୁଡିକୁ ପୁନଃସେଟ୍ ହେବ ଏବଂ ସମସ୍ତ ଡାଟା ବିଲୋପିତ ହେବ।" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ବନ୍ଦ" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW ମୋବାଇଲ୍" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "ସ୍କ୍ରିନ୍‌ ଅନଲକ୍ କରିବାରେ ଅସମର୍ଥ" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "ଆପଣଙ୍କ ଡିଭାଇସ୍ ଅନ୍‌ଲକ୍ କରିବାକୁ ଆପଣ %1$d ଟି ଅସଫଳ ଉଦ୍ୟମ କରିଛନ୍ତି। %2$d ସେକେଣ୍ଡରେ ପୁନଃଚେଷ୍ଟା କରନ୍ତୁ।" + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "ଡିଭାଇସ୍ ଅନଲକ୍ ହୋଇଛି।" + diff --git a/po/pa.po b/po/pa.po new file mode 100755 index 0000000..a409557 --- /dev/null +++ b/po/pa.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "ਨਵਾਂ ਸੰਦੇਸ਼" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 ਨਵਾਂ ਸੰਦੇਸ਼" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "ਅਨੁਪ੍ਰਯੋਗ ਚੁਣੋ" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "ਚੋਕੋ ਕੂਕੀ" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "ਕੂਲ ਜੈਜ਼" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "ਰੋਜ਼ਮੈਰੀ" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "ਬੰਦ ਕਰੋ" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "ਪ੍ਰਕਿਰਿਆ ਹੋ ਰਹੀ ਹੈ..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "%d ਆਈਟਮਸ ਦਿਖਾ ਰਿਹਾ ਹੈ" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "ਰੱਦ" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "ਮੌਸਮ" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "ਟਿਉਟੋਰਿਅਲ ਪੂਰਾ ਹੋ ਗਿਆ ਹੈ।" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "ਅਵੈਧ ਕਿਰਿਆ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।" + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "ਵਾਲਪੇਪਰ ਚੁਣੋ" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "ਅਨਲੌਕ ਕਰਨ ਲਈ ਸਕ੍ਰੀਨ ਸਵਾਈਪ ਕਰੋ।" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "ਕੋਈ ਮੇਲ ਨਹੀਂ" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "ਵਿਕਲਪਿਕ ਪਾਸਵਰਡ" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "ਤੁਹਾਡੇ ਕੋਲ %1$d ਮਿਸਡ ਕਾੱਲਸ ਅਤੇ %2$d ਨਾ ਪੜ੍ਹੇ ਸੰਦੇਸ਼ ਹਨ।" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "ਵਾਲਪੇਪਰਸ" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "ਸਕ੍ਰੀਨ ਤੇ ਟੈਪ ਕਰਕੇ ਰੱਖੋ, ਫਿਰ ਡਿਵਾਈਸ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਲਈ ਇਸ ਨੂੰ ਆਪਣੇ ਵੱਲ ਝੁਕਾਉ। ਜੇਕਰ ਸਕ੍ਰੀਨ ਅਨਲੌਕ ਨਹੀਂ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਡਿਵਾਈਸ ਨੂੰ ਹੋਰ ਝੁਕਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ। ਮੋਸ਼ਨ ਅਨਲੌਕ ਸੈੱਟ ਹੋਣ ਤੇ, ਸੈੱਟਿੰਗਸ ਵਿੱਚ ਮੋਸ਼ਨ ਸਵੈਚਲਿਤ ਕਿਰਿਆਸ਼ੀਲ ਹੋ ਜਾਵੇਗਾ।" + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "ਜੇਕਰ ਤੁਹਾਡਾ ਗੇਅਰ ਖੋਜ ਕੀਤੇ ਜਾਣ ਲਈ ਬਹੁਤ ਦੂਰ ਹੈ ਤਾਂ ਸਧਾਰਨ ਪਾਸਵਰਡ ਲੌਕ ਸਵੈਚਲਿਤ ਰੂਪ ਤੋਂ ਸਮਰੱਥ ਹੋ ਜਾਵੇਗਾ। ਤੁਹਾਡੇ ਗੇਅਰ ਦੀ ਖੋਜ ਕੀਤੇ ਜਾਣ ਤੇ, ਤੁਹਾਡਾ ਸਕ੍ਰੀਨ ਲੌਕ ਪ੍ਰਕਾਰ ਸਵਾਈਪ ਲੌਕ ਵਿੱਚ ਬਦਲ ਜਾਵੇਗਾ।" + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "ਅਨੁਪ੍ਰਯੋਗ ਚੁਣੋ" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d ਨਵੇਂ ਸੰਦੇਸ਼" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d ਮਿਸਡ ਕਾੱਲਾਂ" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4-ਅੰਕਾਂ ਦਾ PIN ਦਾਖ਼ਲ ਕਰੋ।" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "ਲੌਕ ਸਕ੍ਰੀਨ ਵਾਲਪੇਪਰ ਬਦਲਿਆ ਗਿਆ।" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "ਹੋਮ ਸਕ੍ਰੀਨ ਵਾਲਪੇਪਰ ਬਦਲਿਆ ਗਿਆ।" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "ਸਵਾਈਪ" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "ਫਿੰਗਰਪ੍ਰਿੰਟ" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "ਲੌਕ ਸਕ੍ਰੀਨ ਸੈੱਟਿੰਗਸ" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "ਲੌਕ ਸਕ੍ਰੀਨ" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "ਸਕ੍ਰੀਨ ਤੇ ਟੈਪ ਕਰਕੇ ਰੱਖੋ, ਫਿਰ ਡਿਵਾਈਸ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੇ ਲਈ ਉਸਨੂੰ ਆਪਣੇ ਵੱਲ ਝੁਕਾਉ। ਜੇਕਰ ਸਕ੍ਰੀਨ ਅਨਲੌਕ ਨਹੀਂ ਹੁੰਦੀ, ਤਾਂ ਡਿਵਾਈਸ ਨੂੰ ਹੋਰ ਜ਼ਿਆਦਾ ਝੁਕਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "ਸਾਧਾਰਣ ਪਾਸਵਰਡ" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "ਸਕ੍ਰੀਨ ਲੌਕ ਪ੍ਰਕਾਰ" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "ਰੋਮਿੰਗ" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "ਪਾਸਵਰਡ" + +msgid "IDS_ST_BODY_NONE" +msgstr "ਕੋਈ ਨਹੀਂ" + +msgid "IDS_ST_BODY_MOTION" +msgstr "ਮੋਸ਼ਨ" + +msgid "IDS_ST_BODY_EDIT" +msgstr "ਸੰਪਾਦਿਤ ਕਰੋ" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "ਉੱਪਰੀ ਖੇਤਰ ਤੋਂ ਰੰਗੀਨ ਵਰਗਾਂ ਨੂੰ ਹੇਠਲੇ ਖੇਤਰ ਵਿੱਚ ਡ੍ਰੈਗ ਅਤੇ ਡ੍ਰੌਪ ਕਰੋ ਜਾਂ ਉੱਪਰੀ ਖੇਤਰ ਵਿੱਚ ਰੰਗੀਨ ਵਰਗਾਂ ਨੂੰ ਤੁਲਨਾ ਕੀਤੇ ਜਾਣ ਵਾਲੇ ਰੰਗ ਦੀ ਸਮਾਨਤਾ ਦੇ ਕ੍ਰਮ ਅਨੁਸਾਰ ਟੈਪ ਕਰੋ। ਤੁਸੀਂ ਵਰਗਾਂ ਨੂੰ ਮੁੜ-ਕ੍ਰਮ ਦੇਣ ਲਈ ਉਹਨਾਂ ਨੂੰ ਹੇਠਲੇ ਖੇਤਰ ਵਿੱਚ ਡ੍ਰੈਗ ਅਤੇ ਡ੍ਰੌਪ ਕਰ ਸਕਦੇ ਹੋ।" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "ਸਵੈ ਲੌਕ" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "ਅਨਲੌਕ PIN ਦਾਖ਼ਲ ਕਰੋ।" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "ਗਲਤ PIN" + +msgid "IDS_COM_BODY_EDIT" +msgstr "ਸੰਪਾਦਿਤ ਕਰੋ" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "ਇਹ ਵੈੱਬਪੇਜ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।" + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "%s ਤੇ ਸਰਵਰ ਨਹੀਂ ਮਿਲ ਸਕਦਾ ਕਿਉਂਕਿ DNS ਖੋਜ ਅਸਫਲ ਹੋ ਗਈ ਹੈ। DNS ਇੱਕ ਅਜਿਹੀ ਨੈੱਟਵਰਕ ਸੇਵਾ ਹੈ ਜੋ ਕਿ ਇਸਦੇ ਇੰਟਰਨੈੱਟ ਪਤੇ ਤੇ ਵੈੱਬਸਾਈਟ ਦੇ ਨਾਂ ਦਾ ਅਨੁਵਾਦ ਕਰਦੀ ਹੈ। ਇਹ ਤਰੁੱਟੀ ਅਕਸਰ ਇੰਟਰਨੈੱਟ ਦਾ ਕਨੈਕਸ਼ਨ ਨਾ ਹੋਣ ਜਾਂ ਕਿਸੇ ਨੈੱਟਵਰਕ ਦੇ ਸਹੀ ਰੂਪ ਤੋਂ ਕੌਨਫਿਗਰ ਨਹੀਂ ਹੋਣ ਦੇ ਕਾਰਨ ਹੁੰਦੀ ਹੈ। ਇਹ ਕਿਸੇ ਪ੍ਰਤੀਕਿਰਿਆ ਨਾ ਦੇਣ ਵਾਲੇ DNS ਸਰਵਰ ਜਾਂ ਨੈੱਟਵਰਕ ਨੂੰ ਐਕਸੈਸ ਕਰਨ ਤੋਂ ਰੋਕਣ ਵਾਲੀ ਕਿਸੇ ਫਾਇਰਵਾਲ ਦੇ ਕਾਰਨ ਹੋ ਸਕਦੀ ਹੈ।" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 ਯਤਨ ਬਾਕੀ।" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d ਯਤਨ ਬਾਕੀ।" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "ਕੋਈ SIM ਨਹੀਂ ਹੈ" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "ਮਿਸਡ ਕਾੱਲ" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "ਮਿਸਡ ਕਾੱਲਸ" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "ਅਪਾਤਕਾਲ ਕਾੱਲ" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "ਸਿਰਫ ਅਪਾਤਕਾਲ ਕਾੱਲਸ।" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "ਚਾਰਜ ਹੋ ਰਿਹਾ ਹੈ: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "ਪਾਸਵਰਡ ਦਾਖ਼ਲ ਕਰੋ।" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "ਪੂਰੀ ਤਰਾਂ ਚਾਰਜ ਹੋ ਗਿਆ ਹੈ।" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d ਤੋਂ %2$d ਅੰਕਾਂ ਜਾਂ ਅੱਖਰਾਂ ਦੀ ਲੋੜ ਹੈ।" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "ਗਲਤ ਪਾਸਵਰਡ।" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen ਖਾਤੇ ਰਾਹੀਂ ਅਨਲੌਕ ਕਰੋ" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1 ਸਕਿੰਟ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "ਕਾੱਲ ਲੌਗ ਦੇਖਣ ਦੇ ਲਈ ਸਕ੍ਰੀਨ ਨੂੰ ਸਵਾਈਪ ਕਰੋ।" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "ਸੰਦੇਸ਼ ਖੋਲ੍ਹਣ ਲਈ ਸਕ੍ਰੀਨ ਨੂੰ ਸਵਾਈਪ ਕਰੋ।" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "ਰੱਦ" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "ਸਿਰਫ ਅਪਾਤਕਾਲ ਕਾੱਲਸ।" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "ਕੋਈ ਸੇਵਾ ਨਹੀਂ" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "ਓਕੇ" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "ਹੋਮ" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen ਖਾਤੇ\n ਰਾਹੀਂ ਅਨਲੌਕ ਕਰੋ" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "ਕੈਮਰਾ ਸ਼ੌਰਟਕੱਟ" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "ਡੂਅਲ ਘੜੀ" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 ਮਿਸਡ ਕਾੱਲ" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "ਖਾਰਿਜ" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "ਸੇਵ ਕਰੋ" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "ਕੇਵਲ ਅਪਾਤਕਾਲ ਕਾੱਲਸ" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "ਖੋਜਿਆ ਜਾ ਰਿਹਾ ਹੈ" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN ਦਾਖ਼ਲ ਕਰੋ।" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "ਗਲਤ PIN।" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "ਕਾੱਲ ਤੇ ਵਾਪਸ ਜਾਉ" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "ਬੰਦ" + +msgid "IDS_COM_SK_BACK_A" +msgstr "ਪਿੱਛੇ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ਰੱਦ ਕਰੋ" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "ਕਾੱਲ ਲੌਗ ਦੇਖਣ ਦੇ ਲਈ ਸਕ੍ਰੀਨ ਨੂੰ ਸਵਾਈਪ ਕਰੋ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "ਕਾੱਲ ਲੌਗ ਵੇਖਣ ਲਈ PIN ਦਾਖ਼ਲ ਕਰੋ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "ਕਾੱਲ ਲੌਗ ਵੇਖਣ ਲਈ ਪਾਸਵਰਡ ਦਾਖ਼ਲ ਕਰੋ" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "ਸੰਦੇਸ਼ ਦੇਖਣ ਲਈ ਸਕ੍ਰੀਨ ਨੂੰ ਸਵਾਈਪ ਕਰੋ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "ਸੰਦੇਸ਼ ਦੇਖਣ ਲਈ PIN ਦਾਖ਼ਲ ਕਰੋ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "ਸੰਦੇਸ਼ ਦੇਖਣ ਲਈ ਪਾਸਵਰਡ ਦਾਖ਼ਲ ਕਰੋ" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "ਤੁਸੀਂ ਡਿਵਾਈਸ ਨੂੰ %1$d ਵਾਰ ਗਲਤ ਤਰੀਕੇ ਨਾਲ ਅਨਲੌਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ। ਡਿਵਾਈਸ ਦੇ ਫੈਕਟਰੀ ਡਿਫਾੱਲਟ ਤੇ ਰੀਸੈੱਟ ਹੋਣ ਅਤੇ ਸਾਰਾ ਡੇਟਾ ਮਿਟਣ ਤੋਂ ਪਹਿਲਾਂ %2$d ਕੋਸ਼ਿਸ਼ਾਂ ਬਾਕੀ ਹਨ।" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "ਤੁਸੀਂ ਡਿਵਾਈਸ ਨੂੰ %d ਵਾਰ ਗਲਤ ਤਰੀਕੇ ਨਾਲ ਅਨਲੌਕ ਕਰਨ ਦਾ ਜਤਨ ਕੀਤਾ ਹੈ। ਇਹ ਹੁਣ ਫੈਕਟਰੀ ਡਿਫਾੱਲਟ ਤੇ ਰੀਸੈੱਟ ਹੋ ਜਾਵੇਗਾ ਅਤੇ ਸਾਰਾ ਡੈਟਾ ਮਿਟ ਜਾਵੇਗਾ।" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ਬੰਦ ਕਰੋ" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "ਸਕ੍ਰੀਨ ਅਨਲੌਕ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "ਤੁਸੀਂ ਇਸ ਡਿਵਾਈਸ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੇ ਲਈ %1$d ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਕੀਤੀਆਂ ਹਨ। %2$d ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।" + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "ਡਿਵਾਈਸ ਅਨਲੌਕ ਹੋਇਆ।" + diff --git a/po/pl.po b/po/pl.po deleted file mode 100755 index cd243a8..0000000 --- a/po/pl.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Pozostała 1 próba" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "Pozostało prób: %d" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Tylko połączenia alarmowe" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Przeciągnij ekran, aby odblokować" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Dotknij ekranu i przytrzymaj go, a następnie obróć urządzenie do przodu" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Błędne hasło" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Połączenie nieodebrane" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Nieodebrane" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Nowa wiad." - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Nowa wiad." - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr ": Nowy e-mail" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr ": Nowych email" - diff --git a/po/pt_BR.po b/po/pt_BR.po index 1445002..ee3e115 100755 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -1,20 +1,152 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Resta 1 tentativa" +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nova mensagem" -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "Restam %d tentativas" +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 mensagem nova" -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Somente chamadas de emergência" +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Selecione aplicativos" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Fechar" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Processando…" + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "Exibir %d itens" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancelar" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Clima" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutorial concluído" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Ação inválida. Tente novamente." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Selecionar fundo" msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Deslize a tela para desbloquear" +msgstr "Deslize a tela para desbloquear." -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Toque e segure a tela e incline o dispositivo para a frente" +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Sem correspondência" -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Senha incorreta" +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Senha alternativa" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Você tem %1$d chamadas perdidas e %2$d mensagens não lidas." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Papéis de parede" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Mantenha a tela pressionada e incline o dispositivo na sua direção para desbloqueá-lo. Se a tela não for desbloqueada, tente inclinar mais o dispositivo. Quando o desbloqueio por movimento estiver definido, o movimento será ativado automaticamente nas Configurações." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "O bloqueio de senha simples será ativado automaticamente caso o seu Gear esteja muito afastado para ser detectado. Quando o seu Gear for detectado, seu tipo de bloqueio de tela será alterado para bloqueio de Deslize." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Selecionar aplicação" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d novas mensagens" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d chamadas perdidas" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Insira o PIN de 4 dígitos." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Papel de parede da tela de bloqueio alterado." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Papel de parede da tela de início alterado." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Deslizar" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Impressão digital" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Configurações da tela de bloqueio" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Tela de bloqueio" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Toque e segure a tela, então sacuda o dispositivo em sua direção para desbloqueá-lo. Se a tela não desbloquear, tente sacudir mais o dispositivo." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Senha simples" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Tipo de bloqueio de tela" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Senha" + +msgid "IDS_ST_BODY_NONE" +msgstr "Desativado" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Movimento" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Arraste e solte os quadrados coloridos da área superior para a área inferior ou toque nos quadrados coloridos na área superior em ordem de semelhança com a cor que está sendo comparada. É possível arrastar e soltar os quadrados na área inferior e reordená-los." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Bloqueio automático" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Inserir PIN de desbloqueio." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN incorreto" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "Esta página web não está disponível." + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "Não é possível encontrar o servidor em %s porque a consulta DNS falhou. DNS é o serviço de rede que converte o nome de um site em seu endereço na Internet. Este erro geralmente é causado quando não há conexão à Internet ou devido a um erro de configuração da rede. Também pode ser causado por um servidor DNS que não responde ou por um firewall que impede a Internet de acessar a rede" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Resta 1 tentativa." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "Restam %d tentativas." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Sem Cartão SIM" msgid "IDS_IDLE_POP_MISSED_CALL" msgstr "Chamada Perdida" @@ -22,15 +154,156 @@ msgstr "Chamada Perdida" msgid "IDS_IDLE_POP_MISSED_CALLS" msgstr "Perdidas" -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Nova mensagem" +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Chamada de emergência" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Somente chamadas de emergência." + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Carregando: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Insira senha." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Carregado." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "São necessários de %1$d a %2$d dígitos ou letras." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Senha incorreta." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Desbloquear pela Conta Tizen" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Tente nov. dentro %d seg." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Tente novamente em 1 segundo." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Deslizar a tela para visualizar o registro de chamadas." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Deslizar a tela para abrir o Mensagens." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Cancelar" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Somente chamadas de emergência." + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Sem serviço" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Casa" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Desbloq. pela\nConta Tizen" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Atalho da Câmera" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Relógio duplo" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 chamada perdida" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Descart." + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Salvar" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Apenas cham. emergência" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Procurando" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Insira o PIN." + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN incorreto." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Retornar à chamada" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Fechar" + +msgid "IDS_COM_SK_BACK_A" +msgstr "Voltar" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCELAR" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Deslize a tela para visualizar o registro de chamadas" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Insira o PIN para visualizar o registro de chamadas" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Insira a senha para visualizar o registro de chamadas" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Deslize a tela para visualizar a mensagem" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Insira o PIN para visualizar a mensagem" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Insira a senha para visualizar a mensagem" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Você tentou desbloquear o dispositivo incorretamente %1$d vezes. Você tem %2$d tentativas restantes antes do dispositivo ser redefinido para os padrões de fábrica e todos os dados serem apagados." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Você tentou desbloquear o dispositivo incorretamente %d vezes. Ele será redefinido agora para os padrões de fábrica e todos os dados serão apagados." + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "FECHAR" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Novas mensagens" +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "Impossível desbloquear a tela" -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Novo e-mail" +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "Você fez %1$d tentativas sem sucesso para desbloquear seu dispositivo. Tente novamente em %2$d segundos." -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Novos e-mails" +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "Dispositivo desbloqueado." diff --git a/po/pt_PT.po b/po/pt_PT.po deleted file mode 100755 index 3070baa..0000000 --- a/po/pt_PT.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Resta 1 tentativa" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d tentativas restantes" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Apenas chamadas de emergência" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Passe o dedo no ecrã para desbloquear" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Toque no ecrã sem soltar e incline o dispositivo para a frente" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Palavra-passe incorrecta" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Chamada não atendida" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Chamadas não atendidas" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Nova mensagem" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Novas mensagens" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Novo e-mail" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Novos e-mails" - diff --git a/po/ro.po b/po/ro.po deleted file mode 100755 index a150175..0000000 --- a/po/ro.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 încercare rămasă" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d încercări rămase" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Numai apeluri de urgenţă" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Glisaţi cu degetul pe ecran pentru deblocare" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Ţineţi apăsat pe ecran şi înclinaţi dispozitivul înspre înainte" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Parolă incorectă" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Apel pierdut" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Apeluri pierdute" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Mesaj nou" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Mesaje noi" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Email nou" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Mesaje email noi" - diff --git a/po/ru_RU.po b/po/ru_RU.po deleted file mode 100755 index c5143e4..0000000 --- a/po/ru_RU.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Осталась 1 попытка" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "Осталось попыток: %d" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Только экстренные вызовы" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Для разблокировки проведите пальцем по экрану" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Нажмите и удерживайте экран, а затем наклоните устройство вперед" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Неправильный пароль" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Пропущенный вызов" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Пропущено вызовов:" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Новое сообщение" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Новые сообщения" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Новое сообщение E-mail" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Новые сообщения E-mail" - diff --git a/po/si.po b/po/si.po new file mode 100755 index 0000000..3a4a1ab --- /dev/null +++ b/po/si.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "නව පණිවිඩ" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "නව පණිවඩ 1 ක්" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "යෙදුම් තෝරන්න" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "වසන්න" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "සකසමින්..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "අයිතම %dක් දිස් වේ" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "අවල. කර." + +msgid "IDS_ST_BODY_WEATHER" +msgstr "කාලගුණය" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "නිබන්ධය සම්පූර්ණයි." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "වලංගු නොවන ක්‍රියාවක්. නැවත උත්සාහ කරන්න." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "බිතුපත තෝරන්න" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "අගුලු හැරීමට තිරය ස්වයිප් කරන්න." + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "ගැළපීමක් නැත" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "විකල්ප මුරපදය" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "ඔබ සතුව මගහැරුණු ඇමතුම් %1$d ක් සහ නොකියවූ පණිවිඩ %2$d ක් ඇත." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "බිතුපත්" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "තිරය අගුළු හැරීමට තිරය තට්ටු කර අල්ලාගෙන සිට, අනතුරුව එය ඔබ දෙසට ඇල කරන්න. තිරය අගුළු නොහැරුණහොත් උපාංගය තව දුරටත් ඇල කර බලන්න. චලන අගුළුහරණය සකසා ඇති විට, සැකසුම් තුළ චලනය ස්වයංක්‍රීය සබල වනු ඇත." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "ඔබගේ ගියර් අනාවරණය කර ගැනීමට නොහැකි තරම් ඈතින් ඇත්නම් සරල මුරපද අගුල ස්වයංක්‍රියව සක්‍රිය කරනු ඇත. ඔබගේ ගියර් අනාවරණය කර ගත් විට, අගුලු ආකාරය ස්වයිප් අගුල වෙත වෙනස් වනු ඇත." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "යෙදුම තේරීම" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "නව පණිවුඩ %d" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d මග හැරුණු ඇමතුම්" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4-අංක PIN අංකය ඇතළු කරන්න." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "අගුළු තිර බිතුපත වෙනස් කෙරිණි." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "මුල් පිටු තිර බිතුපත වෙනස් කෙරිණි." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "ස්වයිප් කරන්න" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "ඇඟිලි සලකුණ" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "තිර සැකසුම් අගුළු දමන්න" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "අගුලු තිරය" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "තිරය අල්ලා තබා ගෙන සිට, ඉන් පසුව අගුළු ඇරීමට උපාංගය ඔබ දෙසට ඇල කරන්න. ති‍රයේ අගුළු නොහැරේ නම්, උපාංගය තවත් ඇල කරමින් උත්සාහ කරන්න" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "සරල රහස්වචනය" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "තිර අගුළු වර්‍ගය" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "රෝමිං" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "මුරපදය" + +msgid "IDS_ST_BODY_NONE" +msgstr "නොමැත" + +msgid "IDS_ST_BODY_MOTION" +msgstr "චලන" + +msgid "IDS_ST_BODY_EDIT" +msgstr "සංස්කරණය කරන්න" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "වර්ණ ගැන්වූ කොටු ඉහල පෙදෙසේ සිට පහල පෙදෙසට ඇදගෙන විත් අතහරින්න නැත‍හොත් වර්ණ වල සමානාත්මතාවය මත ඉහල පෙදෙසේ ඇති වර්ණ ගැන්වූ කොටු මත තට්ටු කරන්න. නැවත පිළිවෙළ වෙනස් කිරීම සඳහා ඔබට පහල පෙදෙසේ ඇති කොටු ද ඇදගෙන විත් අතහැරිය හැක." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "ස්වයං-අගුල" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "අගුලු හැරීමේ PIN අංකය ඇතුලත් කරන්න." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "වැරදි PIN අංකයකි" + +msgid "IDS_COM_BODY_EDIT" +msgstr "සංස්කරණය කරන්න" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "මෙම වෙබ් පිටුව ලද නොහැක." + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "%s හි ඇති සේවාදායකය DNS සෙවීම අසාර්ථක බැවින් සොයාගත නොහැක. DNS යනු වෙබ් අඩවියක නම එහි අන්තර්ජාල ලිපිනය වෙත පරිවර්තනය කරන ජාල සේවාවයි. අන්තර්ජාලය වෙත සබැඳුමක් නැති වීමෙන් හෝ වැරදියට වින්‍යාස කළ ජාලයක් නිසා මෙම දෝෂය බොහෝ විට හට ගනී. එය ප්‍රතිචාර නොදක්වන DNS සේවාදායකයක් හෝ ජාලයට ප්‍රවේශ වීම වළක්වන සුරැකුම් පවුරක් මගින්ද හට ගත හැක." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 උත්සාහයක් ඉතිරිව ඇත." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "උත්සාහයන් %d ක් ඉතිරිවී ඇත." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM කාඩ්පතක් නොමැත" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "මඟහැරුණු ඇමතුම" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "මඟහැරුණු ඇමතුම්" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "හදිසි ඇමතුම්" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "හදිසිය ඇමතුමක් පමණි." + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "චාර්ජ් වෙමින්: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "මුරපදය ඇතුල් කරන්න." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "සම්පූර්ණයෙන් ආරෝපණය වූ." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d සිට %2$d දක්වා අංක හෝ අක්ෂර ගණනක් අවශ්‍ය වේ." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "වැරදි මුරපදය." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen account හරහා අගුලු හ." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "නැවත තත්පර %d කින් උත්සාහ කරන්න." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "තත්පර 1 කින් නැවත උත්සාහ කරන්න." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "ඇමතුම් වාර්තාව බැලීමට තිරය ස්වයිප් කරන්න." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "පණිවුඩ විවෘත කිරීමට තිරය ස්වයිප් කරන්න." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "අවල. කර." + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "හදිසිය ඇමතුමක් පමණි." + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "සේවාවක් නොමැත" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "හරි" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "නිවස" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen ගිණුම\nහරහා අගුලු හරින්න" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "කැමරාවේ කෙටිමඟ" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "ද්විත්ව ඔරලෝසුව" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "මගහැරුණු ඇමතුම 1 ක්" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "ඉවතලන්න" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "සුරකින්න" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "හදිසි ඇමතුම් පමණි" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "සොයමින්" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN අංකය ඇතුල් කරන්න." + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "වැරදි PIN." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "ආපසු ඇමතුමට" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "වසන්න" + +msgid "IDS_COM_SK_BACK_A" +msgstr "ආපසු" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "අවලංගු කර." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "ඇමතුම් ලොගය බැලීමට තිරය ස්වයිප් කරන්න" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "ඇමතුම් ලොගය බැලීමට PIN ඇතුළත් කරන්න" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "ඇමතුම් ලොගය බැලීමට මුරපදය ඇතුළත් කරන්න" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "පණිවිඩය බැලීමට තිරය ස්වයිප් කරන්න" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "පණිවිඩය බැලීමට PIN ඇතුළත් කරන්න" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "පණිවිඩය බැලීමට මුරපදය ඇතුළත් කරන්න" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "ඔබ %1$d වතාවක් වැරදි ලෙස උපාංගය අගුලු හැරීමට උත්සාහ දරා ඇත. උපාංගය කම්හල් පෙරනිමිය වෙත යළි සැකසී සියලු දත්ත මැකීමට පෙර ඔබට උත්සාහයන් %2$dක් ඉතිරිව පවතී." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "ඔබ %d වතාවක් වැරදි ලෙස උපාංගය අගුළු හැරීමට යත්න දරා තිබේ. එය දැන් නිපැයුම් අදියරේ තිබූ පෙරනිමි තත්ත්වයට යළි සැකසෙනු ඇති අතර සියලු දත්ත මැකෙනු ඇත" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "වසන්න" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "තිරය අගුලු හැරිය නොහැක" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "ඔබ ඔබේ උපාංග අගුලු හැරීමට අසාර්ථක උත්සාහයන් %1$dක් ගෙන තිබේ. තත්පර %2$dකින් නැවත උත්සාහ කරන්න." + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "උපාංගය අගුලු හැරිණි." + diff --git a/po/sk.po b/po/sk.po deleted file mode 100755 index 40a490d..0000000 --- a/po/sk.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Zostáva 1 pokus" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "Počet zostávajúcich pokusov: %d" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Len tiesňové volania" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Odomknite potiahnutím prsta po obrazovke" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Ťuknite na obrazovku, podržte ju a nakloňte zariadenie dopredu" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Nesprávne heslo" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Zmeškaný hovor" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Zmeškané hovory" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Nová správa" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Nové správy" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Nový e-mail" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Nové e-maily" - diff --git a/po/sl.po b/po/sl.po deleted file mode 100755 index 0e2b868..0000000 --- a/po/sl.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Preostal je še 1 poskus" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d preostalih poizkusov" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Samo klici v sili" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Podrsajte po zaslonu, da ga odklenete" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Pritisnite in pridržite zaslon ter nagnite napravo naprej" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Napačno geslo" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Neodgovorjen klic" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Neodgovorjeni klici" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Novo sporočilo" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Nova sporočila" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Nova e-pošta" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Nove e-pošte" - diff --git a/po/sr.po b/po/sr.po deleted file mode 100755 index e099521..0000000 --- a/po/sr.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 pokušaj preostao" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d pokušaja ostalo" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Samo pozivi u hitnim slučajevima" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Prevuci prstom po ekranu radi otključavanja" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Kucni i zadrži ekran, a zatim nagni uređaj prema napred" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Pogrešna šifra" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Propušten poziv" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Propušteni pozivi" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Nova poruka" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Nove poruke" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Nova e-poruka" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Nove e-poruke" - diff --git a/po/sv.po b/po/sv.po deleted file mode 100755 index 92511a8..0000000 --- a/po/sv.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 försök kvar" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d försök kvar" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Endast nödsamtal" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Dra fingret över skärmen för att låsa upp" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Tryck och håll kvar på skärmen och vinkla enheten framåt" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Fel lösenord" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Missat samtal" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Missade samtal" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Nytt meddelande" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Nya meddelanden" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Ny e-post" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Ny e-post" - diff --git a/po/ta.po b/po/ta.po new file mode 100755 index 0000000..3a1c4b8 --- /dev/null +++ b/po/ta.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "புதிய தகவல்" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 புதிய தகவல்" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "பயன்பாடுகளைத் தேர்வு செய்யவும்" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "சாக்கோ குக்கி" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "கூல் ஜாஸ்" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "ரோஸ்மெரி" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "மூடவும்" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "செயலில்..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "%d உருப்படிகளைக் காண்பிக்கிறது" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "ரத்து" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "வானிலை" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "பயிற்சி முடிவுற்றது" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "தவறான செயல். மீண்டும் முயலுக." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "வால்பேப்பர் தேர்வுசெய்க" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "பூட்டுநீக்க திரையை ஸ்வைப் செய்க." + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "பொருத்தமில்லை" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "மாற்று கடவுச்சொல்" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "%1$d தவறிய அழைப்புகள் மற்றும் %2$d வாசிக்கப்படாத தகவல்களை கொண்டுள்ளீர்கள்." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "வால்பேப்பர்கள்" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "சாதனத்தைப் பூட்டுநீக்க திரையை டேப் செய்து பிடித்து பின்னர் உங்களை நோக்கி சாதனத்தை சாய்க்கவும். திரை பூட்டுநீக்கப்படவில்லை என்றால் சாதனத்தை மேலும் சாய்க்க முயல்க. நகர்வு பூட்டுநீக்கம் அமைக்கப்படும் போது, நகர்வானது அமைவுகளில் தானாகவே செயல்படுத்தப்படும்." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "உங்கள் கியர் கண்டறியப்படுவதற்கு மிகவும் தூரத்தில் இருந்தால் எளிய கடவுச்சொல் பூட்டு தானாகவே செயல்படுத்தப்படும். உங்கள் கியர் கண்டறியப்படும் போது உங்கள் திரைப் பூட்டு வகையானது ஸ்வைப் பூட்டுக்கு மாற்றப்படும்." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "பயன்பாடு தேர்வுசெய்க" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d புதிய தகவல்கள்" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d தவறிய அழைப்புகள்" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4-இலக்க PIN உள்ளிடுக." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "பூட்டுத்திரை வால்பேப்பர் மாற்றப்பட்டது." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "முகப்புத் திரை வால்பேப்பர் மாற்றப்பட்டது." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "ஸ்வைப்" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "கைரேகை" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "பூட்டுத் திரை அமைவுகள்" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "பூட்டுத் திரை" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "திரையை டேப் செய்து பிடித்து பின்னர் சாதனத்தை பூட்டுநீக்க அதை உங்களை நோக்கி சாய்க்கவும். திரை பூட்டுநீக்கவில்லையெனில், சாதனத்தை மேலும் சாய்த்து முயலுக" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "எளிய கடவுச்சொல்" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "திரைப்பூட்டு வகை" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "ரோமிங்" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "கடவுச்சொல்" + +msgid "IDS_ST_BODY_NONE" +msgstr "ஒன்றுமில்லை" + +msgid "IDS_ST_BODY_MOTION" +msgstr "இயக்கம்" + +msgid "IDS_ST_BODY_EDIT" +msgstr "திருத்துக" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "வண்ணச் சதுரங்களை மேல் பகுதியில் இருந்து கீழ்ப்பகுதிக்கு டிராக் அண்ட் டிராப் செய்யவும் அல்லது மேல்பகுதியில் உள்ள வண்ணச்சதுரங்களை ஒப்பிடப்படும் நிறத்திற்கான ஒற்றுமையின் வரிசையின் படி டேப் செய்யவும். சதுரங்களை மறுவரிசைப்படுத்த அவற்றை நீங்கள் கீழ்ப்பகுதியில் டிராக் அண்ட் டிராப் செய்யலாம்." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "தானியக்க- பூட்டு" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "பூட்டுநீக்க PIN உள்ளிடவும்." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "தவறான PIN" + +msgid "IDS_COM_BODY_EDIT" +msgstr "திருத்துக" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "இந்த வலைப்பக்கம் கிடைக்கவில்லை." + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "DNS கண்டறிதல் செயல் தோல்வியடைந்ததால், %s இல் உள்ள வழங்கியை கண்டறிய முடியவில்லை. DNS என்பது ஒரு வலைத்தளத்தின் பெயரை இணைய முகவரியாக மாற்றும் ஒரு நெட்வொர்க் சேவையாகும். பெரும்பாலும் இந்தப் பிழை இணைய இணைப்பு இல்லாததால் அல்லது நெட்வொர்க் உள்ளமைவு தவறாக இருப்பதால் ஏற்படும். DNS வழங்கி பதிலளிக்காமல் போவதால் அல்லது இணையம் நெட்வொர்க்கை அணுக முடியாதபடி ஒரு ஃபயர்வால் தடுப்பதால் கூட இந்தப் பிழை ஏற்படலாம்." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 முயற்சி மீதம்." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "மேலும் %d முயற்சிகள் உள்ளன." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM இல்லை" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "தவறிய அழைப்பு" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "தவறிய அழைப்புகள்" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "அவசர அழைப்பு" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "அவசர அழைப்புகள் மட்டும்." + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "சார்ஜிங்: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "கடவுச்சொல் பதிக." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "முழுதும் சார்ஜ் செய்யப்பட்டது." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d முதல் %2$d வரையான இலக்கங்கள் அல்லது எழுத்துக்கள் தேவை." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "கடவுச்சொல் தவறு." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen account வழியாகத் திறக்கவும்" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d விநாடி. கழித்து மீ. முயலுக." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1 விநாடியில் மீண்டும் முயற்சிக்கவும்." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "அழைப்புக் குறிப்பை காண்பதற்கு திரையை ஸ்வைப் செய்க." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "தகவல்களைத் திறக்க திரையை ஸ்வைப் செய்க." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "ரத்து" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "அவசர அழைப்புகள் மட்டும்." + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "சேவை இல்லை" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "சரி" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "முகப்பு" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen கணக்கு\nவழி பூ. நீக்குக" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "கேமரா குறுக்குவழி" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "இரட்டை கடிகாரம்" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 தவறிய அழைப்பு" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "தவிர்." + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "சேமி" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "அவசர அழைப்புகள் மட்டும்" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "தேடுகிறது" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN பதி." + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "தவறான PIN." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "அழைப்புக்கு திரும்பவும்" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "மூடுக" + +msgid "IDS_COM_SK_BACK_A" +msgstr "பின்" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ரத்துசெய்க" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "அழைப்புப் பதிவைக் காண, திரையை ஸ்வைப் செய்யவும்" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "அழைப்புப் பதிவைக் காண, PIN உள்ளிடவும்" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "அழைப்புப் பதிவைக் காண, கடவுச்சொல்லை உள்ளிடவும்" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "தகவலைக் காண, திரையை ஸ்வைப் செய்யவும்" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "தகவலைக் காண, PIN உள்ளிடவும்" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "தகவலைக் காண, கடவுச்சொல்லை உள்ளிடவும்" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "நீங்கள் சாதனத்தை பூட்டுநீக்குவதற்கு %1$d முறை தவறாக முயற்சித்துள்ளீர்கள். சாதனம் தயாரிப்பக டீஃபாலட் நிலைகளுக்கு ரீசெட் செய்யப்பட்டு அனைத்து தரவுகளும் அழிக்கப்படுவதற்கு முன் உங்களுக்கு %2$d முயற்சிகள் மீதமுள்ளன." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "சாதனத்தை பூட்டுநீக்க %d முறை தவறாக முயற்சித்துள்ளீர்கள். இது இப்போது தயாரிப்பு நிலைக்கு ரீசெட் செய்யப்பட்டு அனைத்து தரவுகளும் அழிக்கப்படும்" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "மூடுக" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "திரையைத் திறக்க முடியவில்லை" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "உங்கள் சாதனத்தைத் திறப்பதற்கு, %1$d வெற்றிபெறாத முயற்சிகளை நீங்கள் செய்துள்ளீர்கள். %2$d வினாடிகளில் மீண்டும் முயற்சிக்கவும்." + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "சாதனம் பூட்டுநீக்கப்பட்டது." + diff --git a/po/te.po b/po/te.po new file mode 100755 index 0000000..2d3b481 --- /dev/null +++ b/po/te.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "కొత్త సందేశం" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 కొత్త సందేశం" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "అప్లికేషన్‌లను ఎంచుకోండి" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "చోకో కుకీ" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "కూల్ జాజ్" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "రోజ్మేరీ" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "మూసివేయి" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "ప్రాసెస్ చేస్తోంది..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "%d ఐటెమ్‌లను చూపుతోంది" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "రద్దు" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "వాతావరణం" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "ట్యుటోరియల్ పూర్తియింది." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "చెల్లని చర్య. మళ్లీ ప్రయత్నించండి." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "వాల్ పేపర్ ను ఎన్నుకోండి" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "అన్‌లాక్ కు స్క్రీన్‌ను స్వైప్ చేయండి." + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "సరిపోలిక లేదు" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "ప్రత్యామ్నాయ పాస్‌వర్డ్" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "మీకు %1$d మిస్సైన కాల్‌లు మరియు %2$d చదవని సందేశాలు ఉన్నాయి." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "వాల్‌పేపర్‌లు" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "అన్‌లాక్ చేయడానికి స్క్రీన్‌ను నొక్కి ఉంచి, ఆపై పరికరాన్ని మీవైపుగా వంచండి. స్క్రీన్ అన్‌లాక్ కాకుంటే, మరింతగా పరికరాన్ని వంచి ప్రయత్నించండి. చలన అన్‌లాక్ సెట్ చేసినప్పుడు, చలనం స్వయంచాలకంగా సెట్టింగ్‌ల్లో ప్రారంభించబడుతుంది." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "మీ గేర్ గుర్తించబడటానికి చాలా దూరంలో ఉంటే, సరళ పాస్‌వర్డ్ లాక్ స్వయంచాలకంగా ప్రారంభించబడుతుంది. మీ గేర్ గుర్తించబడినప్పుడు, మీ స్క్రీన్ లాక్ రకం స్వైప్ లాక్‌కు మార్చబడుతుంది." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "అప్లికేషన్‌ను ఎన్నుకోండి" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d కొత్త సందేశాలు" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d మిస్సైన కాల్‌లు" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4-అంకెల PINని నమోదు చేయండి." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "లాక్ స్క్రీన్ వాల్‌పేపర్ మారింది." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "హోమ్ స్క్రీన్ వాల్‌పేపర్ మారింది." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "స్వైప్" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "వేలిముద్ర" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "లాక్ స్క్రీన్ సెట్టింగ్‌లు" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "లాక్ స్క్రీన్" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "దీనిని అన్‌లాక్ చేయడానికి స్క్రీన్‌ను నొక్కి ఉంచి, ఆపై పరికరాన్ని మీవైపుగా వంచండి. స్క్రీన్ అన్‌లాక్ కాకపోతే, మరింతగా పరికరాన్ని వంచి ప్రయత్నించండి" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "సులువైన పాస్‌వర్డ్" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "స్క్రీన్ లాక్ రకం" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "రోమింగ్" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "పాస్వర్డ్" + +msgid "IDS_ST_BODY_NONE" +msgstr "ఏదీకాదు" + +msgid "IDS_ST_BODY_MOTION" +msgstr "మోషన్" + +msgid "IDS_ST_BODY_EDIT" +msgstr "సవరించు" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "ఎగువ ప్రాంతం నుండి దిగువ ప్రాంతానికి రంగుల చతురస్రాలను డ్రాగ్ చేసి, డ్రాప్ చేయండి లేదా ఎగువ ప్రాంతంలో సరిపోల్చబడుతున్న రంగుకు సారూప్యమైన వాటిని ట్యాప్ చేయండి. మీరు చతురస్రాలను మళ్లీ క్రమం చేయడానికి దిగువ ప్రాంతంలో ఉన్న వాటిని డ్రాగ్ చేసి, డ్రాప్ చేయండి." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "ఆటో లాక్" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "అన్‌లాక్ PIN ను నమోదు చేయండి." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "చెల్లని PIN" + +msgid "IDS_COM_BODY_EDIT" +msgstr "సవరించు" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "ఈ వెబ్‌పేజీ అందుబాటులో లేదు." + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "%sలో సర్వర్ కనుగొనబడలేదు, ఎందుకంటే DNS లుక్-అప్ విఫలమైంది. DNS అనేది వెబ్‌సైట్ పేరుని దాని ఇంటర్నెట్ చిరునామాకి అనువదించే నెట్‌వర్క్ సర్వీస్. ఈ దోషం ఇంటర్నెట్ లేనందున లేదా తప్పైన కాన్ఫిగరేషన్ నెట్‌వర్క్‌ని కలిగి ఉన్నందున సంభవిస్తుంది. ఇది ప్రతిస్పందించని DNS సర్వర్ ద్వారా లేదా నెట్‌వర్క్‌ని యాక్సెస్ చేయడం నుండి నిరోధించే ఇంటర్నెట్ ఫర్మ్‌వేర్ ద్వారా కూడా సంభవించవచ్చు." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 ప్రయత్నం మిగిలి ఉంది." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d ప్రయత్నాలు మిగిలాయి." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM లేదు" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "మిస్సైన కాల్" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "మిస్సైన కాల్‌లు" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "అత్యవసర కాల్" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "అత్యవసర కాల్‌లు మాత్రమే." + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "ఛార్జ్ అవుతోంది: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "పాస్వర్డును నమోదు చేయండి." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "పూర్తిగా ఛార్జ్ అయ్యింది." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d నుండి %2$d అంకెలు లేదా అక్షరాలు అవసరం." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "తప్పు పాస్వర్డ్." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen ఖాతా ద్వారా అన్‌లాక్ చేయి" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d సెకన్లలో మళ్ళీ ప్రయత్నించండి." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1 సెకనులో మళ్లీ ప్రయత్నించండి." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "కాల్ లాగ్‌ని వీక్షించడానికి స్క్రీన్‌ని స్వైప్ చేయండి." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "సందేశాలను తెరవడానికి స్క్రీన్‌ని స్వైప్ చేయండి." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "రద్దు" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "అత్యవసర కాల్‌లు మాత్రమే." + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "సర్వీస్ లేదు" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "సరే" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "హోమ్" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen ఖాతా\nద్వారా అన్‌లాక్ చేయండి" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "కెమెరా సత్వరమార్గం" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "డ్యూయల్ గడియారం" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 మిస్ అయిన కాల్" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "విస్మరించు" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "సేవ్ చేయి" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "అత్యవసర కాల్‌లు మాత్రమే" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "శోధిస్తోంది" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN నమోదు చేయండి." + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "తప్పు PIN." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "కాల్ చేయడానికి తిరిగి వెళ్లండి" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "మూసివేయి" + +msgid "IDS_COM_SK_BACK_A" +msgstr "వెనుకకు" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "రద్దు చేయి" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "కాల్ లాగ్‌ను వీక్షించడానికి స్క్రీన్‌ను స్వైప్ చేయండి" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "కాల్ లాగ్‌ను వీక్షించడానికి PINను నమోదు చేయండి" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "కాల్ లాగ్‌ను వీక్షించడానికి పాస్‌వర్డ్‌ను నమోదు చేయండి" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "సందేశాన్ని వీక్షించడానికి స్క్రీన్‌ను స్వైప్ చేయండి" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "సందేశాన్ని వీక్షించడానికి PINను నమోదు చేయండి" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "సందేశాన్ని వీక్షించడానికి పాస్‌వర్డ్‌ను నమోదు చేయండి" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "మీరు పరికరాన్ని తప్పుగా %1$dసార్లు అన్‌లాక్ చేసేందుకు ప్రయత్నించారు. పరికరం ఫ్యాక్టరీ డిఫాల్ట్‌లకు తిరిగి అమర్చబడేందుకు మరియు మొత్తం డేటా తుడిచిపెట్టబడేందుకు మీకు %2$d ప్రయత్నాలు మిగిలివున్నాయి." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "మీరు పరికరాన్ని %d సార్లు తప్పుగా అన్‌లాక్ చేయడానికి ప్రయత్నించారు. ఇది ఫ్యాక్టరీ డిఫాల్ట్‌లకు రీసెట్ చేయబడుతుంది మరియు మొత్తం డేటా తుడిచివేయబడుతుంది" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "మూసివేయి" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "స్క్రీన్ అన్‌లాక్ చేయలేరు" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "మీరు మీ పరికరాన్ని అన్‌లాక్ చేయడానికి %1$d విఫల ప్రయత్నాలు చేశారు. %2$d సెకన్లల్లో మళ్లీ ప్రయత్నించండి." + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "పరికరం అన్‌లాక్ చేయబడింది." + diff --git a/po/th.po b/po/th.po new file mode 100755 index 0000000..8df9784 --- /dev/null +++ b/po/th.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "ข้อ​ความ​ใหม่" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 ​ข้อ​ความ​ใหม่" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "เลือกแอพพลิเคชั่น" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco ​cooky" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "ปิด" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "ดำเนิน​การ..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "กำลังแสดง %d รายการ" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "ยกเลิก" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "สภาพ​อากาศ" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "การฝึกใช้งานเสร็จสิ้น" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "การทำงานไม่ถูกต้อง ลองใหม่" + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "เลือก​วอ​ลเป​เปอร์" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "ปัดหน้าจอเพื่อปลดล็อก" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "ไม่ตรงกัน" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "รหัสผ่านที่ใช้แทน" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "คุณ​มี %1$d ​เบอร์​ที่​ไม่​ได้​รับ​สาย​และ %2$d ​ข้อ​ความ​ที่​ยัง​ไม่​ได้​อ่าน" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "วอลเปเปอร์" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "สัมผัสหน้าจอค้างไว้ แล้วเอียงเครื่องเข้าหาตัวเพื่อปลดล็อค ถ้าหน้าจอไม่ปลดล็อค ให้ลองเอียงอุปกรณ์อีก เมื่อตั้งค่าการเคลื่อนไหวเพื่อปลดล็อคแล้ว การเคลื่อนไหวจะถูกเปิดใช้งานในโดยอัตโนมัติใน การตั้งค่า" + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "การล็อครหัสผ่านแบบง่ายจะถูกเปิดใช้งานโดยอัตโนมัติ ถ้า Gear ของคุณอยู่ห่างเกินไปจนตรวจไม่พบ เมื่อตรวจพบ Gear ของคุณ ชนิดการล็อคหน้าจอของคุณจะเปลี่ยนเป็นการล็อคการปัด" + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "เลือก​แอ็พ​พลิ​เค​ชัน" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d ข้อความใหม่" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d สายที่ไม่ได้รับ" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "ป้อน PIN 4 หลัก" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "เปลี่ยนวอลเปเปอร์หน้าจอล็อคแล้ว" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "เปลี่ยนวอลเปเปอร์หน้าจอหลักแล้ว" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "ปัด" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "ลายนิ้วมือ" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "การตั้งค่าล็อคหน้าจอ" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "ล็อกหน้าจอ" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "แตะค้างที่หน้าจอแล้วเอียงเครื่องเข้าหาตัวเพื่อปลดล็อค ถ้าหน้าจอไม่ปลดล็อค ลองเอียงเครื่องให้มากขึ้น" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "รหัส​ผ่าน​แบบ​ง่าย" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "ชนิดการล็อคหน้าจอ" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "โรม​มิ่ง" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "รหัสผ่าน" + +msgid "IDS_ST_BODY_NONE" +msgstr "ไม่​มี" + +msgid "IDS_ST_BODY_MOTION" +msgstr "การเคลื่อนไหว" + +msgid "IDS_ST_BODY_EDIT" +msgstr "แก้ไข" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "ลากและวางสี่เหลี่ยมสีจากพื้นที่ด้านบน ไปยังพื้นที่ด้านล่าง หรือสัมผัสสี่เหลี่ยมสีในพื้นที่ด้านบนตามลำดับความคล้ายคลึงกับสีที่กำลังเปรียบเทียบ คุณสามารถลากและวางสี่เหลี่ยมในพื้นที่ด้านล่างเพื่อเรียงลำดับใหม่ได้" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "ล็อก​อัตโนมัติ" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "ป้อน PIN ​สำหรับ​ปลด​ล็อก" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN ผิด" + +msgid "IDS_COM_BODY_EDIT" +msgstr "แก้ไข" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "เว็บเพจนี้ไม่พร้อมใช้งาน" + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "ไม่พบเซิร์ฟเวอร์ที่ %s เนื่องจากการค้นหา DNS ล้มเหลว DNS เป็นบริการเครือข่ายที่แปลชื่อของเว็บไซต์ เป็นที่อยู่อินเทอร์เน็ต ข้อผิดพลาดนี้มักเกิดขึ้น เนื่องจากไม่มีการเชื่อมต่อกับอินเทอร์เน็ต หรือการกำหนดค่าเครือข่ายที่ไม่ถูกต้อง และยังสามารถเกิดขึ้นเนื่องจากเซิร์ฟเวอร์ DNS ไม่ตอบสนอง หรือไฟร์วอลล์ป้องกันไม่ให้อินเทอร์เน็ตเข้าถึงเครือข่ายได้" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "เหลือ​อีก 1 ​ครั้ง" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "เหลือ %d ​ครั้ง" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "ไม่มี SIM" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "เบอร์​ที่​ไม่​ได้​รับ​สาย" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "เบอร์ที่ไม่ได้รับสาย" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "โทร​ฉุก​เฉิน" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "โทร​ฉุก​เฉิน​เท่า​นั้น" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "การ​ชาร์จ: ​%d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "ใส่รหัสผ่าน" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "ชาร์จ​เต็ม​แล้ว" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "ต้องมี %1$d ถึง %2$d ตัวเลขหรือตัวอักษร" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "รหัสผ่าน\nไม่ถูกต้อง" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "ปลดล็อคผ่านบัญชีผู้ใช้ Tizen" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "ลอง​อีก​ครั้ง​ใน %d ​วินาที" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "ลองอีกครั้งใน 1 วินาที" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "ปัดหน้าจอเพื่อดูบันทึกการโทร" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "ปัดหน้าจอเพื่อเปิดข้อความ" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "ยกเลิก" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "โทร​ฉุก​เฉิน​เท่า​นั้น" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "ไม่​มี​บริการ" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "ตกลง" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "บ้าน" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "ปลดล็อคผ่าน\nบัญชีผู้ใช้ Tizen" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "ทางลัดกล้องถ่ายรูป" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "นาฬิกา​คู่" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 เบอร์ที่ไม่ได้รับ" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "ละทิ้ง" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "บันทึก" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "โทรฉุกเฉินเท่านั้น" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "การ​ค้น​หา" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "ใส่ PIN" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN ​ผิด" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "กลับไปยังสายสนทนา" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "ปิด" + +msgid "IDS_COM_SK_BACK_A" +msgstr "กลับ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ยกเลิก" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "ปัดหน้าจอเพื่อดูบันทึกการโทร" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "ใส่ PIN เพื่อดูบันทึกการโทร" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "ใส่รหัสผ่านเพื่อดูบันทึกการโทร" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "ปัดหน้าจอเพื่อดูข้อความ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "ใส่ PIN เพื่อดูข้อความ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "ใส่รหัสผ่านเพื่อดูข้อความ" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "คุณได้พยายามปลดล็อค อุปกรณ์ผิดพลาด %1$d ครั้งแล้ว คุณเหลืออีก %2$d ครั้ง ก่อนอุปกรณ์จะรีเซ็ท เป็นค่าพื้นฐานจากโรงงาน และข้อมูลทุกอย่างจะถูกลบ" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "คุณได้พยายามปลดล็อคอุปกรณ์ผิดพลาด %d ครั้งแล้ว อุปกรณ์จะถูกรีเซ็ทเป็นค่าพื้นฐานจากโรงงาน และข้อมูลทั้งหมดจะถูกลบ" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ปิด" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "ไม่สามารถปลดล็อคหน้าจอ" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "คุณพยายามปลดล็อคอุปกรณ์ %1$d ครั้ง แต่ไม่สำเร็จ ลองอีกครั้งใน %2$d วินาที" + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "ปลดล็อคอุปกรณ์แล้ว" + diff --git a/po/tl.po b/po/tl.po new file mode 100755 index 0000000..923ca5f --- /dev/null +++ b/po/tl.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Bagong mensahe" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 bagong mensahe" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Pumili ng mga application" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Isara" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Pinoproseso..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "Ipinapakita ang %d (na) item" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Ikansela" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Lagay ng panahon" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Kumpleto na ang tutorial." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Hindi wastong aksyon. Subukang muli." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Pumili ng wallpaper" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "I-swipe ang screen upang i-unlock." + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Walang tumugma" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternative password" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Mayroon kang %1$d (na) hindi nasagot na tawag at %2$d (na) hindi pa nabasang mensahe." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Mga Wallpaper" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "I-tap nang matagal ang screen, pagkatapos ay itagilid ang device patungo sa iyo upang i-unlock ito. Kung hindi maa-unlock ang screen, subukang itagilid pa ang device. Kapag nakatakda ang paggalaw na pag-unlock, awtomatikong papaganahin ang paggalaw sa Mga Setting." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Awtomatikong papaganahin ang Simpleng password lock kung masyadong malayo ang iyong Gear para matunton. Kapag natunton ang iyong Gear, magiging Swipe lock ang uri ng iyong screen lock." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Pumili ng application" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d (na) bagong mensahe" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d (na) hindi nasagot na tawag" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Ipasok ang 4 na digit na PIN." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Binago ang wallpaper ng lock screen." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Binago ang wallpaper ng home screen." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "I-swipe" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Fingerprint" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Mga setting ng lock screen" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Lock screen" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "I-tap nang matagal ang screen, pagkatapos ay i-tilt ang device papunta sa iyo para i-unlock ito. Kung hindi nag-unlock ang screen, subukang i-tilt pa ang device." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Simpleng password" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Screen lock type" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Password" + +msgid "IDS_ST_BODY_NONE" +msgstr "Wala" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Paggalaw" + +msgid "IDS_ST_BODY_EDIT" +msgstr "I-edit" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "I-drag at i-drop ang may kulay na mga parisukat mula sa itaas na bahagi patungo sa ibabang bahagi o i-tap ang may kulay na mga parisukat sa itaas na bahagi ayon sa pagkakapareho sa kulay na inihahambing. Maaari mong i-drag at i-drop ang mga parisukat sa ibabang bahagi upang muling isaayos ang mga ito." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Auto lock" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Ilagay ang PIN sa Pag-unlock." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Maling PIN" + +msgid "IDS_COM_BODY_EDIT" +msgstr "I-edit" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "Hindi available ang webpage na ito." + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "Hindi makita ang server sa %s dahil nabigo ang DNS. Ang DNS ay ang serbisyo sa network na nagta-translate ng pangalan ng isang website sa Internet address nito. Ang error na ito ay pinakakaraniwang idinudulot ng hindi pagkakaroon ng koneksyon sa Internet o isang network na mali ang configuration. Maaari din itong idulot ng isang DNS server na hindi tumutugon o isang firewall na humahadlang sa Internet na ma-access ang network." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 pagsubok ang natitira." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d (na) pagsubok ang natitira." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Walang SIM" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Hindi nasagot na tawag" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Mga hindi nasagot na tawag" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Emergency call" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Mga emergency call lang." + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Nagcha-charge: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Ilagay ang password." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Fully charged." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Kinakailangan ng %1$d hanggang %2$d (na) digit o titik." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Mali ang password." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "I-unlock sa Tizen account" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Subukang muli sa %d segundo." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Subukang muli sa loob ng 1 segundo." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "I-swipe ang screen upang tingnan ang log ng tawag." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "I-swipe ang screen upang buksan ang Mga Mensahe." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Ikansela" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Mga emergency call lang." + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Walang serbisyo" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Home" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "I-unlock sa\nTizen account" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Shortcut sa camera" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Dual clock" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 hindi nasagot na tawag" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Itapon" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "I-save" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Mga emergency call lang" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Naghahanap" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Ilagay ang PIN." + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Mali ang PIN." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Bumalik sa tawag" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Isara" + +msgid "IDS_COM_SK_BACK_A" +msgstr "Bumalik" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "KANSELAHIN" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "I-swipe ang screen para tingnan ang log ng tawag" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Ipasok ang PIN para tingnan ang log ng tawag" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Ipasok ang password para tingnan ang log ng tawag" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "I-swipe ang screen para tingnan ang mensahe" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Ipasok ang PIN para tingnan ang mensahe" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Ipasok ang password para tingnan ang mensahe" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Tinangka mong i-unlock ang device nang mali nang %1$d (na) beses. Mayroon kang %2$d (na) pagsubok na nalalabi bago mag-reset ang device sa factory default at mabura ang lahat ng data." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Sinubukan mong i-unlock nang mali ang device nang %d (na) beses. Mare-reset na ito ngayon sa mga default ng factory at mabubura ang lahat ng data." + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ISARA" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "Hindi ma-unlock ang screen" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "Gumawa ka ng %1$d (na) hindi matagumpay na pagsubok na i-unlock ang iyong device. Subukang muli sa loob ng %2$d (na) segundo." + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "Na-unlock ang device." + diff --git a/po/tr_TR.po b/po/tr_TR.po deleted file mode 100755 index 6e4521e..0000000 --- a/po/tr_TR.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 deneme hakkı kaldı" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d deneme kaldı" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Yalnızca acil aramalar" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Açmak için ekranı kaydırın" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Ekrana dokunun ve basılı tutun ve cihazı öne eğin" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Yanlış şifre" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Cevapsız arama" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Cevapsız arama" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Yeni mesaj" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Yeni mesaj" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "yeni E-posta" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Yeni e-posta" - diff --git a/po/uk.po b/po/uk.po deleted file mode 100755 index 66a0e1e..0000000 --- a/po/uk.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "Залишилась 1 спроба" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d спроб залишилось" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Лише екстрені виклики" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Проведіть по екрану, щоб розблокувати" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Натисніть і утримуйте екран, а потім нахиліть пристрій вперед" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Хибний пароль" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Пропущений виклик" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "Пропущені" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Нове повідомлення" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Нових повідомлень" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Новий Email" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Нові повідомлення Email" - diff --git a/po/ur.po b/po/ur.po new file mode 100755 index 0000000..b56251c --- /dev/null +++ b/po/ur.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "نیا پیغام" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 نیا پیغام" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "اپلیکیشنز منتخب کریں" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "چوکو کوکی" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "کول جیز" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "روز میری" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "بند کرنا" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "پروسیسنگ" + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "‎%d اشیاء دکھا رہا ہے" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "منسوخ" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "موسم" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "ٹیوٹوریل مکمل۔" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "غیر مجاز عمل۔ دوبارہ کوشش کریں۔" + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "وال پیپر منتخب کریں" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "ان لاک کرنے کے لئے اسکرین پر تیزی سے رگڑیں" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "کوئی مماثل نہيں ہے" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "متبادل پاسورڈ" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "آپ کے پاس %1$d مسڈ کالز اور %2$d بنا پڑھے پیغامات ہیں" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "والپیپر" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "اسکرین پر ٹیپ کریں اور تھام کر رکھیں، پھر اسے ان لاک کرنے کیلئے آلہ کو اپنی طرف جھکائیں۔ اگر اسکرین ان لاک نہیں ہوتی ہے تو، آلہ کو زیادہ ٹائل کر کے کوشش کریں۔ حرکت ان لاک سیٹ ہونے پر، سیٹنگز میں حرکت خودکار طور پر فعال ہو جائے گی۔" + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "اگر آپ کا گئیر دریافت کیے جانے کی حد سے بہت دور ہوگا تو آسان سا پاسورڈ لاک خود بخود فعال ہوجائے گا۔ جب آپ کے گیئر کو دریافت کرلیا جاتا ہے تو، آپ کے اسکرین کی قسم سوائپ لاک میں تبدیل ہوجائے گا۔" + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "ایپلیکیشن منتخب کریں" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d نئے پیغامات" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d مسڈ کاليں" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4-ہندسی پن داخل کریں" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "لاک اسکرین وال پیپر تبدیل ہوگیا۔" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "ہوم اسکرین وال پیپر تبدیل ہوگیا۔" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "ہلکی سی ضرب لگائیں" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "انگلی کا نشان" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "لاک اسکرین سیٹنگز" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "اسکرین مقفل" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "اسکرین تھپتھپائیں اور تھام کر رکھیں، پھر اس کو ان لاک کرنے کے لئے آلہ کو اپنی طرف جھکائیں۔ اگر اسکرین ان لاک نہ ہو، آلہ کو مزید جھکانے کی کوشش کریں۔" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "سادہ پاس ورڈ" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "اسکرین لاک قسم" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "گشت" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "پاس ورڈ" + +msgid "IDS_ST_BODY_NONE" +msgstr "نہیں" + +msgid "IDS_ST_BODY_MOTION" +msgstr "حرکت" + +msgid "IDS_ST_BODY_EDIT" +msgstr "تبدیلی" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "اوپر کے علاقہ سے نچلے علاقہ کی طرف رنگیں مربع شکلوں کو گھسیٹیں اور چھوڑیں یا اوپر کے علاقہ میں اس رنگ کی مشابہت کے اعتبار سے جس کا موازنہ کیا جارہا ہو رنگین مربع شکلوں پر تھپتھپائیں۔ آپ نچلے علاقہ میں ان کو دوبارہ-ترتیب دینے کے لئے مربع شکلوں کو گھسیٹ اور چھوڑ سکتے ہیں۔" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "خودکار قفل" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "ان لاک پن داخل کریں" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "غلط PIN" + +msgid "IDS_COM_BODY_EDIT" +msgstr "تبدیلی" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "یہ ویب صفحہ دستیاب نہیں ہے" + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "%s پر واقع سرور نہیں مل سکا چونکہ DNS لک-اپ ناکام ہوگیا۔ DNS وہ نیٹ ورک خدمت ہے جو ایک ویب سائٹ کے نام کا اس کے انٹرنیٹ پتہ سے ترجمہ کرتی ہے۔ یہ غلطی اکثر انٹرنیٹ سے کوئی کنکشن نہ ہونے کی وجہ سے واقع ہوتی ہے یا ایک غلط تشکیل کردہ نیٹ ورک سے۔ یہ ایک غیر جوابدہ DNS سرور کی وجہ سے بھی واقع ہوسکتی ہے یا ایک فصیل سے جو انٹرنیٹ کو نیٹ ورک پر رسائی سے روک رہی ہو۔" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 کوشش باقی رہگئی۔" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d کوششیں باقی۔" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM نہیں" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "کال وصول نہیں ہوئی" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "مسڈ کالیں" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "ایمرجنسی کال" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "صرف ہنگامی کالیں۔" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "چارج کر رہا ہے: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "پاس ورڈ درج کریں" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "مکمل چارجنگ۔" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d سے %2$d ہندسے یا حروف درکار۔" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "غلط پاسورڈ۔" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen اکاؤنٹ کے ذریعے ان لاک کریں" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d سیکنڈ میں دوبارہ کوشش کریں" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1 سیکنڈ میں دوبارہ کوشش کریں" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "کال لاگ دیکھنے کے لیے اسکرین کو سوائپ کریں۔" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "پیغامات کھولنے کے لیے اسکرین کو سوائپ کریں۔" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "منسوخ" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "صرف ہنگامی کالیں۔" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "سروس نہیں" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "ٹھیک ہے" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "ہوم" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen اکاؤنٹ کے\nذریعے انلاک کریں" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "کیمرہ کا شارٹ کٹ" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "دوھری گھڑی" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 مسڈ کال" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "مسترد کریں" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "محفوظ کریں" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "صرف ایمرجنسی کالیں" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "تلاش کررہا ہے" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "پن نمبر درج کریں" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "غلط پن کوڈ۔" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "واپس کال پر" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "بند کریں" + +msgid "IDS_COM_SK_BACK_A" +msgstr "واپس" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "منسوخ کریں" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "کال لاگ دیکھنے کے لیے اسکرین پر ہلکی سی ضرب لگائیں" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "کال لاگ دیکھنے کے لیے پن داخل کریں" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "کال لاگ دیکھنے کے لیے پاس ورڈ داخل کریں" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "پیغام دیکھنے کے لیے اسکرین پر ہلکی سی ضرب لگائیں" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "پیغام دیکھنے کے لیے پن داخل کریں" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "پیغام دیکھنے کے لیے پاس ورڈ داخل کریں" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "آپ نے آلے کو %1$d بار غلط طریقے سے کھولنےکی کوشش کی۔ آلے کے فیکٹری ڈیفالٹ پر دوبارہ ترتیب دینے اور سبھی ڈیٹا کو مٹادیے جانے سے قبل آپ کے پاس صرف %2$dکوششیں بچی ہیں۔" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "آپ نے اس آلہ کو %d مرتبہ غلط طریقے سے ان لاک کرنے کی کوشش کی ہے۔ آلہ کو اب فیکٹری طے شدہ پر پھر سیٹ کردیا جائے گا اور تمام ڈیٹا مٹا دیا جائے گا۔" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "بند کرو" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "اسکرین کو غیر مقفل کرنے سے قاصر" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "اپنا آلہ غیر مقفل کرنے کی آپ نے %1$d ناکام کوششیں کی ہیں۔ %2$d سیکنڈز میں دوبارہ کوشش کریں۔" + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "آلہ ان لاک ہو گیا۔" + diff --git a/po/uz.po b/po/uz.po deleted file mode 100755 index 9e644a5..0000000 --- a/po/uz.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "1 attempt left" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "%d urinish qoldi" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "Faqat favqulodda qo‘ng‘iroqlar" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "Blokdan chiqarish uchun ekranni ustida barmog‘ingizni harakatlantiring" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "Ekranni bosib turgan holda qurilmani oldinga og‘diring" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "Noto‘g‘ri parol" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "Qabul qilinmagan qo‘ng‘iroq" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "O‘tkazib yuborilgan qo‘ng‘iroqlar" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "Yangi xabar" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "Yangi xabarlar" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "Yangi e-pochta" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "Yangi e-pochta xabarlari" - diff --git a/po/vi.po b/po/vi.po new file mode 100755 index 0000000..55713b2 --- /dev/null +++ b/po/vi.po @@ -0,0 +1,309 @@ +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Tin nhắn mới" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 tin nhắn mới" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Chọn ứng dụng" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Đóng" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Đang xử lý.." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "Hiển thị %d mục" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Thoát" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Thời tiết" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Hướng dẫn đã hoàn tất." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Thao tác không hợp lệ. Thử lại." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Chọn hình nền" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Vuốt màn hình để mở khóa" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Không khớp" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Mật mã thay thế" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Bạn có %1$d cuộc gọi nhỡ và %2$d tin nhắn chưa đọc." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Màn hình nền" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Chạm và giữ màn hình, sau đó nghiêng thiết bị về phía bạn để mở khóa. Nếu màn hình không mở khóa, hãy nghiêng thiết bị nhiều hơn nữa. Khi chế độ mở khóa bằng chuyển động được thiết lập, chuyển động sẽ tự động được bật trong Cài đặt." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Khóa bằng mật mã đơn giản sẽ tự động được bật nếu Gear của bạn ở quá xa không thể phát hiện được. Khi phát hiện ra Gear, kiểu khóa màn hình của bạn sẽ được đổi sang Khóa vuốt." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Chọn ứng dụng" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d tin nhắn mới" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d cuộc gọi nhỡ" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Nhập mã PIN 4 chữ số." + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Đã đổi ảnh nền màn hình khóa." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Đã đổi ảnh nền màn hình chờ." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Vuốt" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Vân tay" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Cài đặt màn hình khóa" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Màn hình khóa" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Chạm và giữ màn hình, sau đó nghiêng điện thoại về phía bạn để mở khóa. Nếu màn hình không mở khóa, hãy thử nghiêng thiết bị hơn nữa." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Mật mã đơn giản" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Kiểu khóa màn hình" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Chuyển vùng" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Mật mã" + +msgid "IDS_ST_BODY_NONE" +msgstr "Không dùng" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Chuyển động" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Sửa" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Hãy kéo và thả các ô màu từ vùng trên xuống vùng dưới hoặc chạm vào các ô màu trong vùng trên theo thứ tự tương tự như màu đang được so sánh. Bạn có thể kéo và thả các ô trong vùng dưới để sắp xếp lại." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Tự động khóa" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Nhập mã PIN mở khóa." + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Mã PIN không đúng" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Sửa" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "Trang web này không có sẵn." + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "Không thể tìm thấy server tại %s vì không thể tra cứu DNS. DNS là dịch vụ mạng có nhiệm vụ dịch tên trang web sang địa chỉ Internet của nó. Lỗi này thường xảy ra do không có kết nối Internet hoặc cấu hình mạng không đúng. Cũng có thể do server DNS không phản hồi hoặc tường lửa đã ngăn Internet truy cập vào mạng." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Còn 1 lần thử." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "Còn lại %d lần." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Không có thẻ SIM" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Cuộc gọi nhỡ" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Các số gọi nhỡ" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Cuộc gọi khẩn cấp" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Chỉ gọi được các cuộc SOS" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Đang sạc: %d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Nhập mật mã." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Đã sạc đầy." + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Yêu cầu %1$d đến %2$d chữ số hoặc ký tự." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Mật mã sai." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Mở khóa qua Tizen account" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Thử lại sau %d giây." + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Thử lại sau 1 giây." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Vuốt màn hình để xem nhật ký cuộc gọi." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Vuốt màn hình để mở Tin nhắn." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Thoát" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Chỉ gọi được các cuộc SOS" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Không có dịch vụ" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Nhà" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Mở khóa bằng\ntài khoản Tizen" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Phím tắt máy ảnh" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Đồng hồ kép" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 cuộc gọi nhỡ" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Hủy" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Lưu" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Chỉ gọi được cuộc gọi khẩn cấp" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Đang tìm" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Nhập số PIN." + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN sai." + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Trở lại cuộc gọi" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Đóng" + +msgid "IDS_COM_SK_BACK_A" +msgstr "Trở về" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "HỦY" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Vuốt màn hình để xem nhật ký cuộc gọi" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Nhập mã PIN để xem nhật ký cuộc gọi" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Nhập mật mã để xem nhật ký cuộc gọi" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Vuốt màn hình để xem tin nhắn" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Nhập mã PIN để xem tin nhắn" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Nhập mật mã để xem tin nhắn" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Bạn đã mở khóa thiết bị không đúng %1$d lần. Bạn còn %2$d lần thử trước khi thiết bị được khôi phục cài đặt gốc và tất cả dữ liệu bị xóa." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Bạn đã thử mở khóa thiết bị không đúng %d lần. Bây giờ thiết bị sẽ cài đặt lại về mặc định và tất cả dữ liệu sẽ bị xóa." + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Nhập mật mã khôi phục" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ĐÓNG" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "China Unicom" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "CMCC" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "Chunghwa" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "FarEasTone" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "KGT" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "T Star" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "TW Mobile" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "Không thể mở khóa màn hình" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "Bạn đã mở khóa thiết bị không thành công %1$d lần. Hãy thử lại sau %2$d giây." + +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "Đã mở khóa thiết bị." + diff --git a/po/zh_CN.po b/po/zh_CN.po index 6fe3120..fbb1bfc 100755 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -1,20 +1,152 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "还能尝试 1 次" +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "新信息" -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "还有 %d 次机会" +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 条新信息" -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "仅限紧急通话" +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "选择应用程序" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "爵士酷" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "玛丽玫瑰" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "关闭" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "处理中..." + +msgid "IDS_WEBVIEW_BODY_SHOWING_PD_ITEMS_TTS" +msgstr "显示 %d 个项目" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "取消" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "天气" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "教程完成" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "无效动作,请重试。" + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "选择墙纸" msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" msgstr "滑动屏幕以解锁" -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "轻敲并按住屏幕并向前倾斜设备" +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "无匹配" -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "密码错误" +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "备用密码" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "您有 %1$d 个未接来电和 %2$d 条未读消息。" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "墙纸" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "輕觸並按住螢幕,然後將裝置朝您的方向傾斜以解鎖。若螢幕未解鎖,請試著將裝置再傾斜一些。當設定動作解鎖時,動作將自動於設定中啟用。" + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "简单密码锁定将在检测到 Gear 距离太远时自动启用。检测到您的 Gear 时,屏幕锁定类型将更改为滑动锁定。" + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "选择应用程序" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d 条新信息" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d 个未接来电" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "输入 4 位 PIN 码。" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "锁定屏幕墙纸已更改。" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "主屏幕墙纸已更改。" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "滑动" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "指纹" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "锁屏设置" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "锁定屏幕" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "长按屏幕,然后朝您倾斜设备以解锁。如果屏幕未解锁,尝试更倾斜设备。" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "简单密码" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "屏幕锁定类型" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "漫游" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "密码" + +msgid "IDS_ST_BODY_NONE" +msgstr "无" + +msgid "IDS_ST_BODY_MOTION" +msgstr "动作" + +msgid "IDS_ST_BODY_EDIT" +msgstr "编辑" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "将彩色方块从上部区域拖放至下部区域或按类似对比的颜色的顺序点击上部区域中的彩色方块。您可拖放下部区域中的方块以对其重新排序。" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "自动锁定" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "输入解锁PIN码。" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN 码不正确" + +msgid "IDS_COM_BODY_EDIT" +msgstr "编辑" + +msgid "IDS_WEBVIEW_HEADER_THIS_WEBPAGE_IS_NOT_AVAILABLE" +msgstr "该网页不可用。" + +msgid "IDS_WEBVIEW_BODY_THE_SERVER_AT_PS_CANT_BE_FOUND_BECAUSE_THE_DNS_LOOK_UP_FAILED_MSG" +msgstr "无法找到网址为 %s 的服务器,因为 DNS 查找失败。DNS 是将网站的名称翻译为其互联网地址的网络服务。该错误通常是由于没有互联网连接或错误配置网络所致。这也可能是由于 DNS 服务器没有响应或防火墙阻止互联网访问网络而造成。" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "还能尝试 1 次。" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "还有 %d 次机会。" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "无 SIM 卡" msgid "IDS_IDLE_POP_MISSED_CALL" msgstr "未接来电" @@ -22,15 +154,156 @@ msgstr "未接来电" msgid "IDS_IDLE_POP_MISSED_CALLS" msgstr "未接来电" -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "新信息" +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "紧急呼叫" -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "新信息" +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "仅限紧急通话" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "正在充电:%d%" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "输入密码" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "充电完成" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "需要 %1$d 至 %2$d 个数字或字母。" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "密码错误" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "通过 Tizen 账户解锁" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "请在%d秒后重试。" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "请在 1 秒后重试。" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "滑动屏幕以查看通话记录。" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "滑动屏幕以打开信息。" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "取消" + +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "仅限紧急通话" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "无服务" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "确定" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "家庭" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "通过 Tizen\n账户解锁" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "照相机快捷方式" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "双时钟" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 个未接来电" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "放弃" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "保存" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "仅限紧急呼叫" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "正在搜索" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "输入PIN码" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "错误的 PIN 码" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "返回至通话" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "关闭" + +msgid "IDS_COM_SK_BACK_A" +msgstr "返回" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "取消" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "滑动屏幕以查看通话记录" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "输入 PIN 码以查看通话记录" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "输入密码以查看通话记录" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "滑动屏幕以查看信息" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "输入 PIN 码以查看信息" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "输入密码以查看信息" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "您解锁设备的尝试已不正确 %1$d 次。设备重置为出厂默认设置并清除所有数据前还可尝试 %2$d 次。" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "您已尝试解锁设备不正确 %d 次。其现在将重置为出厂默认且所有数据将被擦除。" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "输入恢复密码" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "关闭" + +msgid "IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN" +msgstr "中国联通" + +msgid "IDS_IDLE_BODY_CMCC_CHN" +msgstr "中国移动" + +msgid "IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN" +msgstr "中华电信" + +msgid "IDS_IDLE_BODY_FAREASTONE_CHN" +msgstr "远传电信" + +msgid "IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN" +msgstr "远传电信" + +msgid "IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN" +msgstr "台湾之星" + +msgid "IDS_IDLE_BODY_TW_MOBILE_CHN" +msgstr "台湾大哥大" + +msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB" +msgstr "无法解锁屏幕" -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "新邮件" +msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS" +msgstr "您已进行了 %1$d 次不成功的解锁设备尝试。在 %2$d 秒后重试。" -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "新邮件" +msgid "IDS_LCKSCN_TPOP_DEVICE_UNLOCKED" +msgstr "设备已解锁" diff --git a/po/zh_HK.po b/po/zh_HK.po deleted file mode 100755 index 0ec295f..0000000 --- a/po/zh_HK.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "剩餘1次機會" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "剩餘 %d 次機會" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "只限緊急通話" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "滑動螢幕以解鎖" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "輕觸並按住螢幕,然後將裝置往前傾" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "密碼不正確" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "未接電話" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "未接電話" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "新訊息" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "新訊息" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "新電子郵件" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "新電子郵件" - diff --git a/po/zh_SG.po b/po/zh_SG.po deleted file mode 100755 index e4ad7df..0000000 --- a/po/zh_SG.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "还能尝试 1 次" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "还有%d次机会" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "仅限紧急通话" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "滑动屏幕以解锁" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "轻敲并按住屏幕并向前倾斜设备" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "密码不正确" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "未接来电" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "未接来电" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "新讯息" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "新讯息" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "新邮件" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "新电子邮件" - diff --git a/po/zh_TW.po b/po/zh_TW.po deleted file mode 100755 index 23d358a..0000000 --- a/po/zh_TW.po +++ /dev/null @@ -1,36 +0,0 @@ -msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" -msgstr "剩下一次機會" - -msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" -msgstr "剩餘 %d 次嘗試機會" - -msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" -msgstr "僅限緊急通話" - -msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" -msgstr "滑動螢幕以解鎖" - -msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_SCREEN_AND_TILT_DEVICE_FORWARDS" -msgstr "輕觸並按住螢幕,然後將裝置往前傾" - -msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" -msgstr "密碼不正確" - -msgid "IDS_IDLE_POP_MISSED_CALL" -msgstr "未接電話" - -msgid "IDS_IDLE_POP_MISSED_CALLS" -msgstr "未接電話" - -msgid "IDS_IDLE_POP_NEW_MESSAGE" -msgstr "新訊息" - -msgid "IDS_IDLE_POP_NEW_MESSAGES" -msgstr "新訊息" - -msgid "IDS_IDLE_POP_NEW_EMAIL" -msgstr "新電子郵件" - -msgid "IDS_IDLE_POP_NEW_EMAILS" -msgstr "新電子郵件" - diff --git a/po_sdk/CMakeLists.txt b/po_sdk/CMakeLists.txt new file mode 100644 index 0000000..2d1db70 --- /dev/null +++ b/po_sdk/CMakeLists.txt @@ -0,0 +1,23 @@ +# for i18n + +SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de.po el_GR.po en.po en_PH.po en_US.po es_ES.po es_US.po et.po eu.po fi.po fr.po fr_CA.po ga.po gl.po hi.po hr.po hu.po hy.po is.po it_IT.po ja_JP.po ka.po kk.po ko_KR.po lt.po lv.po mk.po nb.po nl.po pl.po pt_BR.po pt_PT.po ro.po ru_RU.po sk.po sl.po sr.po sv.po tr_TR.po uk.po uz.po zh_CN.po zh_HK.po zh_TW.po) + +SET(MSGFMT "/usr/bin/msgfmt") + +FOREACH(pofile ${POFILES}) + SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile}) + MESSAGE("PO: ${pofile}") + GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE) + GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE) + SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo) + ADD_CUSTOM_COMMAND( + OUTPUT ${moFile} + COMMAND ${MSGFMT} -o ${moFile} ${absPofile} + DEPENDS ${absPofile} + ) + INSTALL(FILES ${moFile} DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo) + SET(moFiles ${moFiles} ${moFile}) +ENDFOREACH(pofile) + +MESSAGE(".mo files: ${moFiles}") +ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles}) diff --git a/po_sdk/ar.po b/po_sdk/ar.po new file mode 100755 index 0000000..7a19f30 --- /dev/null +++ b/po_sdk/ar.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "مكالمات طوارئ فقط." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "اسحب بإصبعك على الشاشة لإلغاء قفلها." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "تتبقى محاولة واحدة." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "محاولات متبقية %d" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "كلمة مرور غير صحيحة." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "مكالمة فائتة" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "مكالمات فائتة" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "خلفيات الشاشة" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "انقر باستمرار على الشاشة ثم قم بإمالة الجهاز تجاهك لإلغاء قفلها. إذا لم يتم إلغاء قفل الشاشة، فقم بإمالة الجهاز أكثر. في حالة تعيين إلغاء قفل الحركة، سيتم تفعيل الحركة تلقائيًا في الضبط." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "اختر تطبيق" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "تم تغيير خلفية شاشة القفل." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "تم تغيير خلفية الشاشة الرئيسية." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "السحب" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "إعدادات شاشة القفل" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "قفل الشاشة" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "انقر مع الاستمرار فوق الشاشة، قم بإمالة الجهاز تجاهك لإلغاء القفل. إذا لم يتم إلغاء قفل الشاشة، فجرب إمالة الجهاز بدرجة أكبر." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "كلمة مرور سهلة" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "نوع قفل الشاشة" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "التجوال" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "كلمة المرور" + +msgid "IDS_ST_BODY_NONE" +msgstr "لا شيء" + +msgid "IDS_ST_BODY_MOTION" +msgstr "الحركة" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "إكليل الجبل" + +msgid "IDS_ST_BODY_EDIT" +msgstr "تعديل" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "جاز هادئ" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "شوكو كوكي" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "مكالمات الطوارئ فقط" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "لا توجد SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "استكمال المادة التعليمية." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "إجراء غير صالح. حاول مرة أخرى." + +msgid "IDS_COM_SK_BACK_A" +msgstr "رجوع" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "جاري المعالجة..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "تحديد الخلفية" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "موافق" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "اغلاق" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "البحث" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "لا توجد خدمة" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "خطأ PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "أدخل PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "أدخل كلمة المرور." + +msgid "IDS_COM_BODY_EDIT" +msgstr "تعديل" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "إغلاق" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "حاول مرة أخرى خلال ثانية واحدة." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "تم الشحن كاملا." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "مكالمة فائتة" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "رسالة جديدة" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "رسالة واحدة جديدة" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "لقد حاولت إلغاء قفل الجهاز %d من المرات بطريقة غير صحيحة. تبقّت لك %2$d من المحاولات قبل إعادة تعيين الجهاز إلى ضبط المصنع الافتراضي ومسح جميع البيانات." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "أعد المحاولة خلال %d ثوان." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "اسحب الشاشة لعرض الرسالة" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "اسحب الشاشة لعرض سجل المكالمات" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "لا يوجد تطابق" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "إدخال رقم PIN لعرض الرسالة" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "إدخال رقم PIN لعرض سجل المكالمات" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "إدخال كلمة المرور لعرض الرسالة" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "إدخال كلمة المرور لعرض سجل المكالمات" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "ساعة مزدوجة" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "اختصار الكاميرا" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "رقم PIN غير صحيح" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "عودة إلى المكالمة" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "كلمة المرور البديلة" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "إلغاء القفل عبر حساب Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "إلغاء القفل عبر\nحساب Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "لديك %1$d مكالمات فائتة و%2$d رسائل غير مقروءة." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "لقد حاولت إلغاء قفل الجهاز %d مرات بطريقة غير صحيحة. سوف تتم الآن إعادة تعيين الجهاز إلى إعدادات المصنع الافتراضية وسيتم مسح جميع البيانات." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "اسحب الشاشة لعرض سجلّ المكالمات." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "اسحب الشاشة لفتح الرسائل." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "سيتم تفعيل قفل كلمة المرور السهلة تلقائيًا إذا كانت الساعة Gear بعيدة جدًا بحيث يتعذر اكتشافها. عند اكتشاف الساعة Gear، سيتغير نوع قفل الشاشة إلى القفل السحب." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d رسالة جديدة" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d م. فائتة" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "يلزم إدخال %1$d إلى %2$d أرقام أو حروف." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "أدخل رمز PIN لإلغاء القفل." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "أدخل رمز PIN مكونا من 4 أرقام" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "مكالمات طوارئ فقط." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "مكالمة طوارئ" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "يتم الآن الشحن: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "إغلاق" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "بصمة" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "تحديد التطبيقات" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "إلغاء" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "الطقس" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "منزل" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "يمكنك سحب المربعات الملونة وإسقاطها من المنطقة العلوية إلى المنطقة السفلية أو النقر فوق المربعات الملونة في المنطقة العلوية بترتيب مطابقة اللون الجاري مقارنته. كذلك، يمكنك سحب المربعات الملونة وإسقاطها في المنطقة السفلية لإعادة ترتيبها." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "تأمين تلقائي" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "حفظ" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "تجاهل" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "إلغاء" + diff --git a/po_sdk/az.po b/po_sdk/az.po new file mode 100755 index 0000000..27efae7 --- /dev/null +++ b/po_sdk/az.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Yalnız fövqəladə zənglər üçün." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Kilidi açmaq üçün barmağınızı sürüşdürün" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 cəhd qalmışdır." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d cəhd qalıb." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Yanlış şifrə." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Buraxılmış zəng" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Buraxılmış zənglər" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Divar kağızları" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Kilidi açmaq üçün ekrana vurub saxlayın və cihazı özünüzə tərəf əyin. Ekranın kilidi açılmazsa, cihazı daha da əyməyə çalışın. Hərəkətin kiliddən açılması qurulduqda, hərəkət Parametrlərdə avtomatik olaraq aktivləşdiriləcəkdir." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Proqramı seç" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Kilid ekranı divar kağızı dəyişdirildi." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Əsas ekranın divar kağızı dəyişdirildi." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Sürüşdür" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Kilid ekranı parametrləri" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Ekran kilidi" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Kilidi açmaq üçün cihaza vurub saxlayın və özünüzə tərəf əyin. Əgər ekranın kilidi açılmazda, cihazı bir az da əyin." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Parolu dəyiş" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Ekran kilidinin növü" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Rouminq" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Şifrə" + +msgid "IDS_ST_BODY_NONE" +msgstr "Yoxdur" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Hərəkət" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Redaktə et" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Yalnız fövqəladə zənglər" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM yoxdur" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Təlimatlar tamamlandı." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Əməliyyat səhvdir. Yenidən cəhd edin." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Geriyə" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Emal edilir..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Divar kağızı seç" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Bağla" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Axtarılır" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Servis yoxdur" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Yanlış PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN daxil et." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Kodu daxil et." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Redaktə et" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Bağla" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1 saniyəyə yenidən cəhd et." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Tam dolub." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 buraxılmış zəng" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Yeni mesaj" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 yeni mesaj" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Siz %1$d dəfə cihazın kilidini səhv açmağa cəhd etmisiniz. Sizin cihazın defolt parametrlərinə bərpa edilməsi və bütün məlumatların silinməsi üçün %2$d cəhdiniz qalır." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d saniyə yenidən cəhd et." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Mesaja baxmaq üçün ekranı sürüşdürün" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Zəng jurnalına baxmaq üçün ekranı sürüşdürün" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Uyğun deyil" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Mesaja baxmaq üçün PIN daxil et" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Zəng jurnalına baxmaq üçün PIN daxil et" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Mesaja baxmaq üçün parol daxil et" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Zəng jurnalına baxmaq üçün parol daxil et" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "İkili saat" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Kamera qısayolu" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Yalnış PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Zəngə qayıt" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternativ parol" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen hes.\nilə kilid.\naçın" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Kiliddən açma form\nTizen hesab" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Sizin %1$d cavabsız zənginiz və %2$d oxunmamış mesajınız var." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Siz %d dəfə cihazın kilidini səhv açmağa cəhd etmisiniz. Bu, zavod parametrlərinə bərpa edəcək və bütün məlumatlar silinəcək" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Zəng jurnalına baxmaq üçün ekranı sürüşdürün." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Mesajları açmaq üçün ekranı sürüşdürün." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Gear-nız müəyyən olunmaq üçün çox uzaq məsafədədirsə, sadə parol kilidi avtomatik olaraq aktivləşdiriləcəkdir. Gear-nız müəyyən edildikdə ekran kilid növünüz Sürüşdürmə kilidinə dəyişəcək." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d yeni mesaj" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d cavabsız zəng" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d - %2$d rəqəm və ya hərf tələb olunur." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Kilidacma PIN kodunu daxil et." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4 rəqəmli PIN kodunu daxil et." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Yalnız fövqəladə zənglər üçün." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Təcili zəng" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Doldurulur: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "BAĞLA" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Barmaq izi" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Proqramları seç" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Ləğv et" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Hava" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Ev" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Rəngli kvadratları yuxarı hissədən aşağı hissəsinə çəkib gətirin və ya yuxarı hissədə müqayisə edilən rənglərin oxşarlıq sırası ilə rəngli kvadratlara vurun. Yenidən sıralamaq üçün kvadratları çəkərək aşağı sahəyə apara bilərsiniz." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Avtomatik kilid" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Saxla" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Ləğv et" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Ləğv et" + diff --git a/po_sdk/bg.po b/po_sdk/bg.po new file mode 100755 index 0000000..6ad9ed2 --- /dev/null +++ b/po_sdk/bg.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Само спешни повиквания." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Плъзнете екрана, за да го отключите." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 оставащ опит." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "Остават %d опита." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Грешна парола." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Пропуснат разговор" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Пропуснати разговори" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Тапети" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Чукнете и задръжте екрана, след което наклонете устройството към себе си, за да го отключите. Ако екранът не се отключи, опитайте да наклоните устройството повече. Когато зададете отключване с движение, движението ще се активира автоматично в Настройки." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Избор на приложение" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Тапетът за заключен екран е променен." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Тапетът за начален екран е променен." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Плъзгане" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Настройки на заключения екран" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Заключен екран" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Чукнете и задръжте екрана, след което наклонете устройството към себе си, за да го отключите. Ако екранът не се отключи, опитайте да наклоните устройството повече." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Проста парола" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Тип заключен екран" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Роуминг" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Парола" + +msgid "IDS_ST_BODY_NONE" +msgstr "Няма" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Движение" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Редактиране" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Само спешни повиквания" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Няма SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Самоучителят завърши." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Невалидно действие. Опитайте отново." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Назад" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Обработване..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Избор на тапет" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Затвори" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Търсене" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Няма услуга" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Неправилен PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Въведете PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Въвеждане на парола" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Редактиране" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Затваряне" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Опитайте пак след 1 секунда." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Напълно заредена." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 пропуснато повикване" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Ново съобщение" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 ново съобщение" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Опитахте да отключите устройството неуспешно %1$d пъти. Остават ви още %2$d опита, преди устройството да се рестартира до фабричните настройки по подразбиране и всички данни да бъдат изтрити." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Опитайте пак след %d сек." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Плъзнете екрана, за да прегледате съобщението" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Плъзнете екрана, за да прегледате дневника на повикванията" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Няма съвпадения" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Въведете PIN за преглед на съобщението" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Въведете PIN за преглед на дневника на повикванията" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Въведете парола за преглед на съобщението" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Въведете парола за преглед на дневника на повикванията" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Двоен часовник" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Пряк път за камера" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Неправилен PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Връщане към повикване" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Алтернативна парола" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Отключване чрез акаунт в Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Отключване с\nакаунт в Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Имате %1$d пропуснати повиквания и %2$d непрочетени съобщения." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Опитахте да отключите устройството неуспешно %d пъти. Сега то ще се рестартира до фабричните настройки по подразбиране и всички данни ще бъдат изтрити." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Плъзнете екрана, за да прегледате дневника на повиквания." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Плъзнете екрана, за да отворите Съобщения." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Заключването с обикновена парола ще бъде автоматично активирано, ако вашият Gear е твърде далеч, за да бъде открит. Когато вашият Gear се открие, типът на заключването на екрана ще се промени на заключване с плъзгане." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d нови съобщения" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d пропуснати повиквания" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Задължителни са %1$d до %2$d цифри или букви." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Въведете PIN за отключване." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Въведете 4-цифрен PIN." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Само спешни повиквания." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Спешно повикване" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Зареждане: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ЗАТВОРИ" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Пръстов отпечатък" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Избор на приложения" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Отказ" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Време" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Дом" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Плъзнете и пуснете цветните квадрати от горната част на екрана в долната или чукнете върху цветните квадрати в горната част в реда на сходността на цвета, който се сравнява. Можете да плъзнете и пуснете квадратите в долната част, за да ги пренаредите." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Авто-заключване" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Запази" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Отхвър." + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Отказ" + diff --git a/po_sdk/ca.po b/po_sdk/ca.po new file mode 100755 index 0000000..ee05e8f --- /dev/null +++ b/po_sdk/ca.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Només trucades d'emergència" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Mogui la pantalla per desbloquejar" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Queda 1 intent" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "Queden %d intents" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Contrasenya incorrecta" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Trucada perduda" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Trucades perdudes" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Fons de pantalla" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Mantingui tocada la pantalla i inclini el dispositiu cap a vostè per desbloquejar-lo. Si la pantalla no es desbloqueja, intenti inclinar més el dispositiu. Quan es defineixi desbloqueig de moviment, s'habilitarà el moviment automàticament a Ajustaments." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Seleccionar aplicació" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "S'ha canviat el fons de la pantalla de bloqueig" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "S'ha canviat el fons de pantalla d'inici" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Desplaçar" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Ajustaments de pantalla de bloqueig" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Bloquejar pantalla" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Mantingui tocada la pantalla i inclini el dispositiu cap a vostè per desbloquejar-lo. Si la pantalla no es desbloqueja, intenti inclinar més el dispositiu." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Contrasenya simple" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Tipus de bloqueig de pantalla" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Itinerància" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Contrasenya" + +msgid "IDS_ST_BODY_NONE" +msgstr "Cap" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Moviment" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Només trucades emergència" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Sense SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Programa d'aprenentatge complet" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Acció no vàlida. Torni-ho a intentar." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Enrere" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Processant..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Seleccionar fons de pantalla" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "Acceptar" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Tancar" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "S'està cercant" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Sense servei" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN incorrecte" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Introdueixi PIN" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Introduir contrasenya" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Tancar" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Torni a intentar-ho en 1 segon" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Completament carregat" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 trucada perduda" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nou missatge" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 missatge nou" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Ha intentat desbloquejar el dispositiu de forma incorrecta %1$d cops. Li queden %2$d intents abans que el dispositiu es restableixi als valors predeterminats de fàbrica i s'esborrin totes les dades." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Torni a intentar en %d s" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Mogui la pantalla per veure el missatge" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Mogui la pantalla per veure el registre de trucades" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Cap coincidència" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Introdueixi el PIN per veure el missatge" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Introdueixi el PIN per veure el registre de trucades" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Introdueixi la contrasenya per veure el missatge" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Introdueixi la contrasenya per veure el registre de trucades" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Rellotge dual" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Accés directe a la càmera" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN incorrecte" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Tornar a la trucada" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Contrasenya alternat" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Desbloq amb compte de Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Desbloq amb\ncompte de Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Té %1$d trucades perdudes i %2$d missatges sense llegir" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Ha intentat desbloquejar el dispositiu de forma incorrecta %d cops. Ara es restablirà als valors predeterminats de fàbrica i s'esborraran totes les dades." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Desplaci la pantalla per veure el registre de trucades." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Desplaci la pantalla per obrir Missatges." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "El bloqueig mitjançant contrasenya senzilla s'habilitarà automàticament si el seu Gear és massa lluny per detectar-lo. Quan es detecti, el tipus de bloqueig de pantalla canviarà a Bloqueig de desplaçament." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d missatges nous" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d trucades perdudes" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Calen de %1$d a %2$d dígits o lletres" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Introdueixi el PIN de desbloqueig" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Introdueixi PIN 4 dígits" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Només trucades d'emergència" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Trucada d'emergència" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Carregant: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "TANCAR" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Empremta" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Seleccionar aplicacions" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Cancel" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Temps" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Pers." + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Arrossegui i deixi anar els quadrats de color des de l'extrem superior a l'inferior o toqui els quadrats de color a l'extrem superior en ordre de similitud amb el color amb què es compara. Pot arrossegar i deixar anar els quadrats a l'extrem inferior per canviar-ne l'ordre." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Bloqueig automàtic" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Desar" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Descart" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancel" + diff --git a/po_sdk/cs.po b/po_sdk/cs.po new file mode 100755 index 0000000..e123c06 --- /dev/null +++ b/po_sdk/cs.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Pouze tísňová volání." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Pro odemknutí přejeďte po displeji." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Zbývá 1 pokus." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "Počet zbývajících pokusů: %d." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Nesprávné heslo." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Zmeškaný hovor" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Zmeškané hovory" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Pozadí" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Odemknutí proveďte tak, že klepnete na displej, podržíte na něm prst a nakloníte zařízení směrem k sobě. Pokud se displej neodemkne, nakloňte zařízení více. Když bude nastaveno odemknutí pohybem, aktivace pohybem bude v Nastavení automaticky zapnutá." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Vyberte aplikaci" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Pozadí zamknuté obrazovky bylo změněno." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Pozadí domovské obrazovky bylo změněno." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Přejetí" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Nastavení zamknutí displeje" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Zamknout displej" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Odemknutí proveďte tak, že klepnete na displej, podržíte na něm prst a nakloníte zařízení směrem k sobě. Pokud se displej neodemkne, nakloňte zařízení více." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Jednoduché heslo" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Typ zámku displeje" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Heslo" + +msgid "IDS_ST_BODY_NONE" +msgstr "Žádná" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Pohyb" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Upravit" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Pouze tísňová volání" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Žádná SIM karta" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Kurz byl dokončen." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Neplatná akce. Opakujte akci." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Zpět" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Probíhá zpracování..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Vybrat pozadí" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Zavřít" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Vyhledávání" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Žádné služby" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Chybný PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Zadat PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Zadejte heslo." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Upravit" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Zavřít" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Opakujte akci za 1 sekundu." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Zcela nabito." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 zmeškaný hovor" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nová zpráva" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 nová zpráva" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "%1$dkrát jste se chybně pokusili odemknout zařízení. Po %2$d dalších neúspěšných pokusech se obnoví výchozí nastavení zařízení a všechna data budou vymazána." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Opakujte akci za %d s." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Přejetím po displeji zobrazíte zprávu" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Přejetím po displeji zobrazíte protokol hovorů" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Žádná shoda" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Zadejte PIN kód pro zobrazení zprávy" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Zadejte PIN kód pro zobrazení protokolu hovorů" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Zadejte heslo pro zobrazení zprávy" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Zadejte heslo pro zobrazení protokolu hovorů" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Duální hodiny" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Zástupce fotoaparátu" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Nesprávný PIN kód" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Zpět na hovor" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternativní heslo" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Odemknout pomocí účtu Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Odemknout pomocí\núčtu Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Máte %1$d nepřijatých hovorů a %2$d nepřečtených zpráv." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "%dkrát jste se chybně pokusili odemknout zařízení. Nyní se obnoví výchozí nastavení a všechna data budou vymazána." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Přejetím po displeji zobrazíte protokol hovorů." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Přejetím po displeji otevřete Zprávy." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Pokud je Gear příliš daleko a nelze ho rozpoznat, bude automaticky zapnut zámek jednoduchým heslem. Po rozpoznání zařízení Gear se typ zámku displeje změní na zámek s blokováním přejetím." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d nových zpráv" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d nepřijatých hovorů" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Musí obsahovat %1$d až %2$d číslic nebo písmen." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Zadejte PIN kód pro odemknutí." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Zadejte 4místný PIN kód." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Pouze tísňová volání." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Tísňové volání" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Nabíjení: %d %" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ZAVŘÍT" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Otisk prstu" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Vyberte aplikace" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Storno" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Počasí" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Domů" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Přetáhněte barevné čtverečky z horní části do dolní části nebo klepněte na barevné čtverečky v horní části v pořadí, v jakém se podobají porovnávané barvě. Můžete přetáhnout čtverečky do dolní části a tam je seřadit." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Automatické zamknutí" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Uložit" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Zrušit" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Storno" + diff --git a/po_sdk/da.po b/po_sdk/da.po new file mode 100755 index 0000000..c653484 --- /dev/null +++ b/po_sdk/da.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Kun nødopkald." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Stryg med fingeren over skærmen for at låse op." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 forsøg tilbage." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d forsøg tilbage." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Forkert adgangskode." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Ubesvaret opkald" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Ubesvarede opkald" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Baggrunde" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Tap og hold nede på skærmen, og vip enheden ind imod dig for at låse den op. Hvis skærmen ikke låser op, kan du prøve at vippe enheden lidt mere. Når bevægelseoplåsning er indstillet, aktiveres bevægelse automatisk under Indstillinger." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Vælg program" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Baggrund for låst skærm ændret." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Baggrund for startskærm ændret." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Stryg" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Indstillinger for låst skærm" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Låseskærm" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Tap og hold nede på skærmen, og vip enheden ind imod dig selv for at låse den op. Hvis skærmen ikke låser op, kan du prøve at vippe enheden mere." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Enkelt adgangskode" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Skærmlåsningstype" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Adgangskode" + +msgid "IDS_ST_BODY_NONE" +msgstr "Ingen" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Bevægelse" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Redigér" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Kun nødopkald" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Intet SIM-kort" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Selvstudium fuldført." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Ugyldig handling. Prøv igen." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Tilbage" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Behandler ..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Vælg baggrund" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Luk" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Søger" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Ingen dækning" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Forkert PIN-kode." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Angiv PIN-kode." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Angiv adgangskode." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Redigér" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Luk" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Prøv igen om 1 sekund." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Fuldt opladet." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 ubesvaret opkald" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Ny meddelelse" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 ny meddelelse" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Du har brugt %1$d forkerte forsøg på at oplåse enheden. Du har %2$d forsøg tilbage, før enheden nulstilles til fabriksstandarderne, og alle data slettes." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Prøv igen om %d sekunder." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Stryg over skærmen for at se besked" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Stryg over skærmen for at se opkaldslog" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Intet match" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Angiv PIN-kode for at se besked" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Angiv PIN-kode for at se opkaldslog" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Angiv adgangskode for at se besked" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Angiv adgangskode for at se opkaldslog" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Dobbelt ur" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Kameragenvej" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Forkert PIN-kode" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Tilbage til opkald" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alt. adgangskode" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Lås op via Tizen-konto" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Lås op via\nTizen-konto" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Du har %1$d %ubesvarede opkald, og %2$d ulæste beskeder." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Du har forgæves forsøgt at låse enheden op %d gange. Den nulstilles nu til fabriksstandarderne, og alle data slettes." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Stryg fingeren over skærmen for at se opkaldslog." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Stryg fingeren over skærmen for at åbne Beskeder." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Enkel adgangskodelåsning aktiveres automatisk, hvis dit Gear er for langt væk til at blive registreret. Når dit Gear bliver registreret, skifter skærmlåsningstypen til strygelås." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d nye meddelelser" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d ubesvarede opkald" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d til %2$d cifre eller bogstaver krævet." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Indtast PIN-kode til oplåsning." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Indtast 4-cifret PIN-kode." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Kun nødopkald." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Nødopkald" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Oplader: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "LUK" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Fingeraftryk" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Vælg applikationer" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Annullér" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Vejr" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Hjem" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Træk og slip de farvede firkanter fra det øverste område til det nederste område, eller tap på de farvede firkanter i det øverste område i rækkefølge for lighed med den farve, der sammenlignes. Du kan trække og slippe firkanterne i det nederste område for at ændre deres rækkefølge." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Automatisk lås" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Gem" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Afvis" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Annullér" + diff --git a/po_sdk/de.po b/po_sdk/de.po new file mode 100755 index 0000000..fa52a4c --- /dev/null +++ b/po_sdk/de.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Nur Notrufe möglich" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Zum Entsperren über den Bildschirm streichen" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Noch 1 Versuch" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d Versuche übrig" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Falsches Passwort" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Anruf in Abwesenheit" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Verpasste Anrufe" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Hintergrund" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Auf den Bildschirm tippen und halten, dann das Gerät nach vorn kippen, um es zu entsperren. Wenn Entsperren durch Bewegung eingestellt ist, wird in den Einstellungen automatisch Bewegung aktiviert." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Anwendung auswählen" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Sperrbildschirmhintergrund geändert" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Hintergrund für Startbildschirm geändert" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Streichen" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Sperrbildschirm-Einstellungen" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Sperrbildschirm" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Tippen Sie auf den Bildschirm und halten Sie ihn, dann das Gerät nach vorne kippen, um es zu entsperren. Wenn der Bildschirm nicht entsperrt wird, versuchen Sie das Gerät etwas weiter zu kippen." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Einfaches Passwort" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Sperrbildschirmtyp" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Auslandsaufenthalt" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Passwort" + +msgid "IDS_ST_BODY_NONE" +msgstr "Ohne" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Bewegung" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Bearbeiten" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Schoko-Cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Nur Notrufe" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Keine SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Ende der Anleitung." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Ungültige Aktion. Erneut versuchen." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Zurück" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Verarbeitung läuft ..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Hintergrund auswählen" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Schließen" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Suche" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Kein Netz" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Falsche PIN" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN eingeben" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Passwort eingeben" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Bearbeiten" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Schließen" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Versuchen Sie es in 1 Sekunde erneut" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Komplett geladen" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 unbeantworteter Anruf" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Neue Nachricht" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 neue Nachricht" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Sie haben %1$d Mal fehlerhaft versucht, das Gerät zu entsperren. Sie haben noch %2$d Versuche. Danach wird das Gerät auf die Werkseinstellungen zurückgesetzt, und alle Daten werden gelöscht." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "In %d s erneut versuchen." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Über den Bildschirm streichen, um die Nachricht anzuzeigen." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Über den Bildschirm streichen, um das Protokoll anzuzeigen." + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Keine Übereinstimmung" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Geben Sie die PIN ein, um die Nachricht anzuzeigen." + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Geben Sie die PIN ein, um das Anrufprotokoll anzuzeigen." + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Geben Sie das Passwort ein, um die Nachricht anzuzeigen." + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Geben Sie das Passwort ein, um das Anrufprotokoll anzuzeigen." + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Dual-Uhr" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Schnellzugriff für Kamera" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Falsche PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Zurück zum Anruf" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternat. Passwort" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Über Tizen-Konto entsperren" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Über Tizen-\nKonto entsp." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Sie haben %1$d verpasste Anrufe und %2$d ungelesene Nachrichten." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Sie haben %d Mal vergeblich versucht, das Gerät zu entsperren. Das Gerät wird jetzt auf die Werkseinstellungen zurückgesetzt und alle Daten gelöscht." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Streichen Sie über den Bildschirm, um das Anrufprotokoll anzuzeigen." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Streichen Sie über den Bildschirm, um Nachrichten zu öffnen." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Wenn die Gear zu weit entfernt ist und nicht erkannt werden kann, wird die einfache Passwortsperre automatisch aktiviert. Wenn Ihre Gear erkannt wird, ändert sich Ihr Sperrbildschirmtyp zu „Entsperren durch Streichen“." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d neue Nachrichten" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d verpasste Anrufe" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Es sind %1$d bis %2$d Ziffern oder Buchstaben erforderlich." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "PIN zum Entsperren eingeben." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4-stellige PIN eingeben" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Nur Notrufe möglich" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Notruf" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Wird geladen: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "SCHL." + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Fingerabdruck" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Anwendungen auswählen" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Wiederherstellungs-PW eingeben" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Abbruch" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Wetter" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Privat" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Ziehen Sie die farbigen Quadrate vom oberen in den unteren Bereich oder tippen Sie auf die Quadrate im oberen Bereich in der Reihenfolge der Vergleichsfarben. Sie können die Quadrate im unteren Bereich durch Ziehen und Ablegen neu anordnen." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Automatische Sperrung" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Speichern" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Verwerf." + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Abbruch" + diff --git a/po_sdk/el_GR.po b/po_sdk/el_GR.po new file mode 100755 index 0000000..16c4953 --- /dev/null +++ b/po_sdk/el_GR.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Μόνο επείγουσες κλήσεις." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Περάστε το δάχτυλό σας από την οθόνη για ξεκλείδωμα." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Απομένει 1 προσπάθεια." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d προσπάθειες απομένουν." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Λάθος κωδικός." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Αναπάντητη κλήση" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Αναπάντητες" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Θέματα φόντου" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Πατήστε παρατεταμένα την οθόνη και κατόπιν στρέψτε τη συσκευή προς το μέρος σας για ξεκλείδωμα. Εάν η οθόνη δεν ξεκλειδώσει, δοκιμάστε να δώσετε μεγαλύτερη κλίση στη συσκευή. Μόλις ορίσετε το ξεκλείδωμα με κίνηση, η λειτουργία κίνησης θα ενεργοποιηθεί αυτόματα στις Ρυθμίσεις." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Επιλογή εφαρμογής" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Το φόντο οθόνης κλειδώματος άλλαξε." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Το φόντο αρχικής οθόνης άλλαξε." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Κύλιση" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Ρυθμίσεις οθόνης κλειδώματος" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Κλείδωμα Οθόνης" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Πατήστε παρατεταμένα την οθόνη και κατόπιν στρέψτε τη συσκευή προς το μέρος σας για ξεκλείδωμα. Εάν η οθόνη δεν ξεκλειδώσει, δοκιμάστε να δώσετε μεγαλύτερη κλίση στη συσκευή." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Απλός κωδικός πρόσβασης" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Τύπος οθόνης κλειδώματος" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Περιαγωγή" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Κωδικός πρόσβασης" + +msgid "IDS_ST_BODY_NONE" +msgstr "Κανένα" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Κίνηση" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Επεξεργασία" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Μόνο κλήσεις έκτ. ανάγκης" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Δεν βρέθηκε SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Ο οδηγός εκμάθησης ολοκληρώθηκε." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Μη έγκυρη ενέργεια. Δοκιμάστε ξανά." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Πίσω" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Επεξεργασία..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Επιλογή φόντου" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Κλείσιμο" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Αναζήτηση" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Μη διαθέσιμη υπηρεσία" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Λανθασμένο PIN κλειδώματος" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Εισαγωγή PIN κλειδώματος." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Εισαγωγή κωδικού." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Επεξεργασία" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Κλείσιμο" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Δοκιμάστε ξανά σε 1 δευτερόλεπτο." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Πλήρης φόρτιση." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 αναπάντητη κλήση" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Νέο μήνυμα" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 νέο μήνυμα" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Έχετε επιχειρήσει να ξεκλειδώσετε τη συσκευή %1$d φορές εσφαλμένα. Έχουν απομείνει %2$d προσπάθειες μέχρι την επαναφορά των εργοστασιακών ρυθμίσεων και τη διαγραφή όλων των δεδομένων της συσκευής" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Δοκιμ. ξανά σε %d δευτ." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Σάρωση οθόνης για να δείτε το μήνυμα" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Σάρωση οθόνης για να δείτε το αρχείο κλήσεων" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Κανένα αποτέλεσμα" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Καταχώριση PIN για προβολή του μηνύματος" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Καταχώριση PIN για προβολή του αρχείου κλήσεων" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Καταχώριση κωδικού για προβολή του μηνύματος" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Καταχωρίστε τον κωδικό για προβολή του αρχείου κλήσεων" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Διπλό ρολόι" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Συντόμευση κάμερας" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Λανθασμένο PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Επιστροφή στην κλήση" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Εναλλακτικός κωδικός" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Ξεκλείδωμα μέσω λογαριασμού Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Ξεκλείδωμα\nμέσω λογ. Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Έχετε %1$d αναπάντητες κλήσεις και %2$d μη αναγνωσμένα μηνύματα." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Έχετε επιχειρήσει να ξεκλειδώσετε τη συσκευή %d φορές εσφαλμένα. Θα γίνει επαναφορά των εργοστασιακών ρυθμίσεων όλα τα δεδομένα θα διαγραφούν." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Περάστε το δάχτυλό σας κατά μήκος της οθόνης, για να δείτε το αρχ. κλήσεων." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Περάστε το δάχτ. σας κατά μήκος της οθόν. για να ανοίξ. τα Μηνύματα." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Αν το Gear βρίσκεται πολύ μακριά και δεν είναι δυνατό να εντοπιστεί, θα ενεργοποιηθεί αυτόματα το απλό κλείδωμα με κωδικό πρόσβασης. Μόλις εντοπιστεί το Gear, ο τύπος κλειδώματος οθόνης θα αλλάξει σε Κλείδωμα με κύλιση." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d νέα μηνύματα" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d αναπάντητες κλήσεις" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Απαιτούνται από %1$d έως %2$d ψηφία ή γράμματα." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Εισαγωγή PIN κλειδώματος" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Εισαγάγετε 4-ψήφιο PIN." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Μόνο επείγουσες κλήσεις." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Κλήση έκτακτης ανάγκης" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Φόρτιση: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ΚΛΕΙΣ." + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Αποτύπωμα" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Επιλογή εφαρμογών" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Ακύρωση" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Καιρός" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Σπίτι" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Μεταφέρετε και αποθέστε τα χρωματιστά τετράγωνα από την επάνω περιοχή στην κάτω ή πατήστε τα χρωματιστά τετράγωνα με σειρά ομοιότητας, με βάση το χρώμα με το οποίο συγκρίνονται. Μπορείτε να μεταφέρετε και να αποθέσετε τα τετράγωνα στην κάτω περιοχή, για να αλλάξετε τη σειρά τους." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Αυτόματο κλείδωμα" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Αποθήκ." + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Απόρριψη" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Ακύρωση" + diff --git a/po_sdk/en.po b/po_sdk/en.po new file mode 100755 index 0000000..be7cab0 --- /dev/null +++ b/po_sdk/en.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Swipe screen to unlock." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 attempt left." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d attempts left." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Incorrect password." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Missed call" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Missed calls" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Wallpapers" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Tap and hold the screen, then tilt the device towards you to unlock it. If the screen does not unlock, try tiling the device more. When motion unlock is set, motion will be automatically enabled in Settings." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Select application" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Lock screen wallpaper changed." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Home screen wallpaper changed." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Swipe" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Lock screen settings" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Lock screen" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Tap and hold the screen, then tilt the device towards you to unlock it. If the screen does not unlock, try tilting the device more." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Simple password" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Screen lock type" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Password" + +msgid "IDS_ST_BODY_NONE" +msgstr "None" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Motion" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Edit" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "No SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutorial complete." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Invalid action. Try again." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Back" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Processing..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Select wallpaper" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Close" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Searching" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "No service" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Incorrect PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Enter PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Enter password." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Edit" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Close" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Try again in 1 second." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Fully charged." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 missed call" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "New message" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 new message" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "You have attempted to unlock the device incorrectly %1$d times. You have %2$d attempts left before the device is reset to factory defaults and all data is erased." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Try again in %d seconds." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Swipe screen to view message" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Swipe screen to view call log" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "No match" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Enter PIN to view message" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Enter PIN to view call log" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Enter password to view message" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Enter password to view call log" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Dual clock" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Camera shortcut" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Incorrect PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Return to call" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternative password" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Unlock via Tizen account" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Unlock via\nTizen account" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "You have %1$d missed calls and %2$d unread messages." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "You have attempted to unlock the device incorrectly %d times. It will now be reset to factory defaults and all data will be erased." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Swipe the screen to view the call log." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Swipe the screen to open Messages." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Simple password lock will be automatically enabled if your Gear is too far away to be detected. When your Gear is detected, your screen lock type will be changed to Swipe lock." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d new messages" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d missed calls" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d to %2$d digits or letters required." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Enter unlock PIN." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Enter 4-digit PIN." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Emergency call" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Charging: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "CLOSE" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Fingerprint" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Select applications" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Cancel" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Weather" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Home" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Drag and drop the coloured squares from the upper area to the lower area or tap the coloured squares in the upper area in order of similarity to the colour that is being compared. You can drag and drop the squares in the lower area to re-order them." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Auto lock" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Save" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Discard" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancel" + diff --git a/po_sdk/en_PH.po b/po_sdk/en_PH.po new file mode 100755 index 0000000..94c1b7b --- /dev/null +++ b/po_sdk/en_PH.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Swipe screen to unlock." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 attempt left." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d attempts left." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Incorrect password." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Missed call." + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Missed calls" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Wallpapers" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Tap and hold the screen, then tilt the device towards you to unlock it. If the screen does not unlock, try tiling the device more. When motion unlock is set, motion will be automatically enabled in Settings." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Select application" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Lock screen wallpaper changed." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Home screen wallpaper changed." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Swipe" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Lock screen settings" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Lock screen" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Tap and hold the screen, then tilt the device towards you to unlock it. If the screen does not unlock, try tilting the device more" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Simple password" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Screen lock type" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Password" + +msgid "IDS_ST_BODY_NONE" +msgstr "None" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Motion" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Edit" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "No SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutorial complete." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Invalid action. Try again." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Back" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Processing..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Select wallpaper" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Close" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Searching" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "No service" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Incorrect PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Enter PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Enter password" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Edit" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Close" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Try again in 1 second." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Fully charged." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 missed call" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "New message" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 new message" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "You have attempted to unlock the device incorrectly %1$d times. You have %2$d attempts left before the device is reset to factory defaults and all data is erased." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Try again in %d seconds." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Swipe screen to view message" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Swipe screen to view call log" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "No match" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Enter PIN to view message" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Enter PIN to view call log" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Enter password to view message" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Enter password to view call log" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Dual clock" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Camera shortcut" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Incorrect PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Return to call" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternative password" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Unlock via Tizen account" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Unlock via\nTizen account" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "You have %1$d missed calls and %2$d unread messages." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "You have attempted to unlock the device incorrectly %d times. It will now be reset to factory defaults and all data will be erased." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Swipe the screen to view the call log." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Swipe the screen to open Messages." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Simple password lock will be automatically enabled if your Gear is too far away to be detected. When your Gear is detected, your screen lock type will be changed to Swipe lock." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d new messages" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d missed calls" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d to %2$d digits or letters required." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Enter Unlock PIN." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Enter 4-digit PIN." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Emergency call" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Charging: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "CLOSE" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Fingerprint" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Select applications" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Cancel" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Weather" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Home" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Drag and drop the colored squares from the upper area to the lower area or tap the colored squares in the upper area in order of similarity to the color that is being compared. You can drag and drop the squares in the lower area to re-order them" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Auto-lock" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Save" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Discard" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancel" + diff --git a/po_sdk/en_US.po b/po_sdk/en_US.po new file mode 100755 index 0000000..74242c2 --- /dev/null +++ b/po_sdk/en_US.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Swipe screen to unlock" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 attempt left." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d attempts left." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Incorrect password." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Missed call" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Missed calls." + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Wallpapers" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Press and hold the screen, then tilt the device towards you to unlock it. If the screen does not unlock, try tilting the device more. When motion unlock is set, motion will be automatically turned on in Settings." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Select application" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Lock screen wallpaper changed." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Home screen wallpaper changed." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Swipe" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Lock screen settings" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Lock screen" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Tap and hold the screen, then tilt the device towards you to unlock it. If the screen does not unlock, try tilting the device more." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Simple password" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Screen lock type" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Password" + +msgid "IDS_ST_BODY_NONE" +msgstr "None" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Motion" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Edit" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "No SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutorial complete." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Invalid action. Try again." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Back" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Processing..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Select wallpaper" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Close" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Searching" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "No service" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Incorrect PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Enter PIN" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Enter password" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Edit" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Close" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Try again in 1 second." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Fully charged." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 missed call" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "New message" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 new message" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "You have attempted to unlock the device incorrectly %1$d times. You have %2$d attempts left before the device is reset to factory defaults and all data is erased." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Try again in %d seconds." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Swipe screen to view message" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Swipe screen to view call log" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "No match" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Enter PIN to view message" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Enter PIN to view call log" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Enter password to view message" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Enter password to view call log" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Dual clock" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Camera shortcut" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Incorrect PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Return to call" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternative password" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Unlock via Tizen account" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Unlock via\nTizen account" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "You have %1$d missed calls and %2$d unread messages." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "You have attempted to unlock the device incorrectly %d times. It will now be reset to factory defaults and all data will be erased." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Swipe the screen to view the call log." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Swipe the screen to open Messages." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Simple password lock will be turned on automatically if your Gear is too far away to be detected. When your Gear is detected, your screen lock type will change to Swipe lock." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d new messages" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d missed calls" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d to %2$d digits or letters required." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Enter Unlock PIN." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Enter 4-digit PIN." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Emergency calls only" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Emergency call" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Charging: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "CLOSE" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Fingerprint" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Select applications" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Cancel" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Weather" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Home" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Drag and drop the colored squares from the upper area to the lower area or tap the colored squares in the upper area in order of similarity to the color that is being compared. You can drag and drop the squares in the lower area to re-order them." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Auto-lock" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Save" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Discard" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancel" + diff --git a/po_sdk/es_ES.po b/po_sdk/es_ES.po new file mode 100755 index 0000000..e8c064d --- /dev/null +++ b/po_sdk/es_ES.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Sólo llamadas de emergencia" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Deslizar pantalla para desbloquear" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Último intento" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "Quedan %d intentos." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Contraseña incorrecta" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Llamada perdida" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Llamadas perdidas" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Fondos" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Mantenga pulsada la pantalla y, después, incline el dispositivo hacia usted para desbloquearla. Si la pantalla no se desbloquea, inténtelo inclinando más el dispositivo. Cuando se establece el desbloqueo por movimiento, el movimiento se activará automáticamente en Ajustes." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Seleccionar aplicación" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Fondo de pantalla de bloqueo cambiado" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Fondo de pantalla de inicio cambiado" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Deslizar" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Ajustes de pantalla de bloqueo" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Pantalla de bloqueo" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Mantenga pulsada la pantalla e incline el dispositivo hacia usted para desbloquearla. Si la pantalla no se desbloquea, intente inclinar más el dispositivo." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Contraseña simple" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Tipo de bloqueo de pantalla" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Itinerancia" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Contraseña" + +msgid "IDS_ST_BODY_NONE" +msgstr "Ninguno" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Movimiento" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Solo llamadas emergencia" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "No hay SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutorial finalizado." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Acción no válida. Vuelva a intentarlo." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Atrás" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Procesando..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Seleccionar fondo de pantalla" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Cerrar" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Buscando" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Sin servicio" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN incorrecto" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Introducir PIN" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Introducir contraseña" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Cerrar" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Inténtelo de nuevo en 1 segundo" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Carga completa" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 llamada perdida" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Mensaje nuevo" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 mensaje nuevo" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Ha intentado desbloquear el dispositivo de forma incorrecta %1$d veces. Le quedan %2$d intentos antes de que el dispositivo se restablezca a los valores predeterminados de fábrica y se eliminen todos los datos." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Int. de nuevo en %d seg" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Deslice el dedo sobre la pantalla para ver el mensaje" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Deslice el dedo sobre la pantalla para ver registro llamadas" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Ninguna coincidencia" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Introduzca el PIN para ver el mensaje" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Introduzca el PIN para ver el registro de llamadas" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Introduzca la contraseña para ver el mensaje" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Introduzca la contraseña para ver el registro de llamadas" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Reloj dual" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Acceso directo de cámara" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN incorrecto" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Volver a llamada" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Contr. alternativa" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Desbloquear mediante cuenta Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Desbloquear con\ncuenta Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Tiene %1$d llamadas perdidas y %2$d mensajes sin leer" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Ha intentado desbloquear el dispositivo de forma incorrecta %d veces. Ahora se restablecerá a los valores predeterminados de fábrica y se eliminarán todos los datos." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Deslice el dedo sobre la pantalla para ver el registro de llamadas." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Deslice el dedo sobre la pantalla para abrir Mensajes." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "El bloqueo de contraseña simple se activará automáticamente si Gear está demasiado lejos para ser detectado. Cuando se detecte el Gear, el tipo de bloqueo de pantalla cambiará a bloqueo por deslizamiento." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d mensajes nuevos" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d llamadas perdidas" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Se requieren de %1$d a %2$d dígitos o letras" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Introduzca PIN de desbloqueo" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Introduzca PIN de 4 dígitos" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Sólo llamadas de emergencia" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Llamada de emergencia" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Cargando: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "CERRAR" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Huella digital" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Seleccionar aplicaciones" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Cancelar" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Clima" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Inicio" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Arrastre y suelte los cuadrados de color desde el extremo superior al inferior o pulse los cuadrados en el extremo superior en orden de similitud con el color con el que se compara. Puede arrastrar y soltar los cuadrados en el extremo inferior para cambiarlos de orden." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Bloqueo automático" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Guardar" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Descart" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancelar" + diff --git a/po_sdk/es_US.po b/po_sdk/es_US.po new file mode 100755 index 0000000..6c3f628 --- /dev/null +++ b/po_sdk/es_US.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Sólo llamadas de emergencia." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Deslice el dedo por la pantalla para desbloquearla." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Último intento." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "Quedan %d intentos." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Contraseña incorrecta." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Llamada perdida" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Llamadas perdidas" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Fondos de pantalla" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Mantenga pulsada la pantalla, luego incline el dispositivo hacia usted para desbloquearlo. Si la pantalla no se desbloquea, intente inclinando más el dispositivo. Cuando se define el desbloqueo por movimiento, el movimiento se activará automáticamente en Configuración." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Seleccionar aplicación" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Se modificó el fondo de pantalla de bloqueo." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Se cambió el fondo de pantalla de inicio." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Deslizar" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Configuración del bloqueo de pantalla" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Pantalla de bloqueo" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Mantenga pulsada la pantalla, luego incline el dispositivo hacia usted para desbloquearlo. Si la pantalla no se desbloquea, intente inclinando más el dispositivo." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Contraseña simple" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Tipo de bloqueo de pantalla" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Contraseña" + +msgid "IDS_ST_BODY_NONE" +msgstr "Ninguno" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Movimiento" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Sólo llamadas de emerg." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "No hay tarjeta SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutorial completo." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Acción no válida. Inténtelo de nuevo." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Atrás" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Procesando..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Seleccionar fondo de pantalla" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "Aceptar" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Cerrar" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Buscando" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Sin servicio" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN incorrecto." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Introducir PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Introducir contraseña." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Cerrar" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Inténtelo de nuevo en 1 segundo." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Carga completa." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 llamada perdida" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nuevo mensaje" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 nuevo mensaje " + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Intentó desbloquear el dispositivo incorrectamente %1$d veces. Le quedan %2$d intentos antes de que el dispositivo se restablezca a sus valores predeterminados de fábrica y se eliminen todos los datos." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Intentar de nuevo en %d seg." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Deslizar pantalla para ver mensaje" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Deslizar pantalla para ver registro de llamadas" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "No hay coincidencias" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Introducir PIN para ver mensaje" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Introducir PIN para ver registro de llamadas" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Introducir contraseña para ver mensaje" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Introducir contraseña para ver registro de llamadas" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Reloj dual" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Atajo de cámara" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN incorrecto" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Volver a la llamada" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Contraseña alterna" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Desbloquear mediante cuenta Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Desbloquear vía\ncuenta Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Tiene %1$d llamadas perdidas y %2$d mensajes sin leer." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Intentó desbloquear el dispositivo incorrectamente %d veces. Ahora se restablecerá a sus valores predeterminados de fábrica y se eliminarán todos los datos." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Deslice la pantalla para ver el registro de llamadas." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Deslice la pantalla para abrir Mensajes." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "El bloqueo de contraseña simple se activará automáticamente si Gear está demasiado lejos para ser detectado. Cuando se detecte el Gear, el tipo de bloqueo de pantalla cambiará a bloqueo al deslizar." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d nuevos mensajes" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d llamadas perdidas" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Se requieren de %1$d a %2$d dígitos o letras." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Introducir PIN de desbloqueo." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Introducir el código PIN de 4 dígitos." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Sólo llamadas de emergencia." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Llamada de emergencia" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Cargando: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "CERRAR" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Huella digital" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Seleccionar aplicaciones" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Introd. contraseña de recup." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Cancelar" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Clima" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Privado" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Arrastre y suelte los cuadrados de colores del área superior al área inferior o pulse los cuadrados de colores del área superior en orden de similitud al color que se está comparando. Puede arrastrar y soltar los cuadrados en el área inferior para reordenarlos." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Bloqueo automático" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Guardar" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Descart." + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancelar" + diff --git a/po_sdk/et.po b/po_sdk/et.po new file mode 100755 index 0000000..47a4b38 --- /dev/null +++ b/po_sdk/et.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Ainult hädaabikõned." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Avamiseks libistage sõrme üle ekraani." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 katse on jäänud." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d katset jäänud." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Vale parool." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Vastamata kõne" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Vastamata kõned" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Taustpildid" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Seadme avamiseks toksake ekraani ja hoidke sellel sõrme ning kallutage seadet enda poole. Kui ekraan ei avane, kallutage seadet rohkem. Kui määratud on Liigutusega avamine, aktiveeritakse liigutused menüüs Seaded automaatselt." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Vali rakendus" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Lukustusekraani taustpilti on muudetud." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Avaekraani taustpilti on muudetud." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Libistamine" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Lukustusekraani seaded" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Lukustusekraan" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Seadme avamiseks toksake ekraani ja hoidke sellel sõrme ning kallutage seadet enda poole. Kui ekraan ei avane, kallutage seadet rohkem." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Lihtne parool" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Ekraaniluku tüüp" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Rändlus" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Parool" + +msgid "IDS_ST_BODY_NONE" +msgstr "Puudub" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Liikumisanduri seaded" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Muuda" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Ainult hädaabikõned" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM-i pole" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Õpetus on lõpule viidud." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Vale toiming. Proovige uuesti." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Tagasi" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Töötlemine..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Vali taustpilt" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Sulge" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Otsimine" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Teenus puudub" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Vale PIN-kood." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Sisestage PIN-kood." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Sisestage parool." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Muuda" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Sulge" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Proovige 1 sekundi parast uuesti." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Laetud." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 vastamata kõne" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Uus sõnum" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 uus sõnum" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Te olete proovinud seadet valesti lukust avada %1$d korda. %2$d katset on jäänud enne, kui seade lähtestatakse tehase vaikeseadetele ja kõik andmed kustutatakse." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Proovige %d sek parast." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Libistage sõrme ekraanil, et kuvada sõnum" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Libistage sõrme ekraanil, et kuvada kõnelogi" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Vasteid pole" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Sisestage sõnumi kuvamiseks PIN-kood" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Sisestage kõnelogi kuvamiseks PIN-kood" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Sisestage sõnumi kuvamiseks parool" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Sisestage kõnelogi kuvamiseks parool" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Kaksikkell" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Kaamera otsetee" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Vale PIN-kood" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Naase kõnele" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternatiivne parool" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Ava Tizeni\nkonto kaudu" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Ava Tizeni\nkonto kaudu" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Teil on %1$d vastamata konet ja %2$d lugemata sonumit." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Te olete proovinud seadet valesti lukust avada %d korda. Nüüd lähtestatakse see tehase vaikeseadetele ning kõik andmed kustutatakse." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Libistage sõrme ekraanil, et kuvada kõnelogi." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Libistage sõrme ekraanil, et avada rakendust Sõnumid." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Lihtne paroolilukk aktiveeritakse automaatselt, kui teie seade Gear on tuvastamiseks liiga kaugel. Kui teie Gear tuvastatakse, lülitub ekraaniluku tüüp libistamisega lukuks." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d uut sõnumit" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d vastamata kõnet" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Nõutud on %1$d kuni %2$d numbrit või tähte." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Sisestage avamise PIN-kood." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Sisestage 4-numbriline PIN-kood." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Ainult hädaabikõned." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Hädaabikõne" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Laadimine: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "SULGE" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Sõrmejälg" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Vali rakendused" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Tühista" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Ilm" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Kodu" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Lohistage värvilised ruudud ülemiselt alalt alumisele alale või toksake värvilisi ruute ülemisel alal võrreldava värvi sarnasuse järjestuses. Saate lohistada ruute alumisel alal, et neid ümber korraldada." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Automaatlukustus" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Salvesta" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Loobu" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Tühista" + diff --git a/po_sdk/eu.po b/po_sdk/eu.po new file mode 100755 index 0000000..e04603d --- /dev/null +++ b/po_sdk/eu.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Larrialdi deiak bakarrik" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Irristatu pantaila desblokeatzeko" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Ahalegin 1 gelditzen zaizu" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d saiakera geratzen dira" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Pasahitz okerra" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Galdutako deia" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Galdutako deiak" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Pantaila atzealdea" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Ukitu eta eutsi pantaila ukitu, ondoren, inklinatu gailua zure alderantz desblokeatzeko. Pantaila ez bada desblokeatzen, saiatu gailua gehiago inklinatzen. Mugimendu desblokeoa ezarrita dagoenean, mugimendua automatikoki gaituko da Ezarpenetan." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Hautatu aplikazioa" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Blokeo pantailaren horma papera aldatuta" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Pantaila nagusiaren horma papera aldatuta" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Mugitu" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Blokeo pantailaren ezarpenak" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Blokeo pantaila" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Ukitu eta eutsi pantaila ukitu, ondoren, inklinatu gailua zure alderantz desblokeatzeko. Pantaila ez bada desblokeatzen, saiatu gailua gehiago inklinatzen." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Pasahitz sinplea" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Pantaila blokeo mota" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Ibiltaritza" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Pasahitza" + +msgid "IDS_ST_BODY_NONE" +msgstr "Bat ere ez" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Mugimendua" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editatu" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Larrialdi deiak soilik" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Ez dago SIM txartelik" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutoriala osatuta" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Ekintza baliogabea. Saiatu berriz." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Atzera" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Prozesatzen..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Aukeratu horma-papera" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "Ados" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Itxi" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Bilatzen" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Zerbitzurik gabe" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN okerra" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PINa idatzi" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Pasahitza idatzi" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Editatu" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Itxi" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Saiatu berriz segundo 1 barru" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Guztiz kargatuta" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "Dei galdu 1" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Mezu berria" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "Mezu berria" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Gailua modu desegokian desblokeatzen saiatu zara %1$d aldiz. %2$d saio geratzen zaizkizu gailuan fabrikako hobespenak berrezarri eta datu guztiak ezabatu aurretik." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Saiatu berriz %d segundoren ondoren" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Irristatu pantaila mezua ikusteko" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Irristatu pantailan dei erregistroa ikusteko" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Emaitzarik ez" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Idatzi PINa mezua ikusteko" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Idatzi PINa dei erregistroa ikusteko" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Idatzi pasahitza mezua ikusteko" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Idatzi pasahitza dei erregistroa ikusteko" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Erloju duala" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Kamera lasterbidea" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN okerra" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Itzuli deira" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Ordezko pasahitza" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Desblokeatu Tizen kontu baten bidez" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Desblokeatu\nTizen kontuaz" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "%1$d dei galdu eta irakurri gabeko %2$d mezu dituzu" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Gailua modu desegokian desblokeatzen saiatu zara %d aldiz. Orain, fabrikako hobespenak berrezarri eta datu guztiak ezabatuko dira." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Irristatu pantailan, dei erregistro bat ikusteko." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Irristatu pantaila Mezuak irekitzeko." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Blokeo pasahitz sinplea automatikoki gaituko da zure Gear hautemateko urrunegi badago. Zure Gear detektatu denean, zure pantailaren blokeo mota Irristatze blokeora aldatuko da." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d mezu berri" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d dei galdu" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d eta %2$d digitu edo letra artean behar dira" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Adierazi desblokeatzeko PINa" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Adierazi 4 digituko PINa" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Larrialdi deiak bakarrik" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Emergentzia deia" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Kargatzen: %%d" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ITXI" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Hatz marka" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Hautatu aplikazioak" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Ezeztatu" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Eguraldia" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Etxea" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Arrastatu eta utzi goiko aldeko koloreztatutako koadroak beheko aldean edo ukitu goiko aldeko koloreztatutako koadroak konparatutako kolorearekin duten antzerakotasun ordenaren arabera. Beheko aldeko koadroak arrastatu eta utzi ditzakezu berriz ordenatzeko." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Blokeatze automatikoa" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Gorde" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Baztertu" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Ezeztatu" + diff --git a/po_sdk/fi.po b/po_sdk/fi.po new file mode 100755 index 0000000..5830e18 --- /dev/null +++ b/po_sdk/fi.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Vain hätäpuhelut" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Poista lukitus pyyhkäisemällä näyttöä." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 yritys jäljellä" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d yritystä jäljellä" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Virheellinen salasana" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Vastaamaton puhelu" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Vastaamatonta puhelua" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Taustakuvat" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Poista näytön lukitus painamalla näyttöä jonkin aikaa ja kallistamalla sitten laitetta itseäsi kohti. Jos näytön lukitus ei poistu, yritä kallistaa laitetta enemmän. Kun lukitus liiketoiminnolla on asetettu, liike otetaan Asetukset-kohdassa automaattisesti käyttöön." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Valitse sovellus" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Lukitusnäytön taustakuva vaihdettu." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Alkunäytön taustakuva vaihdettu." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Pyyhkäisy" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Lukitusnäytön asetukset" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Lukitusnäyttö" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Poista näytön lukitus painamalla näyttöä jonkin aikaa ja kallistamalla sitten laitetta itseäsi kohti. Jos näytön lukitus ei poistu, yritä kallistaa laitetta enemmän." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Yksinkertainen salasana" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Näytön lukituksen tyyppi" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Verkkovierailu" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Salasana" + +msgid "IDS_ST_BODY_NONE" +msgstr "Ei mitään" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Liike" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Muokkaa" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Vain hätäpuhelut" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Ei SIM-korttia" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Opetusohjelma suoritettu." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Virheellinen toiminto. Yritä uudelleen." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Takaisin" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Käsitellään..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Valitse taustakuva" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Sulje" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Haetaan" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Ei palvelua" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Virheellinen PIN-koodi." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Anna PIN-koodi." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Kirjoita salasana." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Muokkaa" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Sulje" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Yritä 1 sekunnin kuluttua uudelleen." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Täyteen ladattu." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 vastaamaton puhelu" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Uusi viesti" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 uusi viesti" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Olet yrittänyt poistaa laitteen lukituksen virheellisesti %1$d kertaa. Sinulla on %2$d yrityskertaa jäljellä, ennen kuin laitteen tehdasasetukset palautetaan ja kaikki tiedot poistetaan." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Yritä %d s kul. uudelleen." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Näytä viesti pyyhkäisemällä näyttöä" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Näytä puheluloki pyyhkäisemällä näyttöä" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Ei vastaavuuksia" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Anna PIN-koodi viestin tarkastelua varten" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Anna PIN-koodi puhelulokin tarkastelua varten" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Anna salasana viestin tarkastelua varten" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Anna salasana puhelulokin tarkastelua varten" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Kaksoiskello" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Kameran pikanäppäin" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Väärä PIN-koodi" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Palaa puheluun" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Vaihtoeht. salasana" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Poista lukitus Tizen-tilin kautta" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Poista lukitus\nTizen-tilin k." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "%1$d vastaamatonta puhelua ja %2$d lukematonta viestiä" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Olet yrittänyt poistaa laitteen lukituksen virheellisesti %d kertaa. Laitteen tehdasasetukset palautetaan ja kaikki tiedot poistetaan." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Näytä puheluloki pyyhkäisemällä näyttöä." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Avaa Viestit pyyhkäisemällä näyttöä." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Yksinkertainen salasanalukitus otetaan automaattisesti käyttöön, jos Gear on niin kaukana, ettei sitä havaita. Kun Gear havaitaan, näytön lukitustavaksi vaihdetaan Pyyhkäisylukitus." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d uutta viestiä" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d vastaamatonta puhelua" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Oltava %1$d–%2$d numeroa tai kirjainta." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Anna lukituksen poistotoiminnon PIN-koodi." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Anna nelinumeroinen PIN-koodi." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Vain hätäpuhelut" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Hätäpuhelu" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Ladataan: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "SULJE" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Sormenjälki" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Valitse sovellukset" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Peruuta" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Sää" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Koti" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Vedä ja pudota värikkäät neliöt yläalueelta ala-alueelle tai napauta yläalueella olevia neliöitä siinä järjestyksessä kuin ne vastaavat verrattavaa väriä. Voit järjestellä neliöt uudelleen vetämällä ja pudottamalla ne ala-alueelle." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Automaattinen lukitus" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Tallenna" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Hylkää" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Peruuta" + diff --git a/po_sdk/fr.po b/po_sdk/fr.po new file mode 100755 index 0000000..5add24e --- /dev/null +++ b/po_sdk/fr.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Appels d'urgence uniquement" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Faites glisser votre doigt sur l'écran pour déverrouiller." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 essai restant" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d essais restants" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Mot de passe incorrect" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Appel manqué" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Appels manqués" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Fonds d'écran" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Maintenez votre doigt appuyé sur l'écran, puis inclinez l'appareil vers vous pour le déverrouiller. Si l'écran ne se déverrouille pas, essayez d'incliner l'appareil davantage. Lorsque la fonction de déverrouillage par mouvement est définie, l'interaction par mouvement est automatiquement activée dans Paramètres." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Sélectionnez une application" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Fond d'écran de verrouillage modifié" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Fond d'écran d'accueil modifié" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Glissement" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Paramètres de l'écran de verrouillage" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Écran de verrouillage" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Maintenez votre doigt sur l'écran, puis inclinez l'appareil vers vous pour le déverrouiller. Si l'écran ne se déverrouille pas, essayez d'incliner l'appareil davantage." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Mot de passe simple" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Mode de déverrouillage" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Itinérance" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Mot de passe" + +msgid "IDS_ST_BODY_NONE" +msgstr "Aucun(e)" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Mouvements" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Modifier" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Appels urgence uniquement" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Pas de carte SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Didacticiel terminé." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Action non valide. Réessayez." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Retour" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "En cours..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Sélectionner un fond d'écran" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Fermer" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Recherche" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Aucun service" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Code PIN incorrect" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Saisir le code PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Saisir le mot de passe." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Modifier" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Fermer" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Réessayer dans 1 secondes." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Batterie rechargée" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 appel manqué" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nouveau message" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 nouveau message" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Vous avez essayé de déverrouiller l'appareil de façon incorrecte à %1$d reprises. Il reste %2$d tentatives avant le rétablissement des paramètres d'origine et la suppression de toutes les données." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Réessayez dans %d secondes." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Faire glisser votre doigt pour afficher le message" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Faire glisser votre doigt pour afficher le journal d'appels" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Aucune correspondance" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Saisir le code PIN pour afficher le message" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Saisir le code PIN pour afficher le journal d'appels" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Saisir le mot de passe pour afficher le message" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Saisir le mot de passe pour afficher le journal d'appels" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Double horloge" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Raccourci Appareil photo" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Code PIN incorrect" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Revenir à l'appel" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "MDP de secours" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Déverrouiller via un compte Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Déverrouil. via\ncompte Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Vous avez %1$d appels manqués et %2$d messages non lus." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Vous avez essayé de déverrouiller l'appareil de façon incorrecte à %d reprises. Les paramètres d'origine vont maintenant être rétablis et toutes les données effacées." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Faites glisser l'écran pour afficher le journal d'appels." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Faites glisser l'écran pour ouvrir les messages." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Le verrouillage avec mot de passe simple sera automatiquement activé si votre Gear est trop loin pour pouvoir être détecté. Lorsque votre Gear est détecté, le verrouillage d'écran passe en mode verrouillage par glissement." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d nouveaux messages" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d appels manqués" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d à %2$d chiffres ou lettres requis" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Entrez le code PIN de déverrouillage." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Entrez un code PIN à 4 chiffres." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Appels d'urgence uniquement" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Appel d'urgence" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Charge : %d %" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "FERMER" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Empreinte" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Sélectionner les applications" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Entrer mot de passe de récup." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Annuler" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Météo" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Domicile" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Glissez-déposez les carrés de couleur du haut vers le bas ou appuyez sur les carrés de couleur dans la zone supérieure par ordre de similarité à la couleur comparée. Vous pouvez glisser-déposer les carrés dans la zone inférieure pour les réorganiser." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Verrouillage automatique" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Enreg." + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Ignorer" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Annuler" + diff --git a/po_sdk/fr_CA.po b/po_sdk/fr_CA.po new file mode 100755 index 0000000..bd62e8c --- /dev/null +++ b/po_sdk/fr_CA.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Appels d'urgence uniquement." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Faites glisser votre doigt sur l'écran pour déverrouiller." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 essai restant." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d essais restants." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Mot de passe incorrect." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Appel manqué" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Appels manqués" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Fonds d'écran" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Touchez longuement l'écran, puis inclinez l'appareil vers vous pour le déverrouiller. Si l'écran ne se déverrouille pas, essayez d'incliner l'appareil davantage. Lorsque la fonction de déverrouillage par mouvement est définie, l'interaction par mouvement est automatiquement activée dans Paramètres." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Sélectionnez une application" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Fond d'écran de verrouillage modifié." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Fond d'écran d'accueil modifié." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Glisser" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Paramètres de l'écran de verrouillage" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Écran verrouillé" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Touchez longuement l'écran, puis inclinez l'appareil vers vous pour le déverrouiller. Si l'écran ne se déverrouille pas, essayez d'incliner l'appareil davantage." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Mot de passe simple" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Type de verrouillage de l'écran" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Itinérance" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Mot de passe" + +msgid "IDS_ST_BODY_NONE" +msgstr "Aucun" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Mouvement" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Modifier" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Appels urgence uniquement" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Pas de carte SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Didacticiel terminé" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Action non valide. Réessayez." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Précédent" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Traitement…" + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Sélectionner un fond d'écran" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Fermer" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Recherche" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Aucun service" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "NIP incorrect" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Saisir le NIP." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Saisir le mot de passe." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Modifier" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Fermer" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Réessayer dans 1 seconde." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Pile rechargée" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 appel manqué" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nouveau message" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 nouveau message" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Vous avez essayé de déverrouiller l'appareil de façon incorrecte à %1$d reprises. Il reste %2$d tentatives avant le rétablissement des paramètres d'origine et la suppression de toutes les données." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Réessayez ds %d secondes." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Faire glisser votre doigt pour afficher le message" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Glissez votre doigt pour afficher le journal d'appels" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Aucune correspondance" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Saisir le code NIP pour afficher le message" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Saisir le code NIP pour afficher le journal d'appels" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Saisir le mot de passe pour afficher le message" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Saisir le mot de passe pour afficher le journal d'appels" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Double horloge" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Raccourci Appareil photo" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "NIP incorrect" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Revenir à l'appel" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "MDP alternatif" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Déverrouiller via un compte Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Déverrouil. via\ncompte Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Vous avez %1$d appels manqués et %2$d messages non lus." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Vous avez essayé de déverrouiller l'appareil de façon incorrecte à %d reprises. Les paramètres d'origine vont maintenant être rétablis et toutes les données effacées." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Faites glisser l'écran pour afficher le journal d'appels." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Faites glisser l'écran pour ouvrir les messages." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Le verrouillage avec mot de passe simple sera automatiquement activé si votre Gear est trop loin pour pouvoir être détecté. Lorsque votre Gear est détecté, le verrouillage d'écran passe en mode verrouillage par glissement." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d nouveaux messages" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d appels manqués" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d à %2$d chiffres ou lettres requis." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Entrez le NIP de déverrouillage." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Entrez un code NIP à 4 chiffres." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Appels d'urgence uniquement." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Appel d'urgence" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Charge : %d %" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "FERMER" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Empreinte" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Sélectionner les applications" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Entrer mot de passe de récup." + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Annuler" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Météo" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Domicile" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Glissez-déposez les carrés de couleur du haut vers le bas ou touchez les carrés de couleur dans la zone supérieure par ordre de similarité à la couleur comparée. Vous pouvez glisser-déposer les carrés dans la zone inférieure pour les réorganiser." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Verrouillage automatique" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Enregistrer" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Ignorer" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Annuler" + diff --git a/po_sdk/ga.po b/po_sdk/ga.po new file mode 100755 index 0000000..a26aec8 --- /dev/null +++ b/po_sdk/ga.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Glaonna éigeandála amháin." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Svaidhpeáil an scáileán le díghlasáil" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 iarracht fágtha." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d iarracht fágtha." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Pasfhocal mícheart." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Glao caillte" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Glaonna a cailleadh" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Cúlbhrait" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Tapáil agus coinnigh an scáileán, ansin claon an gléas i do threosa lena dhíghlasáil. Mura ndéantar an scáileán a dhíghlasáil, triail an ngléas a chlaonadh a thuilleadh. Nuair atá díghlasáil gluaisne socraithe, cumasófar gluaisne go huathoibríoch i Socruithe." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Roghnaigh feidhmchlár" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Cúlbhrat an scáileáin ghlasála athraithe." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Cúlbhrat an scáileáin bhaile athraithe." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Svaidhpeáil" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Socruithe glasála scáileáin" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Glasáil an scáileán" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Tapáil agus coinnigh an scáileán, ansin claon an gléas chugat lena dhíghlasáil. Mura ndéantar an scáileán a dhíghlasáil, triail an gléas a chlaonadh tuilleadh." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Pasfhocal simplí" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Cineál glas scáileáin" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Ag fánaíocht" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Pasfhocal" + +msgid "IDS_ST_BODY_NONE" +msgstr "Dada" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Gluaisne" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Cuir in eagar" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Snag snasta" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Glaonna éigeandála amháin" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Níl SIM ann" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Ceacht teagaisc curtha i gcrích." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Gníomh neamhbhailí. Triail arís." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Siar" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Ag próiseáil..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Roghnaigh cúlbhrat" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Dún" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Ag cuardach" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Níl seirbhís ann" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN mícheart." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Iontráil PIN" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Iontráil pasfhocal" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Cuir in eagar" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Dún" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Triail arís i gceann 1 soicind" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Lánluchtaithe." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 ghlao caillte" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Teachtaireacht nua" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 theachtaireacht nua" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Rinne tú iarracht mhícheart an gléas a dhíghlasáil %1$d uair. Tá %2$d iarracht fágtha sula bhfillfear an gléas ar réamhshocruithe monarchan agus sula scriosfar gach sonra." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Triail arís i gceann %d soicind" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Svaidhpeáil an scáileán le hamharc ar an teachtaireacht" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Svaidhpeáil an scáileán le hamharc ar an loga glaonna" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Níl meaits ann" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Iontráil PIN le hamharc ar an teachtaireacht" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Iontráil PIN le hamharc ar an loga glaonna" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Iontráil pasfhocal le hamharc ar an teachtaireacht" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Iontráil pasfhocal le hamharc ar an loga glaonna" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Déchlog" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Aicearra ceamara" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN mícheart" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Fill ar ghlao" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Pasfhocal eile" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Díghlasáil trí chuntas Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Díghlasáil\nle cuntas Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Tá %1$d glao caillte agus %2$d teachtaireacht neamhléite agat" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Rinne tú iarracht mhícheart an gléas a dhíghlasáil %d uair. Socrófar anois chuig na réamhshocruithe monarchan é agus scriosfar na sonraí go léir." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Svaidhpeáil an scáileán le hamharc ar an loga glaonna." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Svaidhpeáil an scáileán le Teachtaireachtaí a oscailt." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Cumasófar an Glas pasfhocail simplí go huathoibríoch mura féidir do Gear a bhrath. Nuair a bhraithfear do Gear arís, athrófar cineál do ghlais scáileáin chuig Glas svaidhpeála." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d teachtaireacht nua" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d glao caillte" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d suas le %2$d digit nó litir de dhíth." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Iontráil PIN Díghlasála" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Iontráil PIN 4 dhigit" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Glaonna éigeandála amháin." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Glao éigeandála" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Ag luchtú: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "DÚN" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Méarlorg" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Roghnaigh feidhmchláir" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Cealaigh" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Aimsir" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Baile" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Tarraing agus scaoil na cearnóga daite ón limistéar uachtair go dtí an limistéar íochtair nó tapáil na cearnóga daite sa limistéar uachtair in ord a gcomhchosúlachta leis an dath lena bhfuil sé i gcomparáid. Is féidir leat na cearnóga a tharraingt agus a scaoileadh sa limistéar thíos chun iad a athordú." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Uathghlas" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Sábháil" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Cuileáil" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cealaigh" + diff --git a/po_sdk/gl.po b/po_sdk/gl.po new file mode 100755 index 0000000..07dd1c3 --- /dev/null +++ b/po_sdk/gl.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Só chamadas de urxencia" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Pasa o dedo pola pantalla para desbloqueala" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Queda 1 intento" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "Quedan %d intentos" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Contrasinal non válido" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Chamada perdida" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Chamadas perdidas" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Fondos" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Mantén tocada a pantalla e, a continuación, inclina o dispositivo cara a ti para desbloquealo. Se a pantalla non se desbloquea, tenta inclinar máis o dispositivo. Cando o desbloqueo do movemento está activado, o movemento activarase automaticamente en Axustes." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Seleccionar aplicación" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Fondo de pantalla de bloqueo cambiado" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Fondo de pantalla de inicio cambiado" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Desprazar" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Axustes da pantalla de bloqueo" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Pantalla de bloqueo" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Mantén tocada a pantalla e, a continuación, inclina o dispositivo cara a ti para desbloquealo. Se a pantalla non se desbloquea, tenta inclinar máis o dispositivo." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Contrasinal sinxelo" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Tipo de bloqueo de pantalla" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Itinerancia" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Contrasinal" + +msgid "IDS_ST_BODY_NONE" +msgstr "Ningún" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Movemento" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Só chamadas de urxencia" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Non hai SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutorial completado" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Acción non válida. Téntao de novo." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Atrás" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Procesando..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Seleccionar fondo" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "Aceptar" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Cerrar" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Buscando" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Sen servizo" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN incorrecto" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Introducir PIN" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Introduza o contrasinal" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Pechar" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Téntao de novo dentro de 1 segundo" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Totalmente cargado" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 Chamada perdida" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nova mensaxe" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 nova mensaxe" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Tentaches desbloquear o dispositivo incorrectamente %1$d veces. Quédanche %2$d intentos antes de que se restablezan os axustes predeterminados de fábrica e se eliminen todos os datos do dispositivo." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Ténteo de novo en %d seg." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Pasa o dedo pola pantalla para ver a mensaxe" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Pasa o dedo pola pantalla para ver o rexistro de chamadas" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Non hai concordancias" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Introduce o PIN para ver a mensaxe" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Introduce o PIN para ver o rexistro de chamadas" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Introduce o contrasinal para ver a mensaxe" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Introduce o contrasinal para ver o rexistro de chamadas" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Reloxo dual" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Atallo da cámara" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN incorrecto" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Volver á chamada" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Contras. alternati." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Desbloquear mediante conta Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Desbloquear por\nconta Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Tes %1$d chamadas perdidas e %2$d mensaxes sen ler" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Tentaches desbloquear o dispositivo incorrectamente %d veces. Agora restableceranse os axustes predeterminados de fábrica e borraranse todos os datos." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Pasa o dedo pola pantalla para ver o rexistro de chamadas." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Pasa o dedo pola pantalla para abrir Mensaxes." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "O bloqueo mediante un contrasinal simple activarase automaticamente se o teu Gear se atopa demasiado lonxe para detectarse. Cando se detecte o teu Gear, o tipo de bloqueo da pantalla cambiarase a Bloqueo por desprazamento." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d mensaxes novas" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d chamadas perdidas" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Precísanse entre %1$d e %2$d díxitos ou letras" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Introduce o PIN de desbloqueo" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Introduce un PIN de 4 díxitos" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Só chamadas de urxencia" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Chamada de urxencia" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Cargando: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "PECHAR" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Impresión dixital" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Seleccionar aplicacións" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Cancelar" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Tempo" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Particular" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Arrastra e solta os cadrados de cor da parte superior á parte inferior ou toca os cadrados de cor que se atopan na parte superior en orde de similitude coa cor que se está a comparar. Podes arrastrar e soltar os cadrados na zona inferior para reordenalos." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Bloqueo automático" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Gardar" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Descar." + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancelar" + diff --git a/po_sdk/hi.po b/po_sdk/hi.po new file mode 100755 index 0000000..bf036d9 --- /dev/null +++ b/po_sdk/hi.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "केवल आपातकालीन कॉल्स।" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "अनलॉक करने के लिए स्क्रीन स्वाइप करें।" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 प्रयास शेष।" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d प्रयास शेष।" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "गलत पासवर्ड।" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "छूटी कॉल" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "छूटी कॉल्स" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "वॉलपेपर्स" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "स्क्रीन टैप और होल्ड करें, फिर डिवाइस अनलॉक करने के लिए इसे अपनी ओर झुकाएँ। यदि स्क्रीन अनलॉक नहीं होती हैं, तो डिवाइस और अधिक झुकाने का प्रयास करें। जब गति अनलॉक सेट है, तो सेटिंग्स में गति स्वचालित रूप से सक्षमित हो जाएगी।" + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "एप्लीकेशन चुनें" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "लॉक स्क्रीन वॉलपेपर बदल दिया गया।" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "होम स्क्रीन वॉलपेपर बदल दिया गया।" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "स्वाइप करें" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "लॉक स्क्रीन सेटिंग्स" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "लॉक स्क्रीन" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "डिवाइस को अनलॉक करने के लिए स्क्रीन टैप और होल्‍ड करें, फिर उसे अपनी ओर झुकाएँ। यदि स्क्रीन अनलॉक नहीं होती हैं, तो डिवाइस को और अधिक झुकाने का प्रयास करें।" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "आसान पासवर्ड" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "स्क्रीन लॉक प्रकार" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "रोमिंग" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "पासवर्ड" + +msgid "IDS_ST_BODY_NONE" +msgstr "कुछ नहीं" + +msgid "IDS_ST_BODY_MOTION" +msgstr "गति" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "रोजमेरी" + +msgid "IDS_ST_BODY_EDIT" +msgstr "संपादित करें" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "कूल जैज" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "चोको कुकी" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "केवल आपातकालीन कॉल्स" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "कोई SIM नहीं" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "शिक्षण पूर्ण।" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "अमान्य क्रिया। फिर से प्रयास करें।" + +msgid "IDS_COM_SK_BACK_A" +msgstr "पीछे" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "प्रक्रिया हो रही है..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "वॉलपेपर चुनें" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "ओके" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "बंद" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "खोज रहा है" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "कोई सेवा नहीं" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "गलत PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN प्रविष्ट करें।" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "पासवर्ड प्रविष्ट करें" + +msgid "IDS_COM_BODY_EDIT" +msgstr "संपादित करें" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "बंद करें" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1 सेकंड में फिर से कोशिश करें" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "पूर्ण चार्ज है।" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 छूटी कॉल" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "नया सन्देश" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 नया सन्देश" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "आपने %1$d बार गलत ढंग से डिवाइस अनलॉक करने का प्रयास किया है। आपके पास डिवाइस फ़ैक्टरी डिफ़ॉल्ट पर रीसेट होने और सभी डाटा मिटने से पहले %2$d प्रयास शेष है।" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d सेकंड में फिर से प्रयास करें।" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "सन्देश देखने के लिए स्क्रीन स्वाइप करें" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "कॉल लॉग देखने के लिए स्क्रीन स्वाइप करें" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "कोई मिलान नहीं" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "सन्देश देखने के लिए PIN प्रविष्‍ट करें" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "कॉल लॉग देखने के लिए PIN प्रविष्ट करें" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "सन्देश देखने के लिए पासवर्ड प्रविष्‍ट करें" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "कॉल लॉग देखने के लिए पासवर्ड प्रविष्ट करें" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "दोहरी घड़ी" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "कैमरा शॉर्टकट" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "गलत PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "कॉल पर वापस जाएँ" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "वैकल्पिक पासवर्ड" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen खाता के द्वारा अनलॉक करें" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen account\nद्वारा अनलॉक करें" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "आपके पास %1$d छूटी कॉल्स और %2$d अपठित सन्देश हैं।" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "आपने %d बार ग़लत ढ़ंग से डिवाइस अनलॉक करने का प्रयास किया है। यह अब फ़ैक्टरी डिफ़ॉल्ट में रीसेट किया जाएगा और सभी डाटा मिट जाएगा" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "कॉल लॉग देखने के लिए स्क्रीन स्वाइप करें।" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "संदेश खोलने के लिए स्क्रीन स्वाइप करें।" + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "यदि आपका गियर पता लगाए जाने के लिए बहुत दूर है, तो सरल पासवर्ड लॉक स्वचालित रूप से सक्षम हो जाएगा। आपके गियर का पता लगने पर, आपका स्क्रीन लॉक प्रकार स्वाइप लॉक में बदल जाएगा।" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d नए संदेश" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d छूटी कॉल्स" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d से %2$d तक अंक या वर्ण आवश्यक।" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "अनलॉक PIN प्रविष्ट करें।" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4-अंकीय PIN दर्ज करें" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "केवल आपातकालीन कॉल्स।" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "आपातकालीन कॉल" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "चार्ज हो रहा है: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "बंद करे" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "फिंगरप्रिंट" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "एप्लीकेशंस चुनें" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "रद्द" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "मौसम" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "होम" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "रंगीन वर्ग को ऊपरी क्षेत्र से निचले क्षेत्र में ड्रैग और ड्रॉप करें या जिस भी रंग की तुलना की जानी है उसकी समानता के क्रम में ऊपरी क्षेत्र में रंगीन वर्ग को टैप करें। आप वर्गों का क्रम परिवर्तित करने के लिए उनको निचले क्षेत्र में ड्रैग और ड्रॉप कर सकते है।" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "स्वतः लॉक" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "सुरक्षित" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "निरस्त" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "रद्द" + diff --git a/po_sdk/hr.po b/po_sdk/hr.po new file mode 100755 index 0000000..38ad97c --- /dev/null +++ b/po_sdk/hr.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Samo SOS pozivi." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Kliznite po zaslonu za otključavanje." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Još 1 pokušaj." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d pokušaja preostalo." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Neispravna lozinka." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Propušteni poziv" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Propušteni pozivi" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Pozadine" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Dodirnite i držite zaslon, zatim nagnite uređaj prema sebi da biste ga otključali. Ako se zaslon ne otključa, uređaj pokušajte još nagnuti. Kad je postavljeno otključavanje pokretom, pokret će se automatski uključiti u Postavkama." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Odaberi aplikaciju" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Pozadina zaslona zaključavanja promijenjena." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Pozadina početnog zaslona promijenjena." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Klizanje" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Postavke zaslona zaključavanja" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Zaslon zaključavanja" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Dodirnite i držite zaslon, zatim nagnite uređaj prema sebi da biste ga otključali. Ako se zaslon ne otključa, nagnite uređaj više." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Jednostavna lozinka" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Vrsta zaključavanja zaslona" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Šifra" + +msgid "IDS_ST_BODY_NONE" +msgstr "Ništa" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Pokreti" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Uredi" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Samo SOS pozivi" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Nema SIM-a" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Vodič dovršen." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Neispravna radnja. Ponovite." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Nazad" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Procesiranje..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Odaberite pozadinu" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Prekid" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Traženje" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Nema usluge" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Neispravan PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Unesite PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Unesite lozinku." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Uredi" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Prekid" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Ponovite nakon 1 sek." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Baterija napunjena." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 propušteni poziv" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nova poruka" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 nova poruka" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Pokušali ste neispravno otključati uređaj %1$d puta. Imate još %2$d pokušaja prije nego što se uređaj vrati na tvornički zadane postavke te se svi podaci izbrišu." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Ponovite nakon %d sek." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Prijeđite prstom po zaslonu za prikaz poruke" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Prijeđite prstom po zaslonu za prikaz popisa poziva" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Nema rezultata" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Unesite PIN za prikaz poruke" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Unesite PIN za prikaz popisa poziva" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Unesite lozinku za prikaz poruke" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Unesite lozinku za prikaz popisa poziva" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Dvostruki sat" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Prečac kamere" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Neispravan PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Natrag na poziv" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Zamjenska lozinka" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Otključajte preko Tizen računa" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Otključajte\nTizen računom" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Imate %1$d propuštenih poziva i %2$d nepročitanih poruka." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Pokušali ste neispravno otključati uređaj %d puta. Vratit će se na tvornički zadane postavke i svi će podaci biti izbrisani." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Kliznite po zaslonu za prikaz popisa poziva." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Kliznite po zaslonu da biste otvorili Poruke." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Zaključavanje jednostavnom šifrom automatski će se uključiti ako je Gear predaleko za prepoznavanje. Kad je Gear prepoznat, vrsta vašeg zaključavanja zaslona promijenit će se na zaključavanje klizanjem." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d novih poruka" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d propuštenih poziva" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Potrebno je %1$d do %2$d znamenki ili slova." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Unesite PIN za otključavanje." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Unesite PIN od 4 znamenke." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Samo SOS pozivi." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "SOS poziv" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Punjenje: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ZATVORI" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Otisak prsta" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Odabir aplikacija" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Prekid" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Prognoza" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Kuća" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Dovucite i ispustite kvadrate u boji iz gornjeg područja u donje područje ili dodirnite kvadrate u boji u gornjem području u redoslijedu sličnosti s bojom koja se uspoređuje. Možete dovući i ispustiti kvadrate u donjem području da biste ih presložili." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Auto. zaključavanje" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Spremi" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Odbaci" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Prekid" + diff --git a/po_sdk/hu.po b/po_sdk/hu.po new file mode 100755 index 0000000..30443b5 --- /dev/null +++ b/po_sdk/hu.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Csak segélyhívás indítható." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Feloldás a kijelző végigsimításával" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Még 1 próbálkozásra van." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d kísérlet maradt." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Téves jelszó" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Nem fogadott hívás" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Nem fogadott hívások" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Háttérképek" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "A feloldáshoz tartsa ujját a képernyőn, majd billentse az eszközt maga felé. Ha nem sikerül feloldani a képernyőt, próbálja jobban megdönteni az eszközt. Mozgatásos feloldás beállítása esetén a Beállításokban automatikusan engedélyezve lesz a Mozdulatok funkció." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Alkalmazás kiválasztása" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "A zárolt képernyő háttere módosult." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "A kezdőképernyő háttere módosult." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Húzás" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Zárolt képernyő beállításai" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Képernyő lezárása" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "A feloldáshoz tartsa ujját a képernyőn, majd billentse az eszközt maga felé. Ha nem sikerül feloldani a képernyőt, próbálja jobban megdönteni az eszközt." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Egyszerű jelszó" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Képernyőzár típusa" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Jelszó" + +msgid "IDS_ST_BODY_NONE" +msgstr "Nincs" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Mozgás" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Szerkeszt" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Csak segélyhívás lehetséges." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Nincs SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "A tankönyv befejeződött." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Érvénytelen művelet. Próbálja újra." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Vissza" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Feldolgozás folyamatban" + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Háttér kiválasztása" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Bezárás" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Keresés" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Nincs szolgáltatás" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Hibás PIN-kód" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Írja be a PIN-kódot!" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Írja be a jelszót." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Szerkeszt" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Bezárás" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Próbálja meg 1 másodperc múlva." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Feltöltve" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 nem fogadott hívás" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Új üzenet" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 új üzenet" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "%1$d alkalommal helytelenül kísérelte meg az eszköz feloldását. További %2$d sikertelen kísérlet esetén visszaállnak az eszköz gyári alapértelmezései, és minden adat törlődik róla." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Prób. újra %d mp múlva." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Simítsa meg a képernyőt az üzenet megtekintéséhez" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Simítsa meg a képernyőt a hívásnapló megtekintéséhez" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Nincs találat" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Adja meg a PIN-t az üzenet megjelenítéséhez" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Adja meg a PIN-t a hívásnapló megjelenítéséhez" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Adja meg a jelszót az üzenet megjelenítéséhez" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Adja meg a jelszót a hívásnapló megjelenítéséhez" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Második óra" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Fényképező parancsikonja" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Helytelen PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Vissza a híváshoz" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternatív jelszó" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Feloldás Tizen-fiókkal" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Feloldás\nTizen-fiókkal" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Van %1$d nem fogadott hívása és %2$d olvasatlan üzenete." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "%d alkalommal helytelenül kísérelte meg az eszköz feloldását. Most visszaállnak az eszköz gyári alapértelmezései, és minden adat törlődik róla." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Simítsa meg a képernyőt a hívásnapló megtekintéséhez." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Simítsa meg a képernyőt az Üzenetek megnyitásához." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Ha a Gear túl messze van az észleléshez, automatikusan az egyszerű jelszózár lesz aktív. A Gear észlelése esetén a képernyőzár típusa simításos zárolásra módosul." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d új üzenet" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d nem fogadott hívás" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d–%2$d számjegy vagy betű szükséges." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Adja meg a feloldó PIN kódot." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Adja meg a 4 jegyű PIN kódot." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Csak segélyhívás indítható." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Segélyhívás" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Töltés: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "BEZÁRÁS" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Ujjlenyomat" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Alkalmazások kiválasztása" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Mégse" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Időjárás" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Otthoni" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Húzza a színes négyzeteket a felső területről az alsóra, vagy érintse meg a színes négyzeteket a felső területen aszerinti sorrendben, hogy melyik hasonlít jobban az adott színhez. Az alsó területen húzással átrendezheti a négyzeteket." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Automatikus lezárás" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Mentés" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Elvetés" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Mégse" + diff --git a/po_sdk/hy.po b/po_sdk/hy.po new file mode 100755 index 0000000..46c133c --- /dev/null +++ b/po_sdk/hy.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Միայն հրատապ կանչեր:" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Մատը սահեցրեք էկրանով՝ արգելաբացելու համար:" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 փորձ է մնացել:" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "Մնացել է %d փորձ:" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Սխալ գաղտնաբառ:" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Բացթողած զանգ" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Բացթողնված կանչեր" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Պաստառներ" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Թակեք և պահեք էկրանը, հետո սարքը թեքեք դեպի Ձեզ՝ այն արգելաբացելու համար: Եթե էկրանը չի արգելաբացվում, էլի փորձեք թեքել սարքը: Երբ շարժումով արգելաբացումը նախադրված է, շարժումն ինքնաբերաբար կընձեռվի Դրվածքներում:" + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Ընտրել ծրագիր" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Կողպված էկրանի պաստառը փոխվել է:" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Հիմնական էկրանի պաստառը փոխվել է:" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Մատների սահող շարժում" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Կողպված էկրանի դրվածքներ" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Կողպել էկրանը" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Թակեք և պահեք էկրանը, հետո սարքը թեքեք դեպի Ձեզ՝ այն արգելաբացելու համար: Եթե էկրանը չի արգելաբացվում, էլի փորձեք թեքել սարքը:" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Պարզ գաղտնաբառ" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Էկրանի կողպման տեսակը" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Ռոումինգ" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Գաղտնաբառ" + +msgid "IDS_ST_BODY_NONE" +msgstr "Չկա" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Շարժում" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Խմբագրել" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Միայն արտ. իրավիճ. զանգեր" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM չկա" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Ուսումնական ձեռնարկն ավարտվեց:" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Անվավեր գործողություն: Նորից փորձեք:" + +msgid "IDS_COM_SK_BACK_A" +msgstr "Հետ" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Ընթացքում է" + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Ընտրել պաստառ" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Փակել" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Որոնում" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Ծառայություն չկա" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Սխալ PIN:" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Մուտքագրեք PIN-ը:" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Մուտքագրեք գաղտնաբառը:" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Խմբագրել" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Փակել" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Նորից փորձեք 1 վայրկյանից:" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Ամբողջությամբ լիցքավորված է:" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 բացթողնված կանչ" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "նոր հաղորդագրություն" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 նոր ուղերձ" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Դուք սարքի արգելաբացման սխալ փորձ եք արել %1$d անգամ: Ձեզ %2$d փորձ է մնացել, նախքան սարքը կհետադարձվի գործարանային կանխադրվածքի, և բոլոր տվյալները կջնջվեն:" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Նորից փորձեք %d վրկ.-ից:" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Մատը սահեցրեք էկրանով՝ հաղորդագրությունը դիտելու համար" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Մատը սահեցրեք էկրանով՝ կանչերի մատյանը դիտելու համար" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Համընկնում չկա" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Մուտքագրեք PIN՝ հաղորդագրությունը դիտելու համար" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Մուտքագրեք PIN՝ կանչերի մատյանը դիտելու համար" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Մուտքագրեք գաղտնաբառ՝ հաղորդագրությունը դիտելու համար" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Մուտքագրեք գաղտնաբառ՝ կանչերի մատյանը դիտելու համար" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Կրկնակի ժամացույց" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Խցիկի դյուրանցում" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Սխալ PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Վերադառնալ կանչին" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Այլընտրնք. գաղտնաբառ" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Արգելաբացել Tizen հաշվի միջոցով" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Արգելաբացել\nTizen հաշվով" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Դուք ունեք %1$d կորսված զանգ և %2$d չկարդացված հաղորդագրություն:" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Դուք սարքի արգելաբացման սխալ փորձ եք արել %d անգամ: Այն հիմա կհետադարձվի գործարանային կանխադրվածքի, և բոլոր տվյալները կջնջվեն" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Մատով սահեցրեք էկրանը՝ կանչերի մատյանը դիտելու համար:" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Մատով սահեցրեք էկրանը՝ Հաղորդագրությունները բացելու համար:" + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Հասարակ գաղտնաբառով կողպումն ինքնաբերաբար կընձեռվի, եթե Ձեր Gear-ը շատ հեռու լինի հայտնաբերվելու համար: Երբ Gear-ը հայտնաբերվի, էկրանի կողպման տեսակը կփոխվի Մատների սահող շարժմամբ կողպման:" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d նոր հաղորդագրություն" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d կորսված զանգ" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Պահանջվում է %1$d-ից %2$d թվանշան կամ տառ:" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Մուտքագրել արգելաբացման PIN-ը:" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Մուտքագրեք 4-նիշանի PIN:" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Միայն հրատապ կանչեր:" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Հրատապ զանգ" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Փոխվում է՝ %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ՓԱԿԵԼ" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Մատնահետք" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Ընտրել ծրագրեր" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Չեղարկել" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Եղանակ" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Տուն" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Գունավոր քառակուսիները վերևի տարածքից քարշեք և գցեք ներքևի տարածքի մեջ կամ վերևի տարածքում եղած գունավոր քառակուսիները թակեք համեմատվող գույնի հետ ունեցած նմանության հերթականությամբ: Կարող եք քարշել և թողնել ներքևի տարածքում եղած քառակուսիները՝ դրանք վերադասավորելու համար:" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Ավտո արգելափակում" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Պահպանել" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Գցել" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Չեղարկել" + diff --git a/po_sdk/is.po b/po_sdk/is.po new file mode 100755 index 0000000..0c8e24d --- /dev/null +++ b/po_sdk/is.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Aðeins neyðarhringingar." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Strjúktu yfir skjáinn til að opna." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 tilraun eftir." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d tilraunir eftir." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Rangt aðgangsorð." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Ósvarað" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Ósvöruð símtöl" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Veggfóður" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Haltu fingri á skjánum og hallaðu tækinu að þér til að taka það úr lás. Ef skjárinn opnast ekki skaltu prófa að halla tækinu meira. Þegar kveikt er á hreyfiopnun verður sjálfkrafa kveikt á hreyfingu í stillingum." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Velja forrit" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Veggfóðri lásskjás var breytt." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Veggfóðri heimaskjás var breytt." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Strjúka" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Stillingar lásskjás" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Lásskjár" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Pikkaðu og haltu fingri við skjáinn, hallaðu svo tækinu fram til að aflæsa því. Ef skjárinn aflæsist ekki skaltu prófa að halla tækinu meira." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Einfalt lykilorð" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Gerð skjáláss" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Í reiki" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Aðgangsorð" + +msgid "IDS_ST_BODY_NONE" +msgstr "Ekkert" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Hreyfing" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Breyta" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Aðeins neyðarsímtöl" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Ekkert SIM-kort" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Kennslu lokið." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Ógild aðgerð. Reyndu aftur." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Bakka" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Vinnsla í gangi..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Veldu veggfóður" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "Í lagi" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Loka" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Leita" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Engin þjónusta" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Rangt PIN-númer." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Sláðu inn PIN-númeri." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Rita aðgangsorð." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Breyta" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Loka" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Reyndu aftur eftir 1 sekúndu." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Fullhlaðið." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 ósvarað símtal" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Ný boð" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 ný skilaboð" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Þú hefur reynt að opna tækið á rangan hátt %1$d sinnum. Þú átt %2$d tilraunir eftir áður en tækið verður núllstillt og öllum gögnum þess eytt." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Reyndu aftur eftir %d sek." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Strjúktu yfir skjáinn til að skoða skilaboð" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Strjúktu yfir skjáinn til að skoða símtalaskrá" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Ekkert fannst" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Sláðu inn PIN-númer til að skoða skilaboð" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Sláðu inn PIN-númer til að skoða símtalaskrá" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Sláðu inn lykilorð til að skoða skilaboð" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Sláðu inn lykilorð til að skoða símtalaskrá" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Tvöföld klukka" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Flýtileið myndavélar" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Rangt PIN-númer" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Fara aftur í símtal" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Varalykilorð" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Opna með Tizen-reikningi" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Opna með\nTizen-reikningi" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Þú átt %1$d ósvaraðar hringingar og %2$d ólesin skilaboð." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Þú hefur reynt að opna tækið á rangan hátt %d sinnum. Það verður nú endurstillt á grunnstillingar framleiðanda og öllum gögnum verður eytt." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Strjúktu skjáinn til að skoða símtalaskrána." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Strjúktu skjáinn til að opna Skilaboð." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Sjálfkrafa verður kveikt á einfaldri lykilorðalæsingu ef Gear er of fjarri til að finnast. Þegar Gear finnst er skjálás breytt í stroklás." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d ný skilaboð" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d ósvöruð símtöl" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Slá þarf inn %1$d til %2$d stafi." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Slá inn opnunar-PIN." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Sláðu inn 4 stafa PIN-númer." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Aðeins neyðarhringingar." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Neyðarhringing" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Í hleðslu: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "LOKA" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Fingrafar" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Velja forrit" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Hætta v." + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Veður" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Heima" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Dragðu lituðu ferningana af efra svæðinu og slepptu þeim á neðra svæðinu eða pikkaðu á lituðu ferningana á efra svæðinu í réttri röð eftir því hversu svipaður litur þeirra er samanburðarlitnum. Þú getur dregið ferningana á neðra svæðinu og sleppt þeim til að endurraða þeim." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Sjálfvirk læsing" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Vista" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Fleygja" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Hætta v." + diff --git a/po_sdk/it_IT.po b/po_sdk/it_IT.po new file mode 100755 index 0000000..6ee8816 --- /dev/null +++ b/po_sdk/it_IT.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Solo chiamate di emergenza" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Trascina il dito sullo schermo per sbloccare" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 tentativo rimasto." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d tentativi rimasti." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Password errata." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Chiamata persa" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Chiamate perse" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Sfondi" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Tenete il dito sullo schermo, quindi inclinate il dispositivo verso di voi per sbloccarlo. Se lo schermo non si sblocca, provate a inclinare di più il dispositivo. Se lo sblocco movimento è impostato, il movimento verrà attivato automaticamente in Impostazioni." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Seleziona applicazione" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Sfondo della schermata di blocco modificato." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Sfondo della schermata iniziale modificato." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Trascinamento" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Impostazioni schermata di blocco" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Schermata di blocco" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Tenete premuto il dito sullo schermo, quindi inclinate il dispositivo verso di voi per sbloccarlo. Se lo schermo non si sblocca, provate a inclinare di più il dispositivo." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Password semplice" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Tipo di blocco schermo" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Password" + +msgid "IDS_ST_BODY_NONE" +msgstr "Nessuno" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Movimento" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Modifica" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Solo emergenza" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Nessuna SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutorial completato." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Azione non valida. Riprovare." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Indietro" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Elaborazione..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Seleziona sfondo" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Chiudi" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Ricerca" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Nessun servizio" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN errato." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Inserisci PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Inserisci password." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Modifica" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Chiudi" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Riprovate tra 1 secondo." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Ricarica completata." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 chiamata persa" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nuovo messaggio" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 nuovo messaggio" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Avete tentato per %1$d volte di sbloccare il dispositivo in modo errato. Sono rimasti %2$d tentativi prima che il dispositivo venga ripristinato ai valori predefiniti di fabbrica e che tutti i dati vengano eliminati." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Riprovate tra %d secondi." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Trascinate la schermata per visualizzare il messaggio" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Trascinate la schermata per vedere il registro chiamate" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Ness. corrispondenza" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Inserite il PIN per visualizzare il messaggio" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Inserite il PIN per visualizzare il registro chiamate" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Inserite la password per visualizzare il messaggio" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Inserite la password per visualizzare il registro chiamate" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Orologio doppio" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Collegamento fotocamera" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN errato" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Torna alla chiamata" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Password alternativa" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Sbloccate con l'account Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Sblocca con\naccount Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "%1$d chiamate perse e %2$d messaggi non letti." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "%d tentativi errati di sblocco del dispositivo. Il dispositivo verrà ripristinato ai valori predefiniti di fabbrica e i dati verranno eliminati." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Trascinate la schermata per visualizzare il registro delle chiamate." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Trascinate la schermata per aprire Messaggi." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Se Gear è troppo lontano per essere rilevato, verrà attivato automaticamente il blocco con password. Quando Gear viene rilevato, verrà attivato il blocco schermo con trascinamento." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d nuovi messaggi" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d chiamate perse" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Sono necessarie da %1$d a %2$d cifre o lettere." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Immetti PIN di sblocco." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Inserite il codice PIN di 4 cifre." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Solo chiamate di emergenza" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Chiamata di emergenza" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "In carica: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "CHIUDI" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Impronta digitale" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Seleziona applicazioni" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Immetti password ripristino" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Annulla" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Meteo" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Casa" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Trascinate e rilasciate i quadrati colorati dall'area superiore a quella inferiore della schermata o toccate i quadrati colorati nell'area superiore in base alla somiglianza con il colore che viene confrontato. Potete trascinare e rilasciare i quadrati colorati nell'area inferiore della schermata per riordinarli." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Blocco automatico" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Salva" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Scarta" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Annulla" + diff --git a/po_sdk/ja_JP.po b/po_sdk/ja_JP.po new file mode 100755 index 0000000..698756c --- /dev/null +++ b/po_sdk/ja_JP.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "緊急通報のみ​発信可能です。" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "スワイプしてロック解除" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "残りの試行回数は1回です。" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "残り入力回数:%d回" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "パスワードが正しくありません。" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "不在着信" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "不在着信" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "壁紙" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "ロック解除するには、画面を長押しし、端末を手前に傾けてください。画面のロックが解除されない場合は、端末をさらに傾けてください。モーションのロック解除を設定すると、モーション起動が[設定]で自動的に有効になります。" + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "アプリケーションを選択" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "ロック画面の壁紙が変更されました。" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "ホーム画面の壁紙が変更されました。" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "スワイプ" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "ロック画面設定" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "ロック画面" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UD明朝" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "ロック解除するには、画面を長押しし、端末を自分に向けて傾けてください。画面のロックが解除されない場合は、端末をさらに傾けてください。" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "シンプルパスワード" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "画面ロックの種類" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "ローミング" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "パスワード" + +msgid "IDS_ST_BODY_NONE" +msgstr "なし" + +msgid "IDS_ST_BODY_MOTION" +msgstr "モーション" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "ローズマリー" + +msgid "IDS_ST_BODY_EDIT" +msgstr "編集" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "クールジャズ" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "チョコクッキー" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "緊急通報のみ発信可能" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM未挿入" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "チュートリアルが完了しました。" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "操作が正しくありません。再度お試しください。" + +msgid "IDS_COM_SK_BACK_A" +msgstr "戻る" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "処理中..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "壁紙を選択してください。" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "閉じる" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "検索しています。" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "サービスが利用できません。" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PINが正しくありません。" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PINを入力してください。" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "パスワードを入力" + +msgid "IDS_COM_BODY_EDIT" +msgstr "編集" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "閉じる" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1秒後にやり直してください。" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "充電完了" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1件の不在着信" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "新しいメッセージ" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1件の新着メッセージ" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "正しくないロック解除を%1$d回実行しました。あと%2$d回失敗すると、端末が工場出荷時の状態にリセットされ、全てのデータが削除されます。" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d秒後にやり直してください。" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "メッセージを表示するには画面をスワイプします" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "通話履歴を表示するには画面をスワイプします" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "一致するものがありません" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "メッセージを表示するにはPINを入力します" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "通話履歴を表示するにはPINを入力します" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "メッセージを表示するにはパスワードを入力します" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "通話履歴を表示するにはパスワードを入力します" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "デュアル時計" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "カメラのショートカット" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PINが正しくありません。" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "通話に戻る" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "代替パスワード" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizenアカウントでロックを解除" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizenアカウントで\nロックを解除" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "%1$d件の不在着信と、%2$d件の未読メッセージがあります。" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "正しくないロック解除を%d回実行しました。端末が工場出荷時の状態にリセットされ、全てのデータが削除されます。" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "通話履歴を表示するには、画面をスワイプします。" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "[メッセージ]を開くには、画面をスワイプします。" + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Gearとの距離が遠すぎて検出できない場合、シンプルパスワードロックが自動的に有効になります。Gearが検出されると、画面ロックの種類はスワイプロックに変わります。" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d件の新着メッセージがあります。" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d件の不在着信があります。" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d~%2$d文字の英数字で入力してください。" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "ロック解除PINを入力してください。" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4桁のPINを入力" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "緊急通報のみ​発信可能です。" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "緊急通報" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "充電しています:%d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "閉じる" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "指紋" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "アプリケーションを選択" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "キャンセル" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "天気予報" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "ホーム" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "比較する色と近い順番に、色付きの四角形を上部エリアから下部エリアにドラッグするか、上部エリアの四角形をタップしてください。下部エリアの四角形をドラッグすると、順番を変更することができます。" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "自動ロック" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "保存" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "破棄" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "キャンセル" + diff --git a/po_sdk/ka.po b/po_sdk/ka.po new file mode 100755 index 0000000..301668b --- /dev/null +++ b/po_sdk/ka.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "მხოლოდ გადაუდებელი ზარები." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "გადაუსვით ხელი ეკრანზე და განიბლოკება." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "დარჩა 1 ცდა." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d ცდა დარჩა." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "პაროლი არასწორია." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "გამოტოვებული ზარი" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "გამოტოვებ. ზარები" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "ფონები" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "აპარატის განსაბლოკად ხანგრძლივად შეეხეთ ეკრანს და გადახარეთ აპარატი თქვენკენ. თუ ეკრანი არ განიბლოკება, უფრო მეტად გადახარეთ აპარატი. როდესაც დაყენებულია მოძრაობით განბლოკვა, მოძრაობის ფუნქცია ავტომატურად აქტიურდება პარამეტრებში." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "აირჩიეთ პროგრამა" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "დაბლოკილი ეკრანის ფონი შეიცვალა." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "საწყისი ეკრანის ფონი შეიცვალა." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "ხელის გადასმა" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "დაბლოკილი ეკრანის პარამეტრები" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "ეკრანის დაბლოკვა" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "ხანგრძლივად შეეხეთ ეკრანს, შემდეგ კი გადახარეთ აპარატი თქვენსკენ მის განსაბლოკად. თუ ეკრანი არ განიბლოკება, ცადეთ კიდევ გადახაროთ აპარატი." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "პაროლი მარტივია" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "ეკრანის დაბლოკვის ტიპი" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "როუმინგი" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "პაროლი" + +msgid "IDS_ST_BODY_NONE" +msgstr "არც ერთი" + +msgid "IDS_ST_BODY_MOTION" +msgstr "მოძრაობა" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "შეცვლა" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "მხოლოდ საგანგებო ზარები" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM არაა" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "სახელმძღვანელო დასრულდა." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "მოქმედება არასწორია. ისევ ცადეთ." + +msgid "IDS_COM_SK_BACK_A" +msgstr "უკან" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "მუშავდება..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "აირჩიეთ ფონი" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "დახურვა" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "იძებნება" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "მომსახურება არ არის" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "არასწორი PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "შეიყვანეთ PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "პაროლის შეყვანა." + +msgid "IDS_COM_BODY_EDIT" +msgstr "შეცვლა" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "დახურვა" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "ისევ ცადეთ 1 წამში." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "სრულად დატენილია." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 გამოტოვებული ზარი" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "ახალი შეტყობინება" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 ახალი წერილი" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "თქვენ აპარატის განბლოკვის %1$d არასწორი მცდელობა გქონდათ. თქვენ დაგრჩათ %2$d მცდელობა, სანამ დაბრუნდება აპარატის საწყისი ქარხნული პარამეტრები და წაიშლება ყველა მონაცემი." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "კიდევ ცადეთ %d წამში." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "გადაუსვით თითი ეკრანს და ნახეთ შეტყობინება" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "გადაუსვით თითი ეკრანს და ნახეთ ზარების ჟურნალი" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "შესაბამისი არ არის" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "შეიყვანეთ PIN, რომ ნახოთ შეტყობინება" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "შეიყვანეთ PIN, რომ ნახოთ ზარების ჟურნალი" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "შეიყვანეთ პაროლი, რომ ნახოთ შეტყობინება" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "შეიყვანეთ პაროლი, რომ ნახოთ ზარების ჟურნალი" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "ორმაგი საათი" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "კამერის ღილაკი" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN არასწორია" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "ზარზე დაბრუნება" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "ალტერნატიული პაროლი" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "განბლოკეთ\nTizen\nანგარიშით" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "განბლოკეთ\nTizen ანგარიშით" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "თქვენ გაქვთ %1$d გამოტოვებული ზარი და %2$d წაუკითხავი წერილი." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "თქვენ აპარატის განბლოკვის %d არასწორი მცდელობა გქონდათ. ახლა დაბრუნდება საწყისი ქარხნული პარამეტრები და წაიშლება ყველა მონაცემი" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "გადაუსვით თითი ეკრანს და ნახეთ ზარების ჟურნალი." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "გადაუსვით თითი ეკრანს და გაიხსნება შეტყობინებების პროგრამა." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "მარტივი პაროლით დაბლოკვა ავტომატურად ჩაირთვება, თუ Gear სიშორის გამო ვერ მოიძებნება. როდესაც Gear მოიძებნება, ეკრანის დაბლოკვის ტიპი შეიცვლება თითით გადასმით დაბლოკვით." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d ახალი წერილი" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d გამოტოვებული ზარი" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "უნდა იყოს %1$d-%2$d ციფრი ან ასო." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "ჩაწერეთ განბლოკვის PIN." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "ჩაწერეთ 4-ნიშნა PIN." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "მხოლოდ გადაუდებელი ზარები." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "საგანგებო ზარი" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "იმუხტება: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "დახურვა" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "თითის ანაბეჭდი" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "პროგრამების არჩევა" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "გაუქმება" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "ამინდი" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "საწყისი გვერდი" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "აიღეთ და გადაალაგეთ ფერადი უჯრები ზემოდან ქვემოთ, ან შეეხეთ ფერად უჯრებს ზემოთ ისე, რომ ყოველი მომდევნო უჯრის ფერი ყველაზე ახლოს იყოს წინა უჯრის ფერთან. მიმდევრობის შესაცვლელად შეგიძლიათ აიღოთ და გადაიტანოთ უჯრები ქვედა მხარეს." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "ავტო–საათი" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "შენახვა" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "წაშლა" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "გაუქმება" + diff --git a/po_sdk/kk.po b/po_sdk/kk.po new file mode 100755 index 0000000..187f028 --- /dev/null +++ b/po_sdk/kk.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Тек жедел қоңырау үшін." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Құлпын ашу үшін экранды сипаңыз." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 әрекет қалды." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d әрекеттену аяқталды." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Қате кілтсөз." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Қабылданбаған қоңырау" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Қабылданбаған қоңыраулар" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Түсқағаз" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Экранды басып тұрып, құрылғының құлпын ашу үшін оны өзіңізге қарай еңкейтіңіз. Егер экранның құлпы ашылмаса, құрылғыны көбірек еңкейтіңіз. Қозғалыс құлпы орнатылған кезде, қозғалыс параметрлерде автоматты түрде өшіріледі." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Бағдарлама таңдау" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Құлыптау экранының түсқағазы өзгертілді." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Бастапқы экран түсқағазы өзгертілді." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Сипау" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Құлыптау экранының параметрлері" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Экранды құлыптау" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Экранды басып тұрып, құрылғының құлпын ашу үшін оны өзіңізге қарай еңкейтіңіз. Егер экранның құлпы ашылмаса, құрылғыны көбірек еңкейтіңіз." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Қарапайым құпиясөз" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Экран құлыптау түрі" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Роуминг" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Кілтсөз" + +msgid "IDS_ST_BODY_NONE" +msgstr "Жоқ" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Қозғалыс" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Өзгерту" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Тек төтенше қоңыраулар" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM жоқ" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Оқулық аяқталды." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Әрекет қате. Қайталап көріңіз." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Aртқа" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Өңделуде..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Түсқағаз таңдау" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Жабу" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Іздеу" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Қызмет жоқ" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Қате PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN енгізу." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Кілтсөз енгізіңіз." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Өзгерту" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Жабу" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Әрекетті 1 секундтан кейін қайталап көріңіз." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Толық зарядталған." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 жауапсыз қоңырау" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Жаңа хабарлама" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 жаңа хабар" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Құрылғының құлпын ашуда %1$d рет қателестіңіз. Құрылғының зауыттық параметрлері қалпына келтіріліп, барлық деректердің өшірілуінен бұрын %2$d талпынысыңыз қалды." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d сек кейін қайталаңыз." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Хабарларды көру үшін, экранды сипау" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Қоңыраулар журналын көру үшін, экранды сипау" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Сәйкестік жоқ" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Хабарды көру үшін, PIN кодын енгізу" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Қоңыраулар журналын көру үшін, PIN кодын енгізу" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Хабарды көру үшін, құпиясөзді енгізу" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Қоңыраулар журналын көру үшін, құпиясөзді енгізу" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Қос сағат" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Камера белгішесі" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Қате PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Қоңырауға қайту" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Балама құпиясөз" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen ар.\nқұлп. ашу" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen ес. жазб.\nарқ. бұғаттау" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Сізде қабылданбаған %1$d қоңырау және оқылмаған %2$d хабар бар." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "%d рет дұрыс емес құрылғының құлпын ашу әрекетін жасадыңыз. Зауыттық әдепкі параметрлер қалпына келтіріліп, бүкіл деректер өшіріледі" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Қоңыраулар журналын көру үшін экранды сипаңыз." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Хабарларды ашу үшін экранды сипаңыз." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Егер Gear құрылғысы анықталуға тым алыс болса, үлгі құлпы автоматты түрде қосылады. Gear құрылғысы анықталса, экран құлпы сипау құлпына ауысады." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d жаңа хабар" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d қабылданбаған қоңырау" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d-%2$d сан немесе әріп талап етіледі." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Құлпын ашатын PIN енгізіңіз." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4 таңбалы PIN енгізіңіз." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Тек жедел қоңырау үшін." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Шұғыл қоңырау шалу" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Зарядталуда: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ЖАБУ" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Саусақ ізі" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Бағдарламаларды таңдау" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Тоқтату" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Ауа райы" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Үй парағы" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Түрлі түсті квадраттарды жоғарғы аумақтан төменгі аумаққа сүйреп апарыңыз немесе салыстырылатын түстің ұқсастығы үшін жоғарғы аумақтағы түрлі түсті квадраттарды түртіңіз. Квадраттарды қайта ретке келтіру үшін оларды төменгі аумақта сүйреп апаруға болады." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Автокұлып" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Сақтау" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Алып тас" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Тоқтату" + diff --git a/po_sdk/ko_KR.po b/po_sdk/ko_KR.po new file mode 100755 index 0000000..0e6299e --- /dev/null +++ b/po_sdk/ko_KR.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "긴급전화만 가능합니다." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "잠금을 해제하려면 화면을 미세요." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "입력 기회가 1회 남았습니다." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "입력 기회가 %d회 남았습니다." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "비밀번호가 바르지 않습니다." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "부재중 전화" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "부재중 전화" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "배경화면" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "잠금을 해제하려면 화면을 길게 누르면서 디바이스를 앞으로 기울이세요. 화면 잠금이 해제되지 않으면 디바이스를 더 기울이세요. [모션 잠금해제]를 설정한 [설정]에서 모션 기능을 자동 실행합니다." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "애플리케이션 선택" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "잠금화면 배경을 변경하였습니다." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "홈 배경화면을 변경하였습니다." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "드래그" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "잠금화면 설정" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "잠금화면" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UD명조" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "잠금을 해제하려면 화면을 길게 누르면서 디바이스를 앞으로 기울이세요. 화면 잠금이 해제되지 않으면 디바이스를 더 기울이세요." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "간단 비밀번호" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "화면 잠금 방식" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "로밍" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "비밀번호" + +msgid "IDS_ST_BODY_NONE" +msgstr "설정 안 함" + +msgid "IDS_ST_BODY_MOTION" +msgstr "모션" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "로즈마리" + +msgid "IDS_ST_BODY_EDIT" +msgstr "편집" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "쿨재즈" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "초코쿠키" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "긴급전화만 가능" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM 카드가 없습니다" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "가이드를 완료하였습니다." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "동작이 바르지 않습니다. 다시 시도하세요." + +msgid "IDS_COM_SK_BACK_A" +msgstr "뒤로가기" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "진행 중..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "배경화면 선택" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "확인" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "닫기" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "검색 중..." + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "서비스 지역이 아닙니다" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN이 바르지 않습니다." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN을 입력하세요." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "비밀번호를 입력하세요." + +msgid "IDS_COM_BODY_EDIT" +msgstr "편집" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "종료" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1초 후에 다시 시도하세요." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "충전을 완료하였습니다." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "부재중 전화 1개" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "새 메시지" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "새 메시지 1개" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "잠금해제 비밀번호를 %1$d회 잘못 입력하였습니다. 디바이스 설정 및 데이터가 기본 설정으로 초기화되기까지 비밀번호를 %2$d회 입력할 수 있습니다." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d초 후에 다시 시도하세요." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "메시지를 보려면 화면을 미세요" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "통화기록을 보려면 화면을 미세요" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "일치하지 않는 지문입니다" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "메시지를 보려면 PIN을 입력하세요" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "통화기록을 보려면 PIN을 입력하세요" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "메시지를 보려면 비밀번호를 입력하세요" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "통화기록을 보려면 비밀번호를 입력하세요" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "듀얼 시계" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "카메라 바로가기" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN 잘못 입력" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "통화로 돌아가기" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "대체 비밀번호" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "타이젠 계정으로 잠금해제" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "타이젠 계정으로\n잠금해제" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "부재중 전화 %1$d개 및 읽지 않은 메시지 %2$d개가 있습니다." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "잠금해제 비밀번호를 %d회 잘못 입력하였습니다. 디바이스 설정을 기본 설정으로 초기화하고 모든 데이터를 삭제합니다." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "통화기록을 보려면 화면을 미세요." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "메시지를 실행하려면 화면을 미세요." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Gear가 너무 멀리 있어 인식되지 않으면 간단 비밀번호 잠금을 자동 실행합니다. Gear가 인식되면, 화면 잠금 방식을 드래그 잠금으로 변경합니다." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "새 메시지 %d개" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "부재중 전화 %d개" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d-%2$d자의 숫자 또는 문자를 입력하세요." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "잠금해제 PIN을 입력하세요." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "비밀번호 4자를 입력하세요." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "긴급전화만 가능합니다." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "긴급전화" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "충전 중: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "종료" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "지문" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "애플리케이션 선택" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "복구 비밀번호 입력" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "취소" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "날씨" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "홈" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "상단의 색상 사각형을 비교 중인 색상과 유사한 순서대로 상단에서 하단으로 끌어다 놓거나 색상 사각형을 상단에서 누르세요. 하단의 사각형을 이동하여 순서를 변경할 수 있습니다." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "자동 잠금" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "저장" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "저장 안 함" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "취소" + diff --git a/po_sdk/lt.po b/po_sdk/lt.po new file mode 100755 index 0000000..77b2e98 --- /dev/null +++ b/po_sdk/lt.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Tik pagalbos skambučiai." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Perbraukite per ekraną ir atrakinkite." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Liko 1 bandymas." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d likę bandymai." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Neteisingas slaptažodis." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Neatsakytas skambutis" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Praleisti skambučiai" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Ekrano fonai" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Norėdami atrakinti bakstelėkite ekraną ir palaikykite, tada pakreipkite įrenginį į save. Jei ekranas neatrakinamas, pabandykite įrenginį paversti daugiau. Kai įjungtas atrakinimas judesiu, nustatymuose bus automatiškai įjungtas judesys." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Pasirinkti programą" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Užrakinimo ekrano fonas pakeistas." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Pradžios ekrano fonas pakeistas." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Braukimas" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Užrakinti ekrano nustatymus" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Užrakinimo ekranas" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Norėdami atrakinti, bakstelėkite ekraną ir palaikykite, tada pakreipkite įrenginį į save. Jei ekranas neatrakinamas, pabandykite įrenginį paversti daugiau." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Paprastas slaptažodis" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Ekrano užrakto tipas" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Tarptinklinis ryšys" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Slaptažodis" + +msgid "IDS_ST_BODY_NONE" +msgstr "Nėra" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Judėjimas" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Redaguoti" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "„Choco cooky“" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Tik pagalbos skambučiai" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Nėra SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Mokymo programa baigta." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Neteisingas veiksmas. Bandykite dar kartą." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Atgal" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Apdorojama..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Pasirinkti ekrano foną" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "Gerai" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Uždaryti" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Ieškoma" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Paslauga neteikiama" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Netinkamas PIN kodas." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Įvesti PIN kodą." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Įvesti slaptažodį." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Redaguoti" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Uždaryti" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Pabandykite dar kartą po 1 sekundės." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Visiškai įkrauta." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 praleistas skambutis" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nauja žinutė" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 nauja žinutė" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Neteisingai bandėte atrakinti įrenginį %1$d kartus (-ų). Prieš grąžinant įrenginio gamyklinius numatytuosius nustatymus ir ištrinant visus duomenis, turėsite %2$d bandymus (-ų)." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Bandykite dar po %d sek." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Perbraukite ekraną žinutės peržiūrai" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Perbraukite ekraną skambučių žurnalo peržiūrai" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Atitikmenų nėra" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Įveskite PIN žinutės peržiūrai" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Įveskite PIN skambučių žurnalo peržiūrai" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Įveskite slaptažodį žinutės peržiūrai" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Įveskite slaptažodį skambučių žurnalo peržiūrai" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Dvigubas laikrodis" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Fotokameros trumpinys" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Neteisingas PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Grįžti į skambutį" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternat. slaptažod." + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Atrakinti\nper „Tizen“\npaskyrą" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Atrakinti per\n„Tizen“ pask." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Yra %1$d praleisti (-ų) skambučiai (-ių) ir %2$d neskaitytos (-ų) žinutės (-ių)." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Neteisingai bandėte atrakinti įrenginį %d kartus (-ų). Dabar bus iš naujo nustatyti gamykliniai numatytieji nustatymai ir ištrinti visi duomenys." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Braukite per ekraną ir peržiūrėkite skambučių žurnalą." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Braukite per ekraną ir atidarykite žinutes." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Užrakinimas paprastu slaptažodžiu įjungiamas automatiškai, jei „Gear“ yra per toli, kad jį būtų galima aptikti. Kai bus aptiktas „Gear“, ekrano užrakinimo tipas pasikeis į užrakinimą braukimu." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "Naujų žinučių: %d" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "Praleista skambučių: %d" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Reikia nurodyti %1$d–%2$d skaitmenis (-ų) ar raides (-ių)." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Įveskite atrakinimo PIN." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Įveskite 4 skaitmenų PIN." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Tik pagalbos skambučiai." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Pagalbos skambučiai" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Įkraunama: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "UŽDARYT" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Pirštų atspaudas" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Pasirinkite programas" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Atšaukti" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Oras" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Namų" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Nutempkite spalvotus kvadratus iš viršutinės srities į apatinę arba bakstelėkite spalvotus kvadratus viršutinėje srityje pagal panašumą į kvadrato, kuris yra lyginamas, spalvą. Galite nuvilkti kvadratus į apatinę sritį, kad pakeistumėte jų tvarką." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Automatinis užraktas" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Išsaugoti" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Naikinti" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Atšaukti" + diff --git a/po_sdk/lv.po b/po_sdk/lv.po new file mode 100755 index 0000000..d18bb17 --- /dev/null +++ b/po_sdk/lv.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Tikai ārkārtas zvani." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Velciet pār ekrānu, lai atbloķētu." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Atlicis 1 mēģinājums." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "Atlikuši %d mēģinājumi." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Nepareiza parole." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Neatbildēts zvans" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Neatbildētie zvani" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Fona attēli" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Pieskarieties ekrānam un turiet to, pēc tam sasveriet ierīci uz savu pusi, lai to atbloķētu. Ja ekrāns netiek atbloķēts, sasveriet ierīci vēl vairāk. Ja ir iestatīta atbloķēšana ar kustību, iestatījumos automātiski tiks aktivizēta kustība." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Izvēlēties programmu" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Bloķēšanas ekrāna fona attēls ir nomainīts." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Sākuma ekrāna fona attēls ir nomainīts." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Vilkt" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Bloķētā ekrāna iestatījumi" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Bloķēšanas ekrāns" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Pieskarieties ekrānam un turiet to, pēc tam sasveriet ierīci uz savu pusi, lai to atbloķētu. Ja ekrāns netiek atbloķēts, sasveriet ierīci vēl vairāk." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Vienkārša parole" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Ekrāna bloķēšanas tips" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Viesabonēšana" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Parole" + +msgid "IDS_ST_BODY_NONE" +msgstr "Nav" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Kustība" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rozmarīns" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Rediģēt" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Nomierinošs džezs" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Šokolādes cepums" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Tikai ārkārtas zvani" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Nav SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Apmācība pabeigta." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Nederīga darbība. Mēģiniet vēlreiz." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Atpakaļ" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Notiek apstrāde..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Izvēlēties fona attēlu" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "Labi" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Aizvērt" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Meklē" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Nav pakalpojuma" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Nepareizs PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Ievadiet PIN kodu." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Ievadiet paroli." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Rediģēt" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Aizvērt" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Pēc 1 sekundes mēģiniet vēlreiz." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Pilnībā uzlādēts." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 neatbildēts zvans" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Jauna ziņa" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 jauna ziņa" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Jūs %1$d reizes nepareizi mēģinājāt atbloķēt ierīci. Jums ir atlikuši %2$d mēģinājumi, pirms ierīcē tiks atjaunoti rūpnīcas noklusējuma iestatījumi un visi dati tiks izdzēsti." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Mēģiniet vēlr.pēc %d sek." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Pavelciet pār ekrānu, lai skatītu ziņu" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Pavelciet pār ekrānu, lai skatītu zvanu žurnālu" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Nesakrīt" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Ievadiet PIN kodu, lai skatītu ziņu" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Ievadiet PIN kodu, lai skatītu zvanu žurnālu" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Ievadiet paroli, lai skatītu ziņu" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Ievadiet paroli, lai skatītu zvanu žurnālu" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Duālais pulkstenis" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Kameras īsceļš" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Nepareizs PIN kods" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Atgriezties sarunā" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternatīvā parole" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Atbloķēt, izmantojot Tizen kontu" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Atbloķēt ar\nTizen kontu" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Jums ir %1$d neatbildēti zvani un %2$d nelasītas ziņas." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Jūs %d reizes neveiksmīgi mēģinājāt atbloķēt ierīci. Tagad tajā tiks atjaunoti rūpnīcas iestatījumi un visi dati tiks izdzēsti." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Pavelciet ekrānu, lai skatītu zvanu žurnālu." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Pavelciet ekrānu, lai atvērtu ziņas." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Ja jūsu Gear ierīce būs pārāk tālu, lai to noteiktu, automātiski tiks aktivizēta vienkārša bloķēšana ar paroli. Kad Gear ierīce būs noteikta, ekrāna bloķēšanas veids tiks mainīts uz bloķēšanu ar pavilkšanu." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d jaunas ziņas" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d neatbildēti zvani" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Nepieciešams ievadīt no %1$d līdz %2$d cipariem vai burtiem." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Ievadiet atbloķēšanas PIN kodu." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Ievadiet 4 ciparu PIN kodu." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Tikai ārkārtas zvani." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Ārkārtas zvans" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Notiek uzlāde: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "AIZVĒRT" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Pirksta nospiedums" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Programmu izvēle" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Atcelt" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Laiks" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Mājas" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Velciet un nometiet krāsu kvadrātus no augšpuses uz leju vai pieskarieties augšpusē esošajiem kvadrātiem tā, lai sakārtotu līdzīgas krāsas blakus. Varat vilkt un mest kvadrātus apakšdaļā, lai mainītu to secību." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Automātiska bloķēšana" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Saglabāt" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Atmest" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Atcelt" + diff --git a/po_sdk/mk.po b/po_sdk/mk.po new file mode 100755 index 0000000..2e1ea9b --- /dev/null +++ b/po_sdk/mk.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Само итни повици." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Поминете преку екранот за да отклучите." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Уште 1 обид." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "Има уште %d обиди." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Погрешна лозинка." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Пропуштен повик" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Пропуштени повици" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Заднини" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Допрете и држете на екранот, потоа навалете го уредот кон себе за да го отклучите. Ако екранот не се отклучи, обидете се да го навалите уредот повеќе. Кога е поставено отклучување со движење, движењето ќе се вклучи автоматски во Опции." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Избери апликација" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Заднината на заклучениот екран е сменета." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Заднината на основниот екран е сменета." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Поминете" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Опции за заклучување на екранот" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Заклучување на екранот" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Допрете и држете го екранот, потоа навалете го уредот кон себе за да отклучите. Ако екранот не се отклучи, обидете се да го навалите уредот повторно." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Едноставна лозинка" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Вид заклучување на екранот" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Роаминг" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Лозинка" + +msgid "IDS_ST_BODY_NONE" +msgstr "Ништо" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Движење" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Измени" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Само итни повици" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Нема SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Упатството е завршено." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Неважечо дејство. Обидете се повторно." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Назад" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Обработување..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Избери заднина" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Затвори" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Се пребарува" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Нема услуга" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Погрешен PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Внесете PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Внесете лозинка." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Измени" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Затвори" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Обидете се повторно за 1 секунда." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Наполнето." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 пропуштен повик" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Нова порака" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 нова порака" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Се обидовте да отклучите уредот неправилно %1$d пати. Имате уште %2$d обиди пред уредот да се ресетира на фабричките поставки и сите податоци да се избришат." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Повт. обид за %d секунди." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Поминете преку екранот за да ја видите пораката" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Поминете преку екранот за да го видите дневникот на повици" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Нема совпаѓање" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Внесете PIN за да ја видите пораката" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Внесете PIN за да го видите дневникот на повици" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Внесете лозинка за да ја видите пораката" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Внесете лозинка за да го видите дневникот на повици" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Двоен часовник" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Кратенка за камера" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Неправилен PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Врати се на повик" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Алтернативна лозинка" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Отклучете со сметка Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Отклучи преку\nсметка Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Имате %1$d пропуштени повици и %2$d непрочитани пораки." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Се обидовте да го отклучите уредот неправилно %d пати. Сега ќе се ресетира на фабричките поставки и сите податоци да се избришат." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Поминете преку екранот за да го видите дневникот на повици." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Поминете преку екранот за да отворите Пораки." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Едноставното заклучување со лозинка ќе се вклучи автоматски ако Gear е предалеку за да се открие. Кога Gear ќе се открие, заклучувањето на екранот ќе се префрли на заклучување со поминување." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d нови пораки" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d пропуштени повици" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d до %2$d бројки или букви се потребни." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Внесете PIN за отклучување." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Внесете PIN од 4 бројки." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Само итни повици." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "SOS повик" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Се полни: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ЗАТВОРИ" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Отпечаток на прст" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Изберете апликации" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Откажи" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Време" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Дома" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Повлечете ги и оставете ги шарените квадрати од горното подрачје долу или допрете ги шарените квадрати во горното подрачје по сличност со бојата што се споредува. Можете да ги влечете и оставате квадратите во долното подрачје за да ги прередите." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Автоматско заклучување" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Сочувај" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Отфрли" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Откажи" + diff --git a/po_sdk/nb.po b/po_sdk/nb.po new file mode 100755 index 0000000..df56e31 --- /dev/null +++ b/po_sdk/nb.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Kun nødanrop" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Stryk over skjermen for å låse opp." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 forsøk gjenstår." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d forsøk igjen." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Feil passord." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Ubesvart anrop" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Ubesvarte anrop" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Bakgrunn" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Trykk på og hold skjermen, vipp deretter enheten mot deg for å låse den opp. Hvis skjermen ikke låses opp, kan du prøve å vippe enheten mer. Når bevegelsesopplåsing er angitt, aktiveres bevegelse automatisk i Innstillinger." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Velg app" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Bakgrunnen for låseskjermen er endret." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Bakgrunnen for startskjermbildet er endret." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Stryk" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Låseskjerminnstillinger" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Låseskjerm" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Trykk på og hold skjermen, og vipp deretter enheten mot deg for å låse den opp. Hvis skjermen ikke låses opp, kan du prøve å vippe enheten mer." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Enkelt passord" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Skjermlåstype" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Passord" + +msgid "IDS_ST_BODY_NONE" +msgstr "Ingen" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Bevegelse" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Rediger" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Kun nødanrop" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Mangler SIM-kort" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Læreprogram fullført." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Ugyldig handling. Prøv på nytt." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Tilbake" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Behandler..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Velg bakgrunn" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Lukk" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Søker" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Nettverk mangler" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Ugyldig PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Angi PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Angi passord." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Rediger" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Lukk" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Prøv på nytt om 1 sekund." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Fullt oppladet." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 ubesvart samtale" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Ny melding" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 ny melding" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Du har prøvd å låse opp enheten på feil måte %1$d ganger. Du har %2$d forsøk igjen før enheten tilbakestilles til fabrikkstandarder og alle data slettes." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Prøv på nytt om %d sek." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Stryk over skjermen for å vise melding" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Stryk over skjermen for å vise samtalelogg" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Ikke treff" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Angi PIN-kode for å vise melding" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Angi PIN-kode for å vise samtalelogg" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Angi passord for å vise melding" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Angi passord for å vise samtalelogg" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Dobbel klokke" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Kamerasnarvei" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Feil PIN-kode" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Gå tilbake til samtale" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Reservepassord" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Lås opp via Tizen-konto" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Lås opp via\nTizen-konto" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Du har %1$d tapte anrop og %2$d uleste meldinger." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Du har prøvd å låse opp enheten på feil måte %d ganger. Den vil nå bli tilbakestilt til fabrikkstandardene og alle data vil bli slettet." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Stryk over skjermen for å vise samtaleloggen." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Stryk over skjermen for å åpne Meldinger." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Enkel passordlås blir automatisk aktivert hvis Gear er for langt unna til å kunne oppdages. Når Gear oppdages, endres låseskjermtypen til Strykelås." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d nye meldinger" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d tapte anrop" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d til %2$d sifre eller bokstaver nødvendige." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Angi PIN-kode for å låse opp." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Angi 4-sifret PIN-kode." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Kun nødanrop" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Nødanrop" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Lader: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "LUKK" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Fingeravtrykk" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Velg apper" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Avbryt" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Vær" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Hjem" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Dra og slipp de fargede firkantene fra det øvre området til det nedre området, eller trykk på de fargede firkantene i det øvre området i rekkefølge etter hvor like de er den fargen de blir sammenlignet med. Du kan dra og slippe firkantene i det nedre området for å endre rekkefølgen på dem." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Automatisk lås" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Lagre" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Forkast" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Avbryt" + diff --git a/po_sdk/nl.po b/po_sdk/nl.po new file mode 100755 index 0000000..432ce4d --- /dev/null +++ b/po_sdk/nl.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Alleen noodoproepen." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Veeg over het scherm om te ontgrendelen." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 poging over." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d pogingen over." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Onjuist wachtwoord." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Gemiste oproep" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Gemiste oproepen" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Achtergrond" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Tik en houd het scherm vast, en kantel het apparaat naar u toe om het te ontgrendelen. Als het scherm niet kan worden ontgrendeld, kantelt u het apparaat nog verder. Wanneer beweging ontgrendelen is ingesteld, wordt beweging automatisch ingeschakeld in Instellingen." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Applicatie selecteren" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Achtergrond vergrendelscherm gewijzigd." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Achtergrond startscherm gewijzigd." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Vegen" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Instellingen schermvergrendeling" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Vergrendelscherm" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Tik en houd het scherm vast, en kantel het apparaat naar u toe om het te ontgrendelen. Als het scherm niet worden ontgrendeld, kantelt u het apparaat nog verder." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Eenvoudig wachtwoord" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Type schermvergrendeling" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Wachtwoord" + +msgid "IDS_ST_BODY_NONE" +msgstr "Geen" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Beweging" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Bewerken" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Alleen noodoproepen" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Geen SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Zelfstudie voltooid." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Ongeldige actie. Probeer het opnieuw." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Terug" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Verwerken..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Achtergrond selecteren" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Sluiten" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Zoeken" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Geen netwerk" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Onjuiste PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN invoeren" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Wachtwoord invoeren" + +msgid "IDS_COM_BODY_EDIT" +msgstr "Bewerken" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Sluiten" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Probeer opnieuw over 1 seconde." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Opgeladen." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 gemiste opr." + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nieuw bericht" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 nieuw bericht" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "U hebt %1$d keer een onjuiste poging gedaan om het apparaat te ontgrendelen. U hebt nog %2$d pogingen over voordat het apparaat wordt teruggezet op de fabrieksinstellingen en alle gegevens worden gewist." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Probeer opn. over %d sec." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Over het scherm vegen voor weergave bericht" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Over het scherm vegen voor weergave oproepenlijst" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Geen overeenkomst" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Pincode invoeren voor weergave bericht" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Pincode invoeren voor weergave oproepenlijst" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Wachtwoord invoeren voor weergave bericht" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Wachtwoord invoeren voor weergave oproepenlijst" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Dubbele klok" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Sneltoets camera" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Onjuiste pincode" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Terug naar oproep" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternatief wachtwoord" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Ontgrendelen via Tizen-account" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Ontgrend. via\nTizen-account" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "U hebt %1$d gemiste oproepen en %2$d ongelezen berichten." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "U hebt %d keer een onjuiste poging gedaan om het apparaat te ontgrendelen. Het wordt nu teruggezet op de fabrieksinstellingen en alle gegevens worden gewist." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Veeg over het scherm om de oproepenlijst weer te geven." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Veeg over het scherm om Berichten te openen." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Vergrendeling met eenvoudig wachtwoord wordt automatisch ingeschakeld als uw Gear te ver weg is om te worden gedetecteerd. Wanneer uw Gear wordt gedetecteerd, wordt uw schermvergrendelingstype gewijzigd in Veegvergrendeling." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d nieuwe berichten" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d gemiste oproepen" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d tot %2$d cijfers of letters vereist." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Geef pincode in voor ontgrendelen." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4-cijferige PIN invoeren." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Alleen noodoproepen." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Noodoproep" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Opladen: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "SLUITEN" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Vingerafdruk" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Applicaties selecteren" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Annuleer" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Weer" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Privé" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Sleep de gekleurde vierkanten van het bovenste gedeelte naar het onderste gedeelte of tik op de gekleurde vierkanten in het bovenste gedeelte in de volgorde van overeenkomst met de kleur waarmee wordt vergeleken. Sleep de vierkanten naar het onderste gedeelte om de volgorde te wijzigen." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Automatisch vergrendelen" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Opslaan" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Wissen" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Annuleer" + diff --git a/po_sdk/pl.po b/po_sdk/pl.po new file mode 100755 index 0000000..0ea2eb1 --- /dev/null +++ b/po_sdk/pl.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Tylko połączenia alarmowe." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Przeciągnij ekran, aby odblokować." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Pozostała 1 próba." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "Pozostało prób: %d." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Błędne hasło." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Połączenie nieodebrane" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Nieodebrane" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Tapety" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Dotknij ekranu i przytrzymaj go, a następnie pochyl urządzenie w swoją stronę, aby je odblokować. Jeśli ekran pozostanie zablokowany, spróbuj mocniej pochylić urządzenie. Po ustawieniu funkcji odblokowywania ekranu za pomocą ruchu obsługa ruchu zostanie automatycznie włączona w ustawieniach." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Wybierz aplikację" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Zmieniono tapetę ekranu blokady." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Zmieniono tapetę ekranu startowego." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Przeciągnij" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Ustawienia blokowania ekranu" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Ekran blokady" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Dotknij ekranu i przytrzymaj go, a następnie obróć urządzenie do siebie, aby go odblokować. Jeżeli ekran nie odblokuje się, ponownie obróć urządzenie." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Proste hasło" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Typ blokady ekranu" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Hasło" + +msgid "IDS_ST_BODY_NONE" +msgstr "Brak" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Ruch" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Edytuj" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Tylko połączenia alarmowe" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Brak karty SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Samouczek ukończono." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Nieprawidłowa akcja. Spróbuj ponownie." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Wstecz" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Przetwarzanie..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Wybierz tapetę" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Zamknij" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Wyszukiwanie" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Brak sieci" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Nieprawidłowy PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Wpisz PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Wpisz hasło." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Edytuj" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Zamknij" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Ponów próbę za 1 s." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Bateria pełna." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 połączenie nieodebrane" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nowa wiad." + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "Now.wiad: 1" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Nieprawidłowych prób odblokowania urządzenia: %1$d. Pozostałych prób przed wyzerowaniem urządzenia do domyślnych ustawień fabrycznych i usunięciem wszystkich danych: %2$d." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Ponów próbę za %d sek." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Przeciągnij palcem po ekranie, aby wyświetlić wiadomość" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Przeciągnij palcem po ekranie, aby wyświetlić spis połączeń" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Nie znaleziono" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Podaj kod PIN, aby wyświetlić wiadomość" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Podaj kod PIN, aby wyświetlić spis połączeń" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Podaj hasło, aby wyświetlić wiadomość" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Podaj hasło, aby wyświetlić spis połączeń" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Zegar podwójny" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Skrót do aparatu" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Nieprawidłowy kod PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Wróć do połączenia" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternatywne hasło" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Odblokuj za pomocą konta Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Odbl. za pomocą\nkonta Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Nieodebranych połączeń: %1$d i nieprzeczytanych wiadomości: %2$d." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Podjęto nieprawidłową próbę odblokowania urządzenia %d razy. W urządzeniu zostaną przywrócone domyślne ustawienia fabryczne oraz zostaną z niego usunięte wszystkie dane." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Przeciągnij palcem po ekranie, aby wyświetlić spis połączeń." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Przeciągnij palcem po ekranie, aby otworzyć wiadomości." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Jeśli wykrycie zegarka Gear będzie niemożliwe z powodu zbyt dużej odległości, automatyczne włączy się blokada za pomocą prostego hasła. Gdy zegarek Gear zostanie wykryty, typ blokady ekranu zmieni się na blokadę za pomocą przeciągania." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "Nowych wiadomości %d" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "Nieodebranych połączeń %d" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Wymaganych jest co najmniej cyfr lub liter: %1$d do %2$d." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Wprowadź odblokowujący kod PIN." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Wprowadź 4-cyfrowy kod PIN." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Tylko połączenia alarmowe." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Połączenie alarmowe" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Ładowanie: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ZAMKNIJ" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Odcisk palca" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Wybór aplikacji" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Anuluj" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Pogoda" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Macierzysta" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Przeciągaj kolorowe kwadraty z górnego obszaru i upuszczaj je na dolny obszar lub dotykaj kolorowych kwadratów w górnym obszarze w kolejności podobieństwa do koloru, który jest porównywany. Możesz przeciągać kwadraty do dolnego obszaru i upuszczać je w celu zmiany ich kolejności." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Automatyczna blokada" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Zapisz" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Odrzuć" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Anuluj" + diff --git a/po_sdk/pt_BR.po b/po_sdk/pt_BR.po new file mode 100755 index 0000000..38dd3db --- /dev/null +++ b/po_sdk/pt_BR.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Somente chamadas de emergência." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Deslize a tela para desbloquear." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Resta 1 tentativa." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "Restam %d tentativas." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Senha incorreta." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Chamada Perdida" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Perdidas" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Papéis de parede" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Mantenha a tela pressionada e incline o dispositivo na sua direção para desbloqueá-lo. Se a tela não for desbloqueada, tente inclinar mais o dispositivo. Quando o desbloqueio por movimento estiver definido, o movimento será ativado automaticamente nas Configurações." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Selecionar aplicação" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Papel de parede da tela de bloqueio alterado." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Papel de parede da tela de início alterado." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Deslizar" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Configurações da tela de bloqueio" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Tela de bloqueio" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Toque e segure a tela, então sacuda o dispositivo em sua direção para desbloqueá-lo. Se a tela não desbloquear, tente sacudir mais o dispositivo." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Senha simples" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Tipo de bloqueio de tela" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Senha" + +msgid "IDS_ST_BODY_NONE" +msgstr "Desativado" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Movimento" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Apenas cham. emergência" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Sem Cartão SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutorial concluído" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Ação inválida. Tente novamente." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Voltar" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Processando…" + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Selecionar fundo" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Fechar" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Procurando" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Sem serviço" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN incorreto." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Insira o PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Insira senha." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Fechar" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Tente novamente em 1 segundo." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Carregado." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 chamada perdida" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nova mensagem" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 mensagem nova" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Você tentou desbloquear o dispositivo incorretamente %1$d vezes. Você tem %2$d tentativas restantes antes do dispositivo ser redefinido para os padrões de fábrica e todos os dados serem apagados." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Tente nov. dentro %d seg." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Deslize a tela para visualizar a mensagem" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Deslize a tela para visualizar o registro de chamadas" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Sem correspondência" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Insira o PIN para visualizar a mensagem" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Insira o PIN para visualizar o registro de chamadas" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Insira a senha para visualizar a mensagem" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Insira a senha para visualizar o registro de chamadas" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Relógio duplo" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Atalho da Câmera" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN incorreto" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Retornar à chamada" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Senha alternativa" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Desbloquear pela Conta Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Desbloq. pela\nConta Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Você tem %1$d chamadas perdidas e %2$d mensagens não lidas." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Você tentou desbloquear o dispositivo incorretamente %d vezes. Ele será redefinido agora para os padrões de fábrica e todos os dados serão apagados." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Deslizar a tela para visualizar o registro de chamadas." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Deslizar a tela para abrir o Mensagens." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "O bloqueio de senha simples será ativado automaticamente caso o seu Gear esteja muito afastado para ser detectado. Quando o seu Gear for detectado, seu tipo de bloqueio de tela será alterado para bloqueio de Deslize." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d novas mensagens" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d chamadas perdidas" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "São necessários de %1$d a %2$d dígitos ou letras." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Inserir PIN de desbloqueio." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Insira o PIN de 4 dígitos." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Somente chamadas de emergência." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Chamada de emergência" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Carregando: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "FECHAR" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Impressão digital" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Selecione aplicativos" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Cancelar" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Clima" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Casa" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Arraste e solte os quadrados coloridos da área superior para a área inferior ou toque nos quadrados coloridos na área superior em ordem de semelhança com a cor que está sendo comparada. É possível arrastar e soltar os quadrados na área inferior e reordená-los." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Bloqueio automático" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Salvar" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Descart." + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancelar" + diff --git a/po_sdk/pt_PT.po b/po_sdk/pt_PT.po new file mode 100755 index 0000000..5247daf --- /dev/null +++ b/po_sdk/pt_PT.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Apenas chamadas de emergência." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Passe o dedo no ecrã para desbloquear." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Resta 1 tentativa." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d tentativas restantes." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Palavra-passe incorrecta." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Chamada não atendida" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Chamadas não atendidas" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Fundos" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Toque no ecrã sem soltar e incline o dispositivo na sua direcção para o desbloquear. Se o ecrã não se desbloquear, tente inclinar mais o dispositivo. Quando o desbloqueio de movimento está definido, o movimento será activado automaticamente nas Definições." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Seleccionar aplicação" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Bloqueio de fundo do ecrã alterado." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Fundo do ecrã principal alterado." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Passar o dedo" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Definições de bloqueio do ecrã" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Ecrã bloqueado" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Toque no ecrã sem soltar e incline o dispositivo na sua direcção para o desbloquear. Se o ecrã não se desbloquear, tente inclinar mais o dispositivo." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Palavra-passe simples" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Tipo de bloqueio do ecrã" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Palavra-passe" + +msgid "IDS_ST_BODY_NONE" +msgstr "Desligado" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Movimento" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Só chamadas de emergência" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Sem SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutorial concluído." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Acção inválida. Tente novamente." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Voltar" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "A processar..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Seleccionar fundo" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Fechar" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "A procurar" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Sem serviço" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN incorrecto." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Introduzir PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Introduzir palavra-passe." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Fechar" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Tente novamente dentro de 1 segundo." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Totalmente carregado." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 chamada não atendida" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nova mensagem" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 mensagem nova" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Tentou desbloquear o dispositivo incorrectamente %1$d vezes. Tem %2$d tentativas até serem repostos no dispositivo os valores de fábrica e todos os dados serem apagados." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Tente nov. dentro %d seg." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Deslizar o dedo no ecrã para ver mensagem" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Deslizar o dedo no ecrã para ver registo de chamadas" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Sem correspondência" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Introduza PIN para ver mensagem" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Introduza PIN para ver registo de chamadas" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Introduza palavra-chave para ver mensagem" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Introduza palavra-chave para ver registo de chamadas" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Relógio duplo" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Atalho da câmara" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN incorrecto" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Regressar à chamada" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Palavra-passe" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Desbloquear via conta Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Desbloquear via\nconta Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Tem %1$d chamadas perdidas e %2$d mensagens não lidas." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Tentou desbloquear o dispositivo incorrectamente %d vezes. Este vai ser reposto para as predefinições de fábrica e todos os dados serão apagados." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Passe o dedo no ecrã para ver o registo de chamadas." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Passe o dedo no ecrã para abrir Mensagens." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "O bloqueio com palavra-passe simples será activado automaticamente se o seu Gear estiver demasiado afastado para ser detectado. Quando o seu Gear é detectado, o tipo de bloqueio de ecrã é alterado para bloqueio por passagem do dedo." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d mensagens novas" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d chamadas perdidas" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "São necessários %1$d a %2$d dígitos ou letras." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Introduzir PIN de desbloqueio." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Introduzir PIN de 4 dígitos." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Apenas chamadas de emergência." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Chamada de emergência" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "A carregar: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "FECHAR" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Impressão digital" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Seleccionar aplicações" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Cancelar" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Tempo" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Pessoal" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Arraste e largue os quadrados coloridos da área superior para a área inferior ou toque nos quadrados coloridos da área superior pela ordem de semelhança com a cor que está a ser comparada. Pode arrastar e largar os quadrados na área inferior para os reorganizar." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Bloqueio automático" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Guardar" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Eliminar" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancelar" + diff --git a/po_sdk/ro.po b/po_sdk/ro.po new file mode 100755 index 0000000..63f1134 --- /dev/null +++ b/po_sdk/ro.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Numai apeluri de urgenţă" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Glisaţi cu degetul pe ecran pentru deblocare." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 încercare rămasă" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d încercări rămase" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Parolă incorectă" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Apel pierdut" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Apeluri pierdute" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Fundaluri" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Menţineţi apăsat ecranul, apoi înclinaţi dispozitivul spre dvs. pentru a-l debloca. Dacă ecranul nu se deblochează, încercaţi să înclinaţi mai mult dispozitivul. Când este setată deblocarea prin mişcări, mişcările vor fi activate automat în Setări." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Selectare aplicaţie" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Fundalul ecranului de blocare s-a schimbat." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Fundalul ecranului de pornire s-a schimbat." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Glisare" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Setări pentru ecranul de blocare" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Blocare ecran" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Mențineți apăsat ecranul, apoi înclinaţi dispozitivul spre dvs. pentru a-l debloca. Dacă ecranul nu se deblochează, încercaţi să înclinaţi mai mult dispozitivul." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Parolă simplă" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Tip blocare ecran" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Parolă" + +msgid "IDS_ST_BODY_NONE" +msgstr "Niciuna" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Mişcare" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editare" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Numai apeluri de urgenţă" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Fără SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Tutorial finalizat." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Acţiune nevalidă. Încercaţi din nou." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Înapoi" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Se procesează..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Selectare fundal" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Închide" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Se caută" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Nici un serviciu" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN incorect" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Introduceţi PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Introduceţi parola." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Editare" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Închidere" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Încercaţi din nou peste 1 secundă." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Încărcat complet" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 apel pierdut" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Mesaj nou" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 mesaj nou" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Aţi încercat să deblocaţi incorect dispozitivul de %1$d ori. Mai aveţi %2$d încercări înainte ca dispozitivul să fie resetat la valorile implicite din fabrică şi înainte ca toate datele să fie şterse." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Reîncercaţi peste %d sec." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Glisaţi pe ecran pentru a vizualiza mesajul" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Glisaţi pe ecran pentru a vizualiza jurnalul de apeluri" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Nicio potrivire" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Introduceţi codul PIN pentru a vizualiza mesajul" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Introduceţi codul PIN pentru a vizualiza jurnalul de apeluri" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Introduceţi parola pentru a vizualiza mesajul" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Introduceţi parola pentru a vizualiza jurnalul de apeluri" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Ceas dual" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Com. rapidă cameră foto" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN greşit" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Revenire la apel" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Parolă alternativă" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Deblocaţi utilizând contul Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Deblocaţi cu\ncontul Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Aveţi %1$d apeluri pierdute şi %2$d mesaje necitite." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Aţi încercat să deblocaţi incorect dispozitivul de %d ori. Acesta va fi resetat acum la valorile implicite din fabrică şi toate datele vor fi şterse." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Glisaţi pe ecran pentru a vizualiza jurnalul apelurilor." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Glisaţi pe ecran pentru a deschide Mesajele." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Blocarea prin parolă simplă va fi activată automat dacă Gear este prea departe pentru a fi detectat. Când Gear este detectat, tipul de blocare a ecranului va fi schimbat la Blocare prin glisare." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d mesaje noi" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d apeluri pierdute" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Sunt necesare între %1$d şi %2$d cifre sau litere." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Introduceţi codul PIN de deblocare." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Introduceţi codul PIN din 4 cifre." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Numai apeluri de urgenţă" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Apel de urgenţă" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Încărcare: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ÎNCH." + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Amprentă" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Selectaţi aplicaţii" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Anulare" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Vreme" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Acasă" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Glisaţi şi fixaţi pătratele colorate din zona de sus în zona de jos sau atingeţi pătratele colorate din zona de sus în ordinea asemănării cu culoarea care este comparată. Puteţi glisa şi fixa pătratele în zona de jos pentru a le reordona." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Blocare automată" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Salvare" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Renunţ." + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Anulare" + diff --git a/po_sdk/ru_RU.po b/po_sdk/ru_RU.po new file mode 100755 index 0000000..0f969d4 --- /dev/null +++ b/po_sdk/ru_RU.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Только экстренные вызовы." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Для разблокировки проведите пальцем по экрану." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Осталась 1 попытка." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "Осталось попыток: %d." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Неправильный пароль" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Пропущенный вызов" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Пропущено вызовов:" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Обои" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Для разблокировки нажмите и удерживайте экран, а затем наклоните устройство к себе. Если экран не разблокируется, попробуйте наклонить устройство сильнее. Если включена разблокировка движением, движения автоматически включаются в меню “Параметры”." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Выбор приложения" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Обои экрана блокировки изменены." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Обои главного экрана изменены." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Провести по экрану" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Параметры экрана блокировки" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Экран блокировки" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Для разблокировки нажмите и удерживайте экран, а затем наклоните устройство к себе. Если экран не разблокируется, попробуйте наклонить устройство сильнее." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Простой пароль" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Тип блокировки экрана" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Роуминг" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Пароль" + +msgid "IDS_ST_BODY_NONE" +msgstr "Нет" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Движение" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Изменить" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Только экстренные вызовы" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Нет SIM-карты" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Обучение завершено." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Недопустимое действие. Повторите попытку." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Назад" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Обработка..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Выбрать обои" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "ОК" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Закрыть" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Поиск" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Нет сети" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Неверный PIN" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Введите PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Введите пароль." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Изменить" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Закрыть" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Повторите через 1 секунду." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Заряжено." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 пропущенный звонок" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Новое сообщение" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "Новых сообщений: 1" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Число неудачных попыток разблокировки устройства: %1$d. Осталось попыток: %2$d, после чего настройки будут сброшены до заводских значений, а все данные — удалены." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Повторите через %d сек." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Проведите по экрану, чтобы просмотреть сообщение" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Проведите по экрану, чтобы просмотреть журнал вызовов" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Совпадения не найдены" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Введите PIN-код, чтобы просмотреть сообщение" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Введите PIN-код, чтобы просмотреть журнал вызовов" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Введите пароль, чтобы просмотреть сообщение" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Введите пароль, чтобы просмотреть журнал вызовов" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Двойные часы" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Ярлык камеры" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Неправильный PIN-код" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Вернуться к вызову" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Альтернативн. пароль" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Разблок. с\nпом. уч.\nзаписи Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Разбл. с пом.\nуч. зап. Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "У вас есть пропущенные вызовы (%1$d) и непрочитанные сообщения (%2$d)." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Число неудачных попыток разблокировки устройства: %d. Настройки будут сброшены до заводских значений, а все данные — удалены" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Проведите по экрану, чтобы просмотреть журнал вызовов." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Проведите по экрану, чтобы открыть “Сообщения”." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Если не удается определить устройство Gear, так как оно находится слишком далеко, автоматически включается блокировка экрана с помощью простого пароля. Если Gear распознается, тип блокировки изменится на блокировку прокруткой." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "Новых сообщений: %d" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "Пропущено вызовов: %d" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Требуется от %1$d до %2$d цифр или букв." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Введите PIN-код разблокировки." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Введите 4-значный PIN-код." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Только экстренные вызовы." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Экстренный вызов" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Зарядка: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ЗАКРЫТЬ" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Отпечаток пальца" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Выбор приложений" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Отмена" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Погода" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Домашний" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Перетащите цветные квадраты из верхней области в нижнюю или нажмите на цветные квадраты в верхней области в порядке сходства с цветом, с которым выполняется сравнение. Можно перетащить квадраты в нижнюю область, чтобы изменить их порядок." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Автоблокировка" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Сохранить" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Удалить" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Отмена" + diff --git a/po_sdk/sk.po b/po_sdk/sk.po new file mode 100755 index 0000000..f37f942 --- /dev/null +++ b/po_sdk/sk.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Len tiesňové volania." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Odomknite potiahnutím prsta po obrazovke." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Zostáva 1 pokus." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "Počet zostávajúcich pokusov: %d." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Nesprávne heslo." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Zmeškaný hovor" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Zmeškané hovory" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Tapety" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Ťuknite na obrazovku a podržte ju a potom naklonením zariadenia smerom k sebe ho odomknite. Ak sa obrazovka neodomkne, skúste viac nakloniť zariadenie. Keď je nastavené odomknutie pohybom, v časti Nastavenia sa automaticky zapne funkcia pohybu." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Vyberte aplikáciu" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Tapeta zamknutej obrazovky bola zmenená." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Tapeta domovskej obrazovky bola zmenená." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Potiahnuť" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Nastavenia zamknutej obrazovky" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Zamknutá obrazovka" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Ťuknutím na obrazovku, jej podržaním a následným naklonením zariadenia smerom k sebe vykonajte jeho odomknutie. Ak sa obrazovka neodomkne, skúste viac nakloniť zariadenie." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Jednoduché heslo" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Typ zamknutia obrazovky" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Heslo" + +msgid "IDS_ST_BODY_NONE" +msgstr "Žiadny" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Pohyb" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Upraviť" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Iba tiesňové volania" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Žiadna SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Kurz je dokončený." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Neplatná akcia. Skúste to znova." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Späť" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Prebieha spracovanie..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Vybrať tapetu" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Zavrieť" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Hľadá sa" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Žiadna služba" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Nesprávny PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Zadať PIN" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Zadajte heslo." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Upraviť" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Zavrieť" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Skúste to znova za 1 sekundu." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Plne nabité." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 zmeškaný hovor" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nová správa" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 nová správa" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "%1$d-krát ste sa pokúsili nesprávne odomknúť zariadenie. Zostávajú vám ešte %2$d pokusy a potom sa pre zariadenie obnovia predvolené nastavenia od výrobcu a vymažú sa všetky údaje." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Skúste znova o %d sekúnd." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Potiahnutím po obrazovke môžete zobraziť správu" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Potiahnutím po obrazovke môžete zobraziť denník hovorov" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Žiadna zhoda" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Zadajte kód PIN na zobrazenie správy" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Zadajte kód PIN na zobrazenie denníka hovorov" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Zadajte heslo na zobrazenie správy" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Zadajte heslo na zobrazenie denníka hovorov" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Duálne hodiny" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Odkaz na apl. Fotoaparát" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Nesprávny kód PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Návrat k hovoru" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternatívne heslo" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Odomknúť cez konto Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Odomknúť cez\nkonto Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Máte zmeškané hovory v počte %1$d a neprečítané správy v počte %2$d." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "%d-krát ste sa pokúsili nesprávne odomknúť zariadenie. Teraz sa preň obnovia predvolené nastavenia od výrobcu a vymažú sa všetky údaje." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Potiahnutím po obrazovke môžete zobraziť denník hovorov." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Potiahnutím po obrazovke môžete otvoriť aplikáciu Správy." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Ak sú hodinky Gear príliš ďaleko a nemožno ich zistiť, automaticky sa aktivuje zamykanie jednoduchým heslom. Keď sa zistia hodinky Gear, typ zámku obrazovky sa zmení na zamykanie potiahnutím." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "Nové správy: %d" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "Zmeškané hovory: %d" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Vyžaduje sa %1$d až %2$d číslic alebo písmen." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Zadajte odomykací kód PIN." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Zadajte 4-ciferný kód PIN." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Len tiesňové volania." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Tiesňový hovor" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Nabíja sa: %d %" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ZAVRIEŤ" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Odtlačok prsta" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Vyberte aplikácie" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Zrušiť" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Počasie" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Domov" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Uchopte a presuňte farebné štvorčeky z hornej časti do dolnej časti alebo ťuknite na farebné štvorčeky v hornej časti v poradí podľa podobnosti k farbe, ktorá sa porovnáva. Uchopením a presunutím štvorčekov do dolnej časti môžete zmeniť ich poradie." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Automatické zamykanie" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Uložiť" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Zahodiť" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Zrušiť" + diff --git a/po_sdk/sl.po b/po_sdk/sl.po new file mode 100755 index 0000000..b1900e8 --- /dev/null +++ b/po_sdk/sl.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Samo klici v sili." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Podrsajte po zaslonu, da ga odklenete." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Preostal je še 1 poskus." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d preostalih poizkusov." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Napačno geslo." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Neodgovorjen klic" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Neodgovorjeni klici" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Ozadja" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Pritisnite in pridržite zaslon ter nagnite napravo proti sebi, da jo odklenete. Če se zaslon ne odklene, poskusite napravo še bolj nagniti. Če je nastavljeno odklepanje z gibanjem, bo gibanje samodejno omogočeno v meniju Nastavitve." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Izberite program" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Ozadje zaklenjenega zaslona je spremenjeno." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Ozadje domačega zaslona je spremenjeno." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Podrsaj" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Nastavitve zaklenjenega zaslona" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Zaklenjen zaslon" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Pritisnite in pridržite zaslon ter nagnite napravo proti sebi, da jo odklenete. Če se zaslon ne odklene, poskusite bolj nagniti napravo." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Preprosto geslo" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Vrsta zaklepanja zaslona" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Gostovanje" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Geslo" + +msgid "IDS_ST_BODY_NONE" +msgstr "Brez" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Gibanje" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Uredi" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Samo klici v sili" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Ni SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Vadnica je končana." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Neveljavno dejanje. Poskusite znova." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Nazaj" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Obdelujem..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Izberite sliko za ozadje" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "V redu" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Zapri" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Iščem" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Ni storitve" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Napačna koda PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Vnesite PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Vnesite geslo." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Uredi" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Zapri" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Poskusite znova čez 1 s." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Napolnjeno." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 neodgovorjen klic" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Novo sporočilo" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 novo sporočilo" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Napravo ste %1$d-krat poskusili odkleniti nepravilno. Imate še %2$d poskusov, preden bo naprava ponastavljena na privzete tovarniške nastavitve in bodo izbrisani vsi podatki." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Poskusite znova čez %d s." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Za prikaz sporočila podrsajte po zaslonu" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Za prikaz dnevnika klicev podrsajte po zaslonu" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Brez ujemanja" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Za prikaz sporočila vnesite kodo PIN" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Za prikaz dnevnika klicev vnesite kodo PIN" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Za prikaz sporočila vnesite geslo" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Za prikaz dnevnika klicev vnesite geslo" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Dvojna ura" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Bližnjica do fotoaparata" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Napačna koda PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Vrnitev na klic" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Nadomestno geslo" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Odkleni z računom Tizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Odkleni z\nračunom Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Imate %1$d zgrešenih klicev in %2$d neprebranih sporočil." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Napravo ste %d-krat poskusili odkleniti nepravilno. Zdaj bo ponastavljena na privzete tovarniške nastavitve in vsi podatki bodo izbrisani." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Podrsajte po zaslonu, da prikažete dnevnik klicev." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Podrsajte po zaslonu, da odprete Sporočila." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Preprosto zaklepanje z geslom se samodejno omogoči, če je ura Gear predaleč, da bi jo bilo mogoče zaznati. Ko je ura Gear zaznana, se vrsta zaklepanja zaslona spremeni v drsno zaklepanje." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d novih sporočil" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d neodgovorjenih klicev" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Zahtevanih je od %1$d do %2$d znakov ali črk." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Vnesite PIN za odklepanje." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Vnesite 4-mestno kodo PIN." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Samo klici v sili." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Klic v sili" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Polnjenje: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ZAPRI" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Prstni odtis" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Izberite aplikacije" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Prekliči" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Vreme" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Domači" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Povlecite in spustite barvne okvirčke iz zgornjega dela v spodnji del ali pritisnite barvne okvirčke v zgornjem delu glede na podobnost barvi, s katero primerjate. Barvne okvirčke v spodnjem delu lahko povlečete in spustite, da spremenite njihovo zaporedje." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Samodejno zaklepanje" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Shrani" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Zavrzite" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Prekliči" + diff --git a/po_sdk/sr.po b/po_sdk/sr.po new file mode 100755 index 0000000..24dfd72 --- /dev/null +++ b/po_sdk/sr.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Samo pozivi u hitnim slučajevima." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Prevuci prstom po ekranu radi otključavanja." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 pokušaj preostao." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d pokušaja ostalo." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Pogrešna šifra" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Propušten poziv" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Propušteni pozivi" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Tapeti" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Kucni i zadrži ekran, a zatim nagni uređaj prema sebi da bi ga otključao/la. Ako se ekran ne otključa, pokušaj da nagneš uređaj više. Kada je podešeno otključavanje pokretom, pokret će automatski biti omogućen u okviru Podešavanja." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Izaberi aplikaciju" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Tapet zaključanog ekrana je promenjen." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Tapet početnog ekrana je promenjen." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Prevuci" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Podešavanja zaključanog ekrana" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Zaključan ekran" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Kucni i zadrži ekran, a zatim nagni uređaj prema sebi da bi ga otključao/la. Ako se ekran ne otključa, pokušaj da nagneš uređaj više." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Jednostavna lozinka" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Tip zaključavanja ekrana" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Lozinka" + +msgid "IDS_ST_BODY_NONE" +msgstr "Nema" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Pokret" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Izmeni" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Samo poz. u hit. slučaj." + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Nema SIM kartice" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Vodič dovršen." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Neispravna radnja. Pokušaj ponovo." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Nazad" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Obrada..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Izaberi tapet" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Zatvori" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Pretraga" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Nema prijema" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Neispravan PIN kod." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Unesi PIN kod." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Unesi šifru." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Izmeni" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Zatvori" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Pokušaj ponovo nakon jedne sekunde." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Potpuno napunjena." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 propušten poziv" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nova poruka" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 nova poruka" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "%1$d puta si pogrešio/la u pokušaju da otključaš uređaj. Preostalo ti je %2$d pokušaja pre vraćanja uređaja na podrazumevana fabrička podešavanja i brisanja svih podataka." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Probaj opet za %d sekundi." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Prevuci prstom da bi prikazao/la poruku" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Prevuci prstom da bi prikazao/la dnevnik poziva" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Nema pogodaka" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Unesi PIN kôd da bi prikazao/la poruku" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Unesi PIN kôd da bi prikazao/la dnevnik poziva" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Unesi lozinku da bi prikazao/la poruku" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Unesi lozinku da bi prikazao/la dnevnik poziva" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Dvostruki sat" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Prečica za kameru" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Neispravna PIN kartica" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Vrati se na poziv" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternativna lozinka" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Otključaj putem Tizen naloga" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Otključaj putem\nTizen naloga" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Imaš propuštenih poziva: %1$d i nepročitanih poruka: %2$d." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "%d puta si pogrešio/la u pokušaju da otključaš uređaj. Uređaj će se sada vratiti na podrazumevana fabrička podešavanja i svi podaci će biti izbrisani." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Prevuci prstom preko ekrana da bi prikazao/la dnevnik poziva." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Prevuci prstom preko ekrana da bi otvorio/la Poruke." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Zaključavanje jednostavnom lozinkom će se automatski omogućiti ako je Gear isuviše daleko da bi se detektovao. Kada se Gear detektuje, promeniće se tip zaključavanja ekrana u zaključavanje prevlačenjem." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d nove/ih poruke/a" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d propuštenih poziva" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Obavezno je između %1$d i %2$d cifara ili slova." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Unesi PIN za otključavanje." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Unesi PIN sa 4 cifre." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Samo pozivi u hitnim slučajevima." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Pozivi u hitnim slučajevima" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Punjenje: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ZATVORI" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Otisak prsta" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Izaberi aplikacije" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Otkaži" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Vreme" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Kuća" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Prevuci i otpusti obojene kvadrate sa gornje oblasti na donju ili kucni na obojene kvadrate koji se nalaze u gornjoj oblasti da bi utvrdio/la sličnost njihove boje sa bojom sa kojom se poredi. Možeš da prevlačiš i otpuštaš kvadrate koji se nalaze u donjoj oblasti kako bi im promenio/la redosled." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Automatsko zaključavanje" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Sačuvaj" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Odbaci" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Otkaži" + diff --git a/po_sdk/sv.po b/po_sdk/sv.po new file mode 100755 index 0000000..1e46878 --- /dev/null +++ b/po_sdk/sv.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Endast nödsamtal." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Dra fingret över skärmen för att låsa upp." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 försök kvar." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d försök kvar." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Fel lösenord." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Missat samtal" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Missade samtal" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Bakgrunder" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Tryck på skärmen, håll nedtryckt och luta enheten mot dig för att låsa upp den. Om skärmen inte blir upplåst kan du försöka att luta den mer. Om låsa upp med rörelse ställs in, aktiveras rörelse automatiskt i Inställningar." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Välj program" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Låsskärmens bakgrund har ändrats." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Hemskärmens bakgrund har ändrats." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Dra" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Inställningar för låsskärm" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Låsskärm" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Tryck på och håll kvar på skärmen och vinkla sedan enheten mot dig för att låsa upp. Vinkla skärmen mer om den inte låses upp." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Enkelt lösenord" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Skärmlåstyp" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Roaming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Lösenord" + +msgid "IDS_ST_BODY_NONE" +msgstr "Ingen" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Rörelse" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Redigera" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Endast nödsamtal" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Inget SIM" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Introduktionen är slutförd." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Ogiltig åtgärd. Försök igen." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Åter" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Bearbetar..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Välj bakgrund" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Stäng" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Söker" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Ej service" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Fel PIN-kod." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Ange PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Ange lösenord." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Redigera" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Stäng" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Försök igen om 1 sekund." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Fulladdad." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 missat samtal" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Nytt meddelande" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 nytt meddelande" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Du har försökt låsa upp enheten på fel sätt %1$d gånger. Du har %2$d försök kvar innan enheten återställs till fabriksinställningar och alla data raderas." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Försök igen om %d sek." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Svep över skärmen för att visa meddelandet" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Svep över skärmen för att visa samtalsloggen" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Ingen matchning" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Ange PIN-koden för att visa meddelandet" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Ange PIN-koden för att visa samtalsloggen" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Ange lösenordet för att visa meddelandet" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Ange lösenordet för att visa samtalsloggen" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Dubbel klocka" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Kameragenväg" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Felaktig PIN-kod" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Återgå till samtal" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternativt lösenord" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Lås upp från Tizen-konto" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Lås upp från\nTizen-konto" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Du har %1$d missade samtal och %2$d olästa meddelanden." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Du har försökt att låsa upp enheten felaktigt %d gånger. Enheten kommer nu att återställas till fabriksinställningarna och alla data kommer att raderas." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Dra över skärmen för att visa samtalsloggen." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Dra över skärmen för att öppna Meddelanden." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Enkelt lösenordslås aktiveras automatiskt om din Gear är för långt bort för att identifieras. När Gear identifieras ändras skärmlåset till Lås genom att dra." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d nya meddelanden" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d missade samtal" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d till %2$d siffror eller bokstäver krävs." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Ange Upplåsnings-PIN." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Ange 4-siffrig PIN." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Endast nödsamtal." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Nödsamtal" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Laddar: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "STÄNG" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Fingeravtryck" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Välj program" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Avbryt" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Väder" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Hem" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Dra och släpp de färgade rutorna från det övre området till det nedre området eller tryck på de färgade rutorna i det övre området i den ordning som färgerna jämförs. Du kan dra och släppa rutorna i det nedre området för att sortera om dem." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Auto-lås" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Spara" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Ta bort" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Avbryt" + diff --git a/po_sdk/tr_TR.po b/po_sdk/tr_TR.po new file mode 100755 index 0000000..8efd07f --- /dev/null +++ b/po_sdk/tr_TR.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Yalnızca acil aramalar." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Açmak için ekranı kaydırın." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 deneme hakkı kaldı." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d deneme kaldı." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Şifre yanlış." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Cevapsız arama" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Cevapsız arama" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Duvar kağıtları" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Ekrana dokunun ve basılı tutun, ardından kilidini açmak için cihazı kendinize doğru eğin. Ekran kilidi açılmazsa cihazı daha fazla eğmeyi deneyin. Hareket kilidi açıldığında hareket işlevi Ayarlar'da otomatik olarak etkinleştirilir." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Uygulama seç" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Kilit ekranı duvar kağıdı değişti." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Ana ekran duvar kağıdı değişti." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Kaydır" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Kilit ekranı ayarları" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Kilit ekranı" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Ekrana dokunup basılı tutun, sonra kilidini açmak için cihazı kendinize doğru eğin. Ekran kilidi açılmazsa, cihazı daha fazla eğmeyi deneyin." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Basit şifre" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Ekran kilidi türü" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Dolaşım" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Şifre" + +msgid "IDS_ST_BODY_NONE" +msgstr "Hiçbiri" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Hareket" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Düzenle" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Sadece acil aramalar" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM yok" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Eğitsel bitti." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Geçersiz eylem. Yeniden deneyin." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Geri" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Uygulanıyor..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Duvar kağıdı seç" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "Tamam" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Kapat" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Aranıyor" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Servis yok" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN yanlış." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN'i girin." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Şifreyi girin." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Düzenle" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Kapat" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1 saniye icinde tekrar deneyin." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Tam dolu." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 cevapsız arama" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Yeni mesaj" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 yeni msj" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Cihazın kilidini açmak için şifreyi %1$d kez yanlış girdiniz. Cihaz varsayılan fabrika ayarlarına sıfırlanmadan ve tüm veriler silinmeden önce %2$d deneme hakkınız kaldı." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d saniye içinde de tekrar deneyin." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Mesajı görüntülemek için ekranı kaydırın" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Arama kaydını görüntülemek için ekranı kaydırın" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Eşleşme yok" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Mesajı görüntülemek için PIN'i girin" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Arama günlüğünü görüntülemek için PIN'i girin" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Mesajı görüntülemek için şifreyi girin" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Arama kaydını görüntülemek için şifreyi girin" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Çift saat" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Kamera kısayolu" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Yanlış PIN" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Aramaya geri dön" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Alternatif şifre" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Kilidi Tizen hesabı ile aç" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Kilidi Tizen\nhesabıyla aç" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "%1$d cevapsız arama ve %2$d okunmamış mesajınız var." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Cihazın kilidini %d defa yanlış açma girişiminde bulundunuz. Cihaz şimdi fabrika ayarlarına sıfırlanacak ve tüm veriler silinecektir." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Arama günlüğünü görüntülemek için ekranı kaydırın." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Mesajları açmak için ekranı kaydırın." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Gear'ınız algılanamayacak kadar uzaktaysa basit şifre kilidi otomatik olarak etkinleştirilir. Gear'ınız algılandığında ekran kilidi türünüz Kaydırma kilidi olarak değiştirilir." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d yeni mesaj" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d cevapsız çağrı" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d - %2$d hane veya harf gerekli." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Kilit açma PIN'i girin." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4 haneli PIN'i girin" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Yalnızca acil aramalar." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Acil arama" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Şarj oluyor: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "KAPAT" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Parmak izi" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Uygulamaları seç" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "İptal" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Hava" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Ev" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Renkli kareleri üst alandan alt alana sürükleyip bırakın veya karşılaştırılan renkle aynı sırada üst alandaki renkli karelere dokunun. Yeniden sıralamak için alt alandaki kareleri sürükleyip bırakabilirsiniz." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Otomatik kilit" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Kaydet" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Sil" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "İptal" + diff --git a/po_sdk/uk.po b/po_sdk/uk.po new file mode 100755 index 0000000..b9df5ed --- /dev/null +++ b/po_sdk/uk.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Лише екстрені виклики." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Проведіть по екрану, щоб розблокувати." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "Залишилась 1 спроба." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d спроби залишилось." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Хибний пароль." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Пропущений виклик" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "Пропущені" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Заставки" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Натисніть і утримуйте екран, а потім нахиліть пристрій до себе для його розблокування. Якщо екран не розблоковано, спробуйте більше нахилити пристрій. У разі встановлення розблокування за допомогою рухів функцію руху буде автоматично увімкнено в меню «Установки»." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Виберіть програму" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Заставку екрана блокування змінено." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Заставку екрана оформлення змінено." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Проведення" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Установки екрана блокування" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Екран блокування" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Натисніть і утримуйте екран, а потім нахиліть пристрій до себе для його розблокування. Якщо екран не розблоковано, спробуйте більше нахилити пристрій." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Простий пароль" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Тип блокування екрана" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Роумінг" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Пароль" + +msgid "IDS_ST_BODY_NONE" +msgstr "Немає" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Рух" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Редагувати" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Лише екстрені виклики" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "Відсутня SIM-карта" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Посібник завершено." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Неприпустима дія. Cпробуйте ще раз." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Назад" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Обробка..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Вибір заставки" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "ОК" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Закрити" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Пошук" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Немає мережі" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Хибний PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "Введіть PIN." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Введіть пароль." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Редагувати" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Закрити" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "Спробуйте ще раз через 1 секунду." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "Батарею заряджено." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 пропущений виклик" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Нове повідомлення" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 нове повідомлення" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Кількість невдалих спроб розблокування пристрою: %1$d. Залишилася %2$d спроб, перш ніж установки пристрою буде скинуто до стандартних заводських значень, а всі дані видалено." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "Повт.спробу через %d сек." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Проведіть по екрану, щоб переглянути повідомлення" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Проведіть по екрану, щоб переглянути журнал викликів" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Немає збігів" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Введіть PIN-код, щоб переглянути повідомлення" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Введіть PIN-код, щоб переглянути журнал викликів" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Введіть пароль, щоб переглянути повідомлення" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Введіть пароль, щоб переглянути журнал викликів" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Подвійний годинник" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Ярлик камери" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Хибний PIN-код" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Повернутися до виклику" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Альтернативн. пароль" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Розбл.чер.\nоблік.запис\nTizen" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Розблокув.чер.\nобл.запис Tizen" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Пропущених викликів: %1$d, непрочитаних повідомлень: %2$d." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Кількість невдалих спроб розблокування пристрою: %d. Установки буде скинуто до заводських та усі дані буде стерто" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Проведіть по екрану, щоб переглянути журнал викликів." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Проведіть по екрану, щоб відкрити розділ «Повідомлення»." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Якщо Gear неможливо виявити через завелику відстань до нього, буде автоматично ввімкнено блокування за допомогою простого паролю. У разі виявлення Gear блокування екрана буде змінено на блокування в разі проведення." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "Нові повідомлення: %d" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "Пропущені виклики: %d" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "Потрібно ввести від %1$d до %2$d цифр або літер." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Введіть PIN-код розблокування." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "Введіть PIN-код із 4 цифр." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Лише екстрені виклики." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Екстрений виклик" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Заряджання: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "ЗАКРИТИ" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Відбиток пальця" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Вибір програм" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Скасувати" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Погода" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Домашній" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Перетягніть кольорові квадрати з верхньої частини екрана в нижню або натисніть їх у верхній частині екрана в порядку подібності до кольору, з яким здійснюється порівняння. Ви можете перетягувати квадрати у нижній частині екрана, щоб змінити їх порядок." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Автоматичне блокування" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Зберегти" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Відхил." + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Скасувати" + diff --git a/po_sdk/uz.po b/po_sdk/uz.po new file mode 100755 index 0000000..04cda57 --- /dev/null +++ b/po_sdk/uz.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "Faqat favqulodda qo‘ng‘iroqlar." + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "Blokdan chiqarish uchun ekranni ustida barmog‘ingizni harakatlantiring." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "1 attempt left." + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "%d urinish qoldi." + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "Noto‘g‘ri parol." + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "Qabul qilinmagan qo‘ng‘iroq" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "O‘tkazib yuborilgan qo‘ng‘iroqlar" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "Fon rasmlari" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "Ekran ustiga bosib turing, so‘ng qurilmani blokdan chiqarish uchun uni o‘zingiz tomon og‘diring. Agar qurilma blokdan chiqarilmasa, qurilmani ko‘proq og‘diring. Harakat bilan blokdan chiqarish o‘rnatilganda, harakat Parametrlarda avtomatik ravishda yoqiladi." + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "Ilova tanlash" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Bloklash ekrani fon rasmi o‘zgartirildi." + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "Uy ekranining fon rasmi o‘zgartirildi." + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "Surish" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "Bloklash ekrani parametrlari" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "Bloklash ekrani" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "Ekran ustiga bosib turing, so‘ng qurilmani blokdan chiqarish uchun uni o‘zingiz tomon og‘diring. Agar qurilma blokdan chiqarilmasa, qurilmani ko‘proq og‘diring." + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "Sodda parol" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "Ekranni bloklash turi" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "Rouming" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "Parol" + +msgid "IDS_ST_BODY_NONE" +msgstr "Hech qaysi" + +msgid "IDS_ST_BODY_MOTION" +msgstr "Harakat" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Tahrirlash" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Shokoladli pechenye" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "Faqat favqulodda qo‘ng‘ir" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "SIM-karta yo‘q" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "Ko‘rsatma yakunlandi." + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "Noto‘g‘ri harakat. Qayta urinib ko‘ring." + +msgid "IDS_COM_SK_BACK_A" +msgstr "Orqaga" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "Bajarilmoqda..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "Fon rasmini tanlang" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "OK" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "Yopish" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "Qidirilmoqda" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "Xizmat yo‘q" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "Noto‘g‘ri PIN." + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "PIN-kod kiriting." + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "Parol kiriting." + +msgid "IDS_COM_BODY_EDIT" +msgstr "Tahrirlash" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "Yopish" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "1 soniyadan keyin qayta urinib ko‘ring." + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "To‘la zaryadlangan." + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 o‘tkazib yuborilgan qo‘ng‘iroq" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "Yangi xabar" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 yangi xabar" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "Siz %1$d marta qurilmani blokdan chiqarishga noto‘g‘ri urindingiz. Yana %2$dta noto‘g‘ri urinishdan so‘ng qurilma ishlab chiqaruvchi parametrlariga qaytariladi va barcha ma’lumotlar o‘chirib tashlanadi." + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d soniyada qayta urining." + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "Xabarni ko‘rib chiqish uchun ekranni suring" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "Qo‘ng‘iroqlar jurnalini ko‘rish uchun ekranni suring" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "Moslik yo‘q" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "Xabarni ko‘rib chiqish uchun PIN-kodni kiriting" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "Qo‘ng‘iroqlar jurnalini ko‘rish uchun PIN-kodni kiriting" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "Xabarni ko‘rib chiqish uchun parolni kiriting" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "Qo‘ng‘iroqlar jurnalini ko‘rish uchun parolni kiriting" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "Ikkitali soat" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "Kamera yorlig‘i" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "Noto‘g‘ri PIN-kod" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "Qo‘ng‘iroqqa qaytish" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "Muqobil parol" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "Tizen his.\nqayd. orq.\nblk. chiq" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "Tizen his.qayd.\norq. blk chiqar" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "Sizda %1$d o‘tkazib yuborilgan qo‘ng‘iroq va %2$d o‘qilmagan xabar mavjud." + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "Siz %d marta qurilmani blokdan chiqarishga noto‘g‘ri urindingiz. U hozir ishlab chiqaruvchi parametrlariga qaytariladi va barcha ma’lumotlar o‘chirib tashlanadi" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "Qo‘ng‘iroq jurnalini ko‘rib chiqish uchun ekranni suring." + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "Xabarlarni ochish uchun ekranni suring." + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "Agar Gearingiz juda uzoqda joylashgan bo‘lsa, oddiy parol bloki avtomatik ravishda yoqiladi. Gearingiz aniqlanganda, ekraningiz bloki turi Surib bloklashga o‘tkaziladi." + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%dta yangi xabar" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%dta o‘tkazib yuborilgan qo‘ng‘iroq" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "%1$d-%2$d raqam yoki harflar talab qilinadi." + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "Blokdan chiqarish PIN-kodini kiriting." + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "4 xonali PIN-kodni kiriting." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "Faqat favqulodda qo‘ng‘iroqlar." + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "Favqulodda qo‘ng‘iroqlar" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "Zaryadlanmoqda: %d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "YOPISH" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "Barmoq izi" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "Ilovalarni tanlash" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "Bekor qilish" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "Ob-havo" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "Asosiy" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "Rangli kvadratlarni yuqoridan pastga tortib olib keling yoki yuqoridagi rangli kvadratlarni solishtirilayotgan ranglar ketma-ketligida cherting. Pastdagi rangli kvadratlar tartibini o‘zgartirish uchun kvadratlarni tartib olib kelishingiz mumkin." + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "Avtomatik bloklash" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Saqlash" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Rad et" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Bekor qilish" + diff --git a/po_sdk/zh_CN.po b/po_sdk/zh_CN.po new file mode 100755 index 0000000..d972f81 --- /dev/null +++ b/po_sdk/zh_CN.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "仅限紧急呼叫" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "滑动屏幕以解锁" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "还能尝试 1 次。" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "还有 %d 次机会。" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "密码错误" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "未接来电" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "未接来电" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "墙纸" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "輕觸並按住螢幕,然後將裝置朝您的方向傾斜以解鎖。若螢幕未解鎖,請試著將裝置再傾斜一些。當設定動作解鎖時,動作將自動於設定中啟用。" + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "选择应用程序" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "锁定屏幕墙纸已更改。" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "主屏幕墙纸已更改。" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "滑动" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "锁屏设置" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "锁定屏幕" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "长按屏幕,然后朝您倾斜设备以解锁。如果屏幕未解锁,尝试更倾斜设备。" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "简单密码" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "屏幕锁定类型" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "漫游" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "密码" + +msgid "IDS_ST_BODY_NONE" +msgstr "无" + +msgid "IDS_ST_BODY_MOTION" +msgstr "动作" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "玛丽玫瑰" + +msgid "IDS_ST_BODY_EDIT" +msgstr "编辑" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "爵士酷" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "仅限紧急呼叫" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "无 SIM 卡" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "教程完成" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "无效动作,请重试。" + +msgid "IDS_COM_SK_BACK_A" +msgstr "返回" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "处理中..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "选择墙纸" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "确定" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "关闭" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "正在搜索" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "无服务" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "错误的 PIN 码" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "输入PIN码" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "输入密码" + +msgid "IDS_COM_BODY_EDIT" +msgstr "编辑" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "关闭" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "请在 1 秒后重试。" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "充电完成" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 个未接来电" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "新信息" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 条新信息" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "您解锁设备的尝试已不正确 %1$d 次。设备重置为出厂默认设置并清除所有数据前还可尝试 %2$d 次。" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "请在%d秒后重试。" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "滑动屏幕以查看信息" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "滑动屏幕以查看通话记录" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "无匹配" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "输入 PIN 码以查看信息" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "输入 PIN 码以查看通话记录" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "输入密码以查看信息" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "输入密码以查看通话记录" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "双时钟" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "照相机快捷方式" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "PIN 码不正确" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "返回至通话" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "备用密码" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "通过 Tizen 账户解锁" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "通过 Tizen\n账户解锁" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "您有 %1$d 个未接来电和 %2$d 条未读消息。" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "您已尝试解锁设备不正确 %d 次。其现在将重置为出厂默认且所有数据将被擦除。" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "滑动屏幕以查看通话记录。" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "滑动屏幕以打开信息。" + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "简单密码锁定将在检测到 Gear 距离太远时自动启用。检测到您的 Gear 时,屏幕锁定类型将更改为滑动锁定。" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d 条新信息" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d 个未接来电" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "需要 %1$d 至 %2$d 个数字或字母。" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "输入解锁PIN码。" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "输入 4 位 PIN 码。" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "仅限紧急呼叫" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "紧急呼叫" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "正在充电:%d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "关闭" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "指纹" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "选择应用程序" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "输入恢复密码" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "取消" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "天气" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "家庭" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "将彩色方块从上部区域拖放至下部区域或按类似对比的颜色的顺序点击上部区域中的彩色方块。您可拖放下部区域中的方块以对其重新排序。" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "自动锁定" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "保存" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "放弃" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "取消" + diff --git a/po_sdk/zh_HK.po b/po_sdk/zh_HK.po new file mode 100755 index 0000000..0356938 --- /dev/null +++ b/po_sdk/zh_HK.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "只限緊急通話" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "滑動螢幕以解鎖。" + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "剩餘1次機會。" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "剩餘 %d 次機會。" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "密碼不正確" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "未接電話" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "未接電話" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "螢幕牆紙" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "輕觸並按住螢幕,然後將裝置朝您的方向傾斜以解鎖。若螢幕未解鎖,請試著將裝置再傾斜一些。當動作解鎖設定時,動作將自動於設定中啟用。" + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "選擇應用程式" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "鎖定螢幕牆紙已變更。" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "主螢幕牆紙已變更。" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "滑動" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "鎖定螢幕設定" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "鎖定螢幕" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "輕觸並按住螢幕,然後將裝置朝您的方向傾斜以解鎖。若螢幕仍未解鎖,請嘗試將裝置更向前傾。" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "簡易密碼" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "螢幕鎖定類型" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "漫遊" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "密碼" + +msgid "IDS_ST_BODY_NONE" +msgstr "無" + +msgid "IDS_ST_BODY_MOTION" +msgstr "動作" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "編輯" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "僅可撥打緊急電話" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "無 SIM 卡" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "教學完成。" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "動作無效。請重試。" + +msgid "IDS_COM_SK_BACK_A" +msgstr "返回" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "正在處理..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "選擇螢幕牆紙" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "確定" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "關閉" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "正在搜尋" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "無服務" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN 碼不正確。" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "輸入 PIN 碼" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "輸入密碼。" + +msgid "IDS_COM_BODY_EDIT" +msgstr "編輯" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "關閉" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "於 1 秒內重試。" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "充電已完成" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 個未接電話" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "新訊息" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 則新訊息" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "您已嘗試錯誤解鎖裝置 %1$d 次。僅剩 %2$d 次機會嘗試,否則裝置將重設至原廠預設值且所有數據將被刪除。" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "請在 %d 秒後重試。" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "滑動螢幕以檢視訊息" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "滑動螢幕以檢視通話記錄" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "無相符項" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "輸入 PIN 碼以檢視訊息" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "輸入 PIN 碼以檢視通話記錄" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "輸入密碼以檢視訊息" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "輸入密碼以檢視通話記錄" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "雙時鐘" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "相機捷徑" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "錯誤的 PIN 碼" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "返回通話" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "替代密碼" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "透過 Tizen 帳戶解鎖" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "透過 Tizen\n帳戶解鎖" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "您有 %1$d 個未接來電及 %2$d 封未讀取訊息。" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "您已嘗試錯誤解鎖 %d 次。裝置將重設回原廠預設值且所有數據將被清除。" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "滑動螢幕以檢視通話記錄。" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "滑動螢幕以開啟訊息。" + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "簡單密碼鎖定將在偵測到您的 Gear 距離太遠時自動啟用。當偵測到您的 Gear 時,螢幕鎖定類型將變更為滑動鎖定。" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d 個新訊息" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d 個未接來電" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "需輸入 %1$d 至 %2$d 位數或字母。" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "輸入解鎖 PIN 碼。" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "輸入 4 位數 PIN 碼。" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "只限緊急通話" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "緊急通話" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "充電中:%d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "關閉" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "指紋" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "選擇應用程式" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "取消" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "天氣" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "本地" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "將彩色方塊從上方區域拖放置下方區域,或按類似對比顏色的順序輕觸上方區域中的彩色方塊。可拖放下方區域中的方塊來重新排列。" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "自動鎖定" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "儲存" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "捨棄" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "取消" + diff --git a/po_sdk/zh_TW.po b/po_sdk/zh_TW.po new file mode 100755 index 0000000..7262ded --- /dev/null +++ b/po_sdk/zh_TW.po @@ -0,0 +1,267 @@ +msgid "IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY" +msgstr "僅限緊急通話" + +msgid "IDS_LCKSCN_POP_SWIPE_SCREEN_TO_UNLOCK" +msgstr "滑動螢幕以解鎖." + +msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT" +msgstr "剩下一次機會。" + +msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT" +msgstr "剩餘 %d 次嘗試機會。" + +msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD" +msgstr "密碼不正確" + +msgid "IDS_IDLE_POP_MISSED_CALL" +msgstr "未接電話" + +msgid "IDS_IDLE_POP_MISSED_CALLS" +msgstr "未接電話" + +msgid "IDS_LCKSCN_BODY_WALLPAPERS" +msgstr "桌布" + +msgid "IDS_LCKSCN_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_MSG" +msgstr "輕觸並按住螢幕,然後將裝置朝您的方向傾斜以解鎖。若螢幕仍未解鎖,請嘗試將裝置更向前傾。動作解鎖設定時,動作將自動於設定中啟用。" + +msgid "IDS_LCKSCN_BODY_SELECT_APPLICATION" +msgstr "選擇應用程式" + +msgid "IDS_ST_POP_LOCK_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "鎖定螢幕桌布已變更。" + +msgid "IDS_ST_POP_HOME_SCREEN_WALLPAPER_CHANGED_ABB" +msgstr "主螢幕桌布已變更。" + +msgid "IDS_ST_MBODY_SWIPE" +msgstr "滑動" + +msgid "IDS_ST_HEADER_LOCK_SCREEN_SETTINGS" +msgstr "鎖定螢幕設定" + +msgid "IDS_ST_HEADER_LOCK_SCREEN" +msgstr "鎖定螢幕" + +msgid "IDS_ST_BODY_UDMINCHO_JPN" +msgstr "UDMincho" + +msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_THEN_TILT_THE_DEVICE_TOWARDS_YOU_TO_UNLOCK_IT_IF_THE_SCREEN_DOES_NOT_UNLOCK_TRY_TILTING_THE_DEVICE_MORE" +msgstr "輕觸並按住螢幕,然後將裝置朝您的方向傾斜以解鎖。若螢幕仍未解鎖,請嘗試將裝置更向前傾。" + +msgid "IDS_ST_BODY_SIMPLE_PASSWORD" +msgstr "簡易密碼" + +msgid "IDS_ST_BODY_SCREEN_LOCK_TYPE" +msgstr "螢幕鎖定類型" + +msgid "IDS_ST_BODY_ROAMING" +msgstr "漫遊" + +msgid "IDS_ST_BODY_PASSWORD" +msgstr "密碼" + +msgid "IDS_ST_BODY_NONE" +msgstr "無" + +msgid "IDS_ST_BODY_MOTION" +msgstr "動作" + +msgid "IDS_ST_BODY_FONTSTYLE_ROSEMARY" +msgstr "Rosemary" + +msgid "IDS_ST_BODY_EDIT" +msgstr "編輯" + +msgid "IDS_ST_BODY_COOL_JAZZ" +msgstr "Cool jazz" + +msgid "IDS_ST_BODY_CHOCO_COOKY" +msgstr "Choco cooky" + +msgid "IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY" +msgstr "僅可撥打緊急電話" + +msgid "IDS_IDLE_BODY_NO_SIM" +msgstr "無 SIM 卡" + +msgid "IDS_HELP_POP_TUTORIAL_COMPLETE" +msgstr "教學完成。" + +msgid "IDS_HELP_POP_INVALID_ACTION_TRY_AGAIN" +msgstr "動作無效。請重試。" + +msgid "IDS_COM_SK_BACK_A" +msgstr "返回" + +msgid "IDS_COM_POP_PROCESSING" +msgstr "正在處理..." + +msgid "IDS_COM_HEADER_SELECT_WALLPAPER" +msgstr "選擇桌布" + +msgid "IDS_COM_BUTTON_OK_ABB" +msgstr "確定" + +msgid "IDS_COM_BUTTON_CLOSE" +msgstr "關閉" + +msgid "IDS_COM_BODY_SEARCHING" +msgstr "正在搜尋" + +msgid "IDS_COM_BODY_NO_SERVICE" +msgstr "無服務" + +msgid "IDS_COM_BODY_INCORRECT_PIN" +msgstr "PIN 不正確。" + +msgid "IDS_COM_BODY_ENTER_PIN" +msgstr "輸入PIN" + +msgid "IDS_COM_BODY_ENTER_PASSWORD" +msgstr "輸入密碼。" + +msgid "IDS_COM_BODY_EDIT" +msgstr "編輯" + +msgid "IDS_COM_BODY_CLOSE" +msgstr "關閉" + +msgid "IDS_IDLE_BODY_TRY_AGAIN_IN_1_SECOND" +msgstr "於 1 秒內重試。" + +msgid "IDS_SM_POP_FULLY_CHARGED" +msgstr "充電已完成" + +msgid "IDS_AWGT_BODY_1_MISSED_CALL" +msgstr "1 通未接電話" + +msgid "IDS_MSGF_POP_NEW_MESSAGE" +msgstr "新訊息" + +msgid "IDS_MSG_BODY_1_NEW_MESSAGE" +msgstr "1 則新訊息" + +msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG" +msgstr "您已嘗試錯誤解鎖裝置 %1$d 次。僅剩 %2$d 次機會嘗試,否則裝置將重設至原廠預設值且所有資料將被刪除。" + +msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS" +msgstr "%d 秒後再試一次。" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_MESSAGE_ABB" +msgstr "滑動螢幕以檢視訊息" + +msgid "IDS_LCKSCN_NPBODY_SWIPE_SCREEN_TO_VIEW_CALL_LOG_ABB" +msgstr "滑動螢幕以檢視通話記錄" + +msgid "IDS_LCKSCN_NPBODY_NO_MATCH_M_FINGERPRINT_ABB" +msgstr "不符合" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB" +msgstr "輸入 PIN 碼以檢視訊息" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB" +msgstr "輸入 PIN 碼以檢視通話記錄" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB" +msgstr "輸入密碼以檢視訊息" + +msgid "IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB" +msgstr "輸入密碼以檢視通話記錄" + +msgid "IDS_LCKSCN_MBODY_DUAL_CLOCK" +msgstr "雙時鐘" + +msgid "IDS_LCKSCN_MBODY_CAMERA_SHORTCUT" +msgstr "相機捷徑" + +msgid "IDS_LCKSCN_HEADER_INCORRECT_PIN_ABB" +msgstr "不正確的 PIN 碼" + +msgid "IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB" +msgstr "返回通話" + +msgid "IDS_LCKSCN_BUTTON_ALTERNATIVE_PASSWORD_ABB" +msgstr "替代密碼" + +msgid "IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT" +msgstr "經 Tizen 帳號解鎖" + +msgid "IDS_LCKSCN_BUTTON2_UNLOCK_VIA_NTIZEN_ACCOUNT_ABB" +msgstr "透過 \nTizen 帳號解除鎖定" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_P1SD_MISSED_CALLS_AND_P2SD_UNREAD_MESSAGEST_TTS" +msgstr "您有 %1$d 通未接來電及 %2$d 封未讀取訊息。" + +msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED" +msgstr "您已嘗試錯誤解鎖裝置 %d 次。裝置將設回原廠預設值且所有資料將被清除。" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG" +msgstr "滑動螢幕以檢視通話記錄。" + +msgid "IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES" +msgstr "滑動螢幕以開啟訊息。" + +msgid "IDS_LCKSCN_BODY_SIMPLE_PASSWORD_LOCK_WILL_BE_AUTOMATICALLY_ENABLED_IF_YOUR_GEAR_IS_TOO_FAR_AWAY_TO_BE_DETECTED_MSG" +msgstr "若您的 Gear 距離太遠,無法偵測,將自動啟用簡易密碼鎖定。偵測到您的 Gear 時,鎖定螢幕類型將變更為滑動鎖定。" + +msgid "IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS" +msgstr "%d 個新訊息" + +msgid "IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS" +msgstr "%d 通未接來電" + +msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED" +msgstr "需輸入 %1$d 至 %2$d 位數或字母。" + +msgid "IDS_LCKSCN_BODY_ENTER_UNLOCK_PIN" +msgstr "輸入解鎖 PIN。" + +msgid "IDS_LCKSCN_BODY_ENTER_4_DIGIT_PIN" +msgstr "輸入 4 位數 PIN 碼。" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALLS_ONLY" +msgstr "僅限緊急通話" + +msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL" +msgstr "緊急電話" + +msgid "IDS_LCKSCN_BODY_CHARGING_C_PDP" +msgstr "充電中:%d%" + +msgid "IDS_LCKSCN_ACBUTTON_CLOSE_ABB" +msgstr "關閉" + +msgid "IDS_ST_MBODY_FINGERPRINT" +msgstr "指紋" + +msgid "IDS_ST_HEADER_SELECT_APPLICATIONS" +msgstr "選取應用程式" + +msgid "IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW" +msgstr "Enter recovery password" + +msgid "IDS_ST_BUTTON_CANCEL" +msgstr "取消" + +msgid "IDS_ST_BODY_WEATHER" +msgstr "氣象" + +msgid "IDS_ST_BODY_HOME_M_HOMECITY" +msgstr "本地" + +msgid "IDS_ST_BODY_DRAG_AND_DROP_OR_TAP_THE_COLOURED_SQUARES_FROM_THE_UPPER_AREA_TO_THE_LOWER_AREA_MSG" +msgstr "將彩色方塊自上方區域拖放置下方區域,或在以比較的顏色相似性排列的上方區域中輕觸彩色方塊。可拖放下方區域中的方塊來重新排列。" + +msgid "IDS_ST_BODY_AUTO_LOCK" +msgstr "自動鎖定" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "儲存" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "放棄" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "取消" + diff --git a/src/background-view.c b/src/background-view.c new file mode 100755 index 0000000..3682917 --- /dev/null +++ b/src/background-view.c @@ -0,0 +1,247 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include + +#include "lockscreen-lite.h" +#include "default-unlock.h" +#include "music-player.h" +#include "background-view.h" +#include "underbar.h" + +#define FESTIVAL_BG_STATE_DISSMISS "__DISMISS__" +#define FESTIVAL_BG_STATE_NONE "__NONE__" + +static struct _s_info { + int bg_type; +} s_info = { + .bg_type = LOCK_BG_DEFAULT, +}; + +void update_background_image_cb(keynode_t *node, void *data) +{ + background_image_set(LOCK_BG_DEFAULT, NULL, 0); +} + +static char *_bg_festival_file_get(void) +{ + char *file = vconf_get_str(VCONF_LOCKSCREEN_FESTIVAL_BGSET); + if (file) { + if (strcmp(file, FESTIVAL_BG_STATE_DISSMISS) == 0 || strcmp(file, FESTIVAL_BG_STATE_NONE) == 0) { + free(file); + file = NULL; + } + } + + return file; +} + +static char *_bg_default_file_get(void) +{ + return vconf_get_str(VCONFKEY_IDLE_LOCK_BGSET); +} + +static int _image_set(Evas_Object *layout_a, Evas_Object *bg_a, int type, const char *file) +{ + int ret = 0; + Evas_Object *layout = (layout_a == NULL) ? lockscreen_get_layout() : layout_a; + Evas_Object *bg = (bg_a == NULL) ? lockscreen_get_bg() : bg_a; + retv_if(bg == NULL, -1); + + elm_bg_option_set(bg, ELM_BG_OPTION_SCALE); + + if (type == LOCK_BG_DEFAULT) { + char *default_bg_file = NULL; + char *festival_bg_file = _bg_festival_file_get(); + + if (festival_bg_file) { + if (elm_bg_file_set(bg, festival_bg_file, NULL) != EINA_TRUE) { + LOCK_SCREEN_TRACE_ERR("Failed to set fes.bg file:%s", festival_bg_file); + + default_bg_file = _bg_default_file_get(); + if (elm_bg_file_set(bg, default_bg_file, NULL) != EINA_TRUE) { + LOCK_SCREEN_TRACE_ERR("Failed to set def.bg file:%s", default_bg_file); + if (elm_bg_file_set(bg, DEFAULT_BG_PATH, NULL) == EINA_FALSE) { + ret = -1; + LOCK_SCREEN_TRACE_ERR("Failed to set bg file:%s", DEFAULT_BG_PATH); + } else { + lockscreen_bg_preload_path_is(DEFAULT_BG_PATH); + } + } else { + lockscreen_bg_preload_path_is(default_bg_file); + } + } else { + lockscreen_bg_preload_path_is(festival_bg_file); + } + } else { + default_bg_file = _bg_default_file_get(); + if (elm_bg_file_set(bg, default_bg_file, NULL) != EINA_TRUE) { + LOCK_SCREEN_TRACE_ERR("Failed to set def.bg file:%s", default_bg_file); + if (elm_bg_file_set(bg, DEFAULT_BG_PATH, NULL) == EINA_FALSE) { + ret = -1; + LOCK_SCREEN_TRACE_ERR("Failed to set bg file:%s", DEFAULT_BG_PATH); + } else { + lockscreen_bg_preload_path_is(DEFAULT_BG_PATH); + } + } else { + lockscreen_bg_preload_path_is(default_bg_file); + } + } + + free(default_bg_file); + free(festival_bg_file); + + if (layout) { + elm_object_signal_emit(layout, "show,img.bg_gradation", "img.bg_gradation"); + elm_layout_signal_emit(layout, "music_off", "bg"); + } + } else if (type == LOCK_BG_ALBUM_ART) { + if (file != NULL) { + if (elm_bg_file_set(bg, file, NULL) != EINA_TRUE) { + ret = -1; + LOCK_SCREEN_TRACE_ERR("Failed to set bg file:%s", file); + } else { + lockscreen_bg_preload_path_is(file); + } + if (layout) { + elm_object_signal_emit(layout, "hide,img.bg_gradation", "img.bg_gradation"); + elm_layout_signal_emit(layout, "music_on", "bg"); + } + } else { + ret = -1; + LOCK_SCREEN_TRACE_ERR("file is null"); + } + } else { + ret = -1; + LOCK_SCREEN_TRACE_ERR("unsupported type:%d", type); + } + + underbar_view_update(); + + return ret; +} + +int background_image_set(int type, const char *file, int force) +{ + if (force == 0 && s_info.bg_type != type) { + LOCK_SCREEN_TRACE_ERR("type is differ, %d %d", s_info.bg_type, type); + return 0; + } + + if (_image_set(NULL, NULL, type, file) != -1) { + s_info.bg_type = type; + return 0; + } + + return -1; +} + +int background_image_set_to(Evas_Object *layout, Evas_Object *bg, int type, const char *file, int force) +{ + if (force == 0 && s_info.bg_type != type) { + LOCK_SCREEN_TRACE_ERR("type is differ, %d %d", s_info.bg_type, type); + return 0; + } + + if (_image_set(layout, bg, type, file) != -1) { + s_info.bg_type = type; + return 0; + } + + return -1; +} + +static char gGallery_lock_path[MAX_LENGTH_LINE][MAX_LENGTH_LINE] = {{0}}; +#define MAX_GALLERY_COUNT 6 +#define WALLPAPER_TXT_FILE "/opt/usr/share/lockscreen/wallpaper_list/lockscreen_selected_images.txt" +void background_image_next_set(void) +{ + FILE *fp = fopen(WALLPAPER_TXT_FILE, "r"); + if(!fp) + { + LOCK_SCREEN_TRACE_ERR("fopen wallpaper txt file failed."); + return; + } + + memset(gGallery_lock_path[0], 0, MAX_LENGTH_LINE); + int i = 0; + while(fgets(gGallery_lock_path[i], MAX_LENGTH_LINE, fp) != NULL && i + +#include + +#include "battery.h" +#include "lockscreen-lite.h" +#include "util.h" + +extern LKD_Module g_mod_battery; + +char *_replaceString(char *strInput, const char *strTarget, const char *strChange); + + +Evas_Object *_layout_get(void) +{ + Evas_Object *base_layout = lockscreen_get_layout(); + retv_if(base_layout == NULL, NULL); + + Evas_Object *default_layout = elm_object_part_content_get(base_layout, "default_layout"); + + return default_layout; +} + +static void _view_update(Evas_Object *layout) +{ + int status = 0; + int capacity = 0; + int status_low = 0; + int charger = 0; + int ret = -1; + int ret_2 = -1; + ret_if(layout == NULL); + ret = property_get_int(LKD_PROP_ID_SYSMAN_BATTERY_CHARGE_NOW, &status); + if (ret != LKD_RET_OK) { + LOCK_SCREEN_TRACE_DBG("Fail to get [VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW]"); + } else { + if (status == 1) { + ret = property_get_int(LKD_PROP_ID_SYSMAN_BATTERY_CAPACITY, &capacity); + ret_2 = property_get_int(LKD_PROP_ID_SYSMAN_BATTERY_STATUS_LOW, &status_low); + if (ret != LKD_RET_OK) { + LOCK_SCREEN_TRACE_DBG("Fail to get [VCONFKEY_SYSMAN_BATTERY_CAPACITY]"); + } else if (ret_2 != LKD_RET_OK) { + LOCK_SCREEN_TRACE_DBG("Fail to get [VCONFKEY_SYSMAN_BATTERY_STATUS_LOW]"); + } else { + if (status_low == VCONFKEY_SYSMAN_BAT_FULL) { + elm_object_part_text_set(layout, "charging_text", _("IDS_SM_POP_FULLY_CHARGED")); + } else { + char buff[64]; + char *newString = NULL ; + newString = _replaceString(_("IDS_LCKSCN_BODY_CHARGING_C_PDP"), "%d%", "%d%%"); + + if(newString != NULL) + { + snprintf(buff, sizeof(buff), newString , capacity); + free(newString) ; + } + else + { + snprintf(buff, sizeof(buff), _("IDS_LCKSCN_BODY_CHARGING_C_PDP") , capacity); + } + elm_object_part_text_set(layout, "charging_text", buff); + } + } + } else { + elm_object_part_text_set(layout, "charging_text", ""); + ret = property_get_int(LKD_PROP_ID_SYSMAN_CHARGER_STATUS, &charger); + if (ret != LKD_RET_OK) { + LOCK_SCREEN_TRACE_DBG("Fail to get [LKD_PROP_ID_SYSMAN_CHARGER_STATUS]"); + } + else { + ret = property_get_int(LKD_PROP_ID_SYSMAN_BATTERY_CAPACITY, &capacity); + ret_2 = property_get_int(LKD_PROP_ID_SYSMAN_BATTERY_STATUS_LOW, &status_low); + if (ret != LKD_RET_OK) { + LOCK_SCREEN_TRACE_DBG("Fail to get [VCONFKEY_SYSMAN_BATTERY_CAPACITY]"); + } else if (ret_2 != LKD_RET_OK) { + LOCK_SCREEN_TRACE_DBG("Fail to get [VCONFKEY_SYSMAN_BATTERY_STATUS_LOW]"); + } else { + if (status_low == VCONFKEY_SYSMAN_BAT_FULL && VCONFKEY_SYSMAN_CHARGER_CONNECTED <= charger) { + elm_object_part_text_set(layout, "charging_text", _("IDS_SM_POP_FULLY_CHARGED")); + } else { + elm_object_part_text_set(layout, "charging_text", ""); + } + } + } + } + } +} + +//void update_battery(Evas_Object *layout) +void battery_view_init(Evas_Object *layout) +{ + module_init(&g_mod_battery, NULL); + + if (layout != NULL) { + _view_update(layout); + } else { + LOCK_SCREEN_TRACE_ERR("Layout data is NULL"); + } +} + +void battery_view_fini(void) +{ + module_fini(&g_mod_battery); +} + +void battery_view_show(int type) +{ + Evas_Object *layout = _layout_get(); + ret_if(layout == NULL); + + _view_update(layout); + + if (type == BATT_LAYOUT_NORMAL) { + elm_object_signal_emit(layout, "charging,show",""); + } else if (type == BATT_LAYOUT_EVENT) { + elm_object_signal_emit(layout, "charging,show,event",""); + } +} + +void battery_view_hide(void) +{ + Evas_Object *layout = _layout_get(); + ret_if(layout == NULL); + elm_object_part_text_set(layout, "charging_text", ""); +} + +/*! + * module + */ +static int _init(LKD_Module_Data *md) +{ + property_listen(LKD_PROP_ID_SYSMAN_CHARGER_STATUS); + property_listen(LKD_PROP_ID_SYSMAN_BATTERY_CAPACITY); + property_listen(LKD_PROP_ID_SYSMAN_BATTERY_CHARGE_NOW); + property_listen(LKD_PROP_ID_SYSMAN_BATTERY_STATUS_LOW); + + return LKD_RET_OK; +} + +static int _fini(LKD_Module_Data *md) +{ + property_ignore(LKD_PROP_ID_SYSMAN_CHARGER_STATUS); + property_ignore(LKD_PROP_ID_SYSMAN_BATTERY_CAPACITY); + property_ignore(LKD_PROP_ID_SYSMAN_BATTERY_CHARGE_NOW); + property_ignore(LKD_PROP_ID_SYSMAN_BATTERY_STATUS_LOW); + + return LKD_RET_OK; +} + +static void _property_changed(LKD_Module_Data *md, int property_id) +{ + Evas_Object *layout = _layout_get(); + ret_if(layout == NULL); + _view_update(layout); +} + +static void _resume(LKD_Module_Data *md) +{ +} + +static void _pause(LKD_Module_Data *md) +{ +} + +static void _language_changed(LKD_Module_Data *md) +{ + Evas_Object *layout = _layout_get(); + ret_if(layout == NULL); + _view_update(layout); +} + +LKD_Module g_mod_battery = { + .id = "battery", + .notifying = 1, + .property_list = LKD_PROP_ID_SYSMAN_CHARGER_STATUS | + LKD_PROP_ID_SYSMAN_BATTERY_CAPACITY | + LKD_PROP_ID_SYSMAN_BATTERY_CHARGE_NOW | + LKD_PROP_ID_SYSMAN_BATTERY_STATUS_LOW, + .init = _init, + .fini = _fini, + .resume = _resume, + .pause = _pause, + .property_changed = _property_changed, + .language_changed = _language_changed, +}; + +char *_replaceString(char *strInput, const char *strTarget, const char *strChange) +{ + char* strResult; + char* strTemp; + int i = 0; + int nCount = 0; + int nTargetLength = strlen(strTarget); + + if (nTargetLength < 1) + { + LOCK_SCREEN_TRACE_DBG("there is no target to chnage"); + return NULL; + } + + int nChangeLength = strlen(strChange); + + if (nChangeLength != nTargetLength) + { + for (i = 0; strInput[i] != '\0';) + { + if (memcmp(&strInput[i], strTarget, nTargetLength) == 0) + { + nCount++; //consider same string exist + i += nTargetLength; + } + else + { + i++; + } + } + } + else + { + i = strlen(strInput); + } + + strResult = (char *) malloc(i + 1 + nCount * (nChangeLength - nTargetLength)); + + if (strResult == NULL) + { + LOCK_SCREEN_TRACE_DBG("fail malloc!!"); + return NULL; + } + + + strTemp = strResult; + while (*strInput) + { + if (memcmp(strInput, strTarget, nTargetLength) == 0) + { + memcpy(strTemp, strChange, nChangeLength); + strTemp += nChangeLength; //move changed length + strInput += nTargetLength; // move target length + } + else + { + *strTemp++ = *strInput++; // original str cpy + } + } + + *strTemp = '\0'; + + return strResult; +} diff --git a/src/bg.c b/src/bg.c deleted file mode 100755 index 7952e77..0000000 --- a/src/bg.c +++ /dev/null @@ -1,300 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 -#include -#include - -#include "lockscreen.h" -#include "util.h" -#include "simple-password.h" -#include "complex-password.h" - -static double _get_move(Evas_Coord x1, Evas_Coord y1, Evas_Coord x2, Evas_Coord y2) -{ - return ((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1)); -} - -static void _flick_event_process(struct appdata *ad) -{ - int status = 0; - int locktype = 0; - - vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &locktype); - - if(locktype == 4) { - simple_password_layout_create(ad); - } -} - -void _mouse_down_cb_s(void *data, Evas * evas, Evas_Object * obj, void *event_info) -{ - LOGD("[ == %s == ]", __func__); - struct appdata *ad = data; - if (ad == NULL) - return; - - evas_pointer_output_xy_get(evas_object_evas_get(obj), &ad->posx[POS_DOWN], &ad->posy[POS_DOWN]); - if(ad->posy[POS_DOWN] < FLICK_LINE) { - return; - }else { - ad->bFlick = 1; - ad->posx[POS_REC] = ad->posx[POS_DOWN]; - ad->posy[POS_REC] = ad->posy[POS_DOWN]; - } -} - -void _mouse_move_cb_s(void *data, Evas * evas, Evas_Object * obj, void *event_info) -{ - LOCK_SCREEN_TRACE_DBG("[ == %s == ]", __func__); - struct appdata *ad = data; - if (ad == NULL) - return; - - if(ad->bFlick == 1) { - evas_pointer_output_xy_get(evas_object_evas_get(obj), &ad->posx[POS_MOVE], &ad->posy[POS_MOVE]); - if(ad->posy[POS_MOVE] < ad->posy[POS_REC]) { - double d = _get_move(ad->posx[POS_DOWN], ad->posy[POS_DOWN], ad->posx[POS_MOVE], ad->posy[POS_MOVE]); - if(d > (_X(84100)*1.3)) { - ad->bFlick = 0; - LOCK_SCREEN_TRACE_DBG("====move info up===="); - _flick_event_process(ad); - } - ad->posx[POS_REC] = ad->posx[POS_MOVE]; - ad->posy[POS_REC] = ad->posy[POS_MOVE]; - } - } -} - -void _mouse_up_cb_s(void *data, Evas * evas, Evas_Object * obj, void *event_info) -{ - LOCK_SCREEN_TRACE_DBG("[ == %s == ]", __func__); - struct appdata *ad = data; - if (ad == NULL) - return; - - if(ad->bFlick == 1) { - ad->bFlick = 0; - evas_pointer_output_xy_get(evas_object_evas_get(obj), &ad->posx[POS_UP], &ad->posy[POS_UP]); - if(ad->posy[POS_UP] < ad->posy[POS_REC]) { - double d = _get_move(ad->posx[POS_DOWN], ad->posy[POS_DOWN], ad->posx[POS_UP], ad->posy[POS_UP]); - if(d > (_X(84100)*1.3)) { - LOCK_SCREEN_TRACE_DBG("====move info up===="); - _flick_event_process(ad); - } - } - } -} - -void init_slider_touch_variables(void *data) -{ - struct appdata *ad = (struct appdata *) data; - - if (ad == NULL) { - LOCK_SCREEN_TRACE_DBG("appdata is NULL"); - return; - } - - ad->bDrag = 0; - ad->bFlick = 0; -} - -void _slider_down_cb(void *data, Evas * evas, Evas_Object * obj, void *event_info) -{ - LOCK_SCREEN_TRACE_DBG("[ == %s == ]", __func__); - Evas_Event_Mouse_Down *ev = event_info; - struct appdata *ad = (struct appdata *) data; - - if (ad == NULL) { - LOCK_SCREEN_TRACE_DBG("appdata is NULL"); - return; - } - - if (ev == NULL) { - LOCK_SCREEN_TRACE_DBG("event_info is NULL"); - return; - } - - if (ad->slider_rel1.x <= ev->canvas.x && ad->slider_rel1.y <= ev->canvas.y - && (ad->slider_rel1.x + ad->slider_rel1.w) >= ev->canvas.x - && (ad->slider_rel1.y + ad->slider_rel1.h) >= ev->canvas.y) { - ad->bDrag= 1; - - edje_object_signal_emit(_EDJ(ad->slider), "press", - "lock.image.l"); - edje_object_signal_emit(_EDJ(ad->slider), "press02", - "lock.image.r"); - } else { - LOCK_SCREEN_TRACE_DBG("sliding is canceled"); - ad->bDrag= 0; - } -} - -void _slider_move_cb(void *data, Evas * evas, Evas_Object * obj, void *event_info) -{ - Evas_Event_Mouse_Move *ev = event_info; - struct appdata *ad = (struct appdata *) data; - int step_width = 0; - int step_number = 0; - int alpha = 0; - - if (ad == NULL) { - LOCK_SCREEN_TRACE_DBG("appdata is NULL"); - return; - } - - if (ev == NULL) { - LOCK_SCREEN_TRACE_DBG("event_info is NULL"); - return; - } - - if (ad->bDrag == 0) - { - return; - } - - if (ad->slider_rel1.x <= ev->cur.canvas.x - && ad->slider_rel1.y <= ev->cur.canvas.y - && (ad->slider_rel2.x + ad->slider_rel2.w) >= ev->cur.canvas.x - && (ad->slider_rel2.y + ad->slider_rel2.h) >= ev->cur.canvas.y) { - ad->bDrag = 1; - - step_width = (ad->slider_rel2.x + ad->slider_rel2.w - ad->slider_rel1.x) - / 14; - step_number = (ev->cur.canvas.x - ad->slider_rel1.x) / step_width; - - alpha = 255 - (2.55 * step_number * 3); - - if (step_number < 1) { - edje_object_signal_emit(_EDJ(ad->slider), "press02", - "lock.image.r"); - LOCK_SCREEN_TRACE_DBG("[ == %s == ] press02", __func__); - } else if (step_number < 2) { - edje_object_signal_emit(_EDJ(ad->slider), "press03", - "lock.image.r"); - LOCK_SCREEN_TRACE_DBG("[ == %s == ] press03", __func__); - } else if (step_number < 3) { - edje_object_signal_emit(_EDJ(ad->slider), "press04", - "lock.image.r"); - LOCK_SCREEN_TRACE_DBG("[ == %s == ] press04", __func__); - } else if (step_number < 4) { - edje_object_signal_emit(_EDJ(ad->slider), "press05", - "lock.image.r"); - LOCK_SCREEN_TRACE_DBG("[ == %s == ] press05", __func__); - } else if (step_number < 5) { - edje_object_signal_emit(_EDJ(ad->slider), "press06", - "lock.image.r"); - LOCK_SCREEN_TRACE_DBG("[ == %s == ] press06", __func__); - } else if (step_number < 6) { - edje_object_signal_emit(_EDJ(ad->slider), "press07", - "lock.image.r"); - LOCK_SCREEN_TRACE_DBG("[ == %s == ] press07", __func__); - } else if (step_number < 7) { - edje_object_signal_emit(_EDJ(ad->slider), "press08", - "lock.image.r"); - LOCK_SCREEN_TRACE_DBG("[ == %s == ] press08", __func__); - } else if (step_number < 8) { - edje_object_signal_emit(_EDJ(ad->slider), "press09", - "lock.image.r"); - LOCK_SCREEN_TRACE_DBG("[ == %s == ] press09", __func__); - } else if (step_number < 9) { - edje_object_signal_emit(_EDJ(ad->slider), "press10", - "lock.image.r"); - LOCK_SCREEN_TRACE_DBG("[ == %s == ] press10", __func__); - } else if (step_number < 10) { - edje_object_signal_emit(_EDJ(ad->slider), "press11", - "lock.image.r"); - LOCK_SCREEN_TRACE_DBG("[ == %s == ] press11", __func__); - } else if (step_number < 11) { - edje_object_signal_emit(_EDJ(ad->slider), "press12", - "lock.image.r"); - LOCK_SCREEN_TRACE_DBG("[ == %s == ] press12", __func__); - } else if (step_number < 12) { - edje_object_signal_emit(_EDJ(ad->slider), "press13", - "lock.image.r"); - LOCK_SCREEN_TRACE_DBG("[ == %s == ] press13", __func__); - } else if (step_number < 13) { - edje_object_signal_emit(_EDJ(ad->slider), "press14", - "lock.image.r"); - LOCK_SCREEN_TRACE_DBG("[ == %s == ] press14", __func__); - } else { - edje_object_signal_emit(_EDJ(ad->slider), "press15", - "lock.image.r"); - LOCK_SCREEN_TRACE_DBG("[ == %s == ] press15", __func__); - } - evas_object_color_set(ad->ly_main, alpha, alpha, alpha, alpha); - } else { - LOCK_SCREEN_TRACE_DBG("sliding is canceled"); - ad->bDrag = 0; - - evas_object_color_set(ad->ly_main, 255, 255, 255, 255); - - edje_object_signal_emit(_EDJ(ad->slider), "release", - "lock.image.l"); - edje_object_signal_emit(_EDJ(ad->slider), "release", - "lock.image.r"); - } - -} - -void _slider_up_cb(void *data, Evas * evas, Evas_Object * obj, void *event_info) -{ - LOCK_SCREEN_TRACE_DBG("[ == %s == ]", __func__); - Evas_Event_Mouse_Up *ev = event_info; - struct appdata *ad = (struct appdata *) data; - - if (ad == NULL) { - LOCK_SCREEN_TRACE_DBG("appdata is NULL"); - return; - } - - if (ev == NULL) { - LOCK_SCREEN_TRACE_DBG("event_info is NULL"); - return; - } - - if (ad->bDrag == 1 && ad->slider_rel2.x <= ev->canvas.x - && ad->slider_rel2.y <= ev->canvas.y - && (ad->slider_rel2.x + ad->slider_rel2.w) >= ev->canvas.x - && (ad->slider_rel2.y + ad->slider_rel2.h) >= ev->canvas.y) { - ad->bDrag = 1; - } else { - LOCK_SCREEN_TRACE_DBG("sliding is canceled"); - ad->bDrag= 0; - } - - edje_object_signal_emit(_EDJ(ad->slider), "release", "lock.image.l"); - edje_object_signal_emit(_EDJ(ad->slider), "release", "lock.image.r"); - - evas_object_color_set(ad->ly_main, 255, 255, 255, 255); - - if (ad->bDrag == 1) { - ad->bDrag = 0; - - //if(ad->lock_type == 1) { - if(ad->slider) { - evas_object_del(ad->slider); - ad->slider = NULL; - } - LOCK_SCREEN_TRACE_DBG("unlock the lock-screen"); - elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_HIDE); - elm_object_signal_emit(ad->ly_main, "transit,clipper", "clipper"); - vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK); - //} else if (ad->lock_type == 4) { - // simple_password_layout_create(ad); - //} - } -} diff --git a/src/bg.h b/src/bg.h deleted file mode 100755 index 15cc689..0000000 --- a/src/bg.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 __BG_H__ -#define __BG_H__ - -#include - -void _mouse_down_cb_s(void *data, Evas * evas, Evas_Object * obj, void *event_info); -void _mouse_move_cb_s(void *data, Evas * evas, Evas_Object * obj, void *event_info); -void _mouse_up_cb_s(void *data, Evas * evas, Evas_Object * obj, void *event_info); -void init_slider_touch_variables(void *data); -void _slider_down_cb(void *data, Evas * evas, Evas_Object * obj, void *event_info); -void _slider_move_cb(void *data, Evas * evas, Evas_Object * obj, void *event_info); -void _slider_up_cb(void *data, Evas * evas, Evas_Object * obj, void *event_info); - -#endif diff --git a/src/camera.c b/src/camera.c new file mode 100755 index 0000000..9f37af9 --- /dev/null +++ b/src/camera.c @@ -0,0 +1,227 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include + +#include "lockscreen-lite.h" +#include "default-unlock.h" +#include "music-player.h" +#include "control-panel.h" +#include "camera.h" + +#define PRIVATE_KEY_CAMERA_CIRCLE_FULL "p_k_c_c_f" + +static Evas_Object *_parent_view_get(void) +{ + Evas_Object *layout = lockscreen_get_layout(); + + return layout; +} + +static Evas_Object *_view_get(void) +{ + Evas_Object *parent = _parent_view_get(); + if (parent) { + return elm_object_part_content_get(parent, "camera_icon_swallow"); + } + + return NULL; +} + +static void _full_signal_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + Evas_Object *view = data; + ret_if(view == NULL); + + evas_object_data_set(view, PRIVATE_KEY_CAMERA_CIRCLE_FULL, (void *)1); + + if (get_lockscreen_is_clicked() == false) { + elm_layout_signal_emit(view, "circle,reset", "prog"); + } +} + +static void _thin_signal_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + Evas_Object *view = data; + ret_if(view == NULL); + + evas_object_data_del(view, PRIVATE_KEY_CAMERA_CIRCLE_FULL); +} + +static void _mouse_up_signal_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + show_emg_call_btn(); +} + +Evas_Object *camera_view_create(Evas_Object *parent) +{ + if (parent) { + Evas_Object *layout = elm_layout_add(parent); + if(elm_layout_file_set(layout, EDJE_DIR"lockscreen-camera.edj", "camera_circle") == EINA_TRUE) { + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + + Evas_Object *icon = elm_layout_add(layout); + if(elm_layout_file_set(icon, EDJE_DIR"lockscreen-camera.edj", "camera_icon") == EINA_TRUE) { + evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_object_part_content_set(layout, "icon", icon); + evas_object_show(icon); + } else { + evas_object_del(icon); + } + + Evas_Object *cue_1 = elm_layout_add(layout); + if(elm_layout_file_set(cue_1, EDJE_DIR"lockscreen-camera.edj", "camera_cue_1") == EINA_TRUE) { + evas_object_size_hint_weight_set(cue_1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(cue_1, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_object_part_content_set(layout, "cue.1", cue_1); + evas_object_show(cue_1); + } else { + evas_object_del(cue_1); + } + + elm_object_signal_callback_add(layout, "full", "prog", _full_signal_cb, layout); + elm_object_signal_callback_add(layout, "thin", "prog", _thin_signal_cb, layout); + elm_object_signal_callback_add(layout, "mouse,up,1", "event", _mouse_up_signal_cb, NULL); + + elm_object_part_content_set(parent, "camera_icon_swallow", layout); + evas_object_show(layout); + } else { + evas_object_del(layout); + LOCK_SCREEN_TRACE_ERR("Failed to load edje file"); + } + + return layout; + } else { + LOCK_SCREEN_TRACE_ERR("Failed to get parent"); + } + + return NULL; +} + +void camera_view_action(int action, int value) +{ + Evas_Object *view = _view_get(); + ret_if(view == NULL); + + switch (action) { + case CAMERA_VIEW_DRAGGING_START: + { + Edje_Message_Int_Set *msg = (Edje_Message_Int_Set *)malloc(sizeof(Edje_Message_Int_Set) + 1 * sizeof(int)); + if (msg) { + msg->count = 1; + msg->val[0] = 1; + edje_object_message_send(_EDJ(view), EDJE_MESSAGE_INT_SET, 1, msg); + free(msg); + camera_view_action(CAMERA_VIEW_CUE_1_HIDE, 0); + hide_emg_call_btn(); + } + evas_object_data_del(view, PRIVATE_KEY_CAMERA_CIRCLE_FULL); + } + break; + case CAMERA_VIEW_DRAGGING_STOP: + { + Edje_Message_Int_Set *msg = (Edje_Message_Int_Set *)malloc(sizeof(Edje_Message_Int_Set) + 1 * sizeof(int)); + if (msg) { + msg->count = 1; + msg->val[0] = 0; + edje_object_message_send(_EDJ(view), EDJE_MESSAGE_INT_SET, 1, msg); + free(msg); + } + } + break; + case CAMERA_VIEW_ROTATE: + { + Edje_Message_Int_Set *msg = (Edje_Message_Int_Set *)malloc(sizeof(Edje_Message_Int_Set) + 1 * sizeof(int)); + if (msg) { + msg->count = 1; + msg->val[0] = value; + LOCK_SCREEN_TRACE_WARN("rotation:%d", value); + edje_object_message_send(_EDJ(view), EDJE_MESSAGE_INT_SET, 2, msg); + free(msg); + } + } + break; + case CAMERA_VIEW_CUE_1_START: + { + Evas_Object *cue_1 = elm_object_part_content_get(view, "cue.1"); + if (cue_1) { + elm_layout_signal_emit(cue_1, "anim,start", "prog"); + } + } + break; + case CAMERA_VIEW_CUE_1_STOP: + { + Evas_Object *cue_1 = elm_object_part_content_get(view, "cue.1"); + if (cue_1) { + elm_layout_signal_emit(cue_1, "anim,stop", "prog"); + } + } + break; + case CAMERA_VIEW_CUE_1_HIDE: + { + Evas_Object *cue_1 = elm_object_part_content_get(view, "cue.1"); + if (cue_1) { + elm_layout_signal_emit(cue_1, "hide", "prog"); + } + } + break; + } +} + +static void _angle_changed_cb(void *user_data, void *event_info) +{ + int angle = (int)event_info; + LOCK_SCREEN_TRACE_WARN("angle:%d", angle); + + camera_view_action(CAMERA_VIEW_ROTATE, angle); +} + +int camera_view_is_circle_full(void) +{ + Evas_Object *view = _view_get(); + retv_if(view == NULL, 0); + + if (evas_object_data_get(view, PRIVATE_KEY_CAMERA_CIRCLE_FULL) != NULL) { + return 1; + } + + return 0; +} + +static void _resume(LKD_Module_Data *md) +{ + if (is_camera_visible()) { + lockd_dbus_unregister_cb(DBUS_EVENT_ANGLE_CHANGED, _angle_changed_cb); + lockd_dbus_register_cb(DBUS_EVENT_ANGLE_CHANGED, _angle_changed_cb, NULL); + } +} + +static void _pause(LKD_Module_Data *md) +{ + lockd_dbus_unregister_cb(DBUS_EVENT_ANGLE_CHANGED, _angle_changed_cb); +} + +LKD_Module g_mod_camera = { + .id = "camera", + .notifying = 1, + .resume = _resume, + .pause = _pause, +}; diff --git a/src/complex-password.c b/src/complex-password.c index 361194b..56700f5 100755 --- a/src/complex-password.c +++ b/src/complex-password.c @@ -1,334 +1,716 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 - -#include "lockscreen.h" -#include "util.h" -#include "log.h" -#include "complex-password.h" -#include "password-verification.h" - -#define MIN_PASSWORD_NUM 4 -#define MAX_PASSWORD_NUM 16 -#define PASSWORD_ATTEMPTS_MAX_NUM 5 -#define VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT VCONFKEY_SETAPPL_PREFIX"/phone_lock_attempts_left" -#define VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR VCONFKEY_SETAPPL_PREFIX"/phone_lock_timestamp" -#define PASSWORD_TIMESTAMP_STR_LENGTH 512 -#define PASSWORD_BLOCK_SECONDS 30 -#define EDJ_LOCKSCREEN_ENTRY EDJDIR"/lockscreen-entry.edj" - -static Evas_Coord complex_pw_down_y = 0; - -static void __complex_password_keypad_process(void *data, Evas_Object *obj, const char *emission, const char *source) -{ - struct appdata *ad = data; - if(ad == NULL) - return; - - LOCK_SCREEN_TRACE_DBG("source = %s", source); - - if (strcmp("SOS", source) == 0) { - launch_emgcall(ad); - return; - } - - if (strcasecmp("function1", source) == 0 || strcasecmp("function2", source) == 0) { - return ; - } - - if (strcasecmp("space", source) == 0) { - if(ad->is_disabled) { - return; - } - elm_entry_entry_insert(ad->c_password_entry, " "); - } else if (strcasecmp("bs", source) == 0) { - elm_entry_entry_insert(ad->c_password_entry, ""); - const char *input_entry_str = NULL; - input_entry_str = elm_entry_entry_get(ad->c_password_entry); - if (input_entry_str != NULL && strlen(input_entry_str) > 0 ) { - int cursor_pos = elm_entry_cursor_pos_get(ad->c_password_entry); - - if (cursor_pos > 0) { - Eina_Strbuf *temp_str_buf = eina_strbuf_new(); - eina_strbuf_append(temp_str_buf, input_entry_str); - eina_strbuf_remove(temp_str_buf, cursor_pos - 1, cursor_pos); - elm_entry_entry_set(ad->c_password_entry, eina_strbuf_string_get(temp_str_buf)); - elm_entry_cursor_pos_set(ad->c_password_entry, - (cursor_pos - 1 > 0) ? cursor_pos -1 : 0); - eina_strbuf_free(temp_str_buf); - } - } - } else if (strcasecmp("enter", source) == 0) { - if(ad->is_disabled) { - return; - } - password_verification_verify(ad->h_password_policy, elm_entry_entry_get(ad->c_password_entry)); - } else { - if(ad->is_disabled) { - return; - } - elm_entry_entry_insert(ad->c_password_entry, source); - } -} - -static void __complex_password_layout_destroy(void *data, Evas_Object *obj, const char *emission, const char *source) -{ - struct appdata *ad = data; - - if(ad->ly_complex_password){ - evas_object_del(ad->ly_complex_password); - ad->ly_complex_password = NULL; - } - password_verification_policy_destroy(ad->h_password_policy); - lockscreen_info_show(ad); -} - -static void __complex_password_mouse_down_cb(void *data, Evas * evas, Evas_Object * obj, - void *event_info) -{ - Evas_Event_Mouse_Down *ei = event_info; - - complex_pw_down_y = ei->output.y; - - LOCK_SCREEN_TRACE_DBG("complex_pw_down_y = %d", complex_pw_down_y); -} - -static void __complex_password_mouse_up_cb(void *data, Evas * evas, Evas_Object * obj, - void *event_info) -{ - struct appdata *ad = data; - Evas_Event_Mouse_Down *ei = event_info; - - Evas_Coord pos_up_y = ei->output.y; - - if((pos_up_y - complex_pw_down_y) > _X(300)){ - edje_object_signal_emit(_EDJ(ad->ly_complex_password), "hide,qwertykeyboard", "sw.keypad.qwerty"); - edje_object_signal_callback_add(_EDJ(ad->ly_complex_password), "hide,complexpw", "event", __complex_password_layout_destroy, ad); - } -} - -static void __complex_password_mouse_move_cb(void *data, Evas * evas, Evas_Object * obj, - void *event_info) -{ - LOCK_SCREEN_TRACE_DBG("__complex_password_mouse_move_cb"); -} - -void __complex_password_check_result(void *data) -{ - struct appdata *ad = (struct appdata *) data; - - int value = -1; - - vconf_get_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, &value); - value--; - - if (value > 0 && value <= PASSWORD_ATTEMPTS_MAX_NUM) { - char temp_str[200] = {0}; - char temp_left[50] = {0}; - - vconf_set_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, - value); - if(value == 1) - { - snprintf(temp_left, sizeof(temp_left), _("IDS_IDLE_BODY_1_ATTEMPT_LEFT")); - } - else - { - snprintf(temp_left, sizeof(temp_left), _("IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"), value); - } - snprintf(temp_str, sizeof(temp_str), "%s, %s", _("IDS_IDLE_BODY_INCORRECT_PASSWORD"), temp_left); - edje_object_part_text_set(_EDJ(ad->ly_complex_password), "txt.result", temp_str); - } else if (value == 0) { - time_t cur_time = time(NULL); - char cur_timestamp[64] = {0}; - char temp_str[512] = {0}; - - snprintf(cur_timestamp, sizeof(cur_timestamp), "%ld", cur_time); - vconf_set_str(VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR, cur_timestamp); - vconf_set_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, value); - ad->block_seconds = PASSWORD_BLOCK_SECONDS; - - snprintf(temp_str, sizeof(temp_str), _L("Input password again after %d seconds."), ad->block_seconds); - edje_object_part_text_set(_EDJ(ad->ly_complex_password), "txt.result", temp_str); - } -} - -static void __complex_password_check_result_cb (const char *event, void *data) -{ - struct appdata *ad = (struct appdata *) data; - if (ad == NULL) { - return; - } - - if(strcasecmp("empty", event) == 0 || strcasecmp("overlength", event) == 0) { - char temp_str[100] = {0}; - snprintf(temp_str, sizeof(temp_str), _L("%d to %d digits or letters required"), MIN_PASSWORD_NUM, MAX_PASSWORD_NUM); - edje_object_part_text_set(_EDJ(ad->ly_complex_password), "txt.result", temp_str); - }else { - __complex_password_check_result(data); - } -} - -static void __complex_password_results_update(void *data) -{ - int value = -1; - int ret = 0; - - struct appdata *ad = (struct appdata *) data; - - if (ad == NULL) { - return; - } - LOCK_SCREEN_TRACE_DBG("%s", __FUNCTION__); - - ret = - vconf_get_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, - &value); - - if (ret != 0) { - return; - } - - if (value == 0) { - char timestamp_str[512] = {0}; - char *temp = NULL; - int length = 0; - int temp_length = 0; - temp = vconf_get_str(VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR); - temp_length = strlen(temp); - length = (temp_length <= PASSWORD_TIMESTAMP_STR_LENGTH) ? temp_length : PASSWORD_TIMESTAMP_STR_LENGTH; - strncpy(timestamp_str, temp, length); - if(length == PASSWORD_TIMESTAMP_STR_LENGTH) { - timestamp_str[length-1] = '\0'; - }else { - timestamp_str[length] = '\0'; - } - if ((strcmp(timestamp_str, "") != 0) - || (strlen(timestamp_str) != 0)) { - time_t cur_time = time(NULL); - time_t last_lock_time; - sscanf(timestamp_str, "%ld", &last_lock_time); - - if ((cur_time - last_lock_time) < PASSWORD_BLOCK_SECONDS) { - ad->block_seconds = PASSWORD_BLOCK_SECONDS - (cur_time - last_lock_time); - LOCK_SCREEN_TRACE_DBG("ad->block_seconds = %d", ad->block_seconds); - ad->is_disabled = EINA_TRUE; - char temp_str[512] = {0}; - snprintf(temp_str, sizeof(temp_str), _L("Input password again after %d seconds."), ad->block_seconds); - edje_object_part_text_set(_EDJ(ad->ly_complex_password), "txt.result", temp_str); - } else { - ad->is_disabled = EINA_FALSE; - vconf_set_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, PASSWORD_ATTEMPTS_MAX_NUM); - } - } - } -} - -static Eina_Bool __complex_password_results_update_cb(void *data) -{ - __complex_password_results_update(data); - return EINA_TRUE; -} - -static void __complex_password_check_vconf_value(void *data) -{ - int phone_lock_value = -1; - struct appdata *ad = (struct appdata *) data; - - if (ad == NULL) { - return; - } - LOCK_SCREEN_TRACE_DBG("%s", __FUNCTION__); - - vconf_get_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, &phone_lock_value); - - if (phone_lock_value == 0) { - if (ad->password_timer) { - return; - } - ad->password_timer = ecore_timer_add(1, (Ecore_Task_Cb)__complex_password_results_update_cb, ad); - } else { - if (ad->password_timer) { - ecore_timer_del(ad->password_timer); - ad->password_timer = NULL; - } - ad->is_disabled = EINA_FALSE; - } -} - -static void __complex_password_check_vconf_value_cb(keynode_t * key, void *data) -{ - __complex_password_check_vconf_value(data); -} - -static void __complex_password_customize_entry(Evas_Object * entry) -{ - static Elm_Entry_Filter_Limit_Size limit_filter_data_alpha; - Elm_Theme *th = elm_theme_new(); - elm_theme_ref_set(th, NULL); - elm_theme_extension_add(th, EDJ_LOCKSCREEN_ENTRY); - elm_object_theme_set(entry, th); - elm_object_style_set(entry, "lockscreen_complex_password_style"); - limit_filter_data_alpha.max_char_count = MAX_PASSWORD_NUM; - limit_filter_data_alpha.max_byte_count = 0; - elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, - &limit_filter_data_alpha); -} - -void complex_password_layout_create(void *data) -{ - struct appdata *ad = (struct appdata *)data; - if(ad == NULL){ - return; - } - - Evas_Object *keypad_layout = NULL; - - ad->h_password_policy = password_verification_policy_create(); - password_verification_callback_set(ad->h_password_policy, __complex_password_check_result_cb, ad); - lockscreen_info_hide(ad); - ad->ly_complex_password = elm_layout_add(ad->ly_main); - elm_layout_file_set(ad->ly_complex_password, EDJEFILE, "lock-complex-password"); - elm_object_part_content_set(ad->ly_main, "sw.phone-lock", ad->ly_complex_password); - edje_object_part_text_set(_EDJ(ad->ly_complex_password), "txt.title", _S("IDS_COM_BODY_ENTER_PASSWORD")); - - Evas_Object *entry = NULL; - entry = elm_entry_add(ad->ly_complex_password); - __complex_password_customize_entry(entry); - elm_entry_single_line_set(entry, EINA_TRUE); - elm_entry_password_set(entry, EINA_TRUE); - elm_entry_entry_set(entry, ""); - elm_entry_cursor_end_set(entry); - elm_entry_scrollable_set(entry, EINA_TRUE); - elm_object_part_content_set(ad->ly_complex_password, "sw.password", entry); - Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(entry); - ecore_imf_context_input_panel_enabled_set(imf_context, EINA_FALSE); - ad->c_password_entry = entry; - - keypad_layout = elm_layout_add(ad->ly_complex_password); - elm_layout_file_set(keypad_layout, EDJEFILE, "lock-keypad-qwerty"); - elm_object_part_content_set(ad->ly_complex_password, "sw.keypad.qwerty", keypad_layout); - edje_object_signal_emit(_EDJ(ad->ly_complex_password), "show,qwertykeyboard", "sw.keypad.qwerty"); - edje_object_signal_callback_add(_EDJ(keypad_layout), "pad_qwerty_clicked", "*", __complex_password_keypad_process, ad); - evas_object_event_callback_add(ad->ly_complex_password, EVAS_CALLBACK_MOUSE_DOWN, __complex_password_mouse_down_cb, ad); - evas_object_event_callback_add(ad->ly_complex_password, EVAS_CALLBACK_MOUSE_MOVE, __complex_password_mouse_move_cb, ad); - evas_object_event_callback_add(ad->ly_complex_password, EVAS_CALLBACK_MOUSE_UP, __complex_password_mouse_up_cb, ad); - evas_object_show(keypad_layout); - - vconf_notify_key_changed(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, __complex_password_check_vconf_value_cb, ad); - __complex_password_check_vconf_value(ad); -} +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include + +#include "lockscreen-lite.h" +#include "password-verification.h" +#include "complex-password.h" +#include "control-panel.h" +#include "default-unlock.h" +#include "progress_circle.h" +#include "control-panel-password.h" +#include "notification-item.h" +#include "default-unlock.h" + +#define _X(x) (ELM_SCALE_SIZE(x)) +#define PRIVATE_DATE_PASSWORD_POLICY "p_d_p_p" + +#define MIN_PASSWORD_NUM 4 +#define MAX_PASSWORD_NUM 16 +#define PASSWORD_TIMESTAMP_STR_LENGTH 512 +#define PASSWORD_BLOCK_SECONDS 30 +#define VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR VCONFKEY_SETAPPL_PREFIX"/phone_lock_timestamp" + +static struct +{ + int is_recovery_mode; + Evas_Object *complex_password_layout; + Evas_Object *keypad_layout; + Evas_Object *entry; + + Eina_Bool is_complex_password_blocked; + void *policy; +} s_complex_password_info = +{ + .is_recovery_mode = 0, + .complex_password_layout = NULL, + .keypad_layout = NULL, + .entry = NULL, + + .is_complex_password_blocked = EINA_FALSE, + .policy = NULL, +}; + +static int max_attempts = PASSWORD_ATTEMPTS_MAX_NUM; +static int remain_attempts = PASSWORD_ATTEMPTS_MAX_NUM; +Ecore_Timer *gWrong_password_timer = NULL; +int gPassword_time_remaining = PASSWORD_BLOCK_SECONDS ; + +static void __complex_password_save_lock_time(void); +static void __complex_password_enter_cb(void *data, Evas_Object *obj, void *event_info); +static void __complex_password_customize_entry(Evas_Object * entry); +static void __keyboard_geometry_changed(void *data, Ecore_IMF_Context *ctx, int value); +static void _pwd_verify_result_cb(int event, int max_attempt, int block_attempt, int current_attemp, int remain_attempt, void *data, done_cb cb); + +static void _main_title_set(Evas_Object *layout) +{ + int selected_noti_type = notification_item_selected_item_type_get(); + + if (get_recovery_mode() == 1) { + elm_object_part_text_set(layout, "title", _("IDS_ST_HEADER_ENTER_RECOVERY_PASSWORD_ABB_VZW")); + } else { + if (selected_noti_type == NOTIFICATION_ITEM_MESSAGE) { + elm_object_part_text_set(layout, "title", _("IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_MESSAGE_ABB")); + } + else if (selected_noti_type == NOTIFICATION_ITEM_CALL) { + elm_object_part_text_set(layout, "title", _("IDS_LCKSCN_NPBODY_ENTER_PASSWORD_TO_VIEW_CALL_LOG_ABB")); + } + else { + elm_object_part_text_set(layout, "title", _("IDS_COM_BODY_ENTER_PASSWORD")); + } + } +} + +static void on_complex_password_clicked(void *data, Evas_Object *obj, void *info) +{ + LOGD("MSZ"); + Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(s_complex_password_info.entry); + ret_if(imf_context == NULL); + + ecore_imf_context_input_panel_event_callback_add(imf_context, + ECORE_IMF_INPUT_PANEL_GEOMETRY_EVENT, __keyboard_geometry_changed, NULL); +} + +const Eina_Bool is_complex_password_blocked() +{ + return s_complex_password_info.is_complex_password_blocked; +} + +void complex_password_view_update(void) +{ + if (s_complex_password_info.is_complex_password_blocked == EINA_FALSE) { + _main_title_set(s_complex_password_info.complex_password_layout); + } +} + +void complex_password_reset(void) +{ + complex_password_view_update(); + clear_complex_password_entry(); + s_complex_password_info.is_complex_password_blocked = EINA_FALSE; + control_panel_password_tizen_account_hide(); + + Evas_Object *layout = s_complex_password_info.complex_password_layout; + if (layout) { + void *policy = evas_object_data_get(layout, PRIVATE_DATE_PASSWORD_POLICY); + if (password_verification_incorrect_count_get(policy) > 0) { + control_panel_password_tizen_account_show(); + } + control_panel_password_cancel_enable_set(1); + } +} + +void clear_complex_password_entry(void) +{ + ret_if(s_complex_password_info.entry == NULL); + + elm_entry_entry_set(s_complex_password_info.entry, ""); +} + +void complex_password_focus_enable_set(void) +{ + ret_if(s_complex_password_info.entry == NULL); + elm_object_focus_allow_set(s_complex_password_info.entry, EINA_TRUE); +} + +void complex_password_focus_disable_set(void) +{ + ret_if(s_complex_password_info.entry == NULL); + elm_object_focus_allow_set(s_complex_password_info.entry, EINA_FALSE); +} + +void complex_password_focus_entry(void) +{ + LOCK_SCREEN_TRACE_DBG("PLM"); + + ret_if(s_complex_password_info.entry == NULL); + + complex_password_focus_enable_set(); + + elm_object_focus_set(s_complex_password_info.entry, EINA_TRUE); + on_complex_password_clicked(NULL, NULL, NULL); +} + +void complex_password_unfocus_entry(void) +{ + ret_if(s_complex_password_info.entry == NULL); + + elm_object_focus_set(s_complex_password_info.entry, EINA_FALSE); +} + +#define IME_RESIZED 1 +#define IME_DOWN 2 + +static void _complex_password_entry_imf_resize_cb(void *data, Ecore_IMF_Context *ctx, int value) +{ + int x, y, w, h; + ret_if(s_complex_password_info.complex_password_layout == NULL); + + ecore_imf_context_input_panel_geometry_get(ctx, &x, &y, &w, &h); + LOCK_SCREEN_TRACE_DBG("y(%d)", y); + + Edje_Message_Int_Set *msg = malloc(sizeof(*msg) + sizeof(int)); + msg->count = 1; + msg->val[0] = h; + if(y == lockscreen_get_window_height()) { + LOCK_SCREEN_TRACE_DBG("h(%d)", y); + edje_object_message_send(_EDJ(s_complex_password_info.complex_password_layout), EDJE_MESSAGE_INT_SET, IME_DOWN, msg); + } else { + LOCK_SCREEN_TRACE_DBG("h(%d)", y); + edje_object_message_send(_EDJ(s_complex_password_info.complex_password_layout), EDJE_MESSAGE_INT_SET, IME_RESIZED, msg); + } +} + +static void _del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Evas_Object *entry = data; + + if (entry) { + Ecore_IMF_Context *imf_context = (Ecore_IMF_Context *)elm_entry_imf_context_get(entry); + if (imf_context) { + ecore_imf_context_input_panel_event_callback_del(imf_context, + ECORE_IMF_INPUT_PANEL_GEOMETRY_EVENT, + _complex_password_entry_imf_resize_cb); + } + } + + if (obj) { + void *policy = evas_object_data_del(obj, PRIVATE_DATE_PASSWORD_POLICY); + if (policy) { + if (s_complex_password_info.policy == policy) { + s_complex_password_info.policy = NULL; + } + password_verification_policy_destroy(policy); + } + if (obj == s_complex_password_info.complex_password_layout) { + s_complex_password_info.complex_password_layout = NULL; + s_complex_password_info.entry = NULL; + } + } +} + +Evas_Object* create_complex_password_layout_2(Evas_Object *parent, Eina_Bool is_for_img) +{ + LOCK_SCREEN_TRACE_DBG(""); + Evas_Object *layout = NULL; + Evas_Object *entry = NULL; + retv_if(parent == NULL, NULL); + + if(!is_for_img) { + s_complex_password_info.policy = password_verification_policy_create(); + password_verification_callback_set(s_complex_password_info.policy, _pwd_verify_result_cb, NULL); + } + + layout = elm_layout_add(parent); + if(!elm_layout_file_set(layout, EDJE_DIR"lock-complex-password.edj", "lock-complex-password2")) + { + LOCK_SCREEN_TRACE_DBG("Failed to load edje file"); + return NULL; + } + + _main_title_set(layout); + + if(!is_for_img) { + entry = elm_entry_add(layout); + elm_entry_magnifier_disabled_set(entry, EINA_TRUE); + __complex_password_customize_entry(entry); + elm_entry_single_line_set(entry, EINA_TRUE); + elm_entry_password_set(entry, EINA_TRUE); + elm_entry_drag_disabled_set(entry, EINA_TRUE); + elm_entry_magnifier_disabled_set(entry, EINA_TRUE); + elm_entry_entry_set(entry, ""); + elm_entry_cursor_end_set(entry); + elm_entry_scrollable_set(entry, EINA_TRUE); + elm_entry_cnp_mode_set(entry,ELM_CNP_MODE_PLAINTEXT); + elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_PASSWORD); + elm_entry_input_panel_imdata_set(entry, "type=lockscreen", 15); + elm_entry_input_panel_return_key_type_set(entry, ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE); + evas_object_smart_callback_add(entry, "activated", __complex_password_enter_cb, NULL); + evas_object_show(entry); + + Ecore_IMF_Context *imf_context = (Ecore_IMF_Context *)elm_entry_imf_context_get(entry); + if (imf_context) { + ecore_imf_context_input_panel_event_callback_add(imf_context, + ECORE_IMF_INPUT_PANEL_GEOMETRY_EVENT, + _complex_password_entry_imf_resize_cb, + NULL); + } + + elm_object_part_content_set(layout, "entry", entry); + evas_object_smart_callback_add(entry, "clicked", on_complex_password_clicked, NULL); + evas_object_data_set(layout, PRIVATE_DATE_PASSWORD_POLICY, s_complex_password_info.policy); + evas_object_event_callback_add(layout + , EVAS_CALLBACK_DEL, _del_cb, entry); + evas_object_show(layout); + + s_complex_password_info.complex_password_layout = layout; + s_complex_password_info.entry = entry; + } + + /* + create_emg_button(); + control_panel_create_tizen_account_button(); + */ + Evas_Object *control_panel = control_panel_password_create(layout, is_for_img); + elm_object_part_content_set(layout, "control_panel", control_panel); + + return layout; +} + + +void complex_password_input_panel_show() +{ + ret_if(s_complex_password_info.entry == NULL); + + elm_entry_input_panel_show(s_complex_password_info.entry); +} + +static void __complex_password_enter_cb(void *data, Evas_Object *obj, void *event_info) +{ + const char *password = elm_entry_entry_get(obj); + ret_if(s_complex_password_info.policy == NULL); + + password_verification_verify(s_complex_password_info.policy, password); +} + +static void __complex_password_save_lock_time(void) +{ + LOCK_SCREEN_TRACE_DBG(""); + + time_t cur_time = time(NULL); + char cur_timestamp[64] = {0}; + snprintf(cur_timestamp, sizeof(cur_timestamp), "%ld", cur_time); + vconf_set_str(VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR, cur_timestamp); +} + +static void __complex_password_init_lock_time(void) +{ + LOCK_SCREEN_TRACE_DBG(""); + + vconf_set_str(VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR, ""); +} + +static void __complex_password_load_lock_time(void) +{ + LOCK_SCREEN_TRACE_DBG(""); + + char *time_stamp = vconf_get_str(VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR); + if(time_stamp == NULL) { + LOCK_SCREEN_TRACE_ERR("vconf_get_str() failed"); + return; + } + + if(strcmp(time_stamp, "") == 0) { + LOCK_SCREEN_TRACE_DBG("time_stamp is not saved"); + return; + } + + time_t cur_time = time(NULL); + time_t last_lock_time; + sscanf(time_stamp, "%ld", &last_lock_time); + free(time_stamp); + + if((cur_time - last_lock_time) < PASSWORD_BLOCK_SECONDS && (cur_time - last_lock_time) > 0) + { + gPassword_time_remaining = PASSWORD_BLOCK_SECONDS - (cur_time - last_lock_time); + + char temp_str[200] = {0}; + snprintf(temp_str, sizeof(temp_str), _("IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"), gPassword_time_remaining); + elm_object_part_text_set(s_complex_password_info.complex_password_layout, "title", temp_str); + elm_object_signal_emit(s_complex_password_info.complex_password_layout, "show_title", "title"); + } + else + { + if(gWrong_password_timer) + { + ecore_timer_del(gWrong_password_timer); + gWrong_password_timer = NULL; + + gPassword_time_remaining = PASSWORD_BLOCK_SECONDS; + remain_attempts = PASSWORD_ATTEMPTS_MAX_NUM; + + _main_title_set(s_complex_password_info.complex_password_layout); + elm_object_signal_emit(s_complex_password_info.complex_password_layout, "show_title", "title"); + + s_complex_password_info.is_complex_password_blocked = EINA_FALSE; + elm_object_disabled_set(s_complex_password_info.entry, EINA_FALSE); + set_lockscreen_swipe_is_blocked(false); + complex_password_focus_entry(); + + lockd_event(LKD_EVT_VIEW_INPUT_UNBLOCK, NULL); + } + control_panel_password_cancel_enable_set(1); + } +} + +static Eina_Bool wrong_password_wait_timer_cb(void *data) +{ + retv_if(s_complex_password_info.complex_password_layout == NULL, ECORE_CALLBACK_CANCEL); + + char temp_str[200] = {0}; + snprintf(temp_str, sizeof(temp_str), _("IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"), gPassword_time_remaining); + elm_object_part_text_set(s_complex_password_info.complex_password_layout, "title", temp_str); + + if(gPassword_time_remaining == PASSWORD_BLOCK_SECONDS) + { + gPassword_time_remaining--; + elm_object_disabled_set(s_complex_password_info.entry, EINA_TRUE); + return ECORE_CALLBACK_RENEW; + } + else if(gPassword_time_remaining > 0) + { + gPassword_time_remaining--; + return ECORE_CALLBACK_RENEW; + } + else + { + gPassword_time_remaining = PASSWORD_BLOCK_SECONDS; + remain_attempts = PASSWORD_ATTEMPTS_MAX_NUM; + gWrong_password_timer = NULL; + + _main_title_set(s_complex_password_info.complex_password_layout); + + elm_object_signal_emit(s_complex_password_info.complex_password_layout, "show_title", "title"); + + s_complex_password_info.is_complex_password_blocked = EINA_FALSE; + elm_object_disabled_set(s_complex_password_info.entry, EINA_FALSE); + set_lockscreen_swipe_is_blocked(false); + complex_password_focus_entry(); + + __complex_password_init_lock_time(); + + Evas_Object *layout = s_complex_password_info.complex_password_layout; + if (layout) { + void *policy = evas_object_data_get(layout, PRIVATE_DATE_PASSWORD_POLICY); + if (password_verification_incorrect_count_get(policy) > 0) { + control_panel_password_tizen_account_show(); + } + } + control_panel_password_cancel_enable_set(1); + + lockd_event(LKD_EVT_VIEW_INPUT_UNBLOCK, NULL); + + return ECORE_CALLBACK_CANCEL; + } +} + +static void __complex_password_customize_entry(Evas_Object * entry) +{ + static Elm_Entry_Filter_Limit_Size limit_filter_data_alpha; + Elm_Theme *th = elm_theme_new(); + elm_theme_ref_set(th, NULL); + elm_theme_extension_add(th, EDJE_DIR"lockscreen-entry.edj"); + elm_object_theme_set(entry, th); + elm_object_style_set(entry, "lockscreen_complex_password_style"); + limit_filter_data_alpha.max_char_count = MAX_PASSWORD_NUM; + limit_filter_data_alpha.max_byte_count = 0; + elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, + &limit_filter_data_alpha); +} + +static void __keyboard_geometry_changed(void *data, Ecore_IMF_Context *ctx, int value) +{ + int imf_x, imf_y, imf_w, imf_h; // cordinates of the imf context + ecore_imf_context_input_panel_geometry_get(ctx, &imf_x, &imf_y, &imf_w, &imf_h); + + if (imf_w) + { // the input panel has been resized and occupies a non-zero area + elm_object_signal_emit(default_unlock_control_panel_get(), "geometry,changed", ""); + set_lockscreen_is_keyboard_on(true); + } + else + { + elm_object_signal_emit(default_unlock_control_panel_get(), "keyboard,hide", ""); + set_lockscreen_is_keyboard_on(false); + } +} + +Evas_Object* complex_password_layout_get(void) +{ + return s_complex_password_info.complex_password_layout; +} + +static void _handler_pwd_invalid_input(int event, int max_attempt, int block_attempt, int current_attemp, int remain_attempt, void *data, done_cb cb) +{ + LOCK_SCREEN_TRACE_DBG("event:%d", event); + + char temp_str[100] = {0}; + snprintf(temp_str, sizeof(temp_str), _("IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"), MIN_PASSWORD_NUM, MAX_PASSWORD_NUM); + elm_object_part_text_set(s_complex_password_info.complex_password_layout, "title", temp_str); +} + +static void _handler_pwd_correct(int event, int max_attempt, int block_attempt, int current_attemp, int remain_attempt, void *data, done_cb cb) +{ + LOCK_SCREEN_TRACE_DBG("event:%d", event); + + __complex_password_init_lock_time(); + + complex_password_unfocus_entry(); + vi_end_signal_emit(EINA_TRUE, EINA_FALSE); + max_attempts = PASSWORD_ATTEMPTS_MAX_NUM; + + elm_entry_entry_set(s_complex_password_info.entry, ""); +} + +static void _confirm_popup_ok(void *data, Evas_Object *obj, void *event_info) +{ + ret_if(data == NULL); + evas_object_del((Evas_Object *)data); + + if (s_complex_password_info.entry) { + elm_object_disabled_set(s_complex_password_info.entry, EINA_FALSE); + } + if (get_lockscreen_is_after_swipe()) { + complex_password_focus_entry(); + } +} + +static Eina_Bool _popup_delay_timer(void *data) +{ + PWD_Popup_Data *pd = data; + retv_if(pd == NULL, ECORE_CALLBACK_CANCEL); + + lockscreen_confirm_popup(NULL, pd->text, pd->okcb, pd->data, 0.0); + + free(pd->text); + free(pd); + pd = NULL; + + return ECORE_CALLBACK_CANCEL; +} + +static void _handler_pwd_incorrect(int event, int max_attempt, int block_attempt, int current_attemp, int remain_attempt, void *data, done_cb cb) +{ + LOCK_SCREEN_TRACE_DBG(""); + char temp_str[200] = {0}; + char temp_left[200] = {0}; + + if (event == PWD_EVENT_PASSWORD_INCORRECT_WAIT_RECOVERY_MODE) { + elm_object_part_text_set(s_complex_password_info.complex_password_layout, "title", _("IDS_IDLE_BODY_INCORRECT_PASSWORD")); + } else { + if(remain_attempt == 1) + { + snprintf(temp_left, sizeof(temp_left), "%s", _("IDS_IDLE_BODY_1_ATTEMPT_LEFT")); + } + else + { + snprintf(temp_left, sizeof(temp_left), _("IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"), remain_attempt); + } + snprintf(temp_str, sizeof(temp_str), "%s
%s", _("IDS_IDLE_BODY_INCORRECT_PASSWORD"), temp_left); + elm_object_part_text_set(s_complex_password_info.complex_password_layout, "title", temp_str); + } + control_panel_password_tizen_account_show(); + + elm_entry_entry_set(s_complex_password_info.entry, ""); + + if (event == PWD_EVENT_PASSWORD_INCORRECT_WARNING) { + char popup_text[1024] = {0}; + snprintf(popup_text, sizeof(popup_text), _("IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"), current_attemp, max_attempt - current_attemp); + + complex_password_unfocus_entry(); + if (s_complex_password_info.entry) { + elm_object_disabled_set(s_complex_password_info.entry, EINA_TRUE); + } + + PWD_Popup_Data *pd = (PWD_Popup_Data *)calloc(1, sizeof(PWD_Popup_Data)); + if (pd) { + pd->text = strdup(popup_text); + pd->okcb = _confirm_popup_ok; + ecore_timer_add(0.2, _popup_delay_timer, pd); + } + } +} + +static void _handler_pwd_block(int event, int max_attempt, int block_attempt, int current_attemp, int remain_attempt, void *data, done_cb cb) +{ + __complex_password_save_lock_time(); + char temp_str[200] = {0}; + + snprintf(temp_str, sizeof(temp_str), _("IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"), PASSWORD_BLOCK_SECONDS); + elm_object_part_text_set(s_complex_password_info.complex_password_layout, "title", temp_str); + + gWrong_password_timer = ecore_timer_add(1.0, wrong_password_wait_timer_cb, NULL); + s_complex_password_info.is_complex_password_blocked = EINA_TRUE; + elm_object_disabled_set(s_complex_password_info.entry, EINA_TRUE); + set_lockscreen_swipe_is_blocked(true); + + control_panel_password_tizen_account_hide(); + lockd_event(LKD_EVT_VIEW_INPUT_BLOCK, NULL); + + elm_entry_entry_set(s_complex_password_info.entry, ""); + + char popup_text[512] = {0}; + if (event != PWD_EVENT_INPUT_BLOCK_WARNING) { + snprintf(popup_text, sizeof(popup_text), _("IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"), PASSWORD_ATTEMPTS_MAX_NUM, PASSWORD_BLOCK_SECONDS); + lockscreen_confirm_popup(_("IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"), + popup_text, NULL, NULL, 15.0); + } + control_panel_password_cancel_enable_set(0); +} + +static void _handler_pwd_recovery_enter(int event, int max_attempt, int block_attempt, int current_attemp, int remain_attempt, void *data, done_cb cb) +{ + default_unlock_password_view_change(); +} + +static void _confirm_popup_factory_ok(void *data, Evas_Object *obj, void *event_info) +{ + Evas_Object *popup = (Evas_Object *)data; + ret_if(popup == NULL); + + done_cb cb = evas_object_data_del(popup, "user_data"); + + if (cb) { + cb(); + LOCK_SCREEN_TRACE_WARN("mdm wiping called"); + } +} + +static void _handler_pwd_recovery_failed(int event, int max_attempt, int block_attempt, int current_attemp, int remain_attempt, void *data, done_cb cb) +{ + char popup_text[1024] = {0}; + snprintf(popup_text, sizeof(popup_text), _("IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"), current_attemp); + + complex_password_unfocus_entry(); + if (s_complex_password_info.entry) { + elm_object_disabled_set(s_complex_password_info.entry, EINA_TRUE); + } + + PWD_Popup_Data *pd = (PWD_Popup_Data *) calloc(1, sizeof(PWD_Popup_Data)); + if (pd) { + pd->text = strdup(popup_text); + pd->okcb = _confirm_popup_factory_ok; + pd->data = cb; + ecore_timer_add(0.2, _popup_delay_timer, pd); + } +} + +static void _pwd_verify_result_cb(int event, int max_attempt, int block_attempt, int current_attemp, int remain_attempt, void *data, done_cb cb) +{ + LOCK_SCREEN_TRACE_DBG("event:%d", event); + ret_if(s_complex_password_info.complex_password_layout == NULL); + + static struct PWD_Event_Handler fn_table[] = { + { + .event = PWD_EVENT_PASSWORD_EMPTY, + .process = _handler_pwd_invalid_input, + }, + { + .event = PWD_EVENT_PASSWORD_OVER, + .process = _handler_pwd_invalid_input, + }, + { + .event = PWD_EVENT_PASSWORD_CORRECT, + .process = _handler_pwd_correct, + }, + { + .event = PWD_EVENT_PASSWORD_INCORRECT_WARNING, + .process = _handler_pwd_incorrect, + }, + { + .event = PWD_EVENT_PASSWORD_INCORRECT, + .process = _handler_pwd_incorrect, + }, + { + .event = PWD_EVENT_PASSWORD_INCORRECT_WAIT_RECOVERY_MODE, + .process = _handler_pwd_incorrect, + }, + { + .event = PWD_EVENT_INPUT_BLOCK, + .process = _handler_pwd_block, + }, + { + .event = PWD_EVENT_INPUT_BLOCK_WARNING, + .process = _handler_pwd_block, + }, + { + .event = PWD_EVENT_RECOVERY_ENTER, + .process = _handler_pwd_recovery_enter, + }, + { + .event = PWD_EVENT_RECOVERY_FAILED, + .process = _handler_pwd_recovery_failed, + }, + { + .event = 0, + .process = NULL, + }, + }; + + int i = 0; + for (i = 0; fn_table[i].process != NULL; i++) { + if (event == fn_table[i].event && fn_table[i].process != NULL) { + fn_table[i].process(event, max_attempt, block_attempt, current_attemp, remain_attempt, data, cb); + } + } +} + +/*! + * module + */ +static Evas_Object *_create_view(Evas_Object *parent, LKD_Module_Data *md) +{ + return NULL; +} + +static int _destroy_view(LKD_Module_Data *md) +{ + return LKD_RET_OK; +} + +static void _resume(LKD_Module_Data *md) +{ + if(get_locktype() == SETTING_SCREEN_LOCK_TYPE_PASSWORD) { + LOCK_SCREEN_TRACE_DBG(); + __complex_password_load_lock_time(); + } +} + +static void _pause(LKD_Module_Data *md) +{ + LOCK_SCREEN_TRACE_DBG(); + + if(s_complex_password_info.complex_password_layout && gWrong_password_timer) + { + LOCK_SCREEN_TRACE_DBG("hide password view title"); + elm_object_signal_emit(s_complex_password_info.complex_password_layout, "hide_title", "title"); + } +} + +LKD_Module g_mod_complex_password = { + .id = "complex-password", + .notifying = 1, + .init = NULL, + .fini = NULL, + .create_view = _create_view, + .destroy_view = _destroy_view, + .resume = _resume, + .pause = _pause, +}; diff --git a/src/complex-password.h b/src/complex-password.h deleted file mode 100755 index 9f62f42..0000000 --- a/src/complex-password.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 __COMPLEX_PASSWORD_H__ -#define __COMPLEX_PASSWORD_H__ - -void complex_password_layout_create(void *data); - -#endif diff --git a/src/contextual-info.c b/src/contextual-info.c new file mode 100755 index 0000000..1bbd3b8 --- /dev/null +++ b/src/contextual-info.c @@ -0,0 +1,1499 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "contextual-info.h" +#include "lockscreen-lite.h" +#include "util-time.h" +#include "notification-item.h" +#include "notification-panel.h" +#include "dynamic-index.h" +#include "progress_circle.h" +#include "default-unlock.h" +#include "simple-password.h" +#include "complex-password.h" +#include "background-view.h" + +#define PLUG_HIDE_COMMAND "mc_hide" +#define RADIO_PLAYER "com.samsung.fm-radio-lite" +#define VOICE_RECORDER "com.samsung.voicerecorder-lite" + +#define NOTI_HANDLE_DATA "notification_handle" + +#define MUSIC_TIMEOUT 0.1 + +static struct { + Evas_Object *default_unlock_layout; + Evas_Object *layout; + Evas_Object *scroller; + Evas_Object *noti_box; + + Evas_Object *missed_call_item; + Evas_Object *missed_message_item; + + int notification_page; + int music_player_page; + int radio_page; + int voice_record_page; + int pages_count; + + int missed_calls_count; + int missed_messages_count; + + Eina_Bool is_missed_call; + Eina_Bool is_new_message; + dynamic_index_t *dynamic_index_livebox_panel; + + Ecore_Event_Handler *mouse_down_handler; + Ecore_Timer *background_timer; + music_state_t music_state; +} s_contextual_info = { + .default_unlock_layout = NULL, + .layout = NULL, + .scroller = NULL, + .noti_box = NULL, + + .missed_call_item = NULL, + .missed_message_item = NULL, + + .notification_page = -1, + .music_player_page = -1, + .voice_record_page = -1, + .radio_page = -1, + .pages_count = 0, + + .missed_calls_count = 0, + .missed_messages_count = 0, + + .is_missed_call = EINA_FALSE, + .is_new_message = EINA_FALSE, + .dynamic_index_livebox_panel = NULL, + .mouse_down_handler = NULL, + .background_timer = NULL, + .music_state = NO_MUSIC +}; + +extern int app_control_import_from_bundle(app_control_h app_control, bundle *data); + +static Evas_Object* _add_notification_item(Evas_Object *box, char *icon_path, char *content, char *title, char *time) +{ + Evas_Object *item = notification_item_main_create(icon_path, content, title, time); + + if (!item) + { + LOCK_SCREEN_TRACE_DBG("Failed to create notification item"); + return NULL; + } + + Evas_Object *scroller_box = elm_object_part_content_get(s_contextual_info.scroller, "default"); + if (!scroller_box) + { + LOCK_SCREEN_TRACE_DBG("Failed to get scroller content"); + return NULL; + } + elm_box_pack_end(box, item); + elm_box_recalculate(box); + elm_box_recalculate(scroller_box); + + return item; +} + +static Evas_Object* _add_info_page() +{ + Evas_Object *page_box = NULL; + Evas_Object *main_window = NULL; + + int page_width = lockscreen_get_window_width(); + int page_height = _SCALE(PAGE_HEIGHT); + + main_window = lockscreen_get_window(); + if (!main_window) + { + LOCK_SCREEN_TRACE_DBG("Failed to get lockscreen window"); + return NULL; + } + + Evas_Object *scroller_box = elm_object_part_content_get(s_contextual_info.scroller, "default"); + if (!scroller_box) + { + LOCK_SCREEN_TRACE_DBG("Failed to get scroller content"); + return NULL; + } + + page_box = elm_box_add(scroller_box); + if (!page_box) + { + LOCK_SCREEN_TRACE_DBG("Failed to create box"); + return NULL; + } + + elm_box_horizontal_set(page_box, EINA_FALSE); + evas_object_size_hint_min_set(page_box, page_width, page_height); + evas_object_size_hint_weight_set(page_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(page_box, 0.0, 0.0); + evas_object_show(page_box); + + elm_box_pack_end(scroller_box, page_box); + elm_box_recalculate(page_box); + elm_box_recalculate(scroller_box); + + dynamic_index_del(s_contextual_info.dynamic_index_livebox_panel); + s_contextual_info.dynamic_index_livebox_panel = dynamic_index_new(s_contextual_info.scroller); + return page_box; +} + +static void _plug_message_send(Evas_Object *minictrl, char *message) +{ + LOCK_SCREEN_TRACE_DBG("minictrl:%p", minictrl); + Ecore_Evas *ee = NULL; + Evas_Object *plug_img = NULL; + ret_if(message == NULL); + ret_if(minictrl == NULL); + + plug_img = elm_plug_image_object_get(minictrl); + ret_if(plug_img == NULL); + ee = ecore_evas_object_ecore_evas_get(plug_img); + ret_if(ee == NULL); + LOCK_SCREEN_TRACE_WARN("sent:%s", message); + ecore_evas_msg_parent_send(ee, 0, 0, message, strlen(message) + 1); +} + +static Eina_Bool _plug_del_idler_cb(void *data) +{ + Evas_Object *plug = data; + if (plug) { + evas_object_del(plug); + } + + return ECORE_CALLBACK_CANCEL; +} + +static void _plug_delayed_del(Evas_Object *minictrl) +{ + evas_object_hide(minictrl); + ecore_idler_add(_plug_del_idler_cb, minictrl); +} + +static Evas_Object *_plug_unset_from_info_page(int page_number) +{ + Eina_List *pages_list = NULL; + Evas_Object *scroller_box = elm_object_part_content_get(s_contextual_info.scroller, "default"); + if (!scroller_box) + { + LOCK_SCREEN_TRACE_DBG("Failed to get scroller box"); + return NULL; + } + + pages_list = elm_box_children_get(scroller_box); + if (!pages_list) + { + LOCK_SCREEN_TRACE_DBG("Failed to get pages list"); + return NULL; + } + + Evas_Object *mc = NULL; + Evas_Object *layout = NULL; + Evas_Object *page_box = eina_list_nth(pages_list, page_number); + if (page_box) { + Eina_List *item_list = elm_box_children_get(page_box); + if (item_list) { + layout = eina_list_nth(item_list, 0); + if (layout) { + mc = elm_object_part_content_unset(layout, "content"); + } + LOCK_SCREEN_TRACE_DBG("count:%d", eina_list_count(item_list)); + eina_list_free(item_list); + } + } + + eina_list_free(pages_list); + + return mc; +} + +static void _delete_info_page(int page_number) +{ + Evas_Object *page_box = NULL; + Eina_List *pages_list = NULL; + Evas_Object *scroller_box = elm_object_part_content_get(s_contextual_info.scroller, "default"); + if (!scroller_box) + { + LOCK_SCREEN_TRACE_DBG("Failed to get scroller box"); + return; + } + + pages_list = elm_box_children_get(scroller_box); + if (!pages_list) + { + LOCK_SCREEN_TRACE_DBG("Failed to get pages list"); + return; + } + + page_box = eina_list_nth(pages_list, page_number); + if (!page_box) + { + eina_list_free(pages_list); + LOCK_SCREEN_TRACE_DBG("Failed to get minicontroller box"); + return; + } + eina_list_free(pages_list); + + elm_box_unpack(scroller_box, page_box); + elm_box_recalculate(page_box); + elm_box_recalculate(scroller_box); + elm_box_clear(page_box); + evas_object_del(page_box); + elm_object_content_set(s_contextual_info.scroller, scroller_box); + + if (s_contextual_info.music_player_page != 0 && s_contextual_info.music_player_page > page_number) + { + s_contextual_info.music_player_page--; + } + if (s_contextual_info.notification_page != 0 && s_contextual_info.notification_page > page_number) + { + s_contextual_info.notification_page--; + } + if (s_contextual_info.radio_page != 0 && s_contextual_info.radio_page > page_number) + { + s_contextual_info.radio_page--; + } + if (s_contextual_info.voice_record_page != 0 && s_contextual_info.voice_record_page > page_number) + { + s_contextual_info.voice_record_page--; + } + s_contextual_info.pages_count--; + dynamic_index_del(s_contextual_info.dynamic_index_livebox_panel); + s_contextual_info.dynamic_index_livebox_panel = dynamic_index_new(s_contextual_info.scroller); +} + +static int _terminate_app_by_name(char *name) +{ + int ret = 0; + app_context_h app_context = NULL; + ret = app_manager_get_app_context(name, &app_context); + if(ret != APP_MANAGER_ERROR_NONE) + { + LOCK_SCREEN_TRACE_ERR("app_manager_get_app_context() failed"); + return -1; + } + ret = app_manager_terminate_app(app_context); + if(ret != APP_MANAGER_ERROR_NONE) + { + LOCK_SCREEN_TRACE_ERR("app_manager_get_app_context() failed"); + } + ret = app_context_destroy(app_context); + + return 0; +} + +static void _contextual_info_check_pages_count() +{ + if(!s_contextual_info.pages_count) + { + LOCK_SCREEN_TRACE_DBG("Last page was dismissed"); + lockscreen_is_view_simple_set(true); + + if(contextual_info_is_dual_clock_enabled()) + { + elm_object_signal_emit(s_contextual_info.default_unlock_layout, "dual_clock", "layout"); + } + else + { + elm_object_signal_emit(s_contextual_info.default_unlock_layout, "default", "layout"); + } + update_time(s_contextual_info.default_unlock_layout); + } +} + +static void _contextual_info_dissmiss_page_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + int h_page=-1; + LOGD(""); + + elm_scroller_current_page_get(s_contextual_info.scroller, &h_page, NULL); + if(h_page == -1) + { + LOCK_SCREEN_TRACE_DBG("Failed to get current page"); + return; + } + + if(h_page == s_contextual_info.notification_page) + { + if(!default_unlock_is_noti_tapped()) + { + contextual_info_notification_page_dismiss(); + } + else + { + int locktype = get_locktype(); + if(locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) + { + elm_object_part_text_set(simple_password_layout_get(), "title", _("IDS_COM_BODY_ENTER_PIN")); + } + else if(locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + elm_object_part_text_set(complex_password_layout_get(), "title", _("IDS_COM_BODY_ENTER_PASSWORD")); + } + default_unlock_set_noti_tapped(NULL); + default_unlock_hide_on_noti_tapped(); + elm_layout_text_set(s_contextual_info.layout, "close_text", _("IDS_LCKSCN_ACBUTTON_CLOSE_ABB")); + notification_panel_update_notification_list(default_unlock_control_panel_get()); + } + } + else if(h_page == s_contextual_info.music_player_page) + { + contextual_info_minicontroller_music_dismiss(EINA_TRUE); + } + else if(h_page == s_contextual_info.radio_page) + { + contextual_info_minicontroller_radio_dismiss(EINA_TRUE); + } + else if(h_page == s_contextual_info.voice_record_page) + { + contextual_info_minicontroller_voice_record_dismiss(EINA_TRUE); + } + + _contextual_info_check_pages_count(); + lockscreen_play_tap_feedback(); +} + +static Evas_Object* _contextual_info_scroller_create(Evas_Object *parent) +{ + LOCK_SCREEN_TRACE_DBG(""); + Evas_Object *box = NULL; + Evas_Object *scroller = NULL; + + int page_width = lockscreen_get_window_width(); + + if (!parent) + { + LOCK_SCREEN_TRACE_DBG("Failed to get parent"); + return NULL; + } + + scroller = elm_scroller_add(parent); + if(!scroller) + { + LOCK_SCREEN_TRACE_DBG("Failed to create elm_scroller"); + return NULL; + } + + elm_scroller_content_min_limit(scroller, EINA_FALSE, EINA_TRUE); + elm_scroller_bounce_set(scroller, EINA_TRUE, EINA_FALSE); + elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); + elm_object_scroll_lock_y_set(scroller, EINA_TRUE); + elm_object_tree_focus_allow_set(scroller, EINA_TRUE); + evas_object_show(scroller); + + elm_scroller_page_size_set(scroller, page_width, 0); + elm_scroller_page_scroll_limit_set(scroller, 1, 1); + + box = elm_box_add(parent); + if(!box) + { + LOCK_SCREEN_TRACE_DBG("Failed to create box"); + evas_object_del(scroller); + return NULL; + } + /*elm_box_horizontal_set(box, EINA_TRUE); + + evas_object_size_hint_min_set(box, page_width, page_height); + evas_object_size_hint_max_set(box, page_width, page_height); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + //elm_box_layout_set(box, __contextual_box_layout_cb, NULL, NULL);*/ + + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_fill_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_horizontal_set(box, EINA_TRUE); + elm_object_content_set(scroller, box); + evas_object_show(box); + + evas_object_show(box); + elm_object_content_set(scroller, box); + + elm_scroller_page_show(scroller, 1, 0); + + evas_object_show(scroller); + + return scroller; +} + +static void _notification_item_count_set(Evas_Object *item_layout, char *count_str, int count) +{ + if(!item_layout || !count_str) + { + LOCK_SCREEN_TRACE_ERR("invalid parameters"); + return; + } + + elm_object_part_text_set(item_layout, "variable_text", count_str); + if(count > 1) + { + elm_object_part_text_set(item_layout, "variable_text", count_str); + + if(count < 10) + { + elm_layout_signal_emit(item_layout, "show_noti_num_one_digit", "layout"); + } + else if(count < 100) + { + elm_layout_signal_emit(item_layout, "show_noti_num_two_digits", "layout"); + } + else if(count < 1000) + { + elm_layout_signal_emit(item_layout, "show_noti_num_three_digits", "layout"); + } + else + { + elm_layout_signal_emit(item_layout, "show_noti_num_more_digits", "layout"); + elm_object_part_text_set(item_layout, "variable_text", "999+"); + } + } +} + +static void _notification_item_update(Evas_Object *item_layout, char *content, char *title, char *time, char *count_str, int count) +{ + Evas_Object *selected_item = NULL; + + if(!item_layout || !content || !title || !time) + { + LOCK_SCREEN_TRACE_ERR("Invalid parameters "); + return; + } + + selected_item = notification_item_selected_item_get(); + + if (item_layout != selected_item) + { + elm_object_part_text_set(item_layout, "event_title", title); + elm_object_part_text_set(item_layout, "event_details", content); + elm_object_part_text_set(item_layout, "time_text", time); + + _notification_item_count_set(item_layout, count_str, count); + } +} + +static int _selected_item_missed_event_count_get(Evas_Object *item_layout) +{ + int missed_event_count = 0; + + if(!item_layout) + { + LOCK_SCREEN_TRACE_ERR("Invalid parameter : item_layout is NULL"); + return -1; + } + + const char *count_string = elm_object_part_text_get(item_layout, "variable_text"); + if(!count_string) + { + LOCK_SCREEN_TRACE_ERR("Failed to get notification count"); + return -1; + } + + missed_event_count = atoi(count_string); + + return missed_event_count; +} + +static Eina_Bool _launch_app_from_notification(char *pkgname, bundle* single_service_handle, bundle *multi_service_handle, bundle *responding_service_handle, int count, + void (*lock_app_control_reply_cb)(app_control_h, app_control_h, app_control_result_e, void*)) +{ + char *name = NULL; + + if(!pkgname) + { + LOCK_SCREEN_TRACE_ERR("Invalid parameter : pkgname is NULL"); + return EINA_FALSE; + } + + if(!single_service_handle && !multi_service_handle) + { + LOCK_SCREEN_TRACE_ERR("Invalid data obtained from notification API"); + return EINA_FALSE; + } + + if(!strcmp(pkgname, CALL_APP)) + { + name = strdup(PHONE_APP); + if (name == NULL) + { + LOCK_SCREEN_TRACE_ERR("Failed to allocate memory"); + return EINA_FALSE; + } + } + else + { + name = strdup(pkgname); + if (name == NULL) + { + LOCK_SCREEN_TRACE_ERR("Failed to allocate memory"); + return EINA_FALSE; + } + } + + app_control_h service = NULL; + if(app_control_create(&service) != APP_CONTROL_ERROR_NONE) + { + LOCK_SCREEN_TRACE_ERR("app_control_create() failed"); + free(name); + return EINA_FALSE; + } + app_control_set_operation(service, APP_CONTROL_OPERATION_DEFAULT); + app_control_set_app_id(service, name); + free(name); + + if(single_service_handle && !multi_service_handle) + { + app_control_import_from_bundle(service, single_service_handle); + } + else if(!single_service_handle && multi_service_handle) + { + app_control_import_from_bundle(service, multi_service_handle); + } + else if(single_service_handle && multi_service_handle) + { + if(count <= 1) + { + app_control_import_from_bundle(service, single_service_handle); + } + else + { + app_control_import_from_bundle(service, multi_service_handle); + } + } + + app_control_add_extra_data(service, "CALLER", "lock_screen"); + + int ret = 0; + if(lock_app_control_reply_cb) + { + ret = app_control_send_launch_request(service, lock_app_control_reply_cb, NULL); + } + else + { + ret = app_control_send_launch_request(service, NULL, NULL); + } + app_control_destroy(service); + + if(ret != APP_CONTROL_ERROR_NONE) + { + LOCK_SCREEN_TRACE_ERR("app_control_send_launch_request() failed"); + return EINA_FALSE; + } + + return EINA_TRUE; +} + +int _contextual_info_minicontroller_add(Evas_Object *control_panel) +{ + Evas_Object *new_page_box = NULL; + Evas_Object *page_layout = NULL; + + page_layout = elm_layout_add(s_contextual_info.layout); + if(!page_layout) + { + LOCK_SCREEN_TRACE_DBG("Failed to create contextual info layout"); + return -1; + } + + if(!elm_layout_file_set(page_layout, CONTEXTUAL_INFO_EDJE_FILE, "page")) + { + LOCK_SCREEN_TRACE_DBG("Failed to set file for contextual info panel layout"); + evas_object_del(page_layout); + return -1; + } + + new_page_box = _add_info_page(); + + int page_width = lockscreen_get_window_width(); + int page_height = _SCALE(PAGE_HEIGHT); + + if (!new_page_box) + { + LOCK_SCREEN_TRACE_DBG("Failed to create new info page"); + return -1; + } + + evas_object_size_hint_weight_set(page_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_min_set(page_layout, page_width, page_height); + evas_object_show(page_layout); + elm_object_part_content_set(page_layout, "content", control_panel); + + Evas_Object *scroller_box = elm_object_part_content_get(s_contextual_info.scroller, "default"); + if (!scroller_box) + { + LOCK_SCREEN_TRACE_DBG("Failed to get scroller content"); + return -1; + } + + elm_box_pack_end(new_page_box, page_layout); + elm_box_recalculate(new_page_box); + elm_box_recalculate(scroller_box); + return 0; +} + +static Eina_Bool _background_update_cb(void *data) +{ + if(s_contextual_info.music_player_page != -1 && + s_contextual_info.voice_record_page == -1 && + s_contextual_info.voice_record_page == -1) + { + music_player_bg_set(lockscreen_get_bg(), s_contextual_info.music_state); + } + + s_contextual_info.background_timer = NULL; + return ECORE_CALLBACK_CANCEL; +} + +void contextual_info_minicontroller_music_add(Evas_Object *control_panel, const char* name) +{ + ret_if(name == NULL); + + if(!_contextual_info_minicontroller_add(control_panel)) + { + LOGD("Add music minicontroller, page %d", s_contextual_info.pages_count); + s_contextual_info.music_player_page = s_contextual_info.pages_count++; + update_time(s_contextual_info.default_unlock_layout); + if(!strcmp(name, MUSIC_PLAYER_NAME)) + { + s_contextual_info.music_state = MUSIC_PLAYER_ON; + } + else + { + s_contextual_info.music_state = SOUND_PLAYER_ON; + } + if(!s_contextual_info.background_timer) + { + s_contextual_info.background_timer = ecore_timer_add(MUSIC_TIMEOUT, _background_update_cb, NULL); + } + } +} + +void contextual_info_minicontroller_radio_add(Evas_Object *control_panel) +{ + if(!_contextual_info_minicontroller_add(control_panel)) + { + LOGD("Add fm minicontroller, page %d", s_contextual_info.pages_count); + s_contextual_info.radio_page = s_contextual_info.pages_count++; + update_time(s_contextual_info.default_unlock_layout); + if(s_contextual_info.background_timer) + { + ecore_timer_del(s_contextual_info.background_timer); + s_contextual_info.background_timer = NULL; + } + music_player_bg_unset(); + } +} + +void contextual_info_minicontroller_voice_record_add(Evas_Object *control_panel) +{ + if(!_contextual_info_minicontroller_add(control_panel)) + { + LOGD("Add vr minicontroller, page %d", s_contextual_info.pages_count); + s_contextual_info.voice_record_page = s_contextual_info.pages_count++; + update_time(s_contextual_info.default_unlock_layout); + if(s_contextual_info.background_timer) + { + ecore_timer_del(s_contextual_info.background_timer); + s_contextual_info.background_timer = NULL; + } + music_player_bg_unset(); + } +} + +int contextual_info_minicontroller_music_dismiss(Eina_Bool close) +{ + LOGD(""); + if (s_contextual_info.music_player_page == -1) + { + LOCK_SCREEN_TRACE_DBG("Music player page doesn't exist"); + return -1; + } + + if(s_contextual_info.background_timer) + { + ecore_timer_del(s_contextual_info.background_timer); + } + + /* + * if delete minicontrol immediately, we can't send ecore message + */ + Evas_Object *plug_obj = _plug_unset_from_info_page(s_contextual_info.music_player_page); + if (plug_obj) { + _plug_message_send(plug_obj, PLUG_HIDE_COMMAND); + _plug_delayed_del(plug_obj); + } + + _delete_info_page(s_contextual_info.music_player_page); + s_contextual_info.music_player_page = -1; + + int ret = 0; + if(close) + { + if(s_contextual_info.music_state == MUSIC_PLAYER_ON) + { + LOCK_SCREEN_TRACE_DBG("Close music player"); + ret = _terminate_app_by_name(MUSIC_PLAYER); + } + else + { + LOCK_SCREEN_TRACE_DBG("Close sound player"); + ret = _terminate_app_by_name(SOUND_PLAYER); + } + } + if(ret != 0) + { + LOCK_SCREEN_TRACE_ERR("cannot kill"); + } + + s_contextual_info.music_state = NO_MUSIC; + music_player_bg_unset(); + + return s_contextual_info.pages_count; +} + +int contextual_info_minicontroller_radio_dismiss(Eina_Bool close) +{ + LOCK_SCREEN_TRACE_DBG(""); + if (s_contextual_info.radio_page == -1) + { + LOCK_SCREEN_TRACE_DBG("Radio page doesn't exist"); + return -1; + } + + /* + * if delete minicontrol immediately, we can't send ecore message + */ + Evas_Object *plug_obj = _plug_unset_from_info_page(s_contextual_info.radio_page); + if (plug_obj) { + _plug_message_send(plug_obj, PLUG_HIDE_COMMAND); + _plug_delayed_del(plug_obj); + } + _delete_info_page(s_contextual_info.radio_page); + s_contextual_info.radio_page = -1; + + if(close) + { + if(_terminate_app_by_name(RADIO_PLAYER) == 0) + { + LOCK_SCREEN_TRACE_DBG("%s killed", RADIO_PLAYER); + } else { + LOCK_SCREEN_TRACE_ERR("cannot kill %s", RADIO_PLAYER); + } + } + + if(!s_contextual_info.background_timer) + { + s_contextual_info.background_timer = ecore_timer_add(MUSIC_TIMEOUT, _background_update_cb, NULL); + } + + return s_contextual_info.pages_count; +} + +int contextual_info_minicontroller_voice_record_dismiss(Eina_Bool close) +{ + LOCK_SCREEN_TRACE_DBG(""); + if (s_contextual_info.voice_record_page == -1) + { + LOCK_SCREEN_TRACE_DBG("Voice record page doesn't exist"); + return -1; + } + + /* + * if delete minicontrol immediately, we can't send ecore message + */ + Evas_Object *plug_obj = _plug_unset_from_info_page(s_contextual_info.voice_record_page); + if (plug_obj) { + _plug_message_send(plug_obj, PLUG_HIDE_COMMAND); + _plug_delayed_del(plug_obj); + } + _delete_info_page(s_contextual_info.voice_record_page); + s_contextual_info.voice_record_page = -1; + + if(close) + { + if(_terminate_app_by_name(VOICE_RECORDER) == 0) + { + LOCK_SCREEN_TRACE_DBG("%s killed", VOICE_RECORDER); + } else { + LOCK_SCREEN_TRACE_ERR("cannot kill %s", VOICE_RECORDER); + } + } + + if(!s_contextual_info.background_timer) + { + s_contextual_info.background_timer = ecore_timer_add(MUSIC_TIMEOUT, _background_update_cb, NULL); + } + + return s_contextual_info.pages_count; +} + +int contextual_info_notification_page_dismiss() +{ + contextual_info_notification_page_hide(); + + notification_panel_dismiss_notifications(); + + return s_contextual_info.pages_count; +} + +void contextual_info_notification_page_hide() +{ + if (s_contextual_info.notification_page == -1) + { + LOCK_SCREEN_TRACE_DBG("Notification page doesn't exist"); + return; + } + + _delete_info_page(s_contextual_info.notification_page); + s_contextual_info.notification_page = -1; + s_contextual_info.is_missed_call = EINA_FALSE; + s_contextual_info.is_new_message = EINA_FALSE; + + if(s_contextual_info.missed_message_item) + { + evas_object_del(s_contextual_info.missed_message_item); + } + + if(s_contextual_info.missed_call_item) + { + evas_object_del(s_contextual_info.missed_call_item); + } + + if(s_contextual_info.mouse_down_handler) + { + ecore_event_handler_del(s_contextual_info.mouse_down_handler); + } + s_contextual_info.missed_call_item = NULL; + s_contextual_info.missed_message_item = NULL; + + _contextual_info_check_pages_count(); +} + +Evas_Object* contextual_info_create(Evas_Object *parent) +{ + Evas_Object *layout = NULL; + Evas_Object *info_scroller = NULL; + + if(!parent) + { + LOCK_SCREEN_TRACE_DBG("Failed to get parent data"); + return NULL; + } + + layout = elm_layout_add(parent); + if(!layout) + { + LOCK_SCREEN_TRACE_DBG("Failed to create contextual info layout"); + return NULL; + } + + if(!elm_layout_file_set(layout, CONTEXTUAL_INFO_EDJE_FILE, "contextual_info_layout")) + { + LOCK_SCREEN_TRACE_DBG("Failed to set file for contextual info panel layout"); + evas_object_del(layout); + return NULL; + } + + elm_object_signal_callback_add(layout, "mouse,clicked,1", "close_event", _contextual_info_dissmiss_page_cb, NULL); + + info_scroller = _contextual_info_scroller_create(parent); + if (!info_scroller) + { + LOCK_SCREEN_TRACE_DBG("Failed to create context info scroller"); + evas_object_del(layout); + return NULL; + } + s_contextual_info.scroller = info_scroller; + + s_contextual_info.default_unlock_layout = parent; + s_contextual_info.layout = layout; + + elm_object_part_content_set(layout, "scroller", info_scroller); + + if (!elm_object_part_content_get(layout, "scroller")) + { + LOCK_SCREEN_TRACE_DBG("Failed to set scroller part of layout"); + evas_object_del(layout); + evas_object_del(info_scroller); + return NULL; + } + + elm_layout_text_set(layout, "close_text", _("IDS_LCKSCN_ACBUTTON_CLOSE_ABB")); + _contextual_info_check_pages_count(); + + evas_object_show(layout); + + elm_object_tree_focus_allow_set(layout, EINA_FALSE); + + return layout; +} + +static void _del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + notification_h noti = evas_object_data_del(obj, NOTI_HANDLE_DATA); + if (noti) { + notification_free(noti); + } + + if (notification_item_selected_item_get() == obj) { + notification_item_selected_item_set(NULL); + notification_item_selected_item_type_set(NOTIFICATION_ITEM_NONE); + } +} + +void contextual_info_check_noti_count(void) +{ + int locktype = get_locktype(); + Evas_Object *selected_item = NULL; + + selected_item = notification_item_selected_item_get(); + + if (s_contextual_info.missed_call_item) + { + if (s_contextual_info.missed_calls_count > 1) + { + if (s_contextual_info.missed_call_item != selected_item) + { + elm_layout_signal_emit(s_contextual_info.missed_call_item, "show_count", "count"); + } + } + else elm_layout_signal_emit(s_contextual_info.missed_call_item, "hide_count", "count"); + } + + if (s_contextual_info.missed_message_item) + { + if (s_contextual_info.missed_messages_count > 1) + { + if (s_contextual_info.missed_message_item != selected_item) + { + elm_layout_signal_emit(s_contextual_info.missed_message_item, "show_count", "count"); + } + } + else elm_layout_signal_emit(s_contextual_info.missed_message_item, "hide_count", "count"); + } + if(locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + elm_layout_signal_emit(s_contextual_info.missed_call_item, "hide_count", "count"); + elm_layout_signal_emit(s_contextual_info.missed_message_item, "hide_count", "count"); + } +} + +void add_notification_item(char *icon_path, char *content, char *title, char *time, char *count_str, contextual_info_noti_type_e type, notification_h noti) +{ + Evas_Object *item = NULL; + int count = 0; + + if(!noti) + { + LOCK_SCREEN_TRACE_ERR("Invalid parameter : notification_handle is NULL"); + } + + if(s_contextual_info.notification_page == -1) + { + Evas_Object *new_page_box = NULL; + new_page_box = _add_info_page(); + + if (!new_page_box) + { + LOCK_SCREEN_TRACE_DBG("Failed to create new info page"); + return; + } + + s_contextual_info.noti_box = new_page_box; + s_contextual_info.notification_page = s_contextual_info.pages_count++; + } + + if(!count_str) + { + LOGE("Failed to get noti count"); + return; + } + count = atoi(count_str); + + char short_content[256] = {0, }; + char short_title[256] = {0, }; + if (content != NULL) { + strncpy(short_content, content, sizeof(short_content) - 1); + } + if (title != NULL) { + strncpy(short_title, title, sizeof(short_title) - 1); + } + + int locktype = get_locktype(); + + if(type == TYPE_MISSED_CALL) + { + if(locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + if(count == 1) + { + strncpy(short_content, _("IDS_AWGT_BODY_1_MISSED_CALL"), sizeof(short_content)-1); + strncpy(short_title, _("IDS_IDLE_POP_MISSED_CALL"), sizeof(short_title)-1); + } + else + { + snprintf(short_content, sizeof(short_content), _("IDS_LCKSCN_BODY_PD_MISSED_CALLS_T_TTS"), count); + strncpy(short_title, _("IDS_IDLE_POP_MISSED_CALL"), sizeof(short_title)-1); + } + + } + if(s_contextual_info.is_missed_call) + { + if(s_contextual_info.missed_call_item) //in this case item should be updated + { + LOGD("notification(MISSED CALL) is updated"); + _notification_item_update(s_contextual_info.missed_call_item, short_content, short_title, time, count_str, count); + if (s_contextual_info.missed_calls_count != count) + { + s_contextual_info.missed_calls_count = count; + elm_scroller_page_show(s_contextual_info.scroller, s_contextual_info.notification_page, 0); + if(s_contextual_info.dynamic_index_livebox_panel) + { + dynamic_index_page_current_set(s_contextual_info.dynamic_index_livebox_panel, s_contextual_info.notification_page); + } + } + contextual_info_check_noti_count(); + } + return; + } + + s_contextual_info.is_missed_call = EINA_TRUE; + } + else if(type == TYPE_NEW_MESSAGE) + { + if(locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + if(count == 1) + { + strncpy(short_content, _("IDS_MSG_BODY_1_NEW_MESSAGE"), sizeof(short_content)-1); + strncpy(short_title, _("IDS_MSGF_POP_NEW_MESSAGE"), sizeof(short_title)-1); + } + else + { + snprintf(short_content, sizeof(short_content), _("IDS_LCKSCN_BODY_PD_NEW_MESSAGES_T_TTS"), count); + strncpy(short_title, _("IDS_MSGF_POP_NEW_MESSAGE"), sizeof(short_title)-1); + } + + } + + if(s_contextual_info.is_new_message) + { + if(s_contextual_info.missed_message_item) //in this case item should be updated + { + LOCK_SCREEN_TRACE_DBG("notification(UNREAD MESSAGE) is updated"); + _notification_item_update(s_contextual_info.missed_message_item, short_content, short_title, time, count_str, count); + if (s_contextual_info.missed_messages_count != count) + { + s_contextual_info.missed_messages_count = count; + elm_scroller_page_show(s_contextual_info.scroller, s_contextual_info.notification_page, 0); + if(s_contextual_info.dynamic_index_livebox_panel) + { + dynamic_index_page_current_set(s_contextual_info.dynamic_index_livebox_panel, s_contextual_info.notification_page); + } + } + + //remove old noti and add new noti + notification_h oldNoti = NULL; + + oldNoti = evas_object_data_get(s_contextual_info.missed_message_item, NOTI_HANDLE_DATA); + + if(oldNoti) + { + LOCK_SCREEN_TRACE_DBG("remove old noti handle"); + notification_free(oldNoti); + } + + evas_object_data_set(s_contextual_info.missed_message_item, NOTI_HANDLE_DATA, noti); + contextual_info_check_noti_count(); + } + return; + } + + s_contextual_info.is_new_message = EINA_TRUE; + } + else + { + LOCK_SCREEN_TRACE_DBG("Wrong noti type"); + return; + } + + item = _add_notification_item(s_contextual_info.noti_box, icon_path, short_content, short_title, time); + if(type == TYPE_NEW_MESSAGE) + { + s_contextual_info.missed_message_item = item; + s_contextual_info.missed_messages_count = count; + } + else if(type == TYPE_MISSED_CALL) + { + s_contextual_info.missed_call_item = item; + s_contextual_info.missed_calls_count = count; + } + + _notification_item_count_set(item, count_str, count); + + if(eina_list_count(elm_box_children_get(s_contextual_info.noti_box))>1) + { + elm_layout_signal_emit(item, "show_separator", "layout"); + } + + contextual_info_check_noti_count(); + + evas_object_data_set(item, NOTI_HANDLE_DATA, noti); + evas_object_event_callback_add(item, EVAS_CALLBACK_DEL, _del_cb, NULL); +} + +void contextual_info_delete_missed_call(void) +{ + if (!s_contextual_info.noti_box) return; + if (!s_contextual_info.missed_call_item) return; + + Evas_Object *scroller_box = elm_object_part_content_get(s_contextual_info.scroller, "default"); + if (!scroller_box) + { + LOCK_SCREEN_TRACE_DBG("Failed to get scroller content"); + return ; + } + + elm_box_unpack(s_contextual_info.noti_box, s_contextual_info.missed_call_item); + elm_box_recalculate(s_contextual_info.noti_box); + elm_box_recalculate(scroller_box); + evas_object_del(s_contextual_info.missed_call_item); + s_contextual_info.missed_call_item = NULL; + s_contextual_info.is_missed_call = EINA_FALSE; + s_contextual_info.missed_calls_count = 0; +} + +void contextual_info_delete_unread_message(void) +{ + if (!s_contextual_info.noti_box) return; + if (!s_contextual_info.missed_message_item) return; + + Evas_Object *scroller_box = elm_object_part_content_get(s_contextual_info.scroller, "default"); + if (!scroller_box) + { + LOCK_SCREEN_TRACE_DBG("Failed to get scroller content"); + return ; + } + + elm_box_unpack(s_contextual_info.noti_box, s_contextual_info.missed_message_item); + elm_box_recalculate(s_contextual_info.noti_box); + elm_box_recalculate(scroller_box); + evas_object_del(s_contextual_info.missed_message_item); + s_contextual_info.missed_message_item = NULL; + s_contextual_info.is_new_message = EINA_FALSE; + s_contextual_info.missed_messages_count = 0; +} + +void contextual_info_run_selected_notification_item_app(void (*lock_app_control_reply_cb)(app_control_h, app_control_h, app_control_result_e, void*)) +{ + LOCK_SCREEN_TRACE_DBG(""); + + notification_h noti; + char *pkgname = NULL; + int count; + + bundle *single_service_handle = NULL; + bundle *multi_service_handle = NULL; + bundle *responding_service_handle = NULL; + + Evas_Object *selected_notification_item = + notification_item_selected_item_get(); + + if(!selected_notification_item) + { + LOCK_SCREEN_TRACE_DBG("No selected notification item"); + return; + } + + noti = evas_object_data_get(selected_notification_item, NOTI_HANDLE_DATA); + if(!noti) + { + LOCK_SCREEN_TRACE_ERR("Failed to get notification_item"); + return; + } + + notification_get_pkgname(noti, &pkgname); + + if(!pkgname) + { + LOCK_SCREEN_TRACE_ERR("Failed to get pkgname!"); + return; + } + else + { + LOCK_SCREEN_TRACE_DBG("Notification pkgname is [%s]", pkgname); + } + + count = _selected_item_missed_event_count_get(selected_notification_item); + + notification_get_execute_option(noti, + NOTIFICATION_EXECUTE_TYPE_SINGLE_LAUNCH, + NULL, &single_service_handle); + notification_get_execute_option(noti, + NOTIFICATION_EXECUTE_TYPE_MULTI_LAUNCH, + NULL, &multi_service_handle); + notification_get_execute_option(noti, + NOTIFICATION_EXECUTE_TYPE_RESPONDING, + NULL, + &responding_service_handle); + + _launch_app_from_notification(pkgname, single_service_handle + ,multi_service_handle, responding_service_handle, count, lock_app_control_reply_cb); + + if(!strcmp(pkgname, CALL_APP)) + { + notification_delete(noti); + } +} + +void contextual_info_display_music_minicontroller_if_needed(void) +{ + LOGD("Show music minicontroller page if needed"); + + if(s_contextual_info.music_state == NO_MUSIC) + { + return; + } + + if(!music_player_is_playing()) + { + return; + } + + elm_scroller_page_show(s_contextual_info.scroller, s_contextual_info.music_player_page, 0); + if(s_contextual_info.dynamic_index_livebox_panel) + { + dynamic_index_page_current_set(s_contextual_info.dynamic_index_livebox_panel, s_contextual_info.music_player_page); + } +} + +void contextual_info_show(void) +{ + elm_object_signal_emit(s_contextual_info.default_unlock_layout, "event", "layout"); + dynamic_index_show(s_contextual_info.dynamic_index_livebox_panel); +} + +void contextual_info_hide(void) +{ + dynamic_index_hide(s_contextual_info.dynamic_index_livebox_panel); +} + +Evas_Object* contextual_info_noti_box_get(void) +{ + return s_contextual_info.noti_box; +} + +Evas_Object* contextual_info_scroller_get(void) +{ + return s_contextual_info.scroller; +} + +Evas_Object* contextual_info_layout_get(void) +{ + return s_contextual_info.layout; +} + +bool contextual_info_visible_get(void) +{ + if (2 == lockscreen_get_emergency()) + return 0; + return s_contextual_info.pages_count>0; +} + +int contextual_info_is_dual_clock_enabled(void) +{ +#if DISABLE_DUAL_CLOCK + return 0; +#else + int enabled = 0; + property_get_bool(LKD_PROP_ID_DUALCLOCK_ENABLED, &enabled); + + if (enabled) { + int roaming_state = util_time_roaming_state_get(); + if (roaming_state != 0 && roaming_state != -1) { + return 1; + } + } + return 0; +#endif +} + +int contextual_info_missed_messages_count_get(void) +{ + return s_contextual_info.missed_messages_count; +} + +int contextual_info_missed_calls_count_get(void) +{ + return s_contextual_info.missed_calls_count; +} + +music_state_t contextual_info_music_state_get(void) +{ + return s_contextual_info.music_state; +} + +int contextual_info_music_player_get(void) +{ + + return s_contextual_info.music_player_page; +} + +int contextual_info_radio_get(void) +{ + return s_contextual_info.radio_page; +} + +int contextual_info_voice_record_get(void) +{ + return s_contextual_info.voice_record_page; +} + +/*! + * module + */ +static void _resume(LKD_Module_Data *md) +{ + default_unlock_set_noti_tapped(NULL); + default_unlock_hide_on_noti_tapped(); + elm_layout_text_set(contextual_info_layout_get(), "close_text", _("IDS_LCKSCN_ACBUTTON_CLOSE_ABB")); +} + +static void _pause(LKD_Module_Data *md) +{ +} + +static void _language_changed(LKD_Module_Data *md) +{ + if(s_contextual_info.layout) + { + int nCloseLength = strlen(_("IDS_LCKSCN_ACBUTTON_CLOSE_ABB")); + + if( nCloseLength > 7 ) + { + elm_object_signal_emit(s_contextual_info.layout, "small_text", "close_text"); + } + else + { + elm_object_signal_emit(s_contextual_info.layout, "normal_text", "close_text"); + } + + elm_layout_text_set(s_contextual_info.layout, "close_text", _("IDS_LCKSCN_ACBUTTON_CLOSE_ABB")); + } +} + +static int _init(LKD_Module_Data *md) +{ + property_listen(LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED); + + return LKD_RET_OK; +} + +static int _fini(LKD_Module_Data *md) +{ + property_ignore(LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED); + + return LKD_RET_OK; +} + +static void _property_changed(LKD_Module_Data *md, int property_id) +{ + if (property_id == LKD_PROP_ID_DUALCLOCK_ENABLED) { + + if (!contextual_info_visible_get()) { + if(contextual_info_is_dual_clock_enabled()) + elm_object_signal_emit(s_contextual_info.default_unlock_layout, "dual_clock", "layout"); + else + elm_object_signal_emit(s_contextual_info.default_unlock_layout, "default", "layout"); + } + else + { + elm_object_signal_emit(s_contextual_info.default_unlock_layout, "event", "layout"); + } + update_time(s_contextual_info.default_unlock_layout); + } + if (property_id == LKD_PROP_ID_LOCKTYPE) { + + notification_panel_update_notification_list(default_unlock_control_panel_get()); + } + + if(property_id == LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED) + { + int emergency = 0; + property_get_int(LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED, &emergency); + + if(emergency == 2) + { + LOCK_SCREEN_TRACE_DBG("remove contextual information during emergency mode"); + contextual_info_minicontroller_music_dismiss(EINA_TRUE); + contextual_info_minicontroller_radio_dismiss(EINA_TRUE); + contextual_info_minicontroller_voice_record_dismiss(EINA_TRUE); + _contextual_info_check_pages_count(); + } + } + +} + +static void _noti_time_update(Evas_Object *item) +{ + ret_if(item == NULL); + + time_t time = 0; + notification_h noti = evas_object_data_get(item, NOTI_HANDLE_DATA); + if (noti) { + if(notification_get_time(noti, &time) == NOTIFICATION_ERROR_NONE) + { + char *formatted_time = util_time_get_formatted_noti_time(time); + if (formatted_time != NULL) { + elm_object_part_text_set(item, "time_text", formatted_time); + free(formatted_time); + } + } + } else { + LOCK_SCREEN_TRACE_ERR("Failed to get noti handle from the item"); + } +} + +void contextual_info_time_update(void) +{ + if (s_contextual_info.missed_call_item) { + _noti_time_update(s_contextual_info.missed_call_item); + } + if (s_contextual_info.missed_message_item) { + _noti_time_update(s_contextual_info.missed_message_item); + } +} + +LKD_Module g_mod_contextual_info = { + .id = "contextual-info", + .notifying = 1, + .property_list = LKD_PROP_ID_DUALCLOCK_ENABLED | LKD_PROP_ID_LOCKTYPE | LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED, + .init = _init, + .fini = _fini, + .resume = _resume, + .pause = _pause, + .property_changed = _property_changed, + .language_changed = _language_changed, +}; diff --git a/src/control-panel-password.c b/src/control-panel-password.c new file mode 100755 index 0000000..9f8f4eb --- /dev/null +++ b/src/control-panel-password.c @@ -0,0 +1,452 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include "lockscreen-lite.h" +#include "control-panel.h" +#include "progress_circle.h" +#include "sim-state.h" +#include "notification-item.h" +#include "tizen-account.h" +#include "control-panel-password.h" +#include "default-unlock.h" + +#define PLMN_LABEL_STYLE "" +#define EMG_BUTTON_WIDTH 300 + +enum { + CONTROL_PANEL_DP_TYPE_NORMAL, + CONTROL_PANEL_DP_TYPE_RETURN_TO_CALL, + CONTROL_PANEL_DP_TYPE_TIZEN_ACCOUNT, + CONTROL_PANEL_DP_TYPE_MAX, +}; + +static struct { + Evas_Object *control_panel_layout; + Evas_Object *emg_button; + Evas_Object *account_button; + Eina_Bool is_button2_show; + + int control_panel_dp_type; + + Eina_Bool is_tizen_account_registered; + Eina_Bool is_tizen_account_button_show; +} s_control_panel_pw_info = { + .control_panel_layout = NULL, + .emg_button = NULL, + .account_button = NULL, + .is_button2_show = EINA_FALSE, + + .control_panel_dp_type = CONTROL_PANEL_DP_TYPE_MAX, + + .is_tizen_account_registered = EINA_FALSE, + .is_tizen_account_button_show = EINA_FALSE, +}; + +static void _slide_mode_set(Evas_Object *label) +{ + Evas_Object *label_edje; + Evas_Object *tb; + Evas_Coord tb_w=0; + + if(label == NULL) { + LOCK_SCREEN_TRACE_ERR("paramter error!"); + } + + elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_NONE); + + label_edje = elm_layout_edje_get(label); + if(!label_edje) + { + LOGE("Failed to get label edje"); + return; + } + + tb = (Evas_Object*)edje_object_part_object_get(label_edje, "elm.text"); + if(!tb) + { + LOGE("Failed to get label tb"); + return; + } + + evas_object_textblock_size_native_get(tb, &tb_w, NULL); + + if((tb_w>0) && (tb_w>ELM_SCALE_SIZE(EMG_BUTTON_WIDTH))) + { + elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_AUTO); + } + elm_label_slide_go(label); +} + +static Evas_Object *_sliding_label_create(Evas_Object *layout, char *text, char *button) +{ + char buf[512] = {0, }; + Evas_Object *label = elm_label_add(layout); + if(!label) + { + LOGE("Failed to add label"); + return NULL; + } + + char *markup_text = elm_entry_utf8_to_markup(text); + snprintf(buf, sizeof(buf), "%s%s", PLMN_LABEL_STYLE, markup_text); + free(markup_text); + + elm_object_style_set(label, "slide_short"); + elm_label_wrap_width_set(label, EMG_BUTTON_WIDTH); + elm_label_slide_duration_set(label, 2); + + elm_object_text_set(label, buf); + elm_object_part_content_set(layout, button, label); + evas_object_show(label); + + _slide_mode_set(label); + + return label; +} + +static void __emg_button_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + emg_button_clicked_event_emit(); +} + +static void _create_emg_button(void) +{ + Evas_Object *emg_button = NULL; + emg_button = _sliding_label_create(s_control_panel_pw_info.control_panel_layout, _("IDS_LCKSCN_BODY_EMERGENCY_CALL"), "button1"); + if (!emg_button) return; + s_control_panel_pw_info.emg_button = emg_button; + + elm_object_signal_callback_add(s_control_panel_pw_info.control_panel_layout, "emg_button", "clicked", __emg_button_clicked_cb, NULL); + +} + +static void __cancel_button_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + LOCK_SCREEN_TRACE_DBG(""); + + lockscreen_play_tap_feedback(); + + default_unlock_view_back(true); +} + +static void _create_cancel_button(void) +{ + elm_theme_extension_add(NULL, EDJE_DIR"lockscreen-button.edj"); + + Evas_Object *button = elm_button_add(s_control_panel_pw_info.control_panel_layout); + + elm_object_part_content_set(s_control_panel_pw_info.control_panel_layout, "button3", button); + + elm_object_style_set(button, "right_button"); + elm_object_text_set(button, _("IDS_ST_BUTTON_CANCEL")); + evas_object_smart_callback_add(button, "clicked", (Evas_Smart_Cb)__cancel_button_clicked_cb, NULL); +} + +static void _tizen_account_button_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + LOCK_SCREEN_TRACE_DBG(""); + + lockscreen_play_tap_feedback(); + + tizen_account_launch_cb(data, obj, NULL, NULL); +} + +static void _create_tizen_account_button(void) +{ + Evas_Object *account_button = NULL; + + account_button = _sliding_label_create(s_control_panel_pw_info.control_panel_layout, _("IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT"), "button2"); + if (!account_button) return; + s_control_panel_pw_info.account_button = account_button; + + elm_object_signal_callback_add(s_control_panel_pw_info.control_panel_layout, "account_button", "clicked", _tizen_account_button_clicked_cb, NULL); +} + +static void _create_operator_button(void) +{ + elm_theme_extension_add(NULL, EDJE_DIR"lockscreen-button.edj"); + Evas_Object *operator_button = elm_button_add(s_control_panel_pw_info.control_panel_layout); + if(!operator_button) + { + LOCK_SCREEN_TRACE_ERR("Failed to create emergency button"); + return; + } + elm_object_part_content_set(s_control_panel_pw_info.control_panel_layout, "button1", operator_button); + + elm_object_style_set(operator_button, "left_button"); + char *operator_name = sim_status_network_name_get(); + if(operator_name) { + elm_object_text_set(operator_button, operator_name); + free(operator_name); + } + elm_object_disabled_set(operator_button, EINA_TRUE); +} + +#define PHONE_LAUNCH_PKG "com.samsung.call" +#define VPHONE_LAUNCH_PKG "com.samsung.vtmain" + +static void __return_to_call_button_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + bundle *b = bundle_create(); + if(!b) { + LOCK_SCREEN_TRACE_ERR("bundle_create() faild"); + return; + } + bundle_add(b, "call", "back_to_call"); + + switch(lockscreen_is_calling_state_get()) + { + case 1 : + case 2 : + LOCK_SCREEN_TRACE_DBG("aul_launch_app(PHONE_LAUNCH_PKG, b);"); + aul_launch_app(PHONE_LAUNCH_PKG, b); + break; + case 3 : + case 4 : + LOCK_SCREEN_TRACE_DBG("aul_launch_app(VPHONE_LAUNCH_PKG, b);"); + aul_launch_app(VPHONE_LAUNCH_PKG, b); + break; + } + + if(b) { + bundle_free(b); + } + + default_unlock_view_back(false); +} + +static void _create_return_to_call_button(void) +{ + elm_theme_extension_add(NULL, EDJE_DIR"lockscreen-button.edj"); + Evas_Object *return_to_call_button = elm_button_add(s_control_panel_pw_info.control_panel_layout); + if(!return_to_call_button) + { + LOCK_SCREEN_TRACE_ERR("Failed to create emergency button"); + return; + } + elm_object_part_content_set(s_control_panel_pw_info.control_panel_layout, "button2", return_to_call_button); + + elm_object_style_set(return_to_call_button, "left_button"); + char *operator_name = sim_status_network_name_get(); + if(operator_name) { + elm_object_text_set(return_to_call_button, _("IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB")); + free(operator_name); + } + evas_object_smart_callback_add(return_to_call_button, "clicked", (Evas_Smart_Cb)__return_to_call_button_clicked_cb, NULL); +} + +Evas_Object* control_panel_password_create(Evas_Object *parent, Eina_Bool is_img) +{ + Evas_Object *control_panel_layout = NULL; + + control_panel_layout = elm_layout_add(parent); + if(!control_panel_layout) + { + LOCK_SCREEN_TRACE_DBG("Failed to create control panel layout"); + return NULL; + } + + if(!elm_layout_file_set(control_panel_layout, EDJE_DIR"lock-simple-password2.edj", "control_panel_layout_pw")) + { + LOCK_SCREEN_TRACE_DBG("Failed to set file for control panel layout"); + evas_object_del(control_panel_layout); + return NULL; + } + + s_control_panel_pw_info.control_panel_layout = control_panel_layout; + + /* cancel button */ + _create_cancel_button(); + + /* tizen account check */ + s_control_panel_pw_info.is_tizen_account_registered = tizen_account_if_registered_check(); + + s_control_panel_pw_info.control_panel_dp_type = CONTROL_PANEL_DP_TYPE_MAX; + + return control_panel_layout; +} + +void control_panel_password_update(void) +{ + if(s_control_panel_pw_info.control_panel_layout == NULL) { + LOCK_SCREEN_TRACE_ERR("There is no control panel"); + return; + } + + int old_state = s_control_panel_pw_info.control_panel_dp_type; + + if(lockscreen_is_calling_state_get()) + { + s_control_panel_pw_info.control_panel_dp_type = CONTROL_PANEL_DP_TYPE_RETURN_TO_CALL; + } + else if(s_control_panel_pw_info.is_tizen_account_registered == EINA_TRUE) + { + s_control_panel_pw_info.control_panel_dp_type = CONTROL_PANEL_DP_TYPE_TIZEN_ACCOUNT; + } + else + { + s_control_panel_pw_info.control_panel_dp_type = CONTROL_PANEL_DP_TYPE_NORMAL; + } + + if (get_recovery_mode() == 1) { + s_control_panel_pw_info.control_panel_dp_type = CONTROL_PANEL_DP_TYPE_NORMAL; + } + + LOCK_SCREEN_TRACE_DBG("old_state(%d) control_panel_type(%d)", old_state, s_control_panel_pw_info.control_panel_dp_type); + + if(old_state != s_control_panel_pw_info.control_panel_dp_type) + { + Evas_Object *button1 = elm_object_part_content_get(s_control_panel_pw_info.control_panel_layout, "button1"); + if(button1) + { + evas_object_del(button1); + } + Evas_Object *button2 = elm_object_part_content_get(s_control_panel_pw_info.control_panel_layout, "button2"); + if(button2) + { + evas_object_del(button2); + } + + //enter new state + switch(s_control_panel_pw_info.control_panel_dp_type) + { + case CONTROL_PANEL_DP_TYPE_RETURN_TO_CALL : + elm_object_signal_emit(s_control_panel_pw_info.control_panel_layout, "show,button2", "button2"); + _create_operator_button(); + _create_return_to_call_button(); + break; + case CONTROL_PANEL_DP_TYPE_TIZEN_ACCOUNT : + if (s_control_panel_pw_info.is_tizen_account_button_show) { + elm_object_signal_emit(s_control_panel_pw_info.control_panel_layout, "show,button2", "button2"); + } else { + elm_object_signal_emit(s_control_panel_pw_info.control_panel_layout, "hide,button2", "button2"); + } + _create_emg_button(); + _create_tizen_account_button(); + break; + case CONTROL_PANEL_DP_TYPE_NORMAL : + elm_object_signal_emit(s_control_panel_pw_info.control_panel_layout, "hide,button2", "button2"); + _create_emg_button(); + break; + } + } else { + //updates current status + switch(s_control_panel_pw_info.control_panel_dp_type) + { + case CONTROL_PANEL_DP_TYPE_RETURN_TO_CALL : + elm_object_signal_emit(s_control_panel_pw_info.control_panel_layout, "show,button2", "button2"); + break; + case CONTROL_PANEL_DP_TYPE_TIZEN_ACCOUNT : + if (s_control_panel_pw_info.is_tizen_account_button_show) { + elm_object_signal_emit(s_control_panel_pw_info.control_panel_layout, "show,button2", "button2"); + } else { + elm_object_signal_emit(s_control_panel_pw_info.control_panel_layout, "hide,button2", "button2"); + } + break; + case CONTROL_PANEL_DP_TYPE_NORMAL : + elm_object_signal_emit(s_control_panel_pw_info.control_panel_layout, "hide,button2", "button2"); + break; + } + } +} + +void control_panel_password_destroy(void) +{ + LOCK_SCREEN_TRACE_DBG(""); + + if(s_control_panel_pw_info.control_panel_layout) + { + Evas_Object *button1 = elm_object_part_content_get(s_control_panel_pw_info.control_panel_layout, "button1"); + if(button1) + { + evas_object_del(button1); + } + Evas_Object *button2 = elm_object_part_content_get(s_control_panel_pw_info.control_panel_layout, "button2"); + if(button2) + { + evas_object_del(button2); + } + + evas_object_del(s_control_panel_pw_info.control_panel_layout); + s_control_panel_pw_info.control_panel_layout = NULL; + } +} + +void control_panel_password_tizen_account_show(void) +{ + s_control_panel_pw_info.is_tizen_account_button_show = EINA_TRUE; + control_panel_password_update(); +} + +void control_panel_password_tizen_account_hide(void) +{ + s_control_panel_pw_info.is_tizen_account_button_show = EINA_FALSE; + control_panel_password_update(); +} + +void control_panel_password_cancel_enable_set(int enable) +{ + if(s_control_panel_pw_info.control_panel_layout) { + if (enable) { + elm_object_signal_emit(s_control_panel_pw_info.control_panel_layout, "button3,enable", "prog"); + } else { + elm_object_signal_emit(s_control_panel_pw_info.control_panel_layout, "button3,disable", "prog"); + } + edje_object_message_signal_process(elm_layout_edje_get(s_control_panel_pw_info.control_panel_layout)); + } +} + +/*! + * module + */ + +static void _resume(LKD_Module_Data *md) +{ + if (s_control_panel_pw_info.emg_button) { + elm_label_slide_mode_set(s_control_panel_pw_info.emg_button, ELM_LABEL_SLIDE_MODE_AUTO); + elm_label_slide_go(s_control_panel_pw_info.emg_button); + } + if (s_control_panel_pw_info.account_button) { + elm_label_slide_mode_set(s_control_panel_pw_info.account_button, ELM_LABEL_SLIDE_MODE_AUTO); + elm_label_slide_go(s_control_panel_pw_info.account_button); + } + +} + +static void _pause(LKD_Module_Data *md) +{ + if (s_control_panel_pw_info.emg_button) { + elm_label_slide_mode_set(s_control_panel_pw_info.emg_button, ELM_LABEL_SLIDE_MODE_NONE); + elm_label_slide_go(s_control_panel_pw_info.emg_button); + } + if (s_control_panel_pw_info.account_button) { + elm_label_slide_mode_set(s_control_panel_pw_info.account_button, ELM_LABEL_SLIDE_MODE_NONE); + elm_label_slide_go(s_control_panel_pw_info.account_button); + } +} + +LKD_Module g_mod_control_panel_password = { + .id = "control-panel-password", + .notifying = 1, + .init = NULL, + .fini = NULL, + .resume = _resume, + .pause = _pause, + .property_changed = NULL, +}; diff --git a/src/control-panel.c b/src/control-panel.c new file mode 100755 index 0000000..acd2532 --- /dev/null +++ b/src/control-panel.c @@ -0,0 +1,775 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include + +#include +#include +#include + +#include +#include + +#include "lockscreen-lite.h" +#include "control-panel.h" +#include "progress_circle.h" +#include "sim-state.h" +#include "notification-item.h" +#include "tizen-account.h" +#include "control-panel-password.h" +#include "simple-password.h" + +#define CONTROL_PANEL_PROPORTION 0.2 +#define CAM_ICON_W 90 +#define CAM_ICON_H 90 +#define CAM_ICON_X 390 +#define CAM_ICON_Y 710 + +#define MAX_SCALE 3.0 +#define CAM_ICOM_MAX_W CAM_ICON_W * MAX_SCALE +#define CAM_ICON_MAX_H CAM_ICON_H * MAX_SCALE + +#define CAMERA_APP_ID "com.samsung.camera-app-lite" + +#define UNLOCK_TEXT _("IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT") + +#define PLMN_LABEL_STYLE "" + +#define EPS 0.00001 + +#define PLMN_LENGTH 6 +#define PLMN_SPN_LENGTH 32 +#define EMG_BUTTON_WIDTH 322 + +#define BUS_NAME "org.tizen.system.deviced" +#define DEVICED_PATH_DISPLAY "/Org/Tizen/System/DeviceD/Display" +#define DEVICED_INTERFACE_DISPLAY "org.tizen.system.deviced.display" +#define METHOD_LOCKSCREEN_BG_ON "LockScreenBgOn" +#define DBUS_REPLY_TIMEOUT -1 + +extern LKD_Module g_mod_control_panel; +static const char *bool_str[2] = {"false", "true"}; + +static struct { + Evas_Object *control_panel_layout; + Evas_Object *camera_icon; + Evas_Object *unlock_circle; + Evas_Object *unlock_background; + Evas_Object *operator_name; + + bool is_password_panel_visible; + + struct { + int x; + int y; + int w; + int h; + } camera_icon_geometry; + + struct { + int x; + int y; + int w; + int h; + } camera_bg_geometry; + +} s_control_panel_info = { + .control_panel_layout = NULL, + .camera_icon = NULL, + .unlock_circle = NULL, + .unlock_background = NULL, + + .is_password_panel_visible = false, + + .camera_icon_geometry.x = 0, + .camera_icon_geometry.y = 0, + .camera_icon_geometry.w = 0, + .camera_icon_geometry.h = 0, + + .camera_bg_geometry.x = 0, + .camera_bg_geometry.y = 0, + .camera_bg_geometry.w = 0, + .camera_bg_geometry.h = 0, +}; + +//Unlock function +static char* _plmn_spn_get(); + +static void __emg_button_clicked_cb(void *data, Evas_Object *obj, void *event_info); + +static void __launch_emgcall(void); +// static void __sim_status_print(TelSimCardStatus_t sim_status, int card_changed); + +static void _operator_name_slide_mode_set(Evas_Object *name) +{ + Evas_Object *name_edje; + Evas_Object *tb; + Evas_Coord tb_w=0; + + if(name == NULL) { + LOCK_SCREEN_TRACE_ERR("paramter error!"); + } + + elm_label_slide_mode_set(name, ELM_LABEL_SLIDE_MODE_NONE); + + name_edje = elm_layout_edje_get(name); + if(!name_edje) + { + LOGE("Failed to get label edje"); + return; + } + + tb = (Evas_Object*)edje_object_part_object_get(name_edje, "elm.text"); + if(!tb) + { + LOGE("Failed to get label tb"); + return; + } + + evas_object_textblock_size_native_get(tb, &tb_w, NULL); + + if((tb_w>0) && (tb_w>ELM_SCALE_SIZE(EMG_BUTTON_WIDTH))) + { + elm_label_slide_mode_set(name, ELM_LABEL_SLIDE_MODE_AUTO); + } + elm_label_slide_go(name); +} +static void _operator_sliding_label_create(Evas_Object *layout, char *text) +{ + char buf[512] = {0,}; + Evas_Object *label = elm_label_add(layout); + if(!label) + { + LOGE("Failed to add label"); + return; + } + + char *markup_text = elm_entry_utf8_to_markup(text); + snprintf(buf, sizeof(buf), "%s%s", PLMN_LABEL_STYLE, markup_text); + free(markup_text); + + elm_object_style_set(label, "slide_short"); + elm_label_wrap_width_set(label, 100); + elm_label_ellipsis_set(label, EINA_TRUE); + elm_label_slide_duration_set(label, 2); + _operator_name_slide_mode_set(label); + + elm_object_text_set(label, buf); + + elm_object_part_content_set(layout, "emg_call_button", label); + evas_object_show(label); + + s_control_panel_info.operator_name = label; +} + +Evas_Object* control_panel_create() +{ + LOCK_SCREEN_TRACE_DBG(""); + + Evas_Object *main_window = NULL; + Evas_Object *control_panel_layout = NULL; + char *operator_name = NULL; + + main_window = lockscreen_get_window(); + if(!main_window) + { + LOCK_SCREEN_TRACE_DBG("Failed to get the main window"); + return NULL; + } + + control_panel_layout = elm_layout_add(main_window); + if(!control_panel_layout) + { + LOCK_SCREEN_TRACE_DBG("Failed to create control panel layout"); + return NULL; + } + + if(!elm_layout_file_set(control_panel_layout, EDJE_DIR"control-panel.edj", "control_panel_layout_dual_text")) + { + LOCK_SCREEN_TRACE_DBG("Failed to set file for control panel layout"); + evas_object_del(control_panel_layout); + return NULL; + } + + const int w = lockscreen_get_window_width(); + const int h = lockscreen_get_window_height() * CONTROL_PANEL_PROPORTION; + + evas_object_size_hint_min_set(control_panel_layout, w, h); + evas_object_size_hint_max_set(control_panel_layout, w, h); + evas_object_resize(control_panel_layout, w, h); + + s_control_panel_info.control_panel_layout = control_panel_layout; + evas_object_show(control_panel_layout); + + operator_name = sim_status_network_name_get(); + + if(!operator_name || !strlen(operator_name)) + { + LOCK_SCREEN_TRACE_DBG("Unknown network name - setting plmn/spn"); + if (operator_name) + { + free(operator_name); + } + operator_name = _plmn_spn_get(); + } + + if (operator_name) + { + LOCK_SCREEN_TRACE_DBG("Final network name : [%s]", operator_name); + _operator_sliding_label_create(control_panel_layout, operator_name); + free(operator_name); + } + else + { + LOCK_SCREEN_TRACE_DBG("Unknown plmn/spn - setting empty name"); + _operator_sliding_label_create(control_panel_layout, ""); + } + + if (elm_object_text_get(s_control_panel_info.operator_name) == NULL) + { + LOCK_SCREEN_TRACE_DBG("Failed to set network info in layout"); + evas_object_del(control_panel_layout); + evas_object_del(s_control_panel_info.operator_name); + s_control_panel_info.operator_name = NULL; + + return NULL; + } + + control_panel_operator_name_show(); + + elm_object_part_text_set(s_control_panel_info.control_panel_layout, "unlock,text", UNLOCK_TEXT); + + // show_unlock_text(); + + return control_panel_layout; +} + +void control_panel_sim_state_changed() +{ + LOCK_SCREEN_TRACE_DBG(""); + + char *name = NULL; + + if(!s_control_panel_info.control_panel_layout) + { + LOCK_SCREEN_TRACE_ERR("invalid state of app : layout is NULL"); + return; + } + + if(!s_control_panel_info.operator_name) + { + LOCK_SCREEN_TRACE_ERR("invalid state of app : operator name label is NULL"); + return; + } + + if(s_control_panel_info.operator_name) + { + evas_object_del(s_control_panel_info.operator_name); + } + + name = sim_status_network_name_get(); + if (name) { + if (strlen(name) <= 0) { + free(name); + name = _plmn_spn_get(); + } + } + + if (name) { + LOCK_SCREEN_TRACE_DBG("Final network name : [%s]", name); + + _operator_sliding_label_create(s_control_panel_info.control_panel_layout, name); + control_panel_operator_name_show(); + + free(name); + } else { + LOCK_SCREEN_TRACE_DBG("Unknown plmn/spn - setting empty name"); + _operator_sliding_label_create(s_control_panel_info.control_panel_layout, ""); + } + + _operator_name_slide_mode_set(s_control_panel_info.operator_name); +} + +void hide_emg_call_btn(void) +{ + ret_if(s_control_panel_info.control_panel_layout == NULL); + + elm_object_signal_emit(s_control_panel_info.control_panel_layout, "hide,emg,btn", ""); +} + +void show_emg_call_btn(void) +{ + ret_if(s_control_panel_info.control_panel_layout == NULL); + + hide_dual_text(); + elm_object_signal_emit(s_control_panel_info.control_panel_layout, "show,emg,btn", ""); +} + +void show_unlock_text(void) +{ + elm_object_signal_emit(s_control_panel_info.control_panel_layout, "show,unlock,text", ""); +} + +void hide_unlock_text(void) +{ + elm_object_signal_emit(s_control_panel_info.control_panel_layout, "hide,unlock,text", ""); +} + +Eina_Bool is_camera_visible(void) +{ +#if DISABLE_CAMERA_SHORTCUT + return EINA_FALSE; +#else + int enabled = 0; + property_get_bool(LKD_PROP_ID_CAMERA_SHORTCUT_ENABLED, &enabled); + + int emergency = 0; + property_get_int(LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED, &emergency); + + if (enabled && 2 != emergency) { + return EINA_TRUE; + } else { + return EINA_FALSE; + } +#endif +} + +void control_panel_operator_name_hide(void) +{ + if(s_control_panel_info.operator_name) + { + evas_object_hide(s_control_panel_info.operator_name); + } +} + +void control_panel_operator_name_show(void) +{ + if(s_control_panel_info.operator_name) + { + evas_object_show(s_control_panel_info.operator_name); + } +} + +void control_panel_password_panel_visible_flag_set(bool state) +{ + s_control_panel_info.is_password_panel_visible = state; +} + +void hide_dual_text(void) +{ + // elm_layout_signal_emit(s_control_panel_info.control_panel_layout, "hide.dual.text", "default_unlock"); + control_panel_operator_name_show(); +} + +void destroy_emg_button(void) +{ + LOCK_SCREEN_TRACE_DBG(""); + + Evas_Object *emg_button = elm_object_part_content_get(s_control_panel_info.control_panel_layout, "emg_call_button"); + if(emg_button) + { + evas_object_del(emg_button); + } +} + +void create_emg_button(void) +{ + elm_theme_extension_add(NULL, EDJE_DIR"lockscreen-button.edj"); + Evas_Object *emg_button = elm_button_add(s_control_panel_info.control_panel_layout); + if(!emg_button) + { + LOCK_SCREEN_TRACE_ERR("Failed to create emergency button"); + return; + } + elm_object_part_content_set(s_control_panel_info.control_panel_layout, "emg_call_button", emg_button); + if(!elm_object_part_content_get(s_control_panel_info.control_panel_layout, "emg_call_button")) + { + LOCK_SCREEN_TRACE_ERR("Failed to set emergency button in swallow part"); + evas_object_del(emg_button); + return; + } + elm_object_style_set(emg_button, "emg_cal_btn"); + elm_object_text_set(emg_button, _("IDS_LCKSCN_BODY_EMERGENCY_CALL")); + evas_object_smart_callback_add(emg_button, "clicked", __emg_button_clicked_cb, NULL); + + LOCK_SCREEN_TRACE_DBG("emg_button(%p)", emg_button); +} + +void control_panel_create_tizen_account_button(void) +{ + LOCK_SCREEN_TRACE_DBG(""); + + elm_theme_extension_add(NULL, EDJE_DIR"lockscreen-button.edj"); + + Evas_Object *tizen_account_button = elm_button_add(s_control_panel_info.control_panel_layout); + if(!tizen_account_button) + { + LOCK_SCREEN_TRACE_ERR("Failed to create tizen account button"); + return; + } + + elm_object_part_content_set(s_control_panel_info.control_panel_layout, "tizen.account.button", tizen_account_button); + if(!elm_object_part_content_get(s_control_panel_info.control_panel_layout, "tizen.account.button")) + { + LOCK_SCREEN_TRACE_ERR("Failed to set emergency button in swallow part"); + evas_object_del(tizen_account_button); + return; + } + + elm_object_style_set(tizen_account_button, "tizen_account_btn"); + elm_object_text_set(tizen_account_button, _("IDS_LCKSCN_BUTTON3_UNLOCK_VIA_TIZEN_ACCOUNT")); + evas_object_smart_callback_add(tizen_account_button, "clicked", (Evas_Smart_Cb)tizen_account_launch_cb, NULL); +} + +void control_panel_tizen_account_btn_show(void) +{ + elm_object_signal_emit(s_control_panel_info.control_panel_layout, "show.tizen.account.button", "default_unlock"); +} + +void control_panel_tizen_account_btn_hide(void) +{ + elm_object_signal_emit(s_control_panel_info.control_panel_layout, "hide.tizen.account.button", "default_unlock"); +} + +static char* _plmn_spn_get() +{ + char *ret_str = NULL; + int plmn = 0; + char *spn = NULL; + char plmn_buf[PLMN_LENGTH] = {0, }; + int spn_disp_cond = VCONFKEY_TELEPHONY_DISP_INVALID; + + if(vconf_get_int(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, &spn_disp_cond) < 0) + { + LOCK_SCREEN_TRACE_DBG("Failed to get spn display condition"); + goto END; + } + + if(spn_disp_cond == VCONFKEY_TELEPHONY_DISP_INVALID) + { + LOCK_SCREEN_TRACE_DBG("Invalid spn display condition"); + goto END; + } + + spn = vconf_get_str(VCONFKEY_TELEPHONY_SPN_NAME); + if(!spn) + { + LOCK_SCREEN_TRACE_DBG("Failed to get spn vconfkey"); + goto END; + } + + if(vconf_get_int(VCONFKEY_TELEPHONY_PLMN, &plmn) < 0) + { + LOCK_SCREEN_TRACE_DBG("Failed to get plmn vconfkey"); + goto END; + } + + if(!plmn) + { + LOCK_SCREEN_TRACE_DBG("Failed to get plmn"); + goto END; + } + + if(snprintf(plmn_buf, PLMN_LENGTH, "%d", plmn) < 0) + { + goto END; + } + + if(spn_disp_cond == VCONFKEY_TELEPHONY_DISP_SPN) + { + ret_str = strdup(spn); + goto END; + } + else if(spn_disp_cond == VCONFKEY_TELEPHONY_DISP_PLMN) + { + ret_str = strdup(plmn_buf); + goto END; + } + else + { + char plmn_spn_buf[PLMN_SPN_LENGTH]; + strcpy(plmn_spn_buf, plmn_buf); + strncat(plmn_spn_buf, "/", 1); + strncat(plmn_spn_buf, spn, strlen(spn)); + + ret_str = strdup(plmn_spn_buf); + goto END; + } + +END: + free(spn); + + return ret_str; +} + +static void __emg_button_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + lockscreen_play_tap_feedback(); + __launch_emgcall(); +} + +void emg_button_clicked_event_emit(void) +{ + __emg_button_clicked_cb(NULL, NULL, NULL); +} + +static void __launch_emgcall(void) +{ + app_control_h service; + app_control_create(&service); + + UG_INIT_EFL(lockscreen_get_window(), UG_OPT_INDICATOR_ENABLE); + + if (!service) + { + LOCK_SCREEN_TRACE_DBG("Error creating application control handle"); + return; + } + + if (app_control_set_operation(service, APP_CONTROL_OPERATION_DEFAULT) != APP_CONTROL_ERROR_NONE) + { + LOCK_SCREEN_TRACE_DBG("Can not set operation for application control handle"); + app_control_destroy(service); + return; + } + + if (app_control_set_app_id(service, "dialer-efl") != APP_CONTROL_ERROR_NONE) + { + LOCK_SCREEN_TRACE_DBG("Can not launch dialer-efl"); + app_control_destroy(service); + return; + } + + Ecore_X_Window xwin = 0; + Ecore_X_Window_Type type = ECORE_X_WINDOW_TYPE_UNKNOWN; + Utilx_Notification_Level level = UTILX_NOTIFICATION_LEVEL_LOW; + + xwin = elm_win_xwindow_get(lockscreen_get_window()); + if(xwin == 0) + { + LOCK_SCREEN_TRACE_DBG("elm_win_xwindow_get() failed"); + app_control_destroy(service); + return; + } + if(ecore_x_netwm_window_type_get(xwin, &type) != EINA_TRUE) + { + LOCK_SCREEN_TRACE_DBG("ecore_x_netwm_window_type_get() failed"); + app_control_destroy(service); + return; + } + + if(type != ECORE_X_WINDOW_TYPE_NOTIFICATION) + { + LOCK_SCREEN_TRACE_DBG("current window type is not NOTIFICATION"); + app_control_add_extra_data(service, "window_property", "notification_normal"); + } + else + { + level = utilx_get_system_notification_level(ecore_x_display_get(), xwin); + if(level == UTILX_NOTIFICATION_LEVEL_HIGH) + { + app_control_add_extra_data(service, "window_property", "notification_high"); + } + else + { + app_control_add_extra_data(service, "window_property", "notification_normal"); + } + } + + app_control_add_extra_data(service, "emergency_dialer", "emergency"); + + if(app_control_send_launch_request(service, NULL, NULL) != APP_CONTROL_ERROR_NONE) + { + LOCK_SCREEN_TRACE_DBG("service_send_request() failed"); + } + + app_control_destroy(service); +} + +static void _log_dbus_error(const char *msg, DBusError *err) +{ + if (err && dbus_error_is_set(err)) + { + LOCK_SCREEN_TRACE_ERR("dbus error(%s:%s)", err->name, err->message); + } + else if (msg) + { + LOCK_SCREEN_TRACE_ERR("%s",msg); + } +} + +static void _dbus_clean(DBusConnection *conn, DBusMessage *msg, DBusError *err) +{ + if (conn) + { + dbus_connection_unref(conn); + conn = NULL; + } + if (msg) + { + dbus_message_unref(msg); + msg = NULL; + } + dbus_error_free(err); +} + +static DBusMessage *_invoke_dbus_method_sync(const char *dest, const char *path, + const char *interface, const char *method, const char *param) +{ + DBusConnection *conn = NULL; + DBusMessage *msg = NULL; + DBusMessage *reply = NULL; + dbus_bool_t is_ok = 0; + DBusError err; + + dbus_error_init(&err); + + conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL); + if (!conn) + { + _log_dbus_error("Failed to connect to bus deamon",NULL); + _dbus_clean(NULL, msg, &err); + return NULL; + } + + msg = dbus_message_new_method_call(dest, path, interface, method); + if (!msg) + { + _log_dbus_error("Failed to create dbus message",NULL); + _dbus_clean(conn, NULL, &err); + return NULL; + } + + is_ok = dbus_message_append_args(msg, DBUS_TYPE_STRING, ¶m, DBUS_TYPE_INVALID); + if (!is_ok) + { + _log_dbus_error("Failed to create dbus message parameters",NULL); + _dbus_clean(conn, msg, &err); + return NULL; + } + + reply = dbus_connection_send_with_reply_and_block(conn, msg, DBUS_REPLY_TIMEOUT, &err); + + _log_dbus_error(NULL, &err); + _dbus_clean(conn, msg, &err); + return reply; +} + +static int _lockscreen_set_bg(const char *param) +{ + DBusError err; + DBusMessage *msg = NULL; + bool is_ok = 0; + int ret_val = 0; + + dbus_error_init(&err); + + msg = _invoke_dbus_method_sync(BUS_NAME, DEVICED_PATH_DISPLAY, DEVICED_INTERFACE_DISPLAY, + METHOD_LOCKSCREEN_BG_ON, param); + if (!msg) + { + _dbus_clean(NULL, NULL, &err); + return -EBADMSG; + } + + is_ok = dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &ret_val, DBUS_TYPE_INVALID); + if (!is_ok) + { + ret_val = -EBADMSG; + _log_dbus_error(NULL,&err); + } + else + { + LOCK_SCREEN_TRACE_DBG("%s-%s : %s(%d) ", DEVICED_INTERFACE_DISPLAY, METHOD_LOCKSCREEN_BG_ON, param, ret_val); + } + + _dbus_clean(NULL, msg, &err); + return ret_val; +} + +void lockscreen_set_bg_on(void) +{ + _lockscreen_set_bg(bool_str[true]); +} + +void lockscreen_set_bg_off(void) +{ + _lockscreen_set_bg(bool_str[false]); +} + +Evas_Object *control_panel_layout_get(void) +{ + return s_control_panel_info.control_panel_layout; +} + +void control_panel_view_init(void) +{ + module_init(&g_mod_control_panel, NULL); +} + +void control_panel_view_fini(void) +{ + module_fini(&g_mod_control_panel); +} + +/*! + * module + */ +static int _init(LKD_Module_Data *md) +{ + return LKD_RET_OK; +} + +static int _fini(LKD_Module_Data *md) +{ + return LKD_RET_OK; +} + +static void _language_changed(LKD_Module_Data * md) +{ + control_panel_sim_state_changed(); +} + +static void _property_changed(LKD_Module_Data *md, int property_id) +{ +} + +static void _resume(LKD_Module_Data *md) +{ + //elm_label_slide_mode_set(s_control_panel_info.operator_name, ELM_LABEL_SLIDE_MODE_AUTO); + //elm_label_slide_go(s_control_panel_info.operator_name); + _operator_name_slide_mode_set(s_control_panel_info.operator_name); +} + +static void _pause(LKD_Module_Data *md) +{ + elm_label_slide_mode_set(s_control_panel_info.operator_name, ELM_LABEL_SLIDE_MODE_NONE); + elm_label_slide_go(s_control_panel_info.operator_name); +} + +LKD_Module g_mod_control_panel = { + .id = "control-panel", + .notifying = 1, + .property_list = LKD_PROP_ID_CAMERA_SHORTCUT_ENABLED | LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED, + .init = _init, + .fini = _fini, + .resume = _resume, + .pause = _pause, + .language_changed = _language_changed, + .property_changed = _property_changed, +}; diff --git a/src/daemon/daemon.c b/src/daemon/daemon.c new file mode 100755 index 0000000..e7f20d3 --- /dev/null +++ b/src/daemon/daemon.c @@ -0,0 +1,957 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include + +#include "lockscreen-lite.h" +#include "control-panel.h" + +#define LKD_DEBUG +#define LKD_LCD_TIMEOUT_TIME 30.0 +/* + * daemon states + */ +#define LOCKD_EVT_STATE_IDLE 1 +#define LOCKD_EVT_STATE_WAIT 2 + +static struct _s_info { + int state; + int is_win_hided; + int is_win_hided_done; + int is_module_unloaded; + int lcd_off_sequence; + + /* events */ + int event_state; + int wait_event; + Ecore_Timer *event_timer; + + Ecore_Timer *win_update_timer; + Ecore_Timer *lcd_off_timer; + Ecore_Timer *vm_delay_timer; + + int view_ready; + int unlock_count; + + Eina_List *cbs_list[DAEMON_EVENT_MAX]; +} s_info = { + .state = LOCKD_STATE_DEAD, + .is_win_hided = 1, + .is_module_unloaded = 0, + .lcd_off_sequence = 0, + + .event_state = LOCKD_EVT_STATE_IDLE, + .wait_event = -1, + .event_timer = NULL, + + .win_update_timer = NULL, + .lcd_off_timer = NULL, + .vm_delay_timer = NULL, + + .view_ready = 0, + .unlock_count = 0, + + .cbs_list = {NULL, }, +}; + +typedef struct { + void (*result_cb)(void *, void *); + void *result_data; +} daemon_cb_s; + +int lockd_event_register_cb( + int type, + void (*result_cb)(void *, void *), void *result_data) +{ + retv_if(result_cb == NULL, LKD_RET_FAIL); + + daemon_cb_s *cb = calloc(1, sizeof(daemon_cb_s)); + retv_if(cb == NULL, LKD_RET_FAIL); + + cb->result_cb = result_cb; + cb->result_data = result_data; + + s_info.cbs_list[type] = eina_list_prepend(s_info.cbs_list[type], cb); + retv_if(s_info.cbs_list[type] == NULL, LKD_RET_FAIL); + + return LKD_RET_OK; +} + +void lockd_event_unregister_cb( + int type, + void (*result_cb)(void *, void *)) +{ + const Eina_List *l; + const Eina_List *n; + daemon_cb_s *cb; + EINA_LIST_FOREACH_SAFE(s_info.cbs_list[type], l, n, cb) { + continue_if(cb == NULL); + if (result_cb != cb->result_cb) continue; + s_info.cbs_list[type] = eina_list_remove(s_info.cbs_list[type], cb); + free(cb); + return; + } +} + +static void _execute_cbs(int type, void *event_info) +{ + daemon_cb_s *cb = NULL; + + Eina_List *list = eina_list_clone(s_info.cbs_list[type]); + EINA_LIST_FREE(list, cb) { + continue_if(cb == NULL); + continue_if(cb->result_cb == NULL); + + cb->result_cb(cb->result_data, event_info); + } +} + +static void _cbs_fini(void) +{ + int i = 0; + + const Eina_List *l = NULL; + const Eina_List *n = NULL; + daemon_cb_s *cb = NULL; + + for (i = 0; i < DAEMON_EVENT_MAX; i++) { + EINA_LIST_FOREACH_SAFE(s_info.cbs_list[i], l, n, cb) { + free(cb); + } + } +} + +#ifdef LKD_DEBUG +static const char *_state_to_str(int state) +{ + const char *msg = NULL; + + if (state == LOCKD_STATE_DEAD) { + msg = "DEAD"; + } else if (state == LOCKD_STATE_BOOT) { + msg = "BOOT"; + } else if (state == LOCKD_STATE_WILL_RESUME) { + msg = "WILL RESUME"; + } else if (state == LOCKD_STATE_RESUME) { + msg = "RESUME"; + } else if (state == LOCKD_STATE_PAUSE) { + msg = "PAUSE"; + } else if (state == LOCKD_STATE_HIDE) { + msg = "HIDE"; + } + + return msg; +} + +static const char *_event_to_str(int event) +{ + const char *msg = NULL; + + if (event == LKD_EVT_LOCK) { + msg = "LOCK"; + } else if (event == LKD_EVT_WILL_LOCK) { + msg = "LKD_EVT_WILL_LOCK"; + } else if (event == LKD_EVT_UNLOCK) { + msg = "UNLOCK"; + } else if (event == LKD_EVT_WIN_CREATE) { + msg = "WIN_CREATE"; + } else if (event == LKD_EVT_WIN_BECOME_VISIBLE) { + msg = "WIN_BECOME_VISIBLE"; + } else if (event == LKD_EVT_WIN_BECOME_INVISIBLE) { + msg = "WIN_BECOME_INVISIBLE"; + } else if (event == LKD_EVT_APP_CREATE) { + msg = "APP_CREATE"; + } else if (event == LKD_EVT_LCD_ON) { + msg = "LCD_ON"; + } else if (event == LKD_EVT_LCD_WILL_OFF) { + msg = "LCD_WILL_OFF"; + } else if (event == LKD_EVT_LCD_OFF) { + msg = "LCD_OFF"; + } else if (event == LKD_EVT_CONF_CHANGED) { + msg = "CONF_CHANGED"; + } else if (event == LKD_EVT_VIEW_IDLE) { + msg = "VIEW_IDLE"; + } else if (event == LKD_EVT_VIEW_GESTURED) { + msg = "VIEW_GESTURED"; + } else if (event == LKD_EVT_VIEW_INPUT_BLOCK) { + msg = "VIEW_BLOCKED"; + } else if (event == LKD_EVT_VIEW_INPUT_UNBLOCK) { + msg = "VIEW_UNBLOCKED"; + } else if (event == LKD_EVT_APP_PAUSE) { + msg = "APP_PAUSE"; + } else if (event == LKD_EVT_APP_RESUME) { + msg = "APP_RESUME"; + } else if (event == LKD_EVT_QUICKPANEL_ON) { + msg = "QUICKPANEL_ON"; + } else if (event == LKD_EVT_QUICKPANEL_OFF) { + msg = "QUICKPANEL_OFF"; + } + + return msg; +} +#endif + +static int _is_testmode_enabled(void) +{ + int value = VCONFKEY_TESTMODE_SCREEN_LOCK_ENABLE; + + if (vconf_get_int(VCONFKEY_TESTMODE_SCREEN_LOCK, &value) != 0) { + LOCK_SCREEN_TRACE_ERR("failed to get testmode status"); + value = VCONFKEY_TESTMODE_SCREEN_LOCK_ENABLE; + } + + if (value == VCONFKEY_TESTMODE_SCREEN_LOCK_DISABLE) { + return 1; + } + + return 0; +} + +#define VCONFKEY_PWLOCK_FIRST_BOOT "db/pwlock/first_boot" +static int _is_pwlock_enabled(void) +{ + int enabled = 0; + + if (vconf_get_bool(VCONFKEY_PWLOCK_FIRST_BOOT, &enabled) != 0) { + LOCK_SCREEN_TRACE_ERR("failed to get pwlock status"); + enabled = 0; + } + + return enabled; +} + +static int _is_display_lockscreen(void) +{ + int locktype = get_locktype(); + + if (_is_pwlock_enabled() || + _is_testmode_enabled() || + lockd_call_state_get() || + locktype == SETTING_SCREEN_LOCK_TYPE_NONE || + locktype == SETTING_SCREEN_LOCK_TYPE_OTHER) { + return 0; + } + + return 1; +} + +/*! + * Handling state transition + */ +static void _event_feed_job_cb(void *data) +{ + int event = (int)data; + + lockd_event(event, NULL); +} + +static Eina_Bool _win_update_timer_cb(void *data) +{ + s_info.win_update_timer = NULL; + + lockd_window_update(); + + return ECORE_CALLBACK_CANCEL; +} + +static void _win_show(void) +{ + if (s_info.is_win_hided_done == 0) { + view_mgr_event_handler(LOCKD_STATE_HIDE, LKD_EVT_UNLOCK, NULL); + s_info.is_win_hided_done = 1; + } + + s_info.is_win_hided = 0; + lockd_window_show(); + lockd_lock_state_set(VCONFKEY_IDLE_LOCK, 2.0); +} + +static void _win_hide(void) +{ + s_info.is_win_hided = 1; + s_info.is_win_hided_done = 0; + lockd_window_hide(); + lockd_lock_state_set(VCONFKEY_IDLE_UNLOCK, 2.0); +} + +static void _win_update(double delay) +{ + if (s_info.win_update_timer != NULL) { + ecore_timer_del(s_info.win_update_timer); + s_info.win_update_timer = NULL; + } + + if (delay > 0.0) { + s_info.win_update_timer = ecore_timer_add(delay, _win_update_timer_cb, NULL); + if (s_info.win_update_timer == NULL) { + _win_update_timer_cb(NULL); + } + } else { + _win_update_timer_cb(NULL); + } +} + + +static void _modules_resume(void) +{ + if (s_info.view_ready) { + modules_resume(); + } +} + +static void _modules_pause(void) +{ + if (s_info.view_ready) { + modules_pause(); + } +} + +static void _state_enter(int old_state, int new_state, LKD_State_Config *conf) +{ + int locksound = 1; + +#ifdef LKD_DEBUG + LOCK_SCREEN_TRACE_WARN("%s => %s", _state_to_str(old_state), _state_to_str(new_state)); +#endif + + if (conf != NULL) { + locksound = conf->locksound; + } + + if (new_state == LOCKD_STATE_HIDE) { + /* hide lockscreen */ + s_info.is_module_unloaded = 1; + _modules_pause(); + modules_unload(); + _win_hide(); + int locktype = get_locktype(); + if (locktype != SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD && locktype != SETTING_SCREEN_LOCK_TYPE_PASSWORD) { + lockd_util_key_lock_set(0, NULL); + } + /* hide lockscreen */ + } + else if (new_state == LOCKD_STATE_WILL_RESUME) { + if (locksound == 1 && s_info.is_win_hided == 1) { + lockscreen_play_lock_feedback(); + } + if (s_info.is_module_unloaded == 1) { + modules_load(); + } + _modules_resume(); + + if (old_state == LOCKD_STATE_BOOT) { + //need something ? + ecore_job_add(_event_feed_job_cb, (void*)LKD_EVT_WILL_LOCK); + } if (s_info.is_win_hided == 1) { + _win_update(0.0); + ecore_job_add(_event_feed_job_cb, (void*)LKD_EVT_WILL_LOCK); + } + } + else if (new_state == LOCKD_STATE_RESUME) { + if (old_state == LOCKD_STATE_BOOT) { + _win_show(); + ecore_job_add(_event_feed_job_cb, (void*)LKD_EVT_LOCK); + lockd_util_key_lock_set(1, NULL); + } else if (s_info.is_win_hided == 1) { + /* show lockscreen */ + _win_show(); + ecore_job_add(_event_feed_job_cb, (void*)LKD_EVT_LOCK); + lockd_util_key_lock_set(1, NULL); + } + } + else if (new_state == LOCKD_STATE_PAUSE) { + _modules_pause(); + _win_update(0.0); + } + else if (new_state == LOCKD_STATE_BOOT) { + LOCK_SCREEN_TRACE_ERR("lockscreen is created"); + } else { + LOCK_SCREEN_TRACE_ERR("state %d isn't handled", new_state); + } +} + +static void _state_transit(int state, LKD_State_Config *conf) +{ + LOCK_SCREEN_TRACE_WARN("state transit:%d", state); + + if (s_info.state == state) { + LOCK_SCREEN_TRACE_WARN("already in same state:%d", state); + return; + } + + if (_is_display_lockscreen() == 0 && + (state == LOCKD_STATE_PAUSE || state == LOCKD_STATE_WILL_RESUME || state == LOCKD_STATE_RESUME)) { + LOCK_SCREEN_TRACE_WARN("no need to resume/pause lockscreen"); + return; + } + + _state_enter(s_info.state, state, conf); + s_info.state = state; +} + + +/*! + * Handling feeded events from outside(the other module) + * Handlers + */ +static void _evt_handler_unlock(int state, int event, void *event_info) +{ + _state_transit(LOCKD_STATE_HIDE, NULL); + if (s_info.unlock_count == 0) { + _execute_cbs(DAEMON_EVENT_FIRST_UNLOCK, NULL); + } + s_info.unlock_count++; +} + +static void _evt_handler_lcd_on(int state, int event, void *event_info) +{ + _state_transit(LOCKD_STATE_WILL_RESUME, NULL); + _state_transit(LOCKD_STATE_RESUME, NULL); +} + +static void _evt_handler_lcd_will_off(int state, int event, void *event_info) +{ + int is_sequential = 1; + + if (s_info.lcd_off_sequence == 0) { + s_info.lcd_off_sequence = 1; + } else { + LOCK_SCREEN_TRACE_ERR("exceptional: lcd off event isn't sequencial"); + s_info.lcd_off_sequence = 0; + is_sequential = 0; + } + if (is_sequential == 0) { + _state_transit(LOCKD_STATE_WILL_RESUME, event_info); + _state_transit(LOCKD_STATE_RESUME, NULL); + _state_transit(LOCKD_STATE_PAUSE, NULL); + } else { + if (state == LOCKD_STATE_HIDE) { + _state_transit(LOCKD_STATE_WILL_RESUME, event_info); + } + } +} + +static void _evt_handler_lcd_off(int state, int event, void *event_info) +{ + if (s_info.lcd_off_sequence == 1) { + s_info.lcd_off_sequence = 0; + } else { + s_info.lcd_off_sequence = 2; + } + if (state == LOCKD_STATE_WILL_RESUME) { + _state_transit(LOCKD_STATE_RESUME, NULL); + } + _state_transit(LOCKD_STATE_PAUSE, NULL); +} + +static void _evt_handler_app_create(int state, int event, void *event_info) +{ + _state_transit(LOCKD_STATE_BOOT, NULL); +} + +static void _evt_handler_win_create(int state, int event, void *event_info) +{ + int state_hide = 0; + LKD_State_Config *conf = event_info; + if (conf != NULL) { + state_hide = conf->state_hide; + } + + if (_is_display_lockscreen() == 0) { + state_hide = 1; + } + + /* + * Decide initial lockscreeen state hide or show ? + */ + if (state_hide == 1) { + _state_transit(LOCKD_STATE_HIDE, conf); + } else { + _state_transit(LOCKD_STATE_WILL_RESUME, conf); + _state_transit(LOCKD_STATE_RESUME, conf); + if (lockd_lcd_state_get() == 0) { + _state_transit(LOCKD_STATE_PAUSE, conf); + } + } +} + +static void _evt_handler_view_ready(int state, int event, void *event_info) +{ + s_info.view_ready = 1; + + lockd_dbus_init(NULL); + lockd_event_init(); + + if (state == LOCKD_STATE_RESUME || state == LOCKD_STATE_WILL_RESUME) { + LOCK_SCREEN_TRACE_WARN("initial state:resume"); + _modules_resume(); + } else if (state == LOCKD_STATE_PAUSE || state == LOCKD_STATE_HIDE) { + LOCK_SCREEN_TRACE_WARN("initial state:pause"); + _modules_pause(); + } else { + LOCK_SCREEN_TRACE_ERR("initial state:undefined"); + } +} + +static void _evt_handler_win_become_visible(int state, int event, void *event_info) +{ + lockd_lock_state_set(VCONFKEY_IDLE_LOCK, 0.0); + _execute_cbs(DAEMON_EVENT_WIN_VISIBLE, NULL); +} + +static Eina_Bool _cache_flush_idler_cb(void *data) +{ + lockd_cache_flush(); + + return ECORE_CALLBACK_CANCEL; +} + +static Eina_Bool _vm_unlock_event_delay_cb(void *data) +{ + s_info.vm_delay_timer = NULL; + + if (s_info.is_win_hided == 1) { + view_mgr_event_handler(LOCKD_STATE_HIDE, LKD_EVT_UNLOCK, data); + s_info.is_win_hided_done = 1; + } + + return ECORE_CALLBACK_CANCEL; +} + +static void _evt_handler_win_become_invisible(int state, int event, void *event_info) +{ + if (s_info.is_win_hided == 1) { + lockd_lock_state_set(VCONFKEY_IDLE_UNLOCK, 0.0); + /* + * to prevent flickering, below event should be processed after window hided + */ + if (s_info.vm_delay_timer != NULL) { + ecore_timer_del(s_info.vm_delay_timer); + s_info.vm_delay_timer = NULL; + } + s_info.vm_delay_timer = ecore_timer_add(0.1, _vm_unlock_event_delay_cb, event_info); + } + ecore_idler_add(_cache_flush_idler_cb, NULL); + + _execute_cbs(DAEMON_EVENT_WIN_INVISIBLE, NULL); +} + +static void _evt_handler_conf_change(int state, int event, void *event_info) +{ + int property_id = (int)event_info; + + if (property_id == LKD_PROP_ID_LOCKTYPE) { + int locktype = get_locktype(); + + LOCK_SCREEN_TRACE_WARN("locktype:%d", locktype); + + if (locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) { + lockd_window_qp_enable_set(0); + } else { + lockd_window_qp_enable_set(1); + } + set_locktype(locktype); + + if (_is_display_lockscreen() == 0) { + _state_transit(LOCKD_STATE_HIDE, NULL); + } + } +} + +static void _evt_handler_app_pause(int state, int event, void *event_info) +{ + _execute_cbs(DAEMON_EVENT_APP_PAUSE, NULL); +} + +static void _evt_handler_app_resume(int state, int event, void *event_info) +{ + _execute_cbs(DAEMON_EVENT_APP_RESUME, NULL); +} + +static Eina_Bool _lcd_timeout_timer_cb(void *data) +{ + s_info.lcd_off_timer = NULL; + + if (s_info.is_win_hided == 0) { + int ret = display_change_state(LCD_OFF); + if (ret != 0) { + LOCK_SCREEN_TRACE_ERR("display_change_state(LCD_OFF) failed:%d", ret); + } else { + LOCK_SCREEN_TRACE_WARN("lcd off:%f", LKD_LCD_TIMEOUT_TIME); + } + } else { + LOCK_SCREEN_TRACE_ERR("exceptional, do not turned LCD in unlocked state"); + } + + return ECORE_CALLBACK_CANCEL; +} + +static void _lcd_timeout_timer_set(void) +{ + if (s_info.lcd_off_timer != NULL) { + ecore_timer_del(s_info.lcd_off_timer); + s_info.lcd_off_timer = NULL; + } + + LOCK_SCREEN_TRACE_WARN("lcd off timer set:%f", LKD_LCD_TIMEOUT_TIME); + s_info.lcd_off_timer = ecore_timer_add(LKD_LCD_TIMEOUT_TIME, _lcd_timeout_timer_cb, NULL); +} + +static void _lcd_timeout_timer_unset(void) +{ + if (s_info.lcd_off_timer != NULL) { + ecore_timer_del(s_info.lcd_off_timer); + s_info.lcd_off_timer = NULL; + LOCK_SCREEN_TRACE_WARN("lcd off timer unset"); + } +} + +static void _lock_bg_set(int enable) +{ + static int is_lock_in_bg = -1; + + if (is_lock_in_bg != enable) { + if (enable == 0) { + lockscreen_set_bg_off(); + } else { + lockscreen_set_bg_on(); + } + is_lock_in_bg = enable; + } +} + +static void _evt_handler_lcd_timeout(int state, int event, void *event_info) +{ + static int is_lcd_on = 1; + static int last_app_event = LKD_EVT_APP_RESUME; + static int last_view_event = LKD_EVT_VIEW_IDLE; + + if (s_info.is_win_hided == 0) { + switch (event) { + case LKD_EVT_LCD_ON: + if (last_view_event == LKD_EVT_VIEW_IDLE && last_app_event != LKD_EVT_APP_PAUSE) { + _lcd_timeout_timer_set(); + } + break; + case LKD_EVT_LCD_OFF: + _lcd_timeout_timer_unset(); + break; + case LKD_EVT_VIEW_IDLE: + if (is_lcd_on == 1 && last_app_event != LKD_EVT_APP_PAUSE) { + _lcd_timeout_timer_set(); + } + break; + case LKD_EVT_VIEW_GESTURED: + _lcd_timeout_timer_unset(); + break; + case LKD_EVT_QUICKPANEL_ON: + _lcd_timeout_timer_unset(); + _lock_bg_set(1); + break; + case LKD_EVT_QUICKPANEL_OFF: + if (last_view_event == LKD_EVT_VIEW_IDLE && last_app_event != LKD_EVT_APP_PAUSE) { + _lcd_timeout_timer_set(); + } + _lock_bg_set(0); + break; + case LKD_EVT_APP_PAUSE: + _lcd_timeout_timer_unset(); + _lock_bg_set(1); + break; + case LKD_EVT_APP_RESUME: + if (last_view_event == LKD_EVT_VIEW_IDLE && is_lcd_on == 1) { + _lcd_timeout_timer_set(); + } + _lock_bg_set(0); + break; + case LKD_EVT_LOCK: + _lock_bg_set(0); + break; + } + } else { + _lcd_timeout_timer_unset(); + _lock_bg_set(1); + } + + /* flag update */ + switch (event) { + case LKD_EVT_LCD_ON: + is_lcd_on = 1; + break; + case LKD_EVT_LCD_OFF: + is_lcd_on = 0; + break; + case LKD_EVT_VIEW_IDLE: + last_view_event = LKD_EVT_VIEW_IDLE; + break; + case LKD_EVT_VIEW_GESTURED: + last_view_event = LKD_EVT_VIEW_GESTURED; + break; + case LKD_EVT_APP_PAUSE: + last_app_event = LKD_EVT_APP_PAUSE; + break; + case LKD_EVT_APP_RESUME: + last_app_event = LKD_EVT_APP_RESUME; + break; + } +} + +/*! + * Event route + */ +static void _event_route(int event, void *event_info) +{ + int state = s_info.state; + + LOCK_SCREEN_TRACE_WARN("event:%x event_info:%x", event, event_info); + + if (state == LOCKD_STATE_DEAD && event != LKD_EVT_APP_CREATE) { + LOCK_SCREEN_TRACE_ERR("event %x isn't handled", event); + return; + } + if (state == LOCKD_STATE_HIDE && event == LKD_EVT_UNLOCK) { + LOCK_SCREEN_TRACE_ERR("already unlocked, event %x isn't handled", event); + return; + } + + static struct LKD_Evt_Handler fn_table[] = { + { + .event = LKD_EVT_UNLOCK, + .process = _evt_handler_unlock, + }, + { + .event = LKD_EVT_LCD_WILL_OFF, + .process = _evt_handler_lcd_will_off, + }, + { + .event = LKD_EVT_LCD_ON, + .process = _evt_handler_lcd_on, + }, + { + .event = LKD_EVT_LCD_OFF, + .process = _evt_handler_lcd_off, + }, + { + .event = LKD_EVT_WIN_BECOME_VISIBLE, + .process = _evt_handler_win_become_visible, + }, + { + .event = LKD_EVT_WIN_BECOME_INVISIBLE, + .process = _evt_handler_win_become_invisible, + }, + { + .event = LKD_EVT_CONF_CHANGED, + .process = _evt_handler_conf_change, + }, + { + .event = LKD_EVT_WIN_CREATE, + .process = _evt_handler_win_create, + }, + { + .event = LKD_EVT_APP_CREATE, + .process = _evt_handler_app_create, + }, + { + .event = LKD_EVT_APP_VIEW_READY, + .process = _evt_handler_view_ready, + }, + { + .event = LKD_EVT_APP_PAUSE, + .process = _evt_handler_app_pause, + }, + { + .event = LKD_EVT_APP_RESUME, + .process = _evt_handler_app_resume, + }, + + /* LCD timeout events */ + { + .event = LKD_EVT_LOCK, + .process = _evt_handler_lcd_timeout, + }, + { + .event = LKD_EVT_LCD_ON, + .process = _evt_handler_lcd_timeout, + }, + { + .event = LKD_EVT_LCD_OFF, + .process = _evt_handler_lcd_timeout, + }, + { + .event = LKD_EVT_APP_PAUSE, + .process = _evt_handler_lcd_timeout, + }, + { + .event = LKD_EVT_APP_RESUME, + .process = _evt_handler_lcd_timeout, + }, + { + .event = LKD_EVT_QUICKPANEL_ON, + .process = _evt_handler_lcd_timeout, + }, + { + .event = LKD_EVT_QUICKPANEL_OFF, + .process = _evt_handler_lcd_timeout, + }, + { + .event = LKD_EVT_VIEW_IDLE, + .process = _evt_handler_lcd_timeout, + }, + { + .event = LKD_EVT_VIEW_GESTURED, + .process = _evt_handler_lcd_timeout, + }, + /* LCD timeout events */ + { + .event = 0, + .process = NULL, + }, + }; + + int i = 0; + for (i = 0; fn_table[i].process != NULL; i++) { + if (event == fn_table[i].event && fn_table[i].process != NULL) { + fn_table[i].process(state, event, event_info); + } + } + + /*! + * feed a event to view manager + */ + if (s_info.view_ready == 1) { + if (event == LKD_EVT_WILL_LOCK || + event == LKD_EVT_LOCK || + event == LKD_EVT_VIEW_GESTURED || + event == LKD_EVT_VIEW_INPUT_BLOCK || + event == LKD_EVT_VIEW_INPUT_UNBLOCK || + event == LKD_EVT_CONF_CHANGED) { + view_mgr_event_handler(state, event, event_info); + } + } +} + +/*! + * Lock Daemon APIs + */ +void lockd_init(void) +{ + property_init(); +} + +void lockd_fini(void) +{ + _cbs_fini(); + + property_fini(); + lockd_dbus_fini(NULL); + lockd_event_fini(); + + _state_transit(LOCKD_STATE_DEAD, NULL); +} + + +static Eina_Bool _event_wait_timer_cb(void *data) +{ + int event = (int)data; + + s_info.wait_event = -1; + s_info.event_state = LOCKD_EVT_STATE_IDLE; + s_info.event_timer = NULL; + + _event_route(event, NULL); + + return ECORE_CALLBACK_CANCEL; +} + +static void _event_throttle(void) +{ + if (s_info.event_timer != NULL) { + ecore_timer_del(s_info.event_timer); + s_info.event_timer = NULL; + } + if (s_info.event_state == LOCKD_EVT_STATE_WAIT) { + s_info.event_state = LOCKD_EVT_STATE_IDLE; +#ifdef LKD_DEBUG + LOCK_SCREEN_TRACE_WARN("event:%x:%s", s_info.wait_event, _event_to_str(s_info.wait_event)); +#endif + _event_route(s_info.wait_event, NULL); + if (s_info.wait_event == LKD_EVT_UNLOCK) { + view_mgr_event_handler(LOCKD_STATE_HIDE, LKD_EVT_UNLOCK, NULL); + } + } +} + +void lockd_event(int event, void *event_info) +{ +#ifdef LKD_DEBUG + LOCK_SCREEN_TRACE_WARN("event:%x:%s", event, _event_to_str(event)); +#endif + + _event_throttle(); + _event_route(event, event_info); +} + +/*! + * Delayed event can't have event_info + */ +void lockd_event_delay(int event, double time) +{ +#ifdef LKD_DEBUG + LOCK_SCREEN_TRACE_WARN("dealyed event:%x:%s wait for:%f", event, _event_to_str(event), time); +#endif + + _event_throttle(); + + if (time > 0.0) { + s_info.wait_event = event; + s_info.event_state = LOCKD_EVT_STATE_WAIT; + s_info.event_timer = ecore_timer_add(time, _event_wait_timer_cb, (void*)event); + } else { + _event_route(event, NULL); + } +} + +LKD_State_Config *lockd_state_config_new(int state_hide, int locksound) +{ + LKD_State_Config *conf = (LKD_State_Config *) calloc(1, sizeof(LKD_State_Config)); + if (conf) { + conf->state_hide = state_hide; + conf->locksound = locksound; + } + + return conf; +} + +void lockd_state_config_del(LKD_State_Config *conf) +{ + free(conf); +} + +int lockd_unlock_count_get(void) +{ + return s_info.unlock_count; +} + +int lockd_is_locked(void) +{ + if (s_info.is_win_hided) { + return 1; + } + + return 0; +} diff --git a/src/daemon/dbus.c b/src/daemon/dbus.c new file mode 100755 index 0000000..3645630 --- /dev/null +++ b/src/daemon/dbus.c @@ -0,0 +1,325 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include + +#include "lockscreen-lite.h" + +static struct _info { + DBusConnection *connection; + Eina_List *cbs_list[DBUS_EVENT_MAX]; + int is_rotate_signal_added; +} s_info = { + .connection = NULL, + .cbs_list = {NULL, }, + .is_rotate_signal_added = 0, +}; + +typedef struct { + void (*result_cb)(void *, void *); + void *result_data; +} dbus_cb_s; + +int lockd_dbus_register_cb( + int type, + void (*result_cb)(void *, void *), void *result_data) +{ + retv_if(result_cb == NULL, LKD_RET_FAIL); + + dbus_cb_s *cb = calloc(1, sizeof(dbus_cb_s)); + retv_if(cb == NULL, LKD_RET_FAIL); + + cb->result_cb = result_cb; + cb->result_data = result_data; + + s_info.cbs_list[type] = eina_list_prepend(s_info.cbs_list[type], cb); + retv_if(s_info.cbs_list[type] == NULL, LKD_RET_FAIL); + + return LKD_RET_OK; +} + +void lockd_dbus_unregister_cb( + int type, + void (*result_cb)(void *, void *)) +{ + const Eina_List *l; + const Eina_List *n; + dbus_cb_s *cb; + EINA_LIST_FOREACH_SAFE(s_info.cbs_list[type], l, n, cb) { + continue_if(cb == NULL); + if (result_cb != cb->result_cb) continue; + s_info.cbs_list[type] = eina_list_remove(s_info.cbs_list[type], cb); + free(cb); + return; + } +} + +static void _execute_cbs(int type, void *event_info) +{ + dbus_cb_s *cb = NULL; + + Eina_List *list = eina_list_clone(s_info.cbs_list[type]); + EINA_LIST_FREE(list, cb) { + continue_if(cb == NULL); + continue_if(cb->result_cb == NULL); + + cb->result_cb(cb->result_data, event_info); + } +} + +static void _cbs_fini(void) +{ + int i = 0; + + const Eina_List *l = NULL; + const Eina_List *n = NULL; + dbus_cb_s *cb = NULL; + + for (i = 0; i < DBUS_EVENT_MAX; i++) { + EINA_LIST_FOREACH_SAFE(s_info.cbs_list[i], l, n, cb) { + free(cb); + } + } +} + +static DBusConnection *_dbus_connection_get(void) { + + if (s_info.connection == NULL) { + DBusError derror; + DBusConnection *connection = NULL; + + dbus_error_init(&derror); + connection = dbus_bus_get_private(DBUS_BUS_SYSTEM, &derror); + if (connection == NULL) { + LOCK_SCREEN_TRACE_ERR("Failed to get dbus connection:%s", derror.message); + dbus_error_free(&derror); + return NULL; + } + dbus_connection_setup_with_g_main(connection, NULL); + dbus_error_free(&derror); + + s_info.connection = connection; + } + + return s_info.connection; +} + +/* DBus message handler callback */ +static DBusHandlerResult _dbus_message_recv_cb(DBusConnection *connection, DBusMessage *message, void *data) +{ + if (dbus_message_is_signal(message, DBUS_DEVICED_DISPLAY_INTERFACE, DBUS_DEVICED_DISPLAY_MEMBER_LCD_ON)) { + LOCK_SCREEN_TRACE_WARN("LCD on"); + int ret = 0; + DBusError derror; + const char *state = NULL; + dbus_error_init(&derror); + ret = dbus_message_get_args(message, &derror, DBUS_TYPE_STRING, &state, DBUS_TYPE_INVALID); + if (!ret) { + LOCK_SCREEN_TRACE_ERR("Failed to get reply (%s:%s)", derror.name, derror.message); + } + _execute_cbs(DBUS_EVENT_LCD_ON, (void*)state); + dbus_error_free(&derror); + } + else if (dbus_message_is_signal(message, DBUS_DEVICED_DISPLAY_INTERFACE, DBUS_DEVICED_DISPLAY_MEMBER_LCD_OFF)) + { + LOCK_SCREEN_TRACE_WARN("LCD off"); + int ret = 0; + DBusError derror; + const char *state = NULL; + dbus_error_init(&derror); + ret = dbus_message_get_args(message, &derror, DBUS_TYPE_STRING, &state, DBUS_TYPE_INVALID); + if (!ret) { + LOCK_SCREEN_TRACE_ERR("Failed to get reply (%s:%s)", derror.name, derror.message); + } + _execute_cbs(DBUS_EVENT_LCD_OFF, (void*)state); + dbus_error_free(&derror); + } + else if (dbus_message_is_signal(message, DBUS_ROTATION_INTERFACE, DBUS_ROTATION_MEMBER_CHANGED)) + { + int ret = 0; + DBusError derror; + int state = 0; + dbus_error_init(&derror); + ret = dbus_message_get_args(message, &derror, DBUS_TYPE_INT32, &state, DBUS_TYPE_INVALID); + if (!ret) { + LOCK_SCREEN_TRACE_ERR("Failed to get reply (%s:%s)", derror.name, derror.message); + } + + int angle = (state - 1) * 90; + angle = (angle < 0) ? 0 : angle; + + LOCK_SCREEN_TRACE_WARN("rotation changed:%d", angle); + _execute_cbs(DBUS_EVENT_ANGLE_CHANGED, (void*)angle); + dbus_error_free(&derror); + } + + return DBUS_HANDLER_RESULT_HANDLED; +} + +static int _dbus_sig_attach(char *path, char *interface, char *member) +{ + DBusError derror; + DBusConnection *connection = NULL; + retv_if(path == NULL, LKD_RET_FAIL); + retv_if(interface == NULL, LKD_RET_FAIL); + + /* DBUS */ + connection = _dbus_connection_get(); + if (connection == NULL) { + LOCK_SCREEN_TRACE_ERR("failed to get DBUS connection"); + return LKD_RET_FAIL; + } + + dbus_error_init(&derror); + + /* Set the DBus rule for the wakeup gesture signal */ + char rules[512] = {0,}; + sprintf(rules, "path='%s',type='signal',interface='%s',member='%s'", path, interface, member); + dbus_bus_add_match(connection, rules, &derror); + if (dbus_error_is_set(&derror)) { + LOCK_SCREEN_TRACE_ERR("D-BUS rule adding error: %s", derror.message); + dbus_error_free(&derror); + return LKD_RET_FAIL; + } + + /* Set the callback function */ + if(dbus_connection_add_filter(connection, _dbus_message_recv_cb, NULL, NULL) == FALSE) { + LOCK_SCREEN_TRACE_ERR("Failed to add dbus filter : %s", derror.message); + dbus_error_free(&derror); + return LKD_RET_FAIL; + } + + dbus_error_free(&derror); + + return LKD_RET_OK; +} + +static int _dbus_sig_dettach(const char *path, const char *interface, const char *member) +{ + int ret = LKD_RET_OK; + DBusError err; + DBusConnection *connection = NULL; + retv_if(path == NULL, LKD_RET_FAIL); + retv_if(interface == NULL, LKD_RET_FAIL); + + connection = _dbus_connection_get(); + if (connection == NULL) { + LOCK_SCREEN_TRACE_ERR("failed to get DBUS connection"); + return LKD_RET_FAIL; + } + + dbus_error_init(&err); + dbus_connection_remove_filter(connection, _dbus_message_recv_cb, NULL); + + char rules[512] = {0,}; + + snprintf(rules, sizeof(rules), "path='%s',type='signal',interface='%s',member='%s'", path, interface, member); + dbus_bus_remove_match(connection, rules, &err); + if(dbus_error_is_set(&err)) { + LOCK_SCREEN_TRACE_ERR("Failed to dbus_bus_remove_match : %s", err.message); + ret = LKD_RET_FAIL; + } + + dbus_error_free(&err); + + return ret; +} + +void *lockd_dbus_connection_get(void) +{ + return (void *)_dbus_connection_get(); +} + +void lockd_dbus_init(void *data) +{ + if(_dbus_sig_attach( + DBUS_DEVICED_DISPLAY_PATH, + DBUS_DEVICED_DISPLAY_INTERFACE, + DBUS_DEVICED_DISPLAY_MEMBER_LCD_ON) != LKD_RET_OK) { + LOCK_SCREEN_TRACE_ERR("Failed to attach LCD on signal filter"); + } + + if(_dbus_sig_attach( + DBUS_DEVICED_DISPLAY_PATH, + DBUS_DEVICED_DISPLAY_INTERFACE, + DBUS_DEVICED_DISPLAY_MEMBER_LCD_OFF) != LKD_RET_OK) { + LOCK_SCREEN_TRACE_ERR("Failed to attach LCD off signal filter"); + } +} + +void lockd_dbus_fini(void *data) +{ + _dbus_sig_dettach( + DBUS_DEVICED_DISPLAY_PATH, + DBUS_DEVICED_DISPLAY_INTERFACE, + DBUS_DEVICED_DISPLAY_MEMBER_LCD_ON); + + _dbus_sig_dettach( + DBUS_DEVICED_DISPLAY_PATH, + DBUS_DEVICED_DISPLAY_INTERFACE, + DBUS_DEVICED_DISPLAY_MEMBER_LCD_OFF); + + if(s_info.connection != NULL) { + dbus_connection_close(s_info.connection); + dbus_connection_unref(s_info.connection); + s_info.connection = NULL; + + LOCK_SCREEN_TRACE_DBG("DBUS connection is closed"); + } + + _cbs_fini(); +} + +static void _resume(LKD_Module_Data *md) +{ + if (lockd_unlock_count_get() > 0) { + if (s_info.is_rotate_signal_added == 0) { + if(_dbus_sig_attach( + DBUS_ROTATION_PATH, + DBUS_ROTATION_INTERFACE, + DBUS_ROTATION_MEMBER_CHANGED) != LKD_RET_OK) { + LOCK_SCREEN_TRACE_ERR("Failed to attach rotation signal filter"); + } else { + s_info.is_rotate_signal_added = 1; + } + } + } +} + +static void _pause(LKD_Module_Data *md) +{ + if (lockd_unlock_count_get() > 0) { + if (s_info.is_rotate_signal_added == 1) { + if(_dbus_sig_dettach( + DBUS_ROTATION_PATH, + DBUS_ROTATION_INTERFACE, + DBUS_ROTATION_MEMBER_CHANGED) != LKD_RET_OK) { + LOCK_SCREEN_TRACE_ERR("Failed to deattach rotation signal filter"); + } else { + s_info.is_rotate_signal_added = 0; + } + } + } +} + +LKD_Module g_mod_dbus = { + .id = "dbus", + .notifying = 1, + .resume = _resume, + .pause = _pause, +}; diff --git a/src/daemon/dbus_util.c b/src/daemon/dbus_util.c new file mode 100755 index 0000000..fc59cf3 --- /dev/null +++ b/src/daemon/dbus_util.c @@ -0,0 +1,248 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include + +#include "lockscreen-lite.h" + +#define DBUS_CPU_BOOSTER_SEC 200 +#define DBUS_LCD_ON_SEC 10000 +#define DBUS_REPLY_TIMEOUT (120 * 1000) + +static int _append_variant(DBusMessageIter *iter, const char *sig, char *param[]) +{ + char *ch; + int i; + int int_type; + uint64_t int64_type; + + if (!sig || !param) + return 0; + + for (ch = (char*)sig, i = 0; *ch != '\0'; ++i, ++ch) { + switch (*ch) { + case 'i': + int_type = atoi(param[i]); + dbus_message_iter_append_basic(iter, DBUS_TYPE_INT32, &int_type); + break; + case 'u': + int_type = atoi(param[i]); + dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT32, &int_type); + break; + case 't': + int64_type = atoi(param[i]); + dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT64, &int64_type); + break; + case 's': + dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, ¶m[i]); + break; + default: + return -EINVAL; + } + } + + return 0; +} + +#if 0 +static int _dbus_message_send(const char *path, const char *interface, const char *member) +{ + int ret = 0; + DBusMessage *msg = NULL; + DBusConnection *conn = NULL; + + conn = (DBusConnection *)lockd_dbus_connection_get(); + if (!conn) { + LOCK_SCREEN_TRACE_ERR("dbus_bus_get error"); + return -1; + } + + msg = dbus_message_new_signal(path, interface, member); + if (!msg) { + LOCK_SCREEN_TRACE_ERR("dbus_message_new_signal(%s:%s-%s)", path, interface, member); + return -1; + } + + ret = dbus_connection_send(conn, msg, NULL); //async call + dbus_message_unref(msg); + if (ret != TRUE) { + LOCK_SCREEN_TRACE_ERR("dbus_connection_send error(%s:%s-%s)", path, interface, member); + return -ECOMM; + } + LOCK_SCREEN_TRACE_DBG("dbus_connection_send, ret=%d", ret); + return 0; +} +#endif + +static int _dbus_method_async_call(const char *dest, const char *path, + const char *interface, const char *method, + const char *sig, char *param[]) +{ + int ret = 0; + DBusConnection *conn = NULL; + DBusMessage *msg = NULL; + DBusMessageIter iter; + DBusError err; + + conn = lockd_dbus_connection_get(); + if (!conn) { + LOCK_SCREEN_TRACE_ERR("dbus_bus_get error"); + return -1; + } + + msg = dbus_message_new_method_call(dest, path, interface, method); + if (!msg) { + LOCK_SCREEN_TRACE_DBG("dbus_message_new_method_call(%s:%s-%s)", path, interface, method); + return -1; + } + + dbus_message_iter_init_append(msg, &iter); + ret = _append_variant(&iter, sig, param); + if (ret < 0) { + LOCK_SCREEN_TRACE_ERR("append_variant error(%d)", ret); + dbus_message_unref(msg); + return -1; + } + + dbus_error_init(&err); + + ret = dbus_connection_send(conn, msg, NULL); //async call + dbus_message_unref(msg); + if (ret != TRUE) { + LOCK_SCREEN_TRACE_ERR("dbus_connection_send error(%s:%s:%s-%s)", dest, path, interface, method); + LOCK_SCREEN_TRACE_ERR("dbus_connection_send error(%s:%s)", err.name, err.message); + return -ECOMM; + } + + LOCK_SCREEN_TRACE_DBG("dbus_connection_send, ret=%d", ret); + dbus_error_free(&err); + + return 0; +} + +static DBusMessage *_dbus_method_sync_call(const char *dest, const char *path, + const char *interface, const char *method, + const char *sig, char *param[]) +{ + int ret = 0; + DBusConnection *conn = NULL; + DBusMessage *msg = NULL; + DBusMessageIter iter; + DBusMessage *reply = NULL; + DBusError err; + + conn = lockd_dbus_connection_get(); + if (!conn) { + LOCK_SCREEN_TRACE_ERR("dbus_bus_get error"); + return NULL; + } + + msg = dbus_message_new_method_call(dest, path, interface, method); + if (!msg) { + LOCK_SCREEN_TRACE_DBG("dbus_message_new_method_call(%s:%s-%s)", path, interface, method); + return NULL; + } + + dbus_message_iter_init_append(msg, &iter); + ret = _append_variant(&iter, sig, param); + if (ret < 0) { + LOCK_SCREEN_TRACE_ERR("append_variant error(%d)", ret); + return NULL; + } + + dbus_error_init(&err); + + reply = dbus_connection_send_with_reply_and_block(conn, msg, DBUS_REPLY_TIMEOUT, &err); + if (!reply) { + LOCK_SCREEN_TRACE_ERR("dbus_connection_send error(No reply): (%s:%s:%s:%s)", dest, path, interface, method); + } + + if (dbus_error_is_set(&err)) { + LOCK_SCREEN_TRACE_ERR("dbus_connection_send error(%s:%s)", err.name, err.message); + reply = NULL; + } + + dbus_message_unref(msg); + dbus_error_free(&err); + + return reply; +} + +void lockd_dbus_lcd_on_signal_send(Eina_Bool wristup) +{ + int ret = 0; + char *param[1]; + + if (wristup == EINA_TRUE) { + char val[32]; + snprintf(val, sizeof(val), "%d", DBUS_LCD_ON_SEC); + param[0] = val; + + ret = _dbus_method_async_call( + DBUS_DEVICED_BUS_NAME, + DBUS_DEVICED_DISPLAY_PATH, + DBUS_DEVICED_DISPLAY_INTERFACE, + DBUS_DEVICED_DISPLAY_METHOD_CUSTOM_LCD_ON, + "i", + param); + } else { + param[0] = DBUS_DEVICED_DISPLAY_COMMAND_LCD_ON; + + ret = _dbus_method_async_call( + DBUS_DEVICED_BUS_NAME, + DBUS_DEVICED_DISPLAY_PATH, + DBUS_DEVICED_DISPLAY_INTERFACE, + DBUS_DEVICED_DISPLAY_METHOD_CHANGE_STATE, + "s", + param); + } + LOCK_SCREEN_TRACE_ERR("Sending LCD ON request signal wristup:%d result:%d", wristup, ret); +} + +int lockd_dbus_angle_get(void) +{ + int ret = 0; + DBusError err; + DBusMessage *msg = NULL; + + msg = _dbus_method_sync_call( + DBUS_COORD_INTEFACE, + DBUS_ROTATION_PATH, + DBUS_ROTATION_INTERFACE, + DBUS_ROTATION_METHOD_DEGREE, + NULL, NULL); + retv_if(msg == NULL, 0); + + dbus_error_init(&err); + + int state = 0; + ret = dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &state, DBUS_TYPE_INVALID); + if (!ret) { + LOCK_SCREEN_TRACE_ERR("Failed to get reply (%s:%s)", err.name, err.message); + } + + dbus_message_unref(msg); + dbus_error_free(&err); + + int angle = (state - 1) * 90; + angle = (angle < 0) ? 0 : angle; + + LOCK_SCREEN_TRACE_WARN("angle:%d", angle); + + return angle; +} diff --git a/src/daemon/event.c b/src/daemon/event.c new file mode 100755 index 0000000..77b4afa --- /dev/null +++ b/src/daemon/event.c @@ -0,0 +1,182 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include + +#include "lockscreen-lite.h" + +static struct _s_info { + Ecore_Event_Handler *hdl; +} s_info = { + .hdl = NULL, +}; + +#if 0 +static void _lcd_state_cb(keynode_t *node, void *data) +{ + static int prev_state = -1; + int state = vconf_keynode_get_int(node); + + if(prev_state == VCONFKEY_PM_STATE_LCDOFF && state == VCONFKEY_PM_STATE_NORMAL) { + lockd_event(LKD_EVT_LCD_ON, NULL); + } + + prev_state = state; +} +#endif + +static void _lcd_off_source_cb(keynode_t *node, void *data) +{ + LOCK_SCREEN_TRACE_WARN("Vconf LCD off"); + lockd_event(LKD_EVT_LCD_OFF, NULL); +} + +static void _lcd_on_cb(void *user_data, void *event_info) +{ + LOCK_SCREEN_TRACE_WARN("Dbus LCD on"); + lockd_event(LKD_EVT_LCD_ON, NULL); +} + +#define LCD_OFF_REASON_POWERKEY "powerkey" +static void _lcd_off_cb(void *user_data, void *event_info) +{ + char *state = (char *)event_info; + LOCK_SCREEN_TRACE_WARN("Dbus LCD off:%s", state); + + if (state != NULL) { + if (strcmp(state, LCD_OFF_REASON_POWERKEY) != 0) { + LKD_State_Config *conf = lockd_state_config_new(0, 0); + lockd_event(LKD_EVT_LCD_WILL_OFF, conf); + lockd_state_config_del(conf); + return; + } + } + + lockd_event(LKD_EVT_LCD_WILL_OFF, NULL); +} + +static void _lock_state_changed_cb(keynode_t *node, void *data) +{ + int set_by_me = 0; + int locktype = 0; + int lockstate = vconf_keynode_get_int(node); + + set_by_me = lockd_lock_state_flag_get(); + lockd_lock_state_flag_set(0); + + if (lockstate == VCONFKEY_IDLE_UNLOCK) { + property_get_int(LKD_PROP_ID_LOCKTYPE, &locktype); + if (locktype != SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD && + locktype != SETTING_SCREEN_LOCK_TYPE_PASSWORD) { + if (set_by_me == 0) { + lockd_event_delay(LKD_EVT_UNLOCK, 0.4); + } + } + } +} + +static Eina_Bool _ecore_event_client_message_cb(void *data, int type, void *event) +{ + Ecore_X_Event_Client_Message *ev = event; + retv_if(ev == NULL, ECORE_CALLBACK_RENEW); + + if (ev->message_type == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE) { + if (ev->data.l[0] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF) { + LOCK_SCREEN_TRACE_WARN("quickpanel is closed"); + lockd_event(LKD_EVT_QUICKPANEL_OFF, NULL); + } else if (ev->data.l[0] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON) { + LOCK_SCREEN_TRACE_WARN("quickpanel is opened"); + lockd_event(LKD_EVT_QUICKPANEL_ON, NULL); + } else { + LOCK_SCREEN_TRACE_ERR("invalid message"); + } + } + + return ECORE_CALLBACK_RENEW; +} + +static void _ecore_event_init(void) +{ + Ecore_Event_Handler *hdl = NULL; + + if (s_info.hdl == NULL) { + hdl = ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, + _ecore_event_client_message_cb, NULL); + if (hdl == NULL) { + LOCK_SCREEN_TRACE_ERR("failed to add handler(ECORE_X_EVENT_CLIENT_MESSAGE)"); + } + + s_info.hdl = hdl; + } +} + +static void _ecore_event_fini(void) +{ + if (s_info.hdl != NULL) { + ecore_event_handler_del(s_info.hdl); + s_info.hdl = NULL; + } +} + +void lockd_event_init(void) +{ +#if 0 + if(vconf_notify_key_changed(VCONFKEY_PM_STATE, _lcd_state_cb, NULL)) { + LOCK_SCREEN_TRACE_ERR("Failed to set callback for VCONFKEY_PM_STATE"); + } +#endif + if(vconf_notify_key_changed(VCONFKEY_PM_LCDOFF_SOURCE, _lcd_off_source_cb, NULL)) { + LOCK_SCREEN_TRACE_ERR("Failed to set callback for VCONFKEY_PM_LCDOFF_SOURCE"); + } + + lockd_lock_state_flag_set(0); + if(vconf_notify_key_changed(VCONFKEY_IDLE_LOCK_STATE, _lock_state_changed_cb, NULL)) { + LOCK_SCREEN_TRACE_ERR("Failed to set callback for VCONFKEY_IDLE_LOCK_STATE"); + } + + if (lockd_dbus_register_cb(DBUS_EVENT_LCD_ON, _lcd_on_cb, NULL) != LKD_RET_OK) { + LOCK_SCREEN_TRACE_ERR("Failed to register lcd status changed cb"); + } + if (lockd_dbus_register_cb(DBUS_EVENT_LCD_OFF, _lcd_off_cb, NULL) != LKD_RET_OK) { + LOCK_SCREEN_TRACE_ERR("Failed to register lcd status changed cb"); + } + + _ecore_event_init(); +} + +void lockd_event_fini(void) +{ +#if 0 + if(vconf_ignore_key_changed(VCONFKEY_PM_STATE, _lcd_state_cb)) { + LOCK_SCREEN_TRACE_ERR("Failed to unset callback for VCONFKEY_PM_STATE"); + } +#endif + if(vconf_ignore_key_changed(VCONFKEY_PM_LCDOFF_SOURCE, _lcd_off_source_cb)) { + LOCK_SCREEN_TRACE_ERR("Failed to unset callback for VCONFKEY_PM_STATE"); + } + if(vconf_ignore_key_changed(VCONFKEY_IDLE_LOCK_STATE, _lock_state_changed_cb)) { + LOCK_SCREEN_TRACE_ERR("Failed to unset callback for VCONFKEY_IDLE_LOCK_STATE"); + } + + lockd_dbus_unregister_cb(DBUS_EVENT_LCD_ON, _lcd_on_cb); + lockd_dbus_unregister_cb(DBUS_EVENT_LCD_OFF, _lcd_off_cb); + + _ecore_event_fini(); +} diff --git a/src/daemon/module.c b/src/daemon/module.c new file mode 100755 index 0000000..63a1e71 --- /dev/null +++ b/src/daemon/module.c @@ -0,0 +1,310 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include "lockscreen-lite.h" + +extern LKD_Module g_mod_lockscreen_default; +extern LKD_Module g_mod_battery; +extern LKD_Module g_mod_complex_password; +extern LKD_Module g_mod_contextual_info; +extern LKD_Module g_mod_control_panel; +extern LKD_Module g_mod_control_panel_password; +extern LKD_Module g_mod_default_unlock; +extern LKD_Module g_mod_notification_panel; +extern LKD_Module g_mod_progress_circle; +extern LKD_Module g_mod_simple_password; +extern LKD_Module g_mod_sim_state; +extern LKD_Module g_mod_weather; +extern LKD_Module g_mod_datetime; +extern LKD_Module g_mod_background; +extern LKD_Module g_mod_underbar; +extern LKD_Module g_mod_camera; +extern LKD_Module g_mod_dbus; + +LKD_Module *ld_modules_boot[] = { + &g_mod_lockscreen_default, // priorty of this module is the hightest + &g_mod_dbus, + &g_mod_battery, + &g_mod_complex_password, + &g_mod_contextual_info, + &g_mod_control_panel, + &g_mod_control_panel_password, + &g_mod_default_unlock, + &g_mod_notification_panel, + &g_mod_progress_circle, + &g_mod_simple_password, + &g_mod_sim_state, + &g_mod_weather, + &g_mod_datetime, + &g_mod_background, + &g_mod_underbar, + &g_mod_camera, +}; + +LKD_Module *ld_modules_all[] = { + &g_mod_lockscreen_default, // priorty of this module is the hightest + &g_mod_dbus, + &g_mod_battery, + &g_mod_complex_password, + &g_mod_contextual_info, + &g_mod_control_panel, + &g_mod_control_panel_password, + &g_mod_default_unlock, + &g_mod_notification_panel, + &g_mod_progress_circle, + &g_mod_simple_password, + &g_mod_sim_state, + &g_mod_weather, + &g_mod_datetime, + &g_mod_background, + &g_mod_underbar, + &g_mod_camera, +}; + +/* + * module APIs for modules + */ +LKD_Module *module_get(const char *id) +{ + int i = 0; + + for (i = 0; i < sizeof(ld_modules_all) / sizeof(ld_modules_all[0]); i++) { + if (ld_modules_all[i]->id) { + if (strcmp(ld_modules_all[i]->id, id) == 0) { + return ld_modules_all[i]; + } + } + } + + return NULL; +} + +int module_init(LKD_Module *module, void *user_data) +{ + int ret = LKD_RET_FAIL; + retv_if(module == NULL, LKD_RET_FAIL); + + if (module->is_initialized == 0) { + module->is_initialized = 1; + + memset(&(module->md), 0x0, sizeof(LKD_Module_Data)); + + module->md.data = user_data; + if (module->init != NULL) { + ret = module->init(&(module->md)); + } + } else { + LOCK_SCREEN_TRACE_ERR("module:%s is already initialized", module->id); + } + + return ret; +} + +int module_fini(LKD_Module *module) +{ + int ret = LKD_RET_FAIL; + retv_if(module == NULL, LKD_RET_FAIL); + + if (module->is_initialized == 1) { + if (module->fini != NULL) { + ret = module->fini(&(module->md)); + } + } + module->is_initialized = 0; + memset(&(module->md), 0x0, sizeof(LKD_Module_Data)); + + return ret; +} + +Evas_Object *module_view_create(Evas_Object *parent, LKD_Module *module) +{ + void *view = NULL; + retv_if(module == NULL, NULL); + retv_if(module->create_view == NULL, NULL); + + if (module->md.view != NULL) { + LOCK_SCREEN_TRACE_WARN("view of %s is already created(%p)", module->id, module->md.view); + } + + view = module->create_view(parent, &(module->md)); + if (view != NULL) { + module->md.view = view; + } + + return view; +} + +int module_view_destroy(LKD_Module *module) +{ + retv_if(module == NULL, LKD_RET_FAIL); + + if (module->destroy_view != NULL) { + module->destroy_view(&(module->md)); + } + module->md.view = NULL; + + return LKD_RET_OK; +} + + +Evas_Object *module_view_get(LKD_Module *module) +{ + retv_if(module == NULL, NULL); + + return (module->md.view); +} + +void module_data_set(LKD_Module *module, void *data) +{ + ret_if(module == NULL); + + module->md.data = data; +} + +void *module_data_get(LKD_Module *module) +{ + retv_if(module == NULL, NULL); + + return module->md.data; +} + + +/* + * module APIs for modules + */ +void modules_init(int profile) +{ + int ret = 0; + int i = 0, num_modules = 0; + LKD_Module **modules = NULL; + + if (profile == LKD_MOD_BOOT) { + modules = ld_modules_boot; + num_modules = sizeof(ld_modules_boot) / sizeof(ld_modules_boot[0]); + } else if (profile == LKD_MOD_ALL) { + modules = ld_modules_all; + num_modules = sizeof(ld_modules_all) / sizeof(ld_modules_all[0]); + } + ret_if(modules == NULL); + + for (i = 0; i < num_modules; i++) { + if (modules[i]) { + if (modules[i]->init) { + ret = modules[i]->init(&(modules[i]->md)); + if (ret != LKD_RET_OK) { + LOCK_SCREEN_TRACE_ERR("init module:%s is failed(%d)", modules[i]->id, ret); + } + } + } + } +} + +void modules_fini(int profile) +{ + int ret = 0; + int i = 0, num_modules = 0; + LKD_Module **modules = NULL; + + if (profile == LKD_MOD_BOOT) { + modules = ld_modules_boot; + num_modules = sizeof(ld_modules_boot) / sizeof(ld_modules_boot[0]); + } else if (profile == LKD_MOD_ALL) { + modules = ld_modules_all; + num_modules = sizeof(ld_modules_all) / sizeof(ld_modules_all[0]); + } + ret_if(modules == NULL); + + for (i = 0; i < num_modules; i++) { + if (modules[i]) { + if (modules[i]->fini) { + ret = modules[i]->fini(&(modules[i]->md)); + if (ret != LKD_RET_OK) { + LOCK_SCREEN_TRACE_ERR("fini module:%s is failed(%d)", modules[i]->id, ret); + } + } + } + } +} + +void modules_language_changed(void) +{ + int i = 0; + + for (i = 0; i < sizeof(ld_modules_all) / sizeof(ld_modules_all[0]); i++) { + if (ld_modules_all[i]->notifying == 1 && ld_modules_all[i]->language_changed) { + ld_modules_all[i]->language_changed(&(ld_modules_all[i]->md)); + } + } +} + +void modules_resume(void) +{ + int i = 0; + + for (i = 0; i < sizeof(ld_modules_all) / sizeof(ld_modules_all[0]); i++) { + if (ld_modules_all[i]->notifying == 1 && ld_modules_all[i]->resume) { + ld_modules_all[i]->resume(&(ld_modules_all[i]->md)); + } + } +} + +void modules_pause(void) +{ + int i = 0; + + for (i = 0; i < sizeof(ld_modules_all) / sizeof(ld_modules_all[0]); i++) { + if (ld_modules_all[i]->notifying == 1 && ld_modules_all[i]->pause) { + ld_modules_all[i]->pause(&(ld_modules_all[i]->md)); + } + } +} + +void modules_load(void) +{ + int i = 0; + + for (i = 0; i < sizeof(ld_modules_all) / sizeof(ld_modules_all[0]); i++) { + if (ld_modules_all[i]->notifying == 1 && ld_modules_all[i]->load) { + ld_modules_all[i]->load(&(ld_modules_all[i]->md)); + } + } +} + +void modules_unload(void) +{ + int i = 0; + + for (i = 0; i < sizeof(ld_modules_all) / sizeof(ld_modules_all[0]); i++) { + if (ld_modules_all[i]->notifying == 1 && ld_modules_all[i]->unload) { + ld_modules_all[i]->unload(&(ld_modules_all[i]->md)); + } + } +} + +void modules_property_changed(int property_id) +{ + int i = 0; + + for (i = 0; i < sizeof(ld_modules_all) / sizeof(ld_modules_all[0]); i++) { + if (ld_modules_all[i]->notifying == 1 && ld_modules_all[i]->property_changed) { + if (ld_modules_all[i]->property_list & property_id) + ld_modules_all[i]->property_changed(&(ld_modules_all[i]->md), property_id); + } + } +} diff --git a/src/daemon/property.c b/src/daemon/property.c new file mode 100755 index 0000000..a6b16df --- /dev/null +++ b/src/daemon/property.c @@ -0,0 +1,521 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include "lockscreen-lite.h" + +#define LKD_PROP_STATE_UNUSABLE 0 +#define LKD_PROP_STATE_USABLE 1 + +enum LKD_Property_Src { + LKD_PROP_SRC_VCONF_INT = 0, + LKD_PROP_SRC_VCONF_BOOL, + LKD_PROP_SRC_VCONF_STR, + LKD_PROP_SRC_CUSTOM, + LKD_PROP_SRC_MAX, +}; + +enum LKD_Property_Type { + LKD_PROP_TYPE_INT = 0, + LKD_PROP_TYPE_BOOL, + LKD_PROP_TYPE_STR, +}; + +typedef struct _LKD_Property { + int id; + int type; + int state; + + int listen; + int cache; + int listening; + + int source_type; + const char *source_key; + + int value_int; + char *value_str; + int value_old_int; + char *value_old_str; + +} LKD_Property; + +static int _vconf_get(LKD_Property *conf); +static int _vconf_init(LKD_Property *conf); +static void _vconf_cb(keynode_t *node, void *data); + +static struct _s_info { + int num_props; +} s_info = { + .num_props = 0, +}; + +LKD_Property lkd_g_props[] = { + { + .id = LKD_PROP_ID_LOCKTYPE, + .type = LKD_PROP_TYPE_INT, + .state = LKD_PROP_STATE_UNUSABLE, + .listen = 1, + + .source_type = LKD_PROP_SRC_VCONF_INT, + .source_key = VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, + }, + { + .id = LKD_PROP_ID_LOCKTYPE, + .type = LKD_PROP_TYPE_INT, + .state = LKD_PROP_STATE_UNUSABLE, + .listen = 1, + + .source_type = LKD_PROP_SRC_VCONF_INT, + .source_key = VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, + }, + { + .id = LKD_PROP_ID_PIN_AFTER_SWIPE_ENABLED, + .type = LKD_PROP_TYPE_BOOL, + .state = LKD_PROP_STATE_UNUSABLE, + .listen = 1, + + .source_type = LKD_PROP_SRC_VCONF_BOOL, + .source_key = VCONFKEY_LOCKSCREEN_ENTER_PASSWORD_AFTER_SWIPING, + }, + { + .id = LKD_PROP_ID_WEATHER_STATE, + .type = LKD_PROP_TYPE_BOOL, + .state = LKD_PROP_STATE_UNUSABLE, + .listen = 1, + + .source_type = LKD_PROP_SRC_VCONF_BOOL, + .source_key = VCONFKEY_LOCKSCREEN_WEATHER_DISPLAY, + }, + { + .id = LKD_PROP_ID_CAMERA_SHORTCUT_ENABLED, + .type = LKD_PROP_TYPE_BOOL, + .state = LKD_PROP_STATE_UNUSABLE, + .listen = 1, + + .source_type = LKD_PROP_SRC_VCONF_BOOL, + .source_key = VCONFKEY_LOCKSCREEN_CAMERA_QUICK_ACCESS, + }, + { + .id = LKD_PROP_ID_DUALCLOCK_ENABLED, + .type = LKD_PROP_TYPE_BOOL, + .state = LKD_PROP_STATE_UNUSABLE, + .listen = 1, + + .source_type = LKD_PROP_SRC_VCONF_BOOL, + .source_key = VCONFKEY_LOCKSCREEN_DUAL_CLOCK_DISPLAY, + }, + { + .id = LKD_PROP_ID_SOUND_LOCK_ENABLED, + .type = LKD_PROP_TYPE_BOOL, + .state = LKD_PROP_STATE_UNUSABLE, + .listen = 1, + + .source_type = LKD_PROP_SRC_VCONF_BOOL, + .source_key = VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, + }, + { + .id = LKD_PROP_ID_TAP_SOUND_ENABLED, + .type = LKD_PROP_TYPE_BOOL, + .state = LKD_PROP_STATE_UNUSABLE, + .listen = 1, + + .source_type = LKD_PROP_SRC_VCONF_BOOL, + .source_key = VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, + }, + { + .id = LKD_PROP_ID_BUTTON_SOUND_ENABLED, + .type = LKD_PROP_TYPE_BOOL, + .state = LKD_PROP_STATE_UNUSABLE, + .listen = 1, + + .source_type = LKD_PROP_SRC_VCONF_BOOL, + .source_key = VCONFKEY_SETAPPL_BUTTON_SOUNDS_BOOL, + }, + + /*properties for battery */ + { + .id = LKD_PROP_ID_SYSMAN_CHARGER_STATUS, + .type = LKD_PROP_TYPE_INT, + .state = LKD_PROP_STATE_UNUSABLE, + .listen = 1, + + .source_type = LKD_PROP_SRC_VCONF_INT, + .source_key = VCONFKEY_SYSMAN_CHARGER_STATUS, + }, + { + .id = LKD_PROP_ID_SYSMAN_BATTERY_CAPACITY, + .type = LKD_PROP_TYPE_INT, + .state = LKD_PROP_STATE_UNUSABLE, + .listen = 1, + + .source_type = LKD_PROP_SRC_VCONF_INT, + .source_key = VCONFKEY_SYSMAN_BATTERY_CAPACITY, + }, + { + .id = LKD_PROP_ID_SYSMAN_BATTERY_CHARGE_NOW, + .type = LKD_PROP_TYPE_INT, + .state = LKD_PROP_STATE_UNUSABLE, + .listen = 1, + + .source_type = LKD_PROP_SRC_VCONF_INT, + .source_key = VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, + }, + { + .id = LKD_PROP_ID_SYSMAN_BATTERY_STATUS_LOW, + .type = LKD_PROP_TYPE_INT, + .state = LKD_PROP_STATE_UNUSABLE, + .listen = 1, + + .source_type = LKD_PROP_SRC_VCONF_INT, + .source_key = VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, + }, + { + .id = LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED, + .type = LKD_PROP_TYPE_INT, + .state = LKD_PROP_STATE_UNUSABLE, + .listen = 1, + + .source_type = LKD_PROP_SRC_VCONF_INT, + .source_key = VCONFKEY_SETAPPL_EMERGENCY_UI_MODE, + }, +}; + +/* + * property interface:vconf + */ +static void _vconf_cb(keynode_t *node, void *data) +{ + LKD_Property *conf = data; + + if (conf->source_type == LKD_PROP_SRC_VCONF_INT) { + conf->value_int = vconf_keynode_get_int(node); + + LOCK_SCREEN_TRACE_WARN("property %x is changed to %d", conf->id, conf->value_int); + + } else if (conf->source_type == LKD_PROP_SRC_VCONF_BOOL) { + if (vconf_keynode_get_bool(node)) { + conf->value_int = 1; + } else { + conf->value_int = 0; + } + LOCK_SCREEN_TRACE_WARN("property %x is changed to %d", conf->id, conf->value_int); + + } else if (conf->source_type == LKD_PROP_SRC_VCONF_STR) { + char *value = vconf_keynode_get_str(node); + if (value != NULL) { + free(conf->value_str); + conf->value_str = strdup(value); + } + + LOCK_SCREEN_TRACE_WARN("property %x is changed to %s", conf->id, value); + } + + lockd_event(LKD_EVT_CONF_CHANGED, (void*)conf->id); +} + +static int _vconf_init(LKD_Property *prop) +{ + int ret = LKD_RET_OK; + + LOCK_SCREEN_TRACE_DBG(""); + + if (prop->source_key != NULL) { + if (prop->listen == 1) { + if(vconf_notify_key_changed(prop->source_key, _vconf_cb, prop) == 0) { + prop->cache = 1; + } else { + LOCK_SCREEN_TRACE_ERR("Failed to listen for %s", prop->source_key); + } + } + + ret = _vconf_get(prop); + } else { + LOCK_SCREEN_TRACE_ERR("property %x has no sourcekey", prop->id); + } + + return ret; +} + +static int _vconf_fini(LKD_Property *prop) +{ + int ret = LKD_RET_OK; + + LOCK_SCREEN_TRACE_DBG(""); + + if (prop->source_key != NULL) { + if (prop->listen == 1) { + if(vconf_ignore_key_changed(prop->source_key, _vconf_cb) == 0) { + prop->cache = 0; + } else { + LOCK_SCREEN_TRACE_ERR("Failed to ignore for %s", prop->source_key); + } + } + } else { + LOCK_SCREEN_TRACE_ERR("property %x has no sourcekey", prop->id); + } + + return ret; +} + +static int _vconf_get(LKD_Property *prop) +{ + int ret = LKD_RET_OK; + + if (prop->cache == 1 && prop->state == LKD_PROP_STATE_USABLE) { + return LKD_RET_OK; + } + + if (prop->source_key != NULL) { + if (prop->source_type == LKD_PROP_SRC_VCONF_INT) { + int value = 0; + if (vconf_get_int(prop->source_key, &value) == 0) { + prop->value_old_int = prop->value_int; + prop->value_int = value; + prop->state = LKD_PROP_STATE_USABLE; + + LOCK_SCREEN_TRACE_ERR("value of %x:%d", prop->id, value); + } else { + ret = LKD_RET_FAIL; + LOCK_SCREEN_TRACE_ERR("Failed to get value of %s", prop->source_key); + } + + } else if (prop->source_type == LKD_PROP_SRC_VCONF_BOOL) { + int value = 0; + if (vconf_get_bool(prop->source_key, &value) == 0) { + prop->value_old_int = prop->value_int; + if (value) { + prop->value_int = 1; + } else { + prop->value_int = 0; + } + prop->state = LKD_PROP_STATE_USABLE; + LOCK_SCREEN_TRACE_ERR("value of %x:%d", prop->id, value); + } else { + ret = LKD_RET_FAIL; + LOCK_SCREEN_TRACE_ERR("Failed to get value of %s", prop->source_key); + } + + } else if (prop->source_type == LKD_PROP_SRC_VCONF_STR) { + char *value = NULL; + if ((value = vconf_get_str(prop->source_key)) != NULL) { + free(prop->value_old_str); + prop->value_old_str = prop->value_str; + prop->value_str = value; + prop->state = LKD_PROP_STATE_USABLE; + LOCK_SCREEN_TRACE_ERR("value of %x:%s", prop->id, value); + } else { + ret = LKD_RET_FAIL; + LOCK_SCREEN_TRACE_ERR("Failed to get value of %s", prop->source_key); + } + } + } else { + LOCK_SCREEN_TRACE_ERR("Failed to get value of %x", prop->id); + } + + return ret; +} + +/* + * property utility + */ +static int _id_to_idx(int id) +{ + int idx = 0; + + while(id != 0) { + id = id >> 1; + idx++; + } + + return idx; +} + +static int _listen(int idx, int id) +{ + int ret = LKD_RET_FAIL; + + if (idx >= 0 && idx < s_info.num_props) { + LKD_Property *prop = &(lkd_g_props[idx]); + if (prop) { + if (prop->listen == 1) { + if (prop->source_type == LKD_PROP_SRC_VCONF_INT || + prop->source_type == LKD_PROP_SRC_VCONF_BOOL || + prop->source_type == LKD_PROP_SRC_VCONF_STR) { + ret = _vconf_init(prop); + if (ret == LKD_RET_OK) { + prop->listening = 1; + } else { + LOCK_SCREEN_TRACE_ERR("Failed to listen %x", id); + } + } else { + LOCK_SCREEN_TRACE_ERR("unsupported source: %d", prop->source_type); + } + } + } + } else { + LOCK_SCREEN_TRACE_ERR("invalid property ID: %x", id); + } + + return ret; +} + +static int _ignore(int idx, int id) +{ + int ret = LKD_RET_FAIL; + + if (idx >= 0 && idx < s_info.num_props) { + LKD_Property *prop = &(lkd_g_props[idx]); + if (prop) { + if (prop->listen == 1) { + prop->state = LKD_PROP_STATE_UNUSABLE; + prop->cache = 0; + prop->listening = 0; + if (prop->source_type == LKD_PROP_SRC_VCONF_INT || + prop->source_type == LKD_PROP_SRC_VCONF_BOOL || + prop->source_type == LKD_PROP_SRC_VCONF_STR) { + ret = _vconf_fini(prop); + if (ret != LKD_RET_OK) { + LOCK_SCREEN_TRACE_ERR("Failed to ignore %x", id); + } + + } else { + LOCK_SCREEN_TRACE_ERR("unsupported source: %d", prop->source_type); + } + } + } + } else { + LOCK_SCREEN_TRACE_ERR("invalid property ID: %x", id); + } + + return ret; +} + +/* + * property APIs + */ +int property_get_int(int id, int *value) +{ + int ret = LKD_RET_FAIL; + retv_if(value == NULL, LKD_RET_FAIL); + + int idx = _id_to_idx(id); + + if (idx >= 0 && idx < s_info.num_props) { + LKD_Property *prop = &(lkd_g_props[idx]); + if (prop) { + if (prop->listen == 1 && prop->listening == 0) { + ret = _listen(idx, id); + } + if (prop->source_type == LKD_PROP_SRC_VCONF_INT) { + ret = _vconf_get(prop); + if (ret == LKD_RET_OK) { + *value = prop->value_int; + } + } else { + LOCK_SCREEN_TRACE_ERR("unsupported source: %d", prop->source_type); + } + } + } else { + LOCK_SCREEN_TRACE_ERR("invalid property ID: %x", id); + } + + return ret; +} + +int property_get_bool(int id, int *value) +{ + int ret = LKD_RET_FAIL; + retv_if(value == NULL, LKD_RET_FAIL); + + int idx = _id_to_idx(id); + + if (idx >= 0 && idx < s_info.num_props) { + LKD_Property *prop = &(lkd_g_props[idx]); + if (prop) { + if (prop->listen == 1 && prop->listening == 0) { + ret = _listen(idx, id); + } + if (prop->source_type == LKD_PROP_SRC_VCONF_BOOL) { + ret = _vconf_get(prop); + if (ret == LKD_RET_OK) { + *value = prop->value_int; + } + } else { + LOCK_SCREEN_TRACE_ERR("unsupported source: %d", prop->source_type); + } + } + } else { + LOCK_SCREEN_TRACE_ERR("invalid property ID: %x", id); + } + + return ret; +} + +const char *property_get_str(int id) +{ + int ret = LKD_RET_OK; + int idx = _id_to_idx(id); + + if (idx >= 0 && idx < s_info.num_props) { + LKD_Property *prop = &(lkd_g_props[idx]); + if (prop) { + if (prop->listen == 1 && prop->listening == 0) { + ret = _listen(idx, id); + } + if (prop->source_type == LKD_PROP_SRC_VCONF_STR) { + ret = _vconf_get(prop); + if (ret == LKD_RET_OK) { + return prop->value_str; + } + } else { + LOCK_SCREEN_TRACE_ERR("unsupported source: %d", prop->source_type); + } + } + } else { + LOCK_SCREEN_TRACE_ERR("invalid property ID: %x", id); + } + + return NULL; +} + +int property_listen(int id) +{ + int idx = _id_to_idx(id); + + return _listen(idx, id); +} + +int property_ignore(int id) +{ + int idx = _id_to_idx(id); + + return _ignore(idx, id); +} + +void property_init(void) +{ + s_info.num_props = sizeof(lkd_g_props) / sizeof(LKD_Property); + + LOCK_SCREEN_TRACE_WARN("number of properties:%d", s_info.num_props); +} + +void property_fini(void) +{ + s_info.num_props = 0; +} diff --git a/src/daemon/util-daemon.c b/src/daemon/util-daemon.c new file mode 100755 index 0000000..60f2102 --- /dev/null +++ b/src/daemon/util-daemon.c @@ -0,0 +1,211 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "lockscreen-lite.h" + +static struct _s_info { + Ecore_Timer *state_timer; + int set_by_me; +} s_info = { + .state_timer = NULL, + .set_by_me = 0, +}; + +static Eina_Bool _lock_state_timer_cb(void *data) +{ + int ret = 0; + int state = (int)data; + + s_info.state_timer = NULL; + + if ((ret = vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, state)) != 0) { + LOCK_SCREEN_TRACE_ERR("Failed to set lock state:%d", ret); + } else { + lockd_lock_state_flag_set(1); + } + + return ECORE_CALLBACK_CANCEL; +} + +int lockd_lock_state_flag_get(void) +{ + return s_info.set_by_me; +} + +void lockd_lock_state_flag_set(int set_by_me) +{ + s_info.set_by_me = set_by_me; +} + +void lockd_lock_state_set(int state, double delay) +{ + if (s_info.state_timer != NULL) { + ecore_timer_del(s_info.state_timer); + s_info.state_timer = NULL; + } + + if (delay > 0.0) { + s_info.state_timer = ecore_timer_add(delay, + _lock_state_timer_cb, (void*)state); + if (s_info.state_timer == NULL) { + LOCK_SCREEN_TRACE_ERR("Failed to create lockscreen state timer"); + _lock_state_timer_cb((void*)state); + } + } else { + _lock_state_timer_cb((void*)state); + } +} + +int lockd_lcd_state_get(void) +{ + int state = VCONFKEY_PM_STATE_LCDOFF; + + if (vconf_get_int(VCONFKEY_PM_STATE, &state) != 0) { + LOCK_SCREEN_TRACE_ERR("Failed to get value of VCONFKEY_PM_STATE"); + } + + if (state == VCONFKEY_PM_STATE_NORMAL || state == VCONFKEY_PM_STATE_LCDDIM) { + return 1; + } + + return 0; +} + +#define LOCKD_VOICE_CALL_PKG_NAME "com.samsung.call" +#define LOCKD_VIDEO_CALL_PKG_NAME "com.samsung.vtmain" +static int _is_call_app(int pid) +{ + char buf[128]; + LOCK_SCREEN_TRACE_DBG("%s, %d", __func__, __LINE__); + + /* Check pid is invalid. */ + if (aul_app_get_pkgname_bypid(pid, buf, sizeof(buf)) < 0) { + LOCK_SCREEN_TRACE_WARN("no such pkg by pid %d", pid); + } else { + LOCK_SCREEN_TRACE_DBG("app pkgname = %s, pid = %d", buf, pid); + if ((!strncmp(buf, LOCKD_VOICE_CALL_PKG_NAME, strlen(buf))) + || (!strncmp(buf, LOCKD_VIDEO_CALL_PKG_NAME, strlen(buf)))) { + return 1; + } + } + return 0; +} + +static int _focus_win_pid_get(void) +{ + Ecore_X_Window x_win_focused = 0; + int pid = 0; + int ret = -1; + + LOCK_SCREEN_TRACE_DBG("%s, %d", __func__, __LINE__); + + x_win_focused = ecore_x_window_focus_get(); + ret = ecore_x_netwm_pid_get(x_win_focused, &pid); + if(ret != 1) { + LOCK_SCREEN_TRACE_ERR("Can't get pid for focus x window (%x)\n", x_win_focused); + return -1; + } + LOCK_SCREEN_TRACE_DBG("PID(%d) for focus x window (%x)\n", pid, x_win_focused); + + return pid; +} + +int lockd_call_state_get(void) +{ + int locktype = get_locktype(); + + if (locktype != SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD && + locktype != SETTING_SCREEN_LOCK_TYPE_PASSWORD) { + int callstate = VCONFKEY_CALL_OFF; + if (vconf_get_int(VCONFKEY_CALL_STATE, &callstate) == 0) { + if (callstate != VCONFKEY_CALL_OFF) { + LOCK_SCREEN_TRACE_WARN("calling is in progress"); + int focus_win_pid = _focus_win_pid_get(); + if (focus_win_pid > 0) { + if (_is_call_app(focus_win_pid) == 1) { + LOCK_SCREEN_TRACE_WARN("callapp's window is focused"); + return 1; + } + } + } + } else { + LOCK_SCREEN_TRACE_ERR("Failed to get value of VCONFKEY_CALL_STATE"); + } + } + + return 0; +} + +void lockd_cache_flush(void) +{ + LOCK_SCREEN_TRACE_DBG(""); + elm_cache_all_flush(); + malloc_trim(0); + appcore_flush_memory(); +} + +#define KEY_MANAGER_USER_ID 5000 +static Eina_Bool _ckmc_lock_timer_cb(void *data) +{ + int ret = CKMC_ERROR_NONE; + uid_t user = KEY_MANAGER_USER_ID; + + ret = ckmc_lock_user_key(user); + + LOCK_SCREEN_TRACE_WARN("key manager lock:%d", ret); + + return ECORE_CALLBACK_CANCEL; +} + +static Eina_Bool _ckmc_unlock_timer_cb(void *data) +{ + int ret = CKMC_ERROR_NONE; + uid_t user = KEY_MANAGER_USER_ID; + char *password = data; + + ret = ckmc_unlock_user_key(user, password); + + LOCK_SCREEN_TRACE_WARN("key manager unlock:%d", ret); + + return ECORE_CALLBACK_CANCEL; +} + +void lockd_util_key_lock_set(int lock, const char *password) +{ + if (lock) { + ecore_timer_add(0.5, _ckmc_lock_timer_cb, NULL); + } else { + char *password_dup = NULL; + if (password) { + password_dup = strdup(password); + } + ecore_timer_add(0.5, _ckmc_unlock_timer_cb, password_dup); + } +} diff --git a/src/daemon/view-mgr.c b/src/daemon/view-mgr.c new file mode 100755 index 0000000..c0a3de3 --- /dev/null +++ b/src/daemon/view-mgr.c @@ -0,0 +1,155 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include "lockscreen-lite.h" +#include "default-unlock.h" +#include "background-view.h" + +#define VIEW_STATE_IDLE 1 +#define VIEW_STATE_INPUT 2 +#define VIEW_STATE_INPUT_BLOCK 3 + +static struct _s_info { + int state; +} s_info = { + .state = VIEW_STATE_IDLE, +}; + +static void _state_enter(int old_state, int new_state) +{ + if (new_state == VIEW_STATE_IDLE) { + } else if (new_state == VIEW_STATE_INPUT) { + } else if (new_state == VIEW_STATE_INPUT_BLOCK) { + } +} + +static void _state_transit(int state) +{ + LOCK_SCREEN_TRACE_WARN("state transit:%d", state); + + if (s_info.state == state) { + LOCK_SCREEN_TRACE_WARN("already in same state:%d", state); + return; + } + + _state_enter(s_info.state, state); + s_info.state = state; +} + + +static void _evt_handler_will_lock(int state, int event, void *event_info) +{ +} + +static void _evt_handler_lock(int state, int event, void *event_info) +{ + destroy_password_layout(); + create_password_layout(); +} + +static void _evt_handler_unlock(int state, int event, void *event_info) +{ + default_unlock_view_back_change(EINA_FALSE); + destroy_password_layout(); + background_image_next_set(); +} + +static void _evt_handler_view_gestured(int state, int event, void *event_info) +{ + _state_transit(VIEW_STATE_INPUT); +} + +static void _evt_handler_view_blocked(int state, int event, void *event_info) +{ + _state_transit(VIEW_STATE_INPUT_BLOCK); +} + +static void _evt_handler_view_unblocked(int state, int event, void *event_info) +{ + if (state == LOCKD_STATE_RESUME) { + _state_transit(VIEW_STATE_INPUT); + } else { + _state_transit(VIEW_STATE_IDLE); + } +} + +static void _evt_handler_conf_change(int state, int event, void *event_info) +{ + int property_id = (int)event_info; + + if (property_id == LKD_PROP_ID_LOCKTYPE) { + default_unlock_password_panel_del(); + default_unlock_password_panel_load(); + default_unlock_view_back_change(EINA_FALSE); + } + + modules_property_changed(property_id); +} + +static void _event_route(int state, int event, void *event_info) +{ + LOCK_SCREEN_TRACE_WARN("event:%x event_info:%x", event, event_info); + + static struct LKD_Evt_Handler fn_table[] = { + { + .event = LKD_EVT_VIEW_GESTURED, + .process = _evt_handler_view_gestured, + }, + { + .event = LKD_EVT_VIEW_INPUT_BLOCK, + .process = _evt_handler_view_blocked, + }, + { + .event = LKD_EVT_VIEW_INPUT_UNBLOCK, + .process = _evt_handler_view_unblocked, + }, + { + .event = LKD_EVT_WILL_LOCK, + .process = _evt_handler_will_lock, + }, + { + .event = LKD_EVT_LOCK, + .process = _evt_handler_lock, + }, + { + .event = LKD_EVT_UNLOCK, + .process = _evt_handler_unlock, + }, + { + .event = LKD_EVT_CONF_CHANGED, + .process = _evt_handler_conf_change, + }, + { + .event = 0, + .process = NULL, + }, + }; + + int i = 0; + for (i = 0; fn_table[i].process != NULL; i++) { + if (event == fn_table[i].event && fn_table[i].process != NULL) { + fn_table[i].process(state, event, event_info); + } + } +} + +void view_mgr_event_handler(int state, int event, void *event_info) +{ + _event_route(state, event, event_info); +} diff --git a/src/daemon/window.c b/src/daemon/window.c new file mode 100755 index 0000000..3dfc2a4 --- /dev/null +++ b/src/daemon/window.c @@ -0,0 +1,138 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include +#include + + +#include +#include + +#include "lockscreen-lite.h" + +static Evas_Object *_window_get(void) +{ + return lockscreen_get_window(); +} + +#define STR_ATOM_PANEL_SCROLLABLE_STATE "_E_MOVE_PANEL_SCROLLABLE_STATE" +static void _qp_enable_set(Ecore_X_Window xwin, int is_enable) +{ + unsigned int val[3] = {0, 0, 0}; + Ecore_X_Atom ATOM_PANEL_SCROLLABLE_STATE = ecore_x_atom_get(STR_ATOM_PANEL_SCROLLABLE_STATE); + + if (is_enable == 1) { + val[0] = 1; + val[1] = 1; + val[2] = 1; + } + + ecore_x_window_prop_card32_set(xwin, ATOM_PANEL_SCROLLABLE_STATE, val, 3); +} + +Evas_Object* lockd_window_create(int is_qp_enable, int *win_w, int *win_h) +{ + Evas_Object *win = elm_win_add(NULL, "lockscreen-lite", ELM_WIN_NOTIFICATION); + retv_if(win == NULL, NULL); + + elm_win_alpha_set(win, EINA_TRUE); + elm_win_aux_hint_add(win, "wm.policy.win.user.geometry", "1"); + elm_win_title_set(win, "LOCK_SCREEN"); + elm_win_borderless_set(win, EINA_TRUE); + elm_win_autodel_set(win, EINA_TRUE); + elm_win_role_set(win, "no-dim"); + + Ecore_X_Window xwin = elm_win_xwindow_get(win); + if (xwin != 0) { + ecore_x_netwm_window_type_set(xwin, ECORE_X_WINDOW_TYPE_NOTIFICATION); + utilx_set_system_notification_level(ecore_x_display_get(), xwin, UTILX_NOTIFICATION_LEVEL_NORMAL); + utilx_set_window_opaque_state(ecore_x_display_get(), xwin, UTILX_OPAQUE_STATE_ON); + ecore_x_icccm_name_class_set(xwin, "LOCK_SCREEN", "LOCK_SCREEN"); + + if (is_qp_enable == 0) { + _qp_enable_set(xwin, 0); + } + } else { + LOCK_SCREEN_TRACE_ERR("Failed to get window ID"); + } + + int root_w = 0, root_h = 0; + ecore_x_window_size_get(ecore_x_window_root_first_get(), &root_w, &root_h); + evas_object_resize(win, root_w, root_h); + + if (win_w != NULL) *win_w = root_w; + if (win_h != NULL) *win_h = root_h; + + return win; +} + +void lockd_window_qp_enable_set(int is_enable) +{ + Evas_Object *win = _window_get(); + ret_if(win == NULL); + + Ecore_X_Window xwin = elm_win_xwindow_get(win); + if (xwin != 0) { + _qp_enable_set(xwin, is_enable); + } else { + LOCK_SCREEN_TRACE_ERR("Failed to get window ID"); + } +} + +void lockd_window_update(void) +{ + Evas_Object *win = _window_get(); + ret_if(win == NULL); + + int w = 0, h = 0; + unsigned int foreground[1] = {0,}; + Ecore_X_GC gc; + Evas *e; + Ecore_Evas *ee; + ee = ecore_evas_ecore_evas_get(evas_object_evas_get(win)); + e = ecore_evas_get(ee); + evas_output_viewport_get(e, NULL, NULL, &w, &h); + evas_obscured_clear(e); + evas_damage_rectangle_add(e, 0, 0, w, h); + ecore_evas_manual_render(ee); + + gc = ecore_x_gc_new(0, ECORE_X_GC_VALUE_MASK_FOREGROUND, foreground); + ecore_x_pixmap_paste(elm_win_xwindow_get(win) + , ecore_x_window_root_first_get(), gc, 0, 0, + lockscreen_get_window_width(), lockscreen_get_window_height(), 0, 0); + ecore_x_sync(); +} + +void lockd_window_show(void) +{ + Evas_Object *win = _window_get(); + ret_if(win == NULL); + + evas_object_move(win, 0, 0); +} + +void lockd_window_hide(void) +{ + Evas_Object *win = _window_get(); + ret_if(win == NULL); + + evas_object_move(win, -10000, -10000); +} diff --git a/src/default-unlock.c b/src/default-unlock.c new file mode 100755 index 0000000..8af866b --- /dev/null +++ b/src/default-unlock.c @@ -0,0 +1,926 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include + +#include "lockscreen-lite.h" +#include "control-panel.h" +#include "simple-password.h" +#include "complex-password.h" +#include "contextual-info.h" +#include "progress_circle.h" +#include "notification-panel.h" +#include "notification-item.h" +#include "music-player.h" +#include "util-time.h" +#include "weather.h" +#include "battery.h" +#include "default-unlock.h" +#include "tizen-account.h" +#include "password-verification.h" + + +#define DEFAULT_UNLOCK_EDJE_FILE EDJE_DIR"default-unlock.edj" +#define BACK_BUTTON "XF86Stop" + +#define MUSIC_PLAYER_NAME "[music-minicontrol.LOCKSCREEN]" +#define SOUND_PLAYER_NAME "[sound-minicontrol.LOCKSCREEN]" +//TODO check name after available +#define RADIO_FM_NAME "[radio-minicontrol.LOCKSCREEN]" +#define VOICE_RECORDER_NAME "[voicerecorder-minicontrol.LOCKSCREEN]" + + +static struct +{ + Evas_Object *default_unlock_layout; + Evas_Object *control_panel_layout; + + Evas_Object *control_panel; + + Evas_Object *password_panel; + + Evas_Object *selected_noti; + Evas_Object *other_noti; + + char *selected_noti_title; + char *selected_noti_details; + + Eina_Bool noti_tapped; + bool is_password_layout; +} s_default_unlock_data = +{ + .default_unlock_layout = NULL, + .control_panel_layout = NULL, + + .control_panel = NULL, + + .password_panel = NULL, + + .selected_noti = NULL, + .other_noti = NULL, + + .selected_noti_title = NULL, + .selected_noti_details = NULL, + + .noti_tapped = EINA_FALSE, + .is_password_layout = false +}; + +static void _mctrl_monitor_cb(minicontrol_action_e action, + const char *name, + unsigned int width, + unsigned int height, + minicontrol_priority_e priority, + void *data); +static Eina_Bool _load_default(); +static Eina_Bool _show_keyboard(void *data); + +static void _weather_show(); +//static void _weather_hide(); UNUSED + +void default_unlock_hw_back_cb(void *data, Evas_Object *obj, void *event_info) +{ + default_unlock_view_back(true); +} + +Evas_Object* default_unlock_layout_create(Evas_Object *parent) +{ + Evas_Object *default_unlock_layout = NULL; + + if(!parent) + { + LOCK_SCREEN_TRACE_ERR("Invalid argument : parent is NULL"); + return NULL; + } + + default_unlock_layout = elm_layout_add(parent); + if(!default_unlock_layout) + { + LOCK_SCREEN_TRACE_DBG("Failed to create default unlock layout"); + return NULL; + } + if(!elm_layout_file_set(default_unlock_layout, DEFAULT_UNLOCK_EDJE_FILE, "default_unlock_layout")) + { + LOCK_SCREEN_TRACE_DBG("Failed to set edje file for default_unlock type"); + evas_object_del(default_unlock_layout); + return NULL; + } + + evas_object_size_hint_weight_set(default_unlock_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(default_unlock_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + + s_default_unlock_data.default_unlock_layout = default_unlock_layout; + + /* control panel layout */ + Evas_Object *control_panel_layout = NULL; + control_panel_layout = elm_layout_add(parent); + elm_layout_file_set(control_panel_layout, DEFAULT_UNLOCK_EDJE_FILE, "control_panel_layout"); + evas_object_size_hint_weight_set(default_unlock_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(default_unlock_layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + s_default_unlock_data.control_panel_layout = control_panel_layout; + + elm_object_part_content_set(parent, "control_panel", s_default_unlock_data.control_panel_layout); + + _load_default(); + + battery_view_init(default_unlock_layout); + evas_object_show(default_unlock_layout); + + return default_unlock_layout; +} + +void default_unlock_password_panel_del() +{ + if (s_default_unlock_data.password_panel != NULL) { + evas_object_del(s_default_unlock_data.password_panel); + s_default_unlock_data.password_panel = NULL; + } +} + +void default_unlock_password_panel_load() +{ + s_default_unlock_data.is_password_layout = true; + int locktype = get_locktype(); + +// Evas_Object *layout = elm_object_part_content_unset(s_default_unlock_data.default_unlock_layout, "unlock_panel_swallow"); +// evas_object_hide(layout); + + if(default_unlock_is_noti_tapped()) + { + elm_object_signal_emit(s_default_unlock_data.default_unlock_layout, "swipe_panel,hide", ""); + } + + if(!s_default_unlock_data.password_panel) + { + Evas_Object *password_panel = NULL; + if(!password_panel) + { + LOCK_SCREEN_TRACE_DBG("Failed to create password panel"); + trigger_unlock(); + return; + } + if(tizen_account_if_registered_check() == EINA_TRUE) + { + control_panel_tizen_account_btn_show(); + } + } + evas_object_show(s_default_unlock_data.password_panel); + elm_object_part_content_set(s_default_unlock_data.default_unlock_layout, "unlock_panel_swallow", s_default_unlock_data.password_panel); + + battery_view_hide(); + + /*_weather_hide(); + show_emg_call_btn(); + show_unlock_text();*/ + + if(locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) + { + simple_password_reset(); + } + else if(locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + complex_password_reset(); + ecore_timer_add(0.2, _show_keyboard, NULL); + } + + control_panel_operator_name_hide(); +} + +Eina_Bool default_unlock_view_back(bool is_effect_on) +{ + int ret = EINA_TRUE; + + if (lockscreen_password_after_swiping_get()) { + int locktype = get_locktype(); + if (locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) { + if (!is_simple_password_blocked()) { + default_unlock_view_back_change(is_effect_on); + ret = EINA_TRUE; + } + } + else if (locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) { + if (!is_complex_password_blocked()) { + default_unlock_view_back_change(is_effect_on); + ret = EINA_TRUE; + } + } + } + + if (default_unlock_is_noti_tapped()) + { + int locktype = get_locktype(); + if(locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) + { + elm_object_part_text_set(simple_password_layout_get(), "title", _("IDS_COM_BODY_ENTER_PIN")); + } + else if(locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + elm_object_part_text_set(complex_password_layout_get(), "title", _("IDS_COM_BODY_ENTER_PASSWORD")); + } + default_unlock_set_noti_tapped(NULL); + default_unlock_hide_on_noti_tapped(); + elm_layout_text_set(contextual_info_layout_get(), "close_text", _("IDS_LCKSCN_ACBUTTON_CLOSE_ABB")); + notification_panel_update_notification_list(default_unlock_control_panel_get()); + } + + return ret; +} + +void default_unlock_view_back_change(bool is_effect_on) +{ + LOCK_SCREEN_TRACE_DBG(""); + + Evas_Object *layout = elm_object_part_content_unset(s_default_unlock_data.default_unlock_layout, "unlock_panel_swallow"); + evas_object_hide(layout); + + notification_item_selected_item_set(NULL); + notification_item_selected_item_type_set(NOTIFICATION_ITEM_NONE); + + if(get_locktype() == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) + { + simple_password_reset(); + } + else if(get_locktype() == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + complex_password_reset(); + } + + if(is_effect_on) { + /* hide password layout */ + elm_object_signal_emit(lockscreen_get_layout(), "hide_ly_hide_img_with_transition", "bg"); + + /* show default swipe layout */ + elm_object_signal_emit(lockscreen_get_layout(), "set_default_with_transition", "bg"); + if(is_camera_visible()) + { + elm_object_signal_emit(lockscreen_get_layout(), "set_camera_default_with_transition", "bg"); + } + } + else + { + /* hide password layout */ + elm_object_signal_emit(lockscreen_get_layout(), "hide_ly_hide_img", "bg"); + + /* show default swipe layout */ + elm_object_signal_emit(lockscreen_get_layout(), "set_default", "bg"); + if(is_camera_visible()) + { + elm_object_signal_emit(lockscreen_get_layout(), "set_camera_default", "bg"); + } + } + + set_lockscreen_state(LOCKSCREEN_MODE_SWIPE); + set_lockscreen_is_after_swipe(false); + set_lockscreen_exit_state_normal(); + s_default_unlock_data.is_password_layout = false; + + if(lockscreen_is_view_simple_get()) + { + battery_view_show(BATT_LAYOUT_NORMAL); + _weather_show(); + } + else + { + battery_view_show(BATT_LAYOUT_EVENT); + } + + default_unlock_set_noti_tapped(NULL); + default_unlock_hide_on_noti_tapped(); + elm_layout_text_set(contextual_info_layout_get(), "close_text", _("IDS_LCKSCN_ACBUTTON_CLOSE_ABB")); + + /*hide_emg_call_btn(); + hide_dual_text(); + control_panel_operator_name_show(); + control_panel_tizen_account_btn_hide();*/ + + lockd_event(LKD_EVT_VIEW_IDLE, NULL); +} + +void default_unlock_password_view_change(void) +{ + LOCK_SCREEN_TRACE_DBG(""); + + notification_item_selected_item_set(NULL); + notification_item_selected_item_type_set(NOTIFICATION_ITEM_NONE); + + destroy_password_layout(); + create_password_layout(); + + if(get_locktype() == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) + { + simple_password_reset(); + } + else if(get_locktype() == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + complex_password_reset(); + complex_password_focus_entry(); + } + + set_lockscreen_is_after_swipe(true); + default_unlock_set_noti_tapped(NULL); +} + +Evas_Object* default_unlock_control_panel_get(void) +{ + return s_default_unlock_data.default_unlock_layout; +} + +Evas_Object *control_panel_get(void) +{ + return s_default_unlock_data.control_panel_layout; +} + +void default_unlock_show_on_noti_tapped(Evas_Object *obj, const char *text) +{ + LOGD("Show layout change on noti tapped"); + + if(!text || !obj) + { + LOGE("Invalid parameter"); + return; + } + + elm_layout_text_set(s_default_unlock_data.default_unlock_layout, "swipe_panel_text", text); + if(!is_password_layout_get()) + { + elm_object_signal_emit(s_default_unlock_data.default_unlock_layout, "swipe_panel,show", ""); + } + + Evas_Object *noti_box = contextual_info_noti_box_get(); + if(!noti_box) + { + LOGE("Failed to get noti box"); + return; + } + + Eina_List *notifications = elm_box_children_get(noti_box); + if(!notifications) + { + LOGE("Failed to get notifications list"); + return; + } + + if(eina_list_count(notifications) > 1) + { + Evas_Object *other_noti = (Evas_Object*)eina_list_nth(notifications, 0); + if(obj == other_noti) + { + other_noti = (Evas_Object*)eina_list_nth(notifications, 1); + } + + s_default_unlock_data.other_noti = other_noti; + evas_object_color_set(other_noti, 190, 190, 190, 255); + } + + eina_list_free(notifications); + + s_default_unlock_data.selected_noti = obj; + + Evas_Object *scroller = contextual_info_scroller_get(); + if(scroller) + { + elm_scroller_movement_block_set(scroller, ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL); + } + + if(s_default_unlock_data.selected_noti_title) + { + free(s_default_unlock_data.selected_noti_title); + s_default_unlock_data.selected_noti_title = NULL; + } + + if(s_default_unlock_data.selected_noti_details) + { + free(s_default_unlock_data.selected_noti_details); + s_default_unlock_data.selected_noti_details = NULL; + } + + s_default_unlock_data.selected_noti_title = strdup(elm_object_part_text_get(obj, "event_title")); + s_default_unlock_data.selected_noti_details = strdup(elm_object_part_text_get(obj, "event_details")); + s_default_unlock_data.noti_tapped = EINA_TRUE; +} + +void default_unlock_hide_on_noti_tapped(void) +{ + LOGD("Hide layout change on noti tapped"); + if(!s_default_unlock_data.selected_noti) + { + LOGE("Failed to get selected noti"); + return; + } + + elm_object_signal_emit(s_default_unlock_data.default_unlock_layout, "swipe_panel,hide", ""); + + evas_object_map_enable_set(s_default_unlock_data.selected_noti, EINA_FALSE); + + ecore_main_loop_iterate(); //this is a workaround for hiden time and count in missed calls! + elm_object_signal_emit(s_default_unlock_data.selected_noti, "set_default", "layout"); + elm_object_signal_emit(s_default_unlock_data.other_noti, "set_default", "layout"); + contextual_info_check_noti_count(); + ecore_main_loop_iterate(); //this is a workaround for hiden time and count in missed calls! + + if(s_default_unlock_data.other_noti) + { + Evas_Object *noti_box = contextual_info_noti_box_get(); + if(!noti_box) + { + LOGE("Failed to get noti box"); + return; + } + + Eina_List *notifications = elm_box_children_get(noti_box); + if(!notifications) + { + LOGE("Failed to get notifications list"); + return; + } + + Evas_Object* second = (Evas_Object*)eina_list_nth(notifications, 1); + elm_layout_signal_emit(second, "show_separator", "layout"); + + //evas_object_show(s_default_unlock_data.other_noti); + evas_object_color_set(s_default_unlock_data.other_noti, 255, 255, 255, 255); + s_default_unlock_data.other_noti = NULL; + } + + Evas_Object *scroller = contextual_info_scroller_get(); + if(scroller) + { + elm_scroller_movement_block_set(scroller, ELM_SCROLLER_MOVEMENT_NO_BLOCK); + } + + if(s_default_unlock_data.selected_noti_title) + { + elm_object_part_text_set(s_default_unlock_data.selected_noti, "event_title", s_default_unlock_data.selected_noti_title); + free(s_default_unlock_data.selected_noti_title); + s_default_unlock_data.selected_noti_title = NULL; + } + if(s_default_unlock_data.selected_noti_details) + { + elm_object_part_text_set(s_default_unlock_data.selected_noti, "event_details", s_default_unlock_data.selected_noti_details); + free(s_default_unlock_data.selected_noti_details); + s_default_unlock_data.selected_noti_details = NULL; + } + + s_default_unlock_data.selected_noti = NULL; + s_default_unlock_data.noti_tapped = EINA_FALSE; + notification_item_selected_item_set(NULL); + notification_item_selected_item_type_set(NOTIFICATION_ITEM_NONE); +} + +Eina_Bool default_unlock_is_noti_tapped(void) +{ + return s_default_unlock_data.noti_tapped; +} + +#define PHONE_LAUNCH_PKG "com.samsung.call" +#define VPHONE_LAUNCH_PKG "com.samsung.vtmain" +static void _rtc_button_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + LOCK_SCREEN_TRACE_DBG("tapped"); + + if (get_lockscreen_is_after_swipe()) { + LOCK_SCREEN_TRACE_ERR("clicked ignored"); + return; + } + + bundle *b = bundle_create(); + if(!b) { + LOCK_SCREEN_TRACE_ERR("bundle_create() faild"); + return; + } + bundle_add(b, "call", "back_to_call"); + + switch(lockscreen_is_calling_state_get()) + { + case 1 : + case 2 : + LOCK_SCREEN_TRACE_DBG("aul_launch_app(PHONE_LAUNCH_PKG, b);"); + aul_launch_app(PHONE_LAUNCH_PKG, b); + break; + case 3 : + case 4 : + LOCK_SCREEN_TRACE_DBG("aul_launch_app(VPHONE_LAUNCH_PKG, b);"); + aul_launch_app(VPHONE_LAUNCH_PKG, b); + break; + } + bundle_free(b); +} + +static Evas_Object *_rtc_button_create(Evas_Object *parent) +{ +// Evas_Object *layout = s_default_unlock_data.default_unlock_layout; + Evas_Object *button = NULL; + retv_if(parent == NULL, NULL); + + elm_theme_extension_add(NULL, EDJE_DIR"lockscreen-button.edj"); + button = elm_button_add(parent); + if (button) { + elm_object_style_set(button, "center_button"); + elm_object_text_set(button, _("IDS_LCKSCN_BUTTON_RETURN_TO_CALL_ABB")); + evas_object_smart_callback_add(button, "clicked", (Evas_Smart_Cb)_rtc_button_clicked_cb, NULL); + evas_object_show(button); + } + + return button; +} + +void default_unlock_call_state_cb(void) +{ + int call_active = 0; + int button_show = 0; + Evas_Object *layout = s_default_unlock_data.default_unlock_layout; + ret_if(layout == NULL); + + int locktype = get_locktype(); + if(locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) { + button_show = 1; + } + + int call_state = lockscreen_is_calling_state_get(); + if (call_state == VCONFKEY_CALL_VOICE_ACTIVE || call_state == VCONFKEY_CALL_VIDEO_ACTIVE) { + call_active = 1; + } + + Evas_Object *button = NULL; + if (button_show == 1 && call_active == 1) { + if (elm_object_part_content_get(layout, "rtc_button_swallow") == NULL) { + button = _rtc_button_create(layout); + if (button) { + elm_object_part_content_set(layout, "rtc_button_swallow", button); + } else { + LOCK_SCREEN_TRACE_ERR("Failed to create rtc button"); + } + } + } else { + button = elm_object_part_content_unset(layout, "rtc_button_swallow"); + if (button) { + evas_object_del(button); + } + } +} + +static void _pre_minicontroller_hide() +{ + if (-1 != contextual_info_music_player_get()) + contextual_info_minicontroller_music_dismiss(EINA_FALSE); + if (-1 != contextual_info_radio_get()) + contextual_info_minicontroller_radio_dismiss(EINA_FALSE); + if (-1 != contextual_info_voice_record_get()) + contextual_info_minicontroller_voice_record_dismiss(EINA_FALSE); +} + +static void _mctrl_monitor_cb(minicontrol_action_e action, + const char *name, unsigned int width, + unsigned int height, + minicontrol_priority_e priority, + void *data) +{ + LOCK_SCREEN_TRACE_DBG(""); + + if(name == NULL) + { + return; + } + + if(strcmp(name, MUSIC_PLAYER_NAME) && strcmp(name, SOUND_PLAYER_NAME) && strcmp(name, RADIO_FM_NAME) && strcmp(name, VOICE_RECORDER_NAME)) + { + LOCK_SCREEN_TRACE_DBG("Name: %s", name); + return; + } + + Evas_Object *default_unlock_layout = NULL; + Evas_Object *minicontroller = NULL; + int result = -1; + + switch (action) { + case MINICONTROL_ACTION_START: + LOCK_SCREEN_TRACE_DBG("action start"); + /* If minicontroller is running already, previous minicontoller is dismissed */ + _pre_minicontroller_hide(); + + if(!strcmp(name, MUSIC_PLAYER_NAME) || !strcmp(name, SOUND_PLAYER_NAME) ) + { + LOCK_SCREEN_TRACE_DBG("add music controller"); + + if(contextual_info_music_state_get() != NO_MUSIC) + { + LOCK_SCREEN_TRACE_DBG("Music state is not NO_MUSIC - delete previous minicontroller"); + contextual_info_minicontroller_music_dismiss(EINA_FALSE); + } + + default_unlock_layout = s_default_unlock_data.default_unlock_layout; + + minicontroller = create_minicontroller(default_unlock_layout, name, PAGE_WIDTH, PAGE_HEIGHT); + + contextual_info_minicontroller_music_add(minicontroller, name); + } + else if(!strncmp(name, VOICE_RECORDER_NAME, strlen(VOICE_RECORDER_NAME))) + { + LOCK_SCREEN_TRACE_DBG("add voice recorder controller"); + default_unlock_layout = s_default_unlock_data.default_unlock_layout; + minicontroller = create_minicontroller(default_unlock_layout, name, PAGE_WIDTH, PAGE_HEIGHT); + contextual_info_minicontroller_voice_record_add(minicontroller); + } + else + { + + default_unlock_layout = s_default_unlock_data.default_unlock_layout; + + minicontroller = create_minicontroller(default_unlock_layout, name, PAGE_WIDTH, PAGE_HEIGHT); + + LOCK_SCREEN_TRACE_DBG("add radio controller"); + contextual_info_minicontroller_radio_add(minicontroller); + } + + contextual_info_display_music_minicontroller_if_needed(); + + if (lockscreen_is_view_simple_get()) + { + lockscreen_is_view_simple_set(false); + elm_object_signal_emit(default_unlock_layout, "event", "layout"); + update_time(default_unlock_layout); + } + if(is_password_layout_get()) + { + battery_view_hide(); + } + + break; + case MINICONTROL_ACTION_RESIZE: + break; + case MINICONTROL_ACTION_STOP: + LOCK_SCREEN_TRACE_DBG("action stop"); + default_unlock_layout = s_default_unlock_data.default_unlock_layout; + + if(!strcmp(name, MUSIC_PLAYER_NAME) || !strcmp(name, SOUND_PLAYER_NAME)) + { + //do not remove this - it is necessary + if((contextual_info_music_state_get() != MUSIC_PLAYER_ON && !strcmp(name, MUSIC_PLAYER_NAME)) + || (contextual_info_music_state_get() != SOUND_PLAYER_ON && !strcmp(name, SOUND_PLAYER_NAME))) + { + LOGD("Wrong player, return"); + return; + } + + LOCK_SCREEN_TRACE_DBG("dismiss music minicontroller"); + result = contextual_info_minicontroller_music_dismiss(EINA_FALSE); + + music_player_bg_unset(); + } + else if(!strncmp(name, VOICE_RECORDER_NAME, strlen(VOICE_RECORDER_NAME))) + { + result = contextual_info_minicontroller_voice_record_dismiss(EINA_FALSE); + } + else + { + result = contextual_info_minicontroller_radio_dismiss(EINA_FALSE); + } + + if(result == -1) + { + LOCK_SCREEN_TRACE_DBG("Failed to dismiss minicontroller"); + return; + } + + if(!result) + { + LOCK_SCREEN_TRACE_DBG("No pages in contextual info, changing layout to simple info"); + lockscreen_is_view_simple_set(true); + + if(contextual_info_is_dual_clock_enabled()) + { + elm_object_signal_emit(default_unlock_layout, "dual_clock", "layout"); + } + else + { + elm_object_signal_emit(default_unlock_layout, "default", "layout"); + } + update_time(default_unlock_layout); + } + + break; + case MINICONTROL_ACTION_REQUEST: + break; + default: + break; + } +} + +static Eina_Bool _load_default() +{ + Evas_Object *default_unlock_layout = NULL; + Evas_Object *swipe_panel = NULL; + Evas_Object *control_panel = NULL; + Evas_Object *info_panel = NULL; + + default_unlock_layout = s_default_unlock_data.default_unlock_layout; + + control_panel = control_panel_create(); + if(!control_panel) + { + LOCK_SCREEN_TRACE_DBG("Failed to create control panel"); + evas_object_del(default_unlock_layout); + evas_object_del(swipe_panel); + s_default_unlock_data.default_unlock_layout = NULL; + return EINA_FALSE; + } + s_default_unlock_data.control_panel = control_panel; + + elm_object_part_content_set(s_default_unlock_data.control_panel_layout, "control_panel_swallow", control_panel); + if(!elm_object_part_content_get(s_default_unlock_data.control_panel_layout, "control_panel_swallow")) + { + LOCK_SCREEN_TRACE_DBG("Failed to set the control panel in swallow part"); + evas_object_del(default_unlock_layout); + evas_object_del(swipe_panel); + evas_object_del(control_panel); + s_default_unlock_data.default_unlock_layout = NULL; + return EINA_FALSE; + } + + int locktype = get_locktype(); + if((locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + && !lockscreen_password_after_swiping_get()) + { + default_unlock_password_panel_load(); + } + unlock_panel_create(default_unlock_layout); + + //time text + elm_object_part_text_set(default_unlock_layout, "roaming", _("IDS_ST_BODY_ROAMING")); + elm_object_part_text_set(default_unlock_layout, "home", _("IDS_ST_BODY_HOME_M_HOMECITY")); + + info_panel = contextual_info_create(default_unlock_layout); + if(!info_panel) + { + LOCK_SCREEN_TRACE_DBG("Failed to create info panel"); + evas_object_del(default_unlock_layout); + evas_object_del(swipe_panel); + evas_object_del(control_panel); + s_default_unlock_data.default_unlock_layout = NULL; + return EINA_FALSE; + } + + elm_object_part_content_set(default_unlock_layout, "event_info_swallow", info_panel); + if(!elm_object_part_content_get(default_unlock_layout, "event_info_swallow")) + { + LOCK_SCREEN_TRACE_DBG("Failed to set the control panel in swallow part"); + evas_object_del(default_unlock_layout); + evas_object_del(swipe_panel); + evas_object_del(control_panel); + evas_object_del(info_panel); + s_default_unlock_data.default_unlock_layout = NULL; + return EINA_FALSE; + } + + if(weather_is_visible()) + { + weather_view_init(default_unlock_layout); + _weather_show(); + } + notification_cb(default_unlock_layout); + if(is_contextual_visible_get()) { + minicontrol_monitor_start(_mctrl_monitor_cb, NULL); + } + + return EINA_FALSE; +} + +bool is_password_layout_get(void) +{ + return s_default_unlock_data.is_password_layout; +} + +Eina_Bool _show_keyboard(void *data) +{ + complex_password_focus_entry(); + + return ECORE_CALLBACK_CANCEL; +} + +void default_unlock_pause_application(void) +{ + default_unlock_set_noti_tapped(NULL); + default_unlock_hide_on_noti_tapped(); + + Evas_Object *context_layout = contextual_info_layout_get(); + if (context_layout) { + elm_layout_text_set(context_layout, + "close_text", _("IDS_LCKSCN_ACBUTTON_CLOSE_ABB")); + } +} + +static void _weather_show() +{ + if(weather_is_visible()) + { + LOGD("MSZ"); + elm_object_signal_emit(s_default_unlock_data.default_unlock_layout, "weather,show", ""); + } +} + +static void _weather_hide() +{ + elm_object_signal_emit(s_default_unlock_data.default_unlock_layout, "weather,hide", ""); +} + + +/*! + * module + */ +static Evas_Object *_create_view(Evas_Object *parent, LKD_Module_Data *md) +{ + return NULL; +} + +static int _destroy_view(LKD_Module_Data *md) +{ + return LKD_RET_OK; +} + +static void _resume(LKD_Module_Data *md) +{ +} + +static void _pause(LKD_Module_Data *md) +{ + default_unlock_view_back(false); +} + +static void _language_changed(LKD_Module_Data *md) +{ + if(s_default_unlock_data.default_unlock_layout) + { + elm_object_part_text_set(s_default_unlock_data.default_unlock_layout, "roaming", _("IDS_ST_BODY_ROAMING")); + elm_object_part_text_set(s_default_unlock_data.default_unlock_layout, "home", _("IDS_ST_BODY_HOME_M_HOMECITY")); + } +} + +static void _property_changed(LKD_Module_Data *md, int property_id) +{ + if(property_id == LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED) + { + int emergency = 0; + property_get_int(LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED, &emergency); + + if(emergency == 2) + { + if(weather_is_visible()) + { + _weather_hide(); + } + } + else if(emergency == 0) + { + if(weather_is_visible()) + { + weather_view_init(s_default_unlock_data.default_unlock_layout); + if (!contextual_info_visible_get()) + { + _weather_show(); + } + else + { + _weather_hide(); + } + } + } + } else if (property_id == LKD_PROP_ID_LOCKTYPE) { + default_unlock_call_state_cb(); + } +} + +LKD_Module g_mod_default_unlock = { + .id = "default-unlock", + .notifying = 1, + .property_list = LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED | LKD_PROP_ID_LOCKTYPE, + .init = NULL, + .fini = NULL, + .create_view = _create_view, + .destroy_view = _destroy_view, + .resume = _resume, + .pause = _pause, + .property_changed = _property_changed, + .language_changed = _language_changed, +}; + +void default_unlock_set_noti_tapped(Evas_Object *obj) +{ + s_default_unlock_data.noti_tapped = obj ? EINA_TRUE : EINA_FALSE; +} diff --git a/src/dynamic-index.c b/src/dynamic-index.c new file mode 100755 index 0000000..31c5407 --- /dev/null +++ b/src/dynamic-index.c @@ -0,0 +1,264 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dynamic-index.h" + +#include +#include + +#include "util.h" +#include "lockscreen-lite.h" +#include "notification-item.h" +#include "progress_circle.h" +#include "contextual-info.h" + +#define DYNAMIC_INDEX_INDICE_SIZE 26 +#define DYNAMIC_INDEX_PADDING_SIZE 6 +#define IMAGE_DIR "/usr/apps/com.samsung.lockscreen/res/images/" + +static void _page_count_set(dynamic_index_t *dynamic_index, unsigned int new_page_count); + +static void _page_count_changed_cb(void *data, Evas_Object *obj, const char *emission, const char *source); + +static void _page_current_changed_start_cb(void *data, Evas_Object *obj, void *event_info); +static void _page_current_changed_stop_cb(void *data, Evas_Object *obj, void *event_info); + +unsigned int page_scroller_page_count_get(Evas_Object *page_scroller) +{ + Evas_Object *page_box = elm_object_content_get(page_scroller); + Eina_List *page_list = elm_box_children_get(page_box); + unsigned int page_count = eina_list_count(page_list); + + eina_list_free(page_list); + + return page_count; +} + +static void _index_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + set_lockscreen_swipe_is_blocked(false); +} + +dynamic_index_t* dynamic_index_new(Evas_Object *page_scroller) +{ + Evas_Object *index_box = NULL; + dynamic_index_t *dynamic_index; + unsigned int page_count; + int page_current = 0; + int i; + + page_count= page_scroller_page_count_get(page_scroller); + if(page_count < 2) page_count = 0; + + elm_scroller_current_page_get(page_scroller, &page_current, NULL); + + dynamic_index = calloc(1, sizeof(*dynamic_index)); + if(!dynamic_index) + return NULL; + + if(page_count > MAX_PAGE_COUNT || page_current > page_count) + { + goto ERROR; + } + + index_box = elm_box_add(contextual_info_layout_get()); + if (!index_box) + { + LOCK_SCREEN_TRACE_DBG("Failed to create box"); + goto ERROR; + } + elm_box_horizontal_set(index_box, EINA_TRUE); + elm_box_padding_set(index_box, 6, 0); + evas_object_size_hint_min_set(index_box, 480, 39); + evas_object_size_hint_weight_set(index_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(index_box, 0.5, 0.5); + evas_object_show(index_box); + + for(i = 0; i < page_count; i++) + { + Evas_Object *index_layout = NULL; + index_layout = elm_layout_add(contextual_info_layout_get()); + if (!index_layout) { + LOCK_SCREEN_TRACE_DBG("Failed to create index layout"); + goto ERROR; + } + + if (!elm_layout_file_set(index_layout, CONTEXTUAL_INFO_EDJE_FILE, "index")) + { + LOCK_SCREEN_TRACE_DBG("Failed to set file for index layout"); + goto ERROR; + } + + evas_object_size_hint_min_set(index_layout, ELM_SCALE_SIZE(DYNAMIC_INDEX_INDICE_SIZE), ELM_SCALE_SIZE(DYNAMIC_INDEX_INDICE_SIZE)); + evas_object_size_hint_max_set(index_layout, ELM_SCALE_SIZE(DYNAMIC_INDEX_INDICE_SIZE), ELM_SCALE_SIZE(DYNAMIC_INDEX_INDICE_SIZE)); + + dynamic_index->index_layout[i] = index_layout; + evas_object_show(index_layout); + elm_box_pack_end(index_box, index_layout); + } + + elm_object_part_content_set(contextual_info_layout_get(), "scroller,index", index_box); + + dynamic_index->index_box = index_box; + dynamic_index->page_count = page_count; + dynamic_index->page_current = page_current; + dynamic_index->page_scroller = page_scroller; + + elm_object_signal_callback_add(page_scroller, "scroller,count,changed", "*", _page_count_changed_cb, dynamic_index); + + evas_object_smart_callback_add(page_scroller, "scroll,drag,start", _page_current_changed_start_cb, dynamic_index); + evas_object_smart_callback_add(page_scroller, "scroll,anim,stop", _page_current_changed_stop_cb, dynamic_index); + evas_object_event_callback_add(page_scroller, EVAS_CALLBACK_MOUSE_UP, _index_mouse_up_cb, NULL); + + if (page_count > 1) + { + dynamic_index_page_current_set(dynamic_index, page_count-1); + elm_scroller_page_show(page_scroller, page_count-1, 0); + } + + return dynamic_index; + +ERROR: + if (dynamic_index) free(dynamic_index); + return NULL; +} + +void dynamic_index_del(dynamic_index_t *dynamic_index) +{ + int i; + Evas_Object *page_scroller = NULL; + + if (!dynamic_index) return; + + page_scroller = dynamic_index->page_scroller; + if (!page_scroller) return; + + elm_object_signal_callback_del(page_scroller, "scroller,count,changed", "*", _page_count_changed_cb); + + evas_object_smart_callback_del(page_scroller, "scroll,drag,start", _page_current_changed_start_cb); + evas_object_smart_callback_del(page_scroller, "scroll,anim,stop", _page_current_changed_stop_cb); + evas_object_event_callback_del(page_scroller, EVAS_CALLBACK_MOUSE_UP, _index_mouse_up_cb); + + if (!dynamic_index->index_box) return; + + elm_object_part_content_unset(contextual_info_layout_get(), "scroller,index"); + + for(i = 0; i < dynamic_index->page_count; i++) + { + if(dynamic_index->index_layout[i]) + { + elm_box_unpack(dynamic_index->index_box, dynamic_index->index_layout[i]); + evas_object_del(dynamic_index->index_layout[i]); + dynamic_index->index_layout[i] = NULL; + } + } + elm_box_clear(dynamic_index->index_box); + evas_object_del(dynamic_index->index_box); + dynamic_index->index_box = NULL; + + dynamic_index->page_scroller = NULL; + + free(dynamic_index); + dynamic_index = NULL; +} + +void dynamic_index_page_current_set(dynamic_index_t *dynamic_index, unsigned int new_page_current) +{ + if(new_page_current >= dynamic_index->page_count || dynamic_index->page_count <= 1 ) + { + return; + } + + if(dynamic_index->page_current >= dynamic_index->page_count) + { + evas_object_hide(dynamic_index->index_layout[dynamic_index->page_current]); + } + else + { + elm_object_signal_emit(dynamic_index->index_layout[dynamic_index->page_current], "index,off", "index"); + } + + elm_object_signal_emit(dynamic_index->index_layout[new_page_current], "index,on", "index"); + dynamic_index->page_current = new_page_current; +} + +static void _page_count_set(dynamic_index_t *dynamic_index, unsigned int new_page_count) +{ + int i; + + for(i = 0; i < new_page_count; i++) + { + elm_object_signal_emit(dynamic_index->index_layout[i], "index,off", "index"); + } + + dynamic_index->page_count = new_page_count; + + if(dynamic_index->page_current < new_page_count) + { + dynamic_index_page_current_set(dynamic_index, dynamic_index->page_current); + } + else + { + dynamic_index_page_current_set(dynamic_index, new_page_count - 1); + } +} + +static void _page_count_changed_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + _page_count_set(data, page_scroller_page_count_get(obj)); +} + +static void _page_current_changed_start_cb(void *data, Evas_Object *obj, void *event_info) +{ + set_lockscreen_swipe_is_blocked(true); +} + +static void _page_current_changed_stop_cb(void *data, Evas_Object *obj, void *event_info) +{ + dynamic_index_t *dynamic_index = (dynamic_index_t*) data; + int page_current = 0; + if (!dynamic_index) return; + + elm_scroller_current_page_get(obj, &page_current, NULL); + dynamic_index_page_current_set(data, page_current); + + notification_item_was_scrolled_set(EINA_FALSE); + + set_lockscreen_swipe_is_blocked(false); +} + +void dynamic_index_show(dynamic_index_t *dynamic_index) +{ + int i; + + if(!dynamic_index) return; + if (!dynamic_index->index_box) return; + + evas_object_show(dynamic_index->index_box); + for(i = 0; i < dynamic_index->page_count; i++) + { + elm_object_signal_emit(dynamic_index->index_layout[i], "index,off", "index"); + } + dynamic_index_page_current_set(dynamic_index, dynamic_index->page_current); +} + +void dynamic_index_hide(dynamic_index_t *dynamic_index) +{ + if(!dynamic_index) return; + if (!dynamic_index->index_box) return; + + evas_object_hide(dynamic_index->index_box); +} diff --git a/src/info.c b/src/info.c deleted file mode 100755 index 9008783..0000000 --- a/src/info.c +++ /dev/null @@ -1,289 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 -#include -#include -#include -#include -#include -#include - -#include "lockscreen.h" -#include "log.h" - -#define BUFFER_LENGTH 256 - -static Ecore_Timer *timer = NULL; -static int clock_font = 130; -static int am_pm_font = 46; - -static void _lock_time_set(void *data, Eina_Bool is_pre, const char *clock, const char *am_pm) -{ - Evas_Object *info = data; - if (info == NULL) - return; - - char time[BUFFER_LENGTH] = {0}; - time[BUFFER_LENGTH-1] = '\0'; - - if(is_pre) { - snprintf(time, BUFFER_LENGTH - 1, "%s %s", am_pm_font, am_pm, clock_font, clock); - }else { - snprintf(time, BUFFER_LENGTH - 1, "%s %s", clock_font, clock, am_pm_font, am_pm); - } - LOCK_SCREEN_TRACE_DBG("time is %s", time); - edje_object_part_text_set(_EDJ(info), "txt.clock", time); -} - -static bool get_formatted_ampm_from_utc_time(char* date_str, int date_size, int* str_length, Eina_Bool* is_pre) -{ - UChar customSkeleton[BUFFER_LENGTH] = { 0 }; - UErrorCode status = U_ZERO_ERROR; - UDateFormat *formatter = NULL; - - UChar bestPattern[BUFFER_LENGTH] = { 0 }; - UChar formatted[BUFFER_LENGTH] = { 0 }; - - char bestPatternString[BUFFER_LENGTH] = { 0 }; - char formattedString[BUFFER_LENGTH] = { 0 }; - - UDateTimePatternGenerator *pattern_generator = NULL; - - char *time_skeleton = "hhmm"; - - char *locale = vconf_get_str(VCONFKEY_REGIONFORMAT); - if (locale == NULL) { - LOCK_SCREEN_TRACE_ERR("[Error] get value of VCONFKEY_REGIONFORMAT fail."); - return false; - } - - u_uastrncpy(customSkeleton, time_skeleton, strlen(time_skeleton)); - - pattern_generator = udatpg_open(locale, &status); - - int32_t bestPatternCapacity = (int32_t) (sizeof(bestPattern) / sizeof((bestPattern)[0])); - (void)udatpg_getBestPattern(pattern_generator, customSkeleton, - u_strlen(customSkeleton), bestPattern, - bestPatternCapacity, &status); - - u_austrcpy(bestPatternString, bestPattern); - u_uastrcpy(bestPattern,"a"); - - if(bestPatternString[0] == 'a') - { - (*is_pre) = EINA_TRUE; - } - else - { - (*is_pre) = EINA_FALSE; - } - - UDate date = ucal_getNow(); - formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, locale, NULL, -1, bestPattern, -1, &status); - int32_t formattedCapacity = (int32_t) (sizeof(formatted) / sizeof((formatted)[0])); - (void)udat_format(formatter, date, formatted, formattedCapacity, NULL, &status); - u_austrcpy(formattedString, formatted); - - LOCK_SCREEN_TRACE_DBG("DATE & TIME is %s %s %d %s", locale, formattedString, u_strlen(formatted), bestPatternString); - - (*str_length) = u_strlen(formatted); - - udatpg_close(pattern_generator); - - udat_close(formatter); - - if(strlen(formattedString) < date_size) { - strncpy(date_str, formattedString, strlen(formattedString)); - } else { - strncpy(date_str, formattedString, date_size - 1); - } - - return true; -} - -static bool get_formatted_date_from_utc_time(time_t* utc_time, char* date_str, int date_size) -{ - UErrorCode status = U_ZERO_ERROR; - UDateTimePatternGenerator *generator = NULL; - UDateFormat *formatter = NULL; - UChar skeleton[BUFFER_LENGTH] = { 0 } - , pattern[BUFFER_LENGTH] = { 0 } - , formatted[BUFFER_LENGTH] = { 0 }; - int32_t patternCapacity, formattedCapacity; - int32_t skeletonLength, patternLength, formattedLength; - UDate date; - const char *locale = NULL; - const char customSkeleton[] = UDAT_MONTH_WEEKDAY_DAY; - - date = (UDate) (*utc_time) *1000; - - uloc_setDefault(__secure_getenv("LC_TIME"), &status); - locale = vconf_get_str(VCONFKEY_REGIONFORMAT); - if (locale == NULL) { - LOCK_SCREEN_TRACE_ERR("[Error] get value of VCONFKEY_REGIONFORMAT fail."); - return false; - } - - generator = udatpg_open(locale, &status); - if (generator == NULL) - return false; - - patternCapacity = (int32_t) (sizeof(pattern) / sizeof((pattern)[0])); - - u_uastrcpy(skeleton, customSkeleton); - - skeletonLength = strlen(customSkeleton); - - patternLength = - udatpg_getBestPattern(generator, skeleton, skeletonLength, pattern, - patternCapacity, &status); - - formatter = - udat_open(UDAT_IGNORE, UDAT_DEFAULT, locale, NULL, -1, pattern, - patternLength, &status); - if (formatter == NULL) { - udatpg_close(generator); - return false; - } - - formattedCapacity = - (int32_t) (sizeof(formatted) / sizeof((formatted)[0])); - - formattedLength = - udat_format(formatter, date, formatted, formattedCapacity, NULL, - &status); - - u_austrcpy(date_str, formatted); - - udatpg_close(generator); - - udat_close(formatter); - - return true; -} - -static Eina_Bool _set_info_time(void *data) -{ - Evas_Object *info = (Evas_Object *) data; - if (info == NULL) - return false; - - struct tm st; - time_t tt; - char buf[512] = { 0, }; - char bf1[32] = { 0, }; - char bf2[32] = { 0, }; - int r, hour; - enum appcore_time_format timeformat; - - tt = time(NULL); - localtime_r(&tt, &st); - - if (timer != NULL) { - ecore_timer_del(timer); - timer = NULL; - } - - char utc_date[256] = { 0, }; - get_formatted_date_from_utc_time(&tt, utc_date, sizeof(utc_date)); - edje_object_part_text_set(_EDJ(info), "txt.date", utc_date); - - timer = ecore_timer_add(60 - st.tm_sec, _set_info_time, info); - - r = appcore_get_timeformat(&timeformat); - if (r == 0 && timeformat == APPCORE_TIME_FORMAT_24) { - strftime(bf1, sizeof(bf1), "%H:%M", &st); - snprintf(buf, sizeof(buf), "%s", bf1); - edje_object_part_text_set(_EDJ(info), "txt.clock", bf1); - } else { - strftime(bf1, sizeof(bf1), "%l", &st); - hour = atoi(bf1); - strftime(bf1, sizeof(bf1), ":%M", &st); - snprintf(buf, sizeof(buf), "%d%s", hour, bf1); - - char utc_ampm[BUFFER_LENGTH] = { 0 }; - int ampm_length = 0; - Eina_Bool is_pre = EINA_FALSE; - - get_formatted_ampm_from_utc_time(utc_ampm, sizeof(utc_ampm), &m_length, &is_pre); - LOCK_SCREEN_TRACE_DBG("utc_ampm = %s", utc_ampm); - if(ampm_length > 0 && ampm_length <= 4) { - snprintf(bf2, sizeof(bf2), "%s", utc_ampm); - } else { - if (st.tm_hour >= 0 && st.tm_hour < 12) { - snprintf(bf2, sizeof(bf2), "%s", "AM"); - } else { - snprintf(bf2, sizeof(bf2), "%s", "PM"); - } - } - _lock_time_set(info, is_pre, buf, bf2); - } - - return 0; -} - -static void _set_info_helptext(void *data) -{ - struct appdata *ad = data; - if (ad == NULL) { - return; - } - - edje_object_part_text_set(_EDJ(ad->info), "txt.helptext", _NOT_LOCALIZED("Drag along the dots to unlock")); -} - -void _set_info(void *data) -{ - LOGD("[ == %s == ]", __func__); - struct appdata *ad = data; - if (ad == NULL) { - return; - } - - int is_clock = -1; - int is_helptext = -1; - - int retc = vconf_get_bool(VCONFKEY_LOCKSCREEN_CLOCK_DISPLAY, &is_clock); - int retht = vconf_get_bool(VCONFKEY_LOCKSCREEN_HELP_TEXT_DISPLAY, &is_helptext); - - if(0 == retc) { - if(is_clock) { - _set_info_time(ad->info); - } - } - if(0 == retht) { - if(is_helptext) { - _set_info_helptext(ad); - } - } -} - -void update_time(void *data) -{ - struct appdata *ad = data; - if (ad == NULL) { - return; - } - - int is_clock = -1; - int retc = vconf_get_bool(VCONFKEY_LOCKSCREEN_CLOCK_DISPLAY, &is_clock); - if(0 == retc) { - if(is_clock) { - _set_info_time(ad->info); - } - } -} diff --git a/src/lockscreen-lite.c b/src/lockscreen-lite.c new file mode 100755 index 0000000..b563cb1 --- /dev/null +++ b/src/lockscreen-lite.c @@ -0,0 +1,1290 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "lockscreen-lite.h" +#include "default-unlock.h" +#include "battery.h" +#include "sim-state.h" +#include "util-time.h" +#include "control-panel.h" +#include "music-player.h" +#include "background-view.h" +#include "contextual-info.h" +#include "progress_circle.h" +#include "control-panel-password.h" +#include "simple-password.h" +#include "complex-password.h" +#include "password-verification.h" +#include "underbar.h" +#include "camera.h" + +#define LOCKSCREEN_EDJE_FILE EDJE_DIR"lockscreen-lite.edj" +#define STR_ATOM_PANEL_SCROLLABLE_STATE "_E_MOVE_PANEL_SCROLLABLE_STATE" +#define COLOR_TABLE "/usr/apps/org.tizen.lockscreen/shared/res/tables/org.tizen.lockscreen-lite_ChangeableColorInfo.xml" +#define FONT_TABLE "/usr/apps/org.tizen.lockscreen/shared/res/tables/org.tizen.lockscreen-lite_ChangeableFontInfo.xml" + +#define PRELOADED_BG_DIR "/opt/usr/share/settings/Wallpapers/" +#define VCONFKEY_PRELOAD_WALLPAPER "db/lockscreen/lock_wallpaper_is_default" +#define VCONFKEY_WALLPAPER_TYPE "db/lockscreen/wallpaper_type" + +#define LOCK_CONTROL_TYPE_KEY "lock_type" +#define LOCK_CONTROL_TYPE_VALUE_RECOVERY "recovery_lock" +#define LOCK_CONTROL_KEY "lock_op" +#define LOCK_CONTROL_VALUE_START_READY "start_ready" +#define VISIBILITY_TIMEOUT 8.0f +#define LAZY_LAYOUT_TIMER 0.3f +#define LAZY_INIT_TIMER 2.0f +#define LAZY_TAPI_INIT_TIMER 60.0f + +#define TIME_ZONEINFO_PATH "/usr/share/zoneinfo/" +#define TIME_ZONEINFO_PATH_LEN (strlen(TIME_ZONEINFO_PATH)) + +static struct +{ + Evas_Object *win; + Evas_Object *layout; + Evas_Object *conformant; + Evas_Object *bg; + + Ea_Theme_Color_Table *color_table; + Eina_List *font_table; + + /* handler */ + Ecore_Idler *create_idler_handler; + + int window_width; + int window_height; + int locktype; + int is_feedback_enabled; + int is_keyboard_tap_sound_enabled; + int is_key_sound_enabled; + + bool is_simple; + bool password_after_swiping; + + int call_state; + + int is_service_initialized; + int emergency; + Ecore_Timer *safety_init_timer; + + int is_recovery_mode; +} s_app_data = +{ + .win = NULL, + .layout = NULL, + .conformant = NULL, + .bg = NULL, + + .color_table = NULL, + .font_table = NULL, + .create_idler_handler = NULL, + + .window_width = 0, + .window_height = 0, + .is_feedback_enabled = 0, + .is_keyboard_tap_sound_enabled = 0, + .is_key_sound_enabled = 0, + + .locktype = SETTING_SCREEN_LOCK_TYPE_NONE, + .is_simple = true, + + .call_state = 0, + + .is_service_initialized = 0, + .emergency = 0, + .safety_init_timer = NULL, + + .is_recovery_mode = 0, +}; + +static Evas_Object* _create_bg(void); +static Evas_Object* _create_layout(void); +static Evas_Object* _create_conformant(void); +static void _register_vconf(void); +static void _vconf_get_values(void); +static void _feedback_state_changed_cb(keynode_t *node, void *data); +static bool _load_tables(void); +static void _unload_tables(void); +static void _set_dualclock_timezone(); + + +bool _create_app(void *data); +void _terminate_app(void *data); +void _pause_app(void *user_data); +void _resume_app(void *user_data); +static void _app_control(app_control_h control, void *data); +static void _language_changed(void *data); +static Eina_Bool _load_layout(void *data); +static void _pw_lock_state_changed_cb(keynode_t *node, void *data); + +//TODO: prepare function for delete all widgets + +int main(int argc, char **argv) +{ + LOCK_SCREEN_TRACE_DBG(""); + app_event_callback_s event_callbacks; + event_callbacks.create = _create_app; + event_callbacks.terminate = _terminate_app; + event_callbacks.pause = _pause_app; + event_callbacks.resume = _resume_app; + + + event_callbacks.app_control = _app_control; + event_callbacks.low_memory = NULL; + event_callbacks.low_battery = NULL; + event_callbacks.device_orientation = NULL; + event_callbacks.language_changed = _language_changed; + event_callbacks.region_format_changed = NULL; + + setenv("ELM_ENGINE", "gl", 1); + + return app_efl_main(&argc, &argv, &event_callbacks, &s_app_data); +} + +//get window parameters +Evas_Object* lockscreen_get_window() +{ + return s_app_data.win; +} + +int lockscreen_get_window_width() +{ + return s_app_data.window_width; +} + +int lockscreen_get_window_height() +{ + return s_app_data.window_height; +} + +//get window content +Evas_Object* lockscreen_get_layout() +{ + return s_app_data.layout; +} + +Eina_Bool is_contextual_visible_get(void) +{ +#if DISABLE_MINICONTROLLER + return EINA_FALSE; +#else + if (2 == s_app_data.emergency) return EINA_FALSE; + return EINA_TRUE; +#endif +} + +int lockscreen_get_emergency(void) +{ + return s_app_data.emergency; +} + +/*! + * Timer to be used to create and initialize + */ +static Eina_Bool _lazy_layout_init_timer_cb(void *data) +{ + LOCK_SCREEN_TRACE_WARN(""); + + util_time_init(); + _vconf_get_values(); + _load_layout(NULL); + lockd_event(LKD_EVT_APP_VIEW_READY, NULL); + lockd_event(LKD_EVT_VIEW_IDLE, NULL); + + return ECORE_CALLBACK_CANCEL; +} + +#if !DISABLE_TELEPHONY +static void _tapi_lazy_init_cb(void *user_data, void *event_info) +{ + LOCK_SCREEN_TRACE_WARN(""); + + lockd_event_unregister_cb(DAEMON_EVENT_FIRST_UNLOCK, _tapi_lazy_init_cb); + + sim_status_listener_init(); +} + +static Eina_Bool _tapi_lazy_init_timer_cb(void *data) +{ + _tapi_lazy_init_cb(NULL, NULL); + + return ECORE_CALLBACK_CANCEL; +} +#endif + +static Eina_Bool _lazy_init_timer_cb(void *data) +{ + LOCK_SCREEN_TRACE_WARN(""); + +#if !DISABLE_TELEPHONY + int locktype = get_locktype(); + if (locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD || locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) { + lockd_event_register_cb(DAEMON_EVENT_FIRST_UNLOCK, _tapi_lazy_init_cb, NULL); + if (!ecore_timer_add(LAZY_TAPI_INIT_TIMER, _tapi_lazy_init_timer_cb, NULL)) { + LOCK_SCREEN_TRACE_ERR("Failed to create a new timer for lazy tapi initializer"); + } + } else { + sim_status_listener_init(); + } +#endif + feedback_initialize(); + _register_vconf(); + + return ECORE_CALLBACK_CANCEL; +} + +static Eina_Bool _visibility_timeout_cb(void *data) +{ + LOCK_SCREEN_TRACE_WARN("Visibility event is not reached in %lf seconds", VISIBILITY_TIMEOUT); + + _lazy_layout_init_timer_cb(NULL); + _lazy_init_timer_cb(NULL); + + s_app_data.safety_init_timer = NULL; + s_app_data.is_service_initialized = 1; + + return ECORE_CALLBACK_CANCEL; +} + +static Eina_Bool _window_visibility_cb(void *data, int type, void *event) +{ + Evas_Object *win = data; + Ecore_X_Event_Window_Visibility_Change *ev = event; + retv_if(ev == NULL, ECORE_CALLBACK_PASS_ON); + + Ecore_X_Window xWin = elm_win_xwindow_get(win); + + if (xWin != ev->win) { + return ECORE_CALLBACK_PASS_ON; + } + + LOCK_SCREEN_TRACE_WARN("Window [0x%X] is now visible(%d)", xWin, ev->fully_obscured); + + if (s_app_data.is_service_initialized == 0) { + if (s_app_data.safety_init_timer) { + /** + * Delete the safety timer, + * We are successfully get the visibility change event. + * So we don't need to keep the safety timer anymore. + * Delete it. + */ + ecore_timer_del(s_app_data.safety_init_timer); + s_app_data.safety_init_timer = NULL; + } + + if (!ecore_timer_add(LAZY_LAYOUT_TIMER, _lazy_layout_init_timer_cb, NULL)) { + LOCK_SCREEN_TRACE_ERR("Failed to create a new timer for layout initializer"); + _lazy_layout_init_timer_cb(NULL); + } + + if (!ecore_timer_add(LAZY_INIT_TIMER, _lazy_init_timer_cb, NULL)) { + LOCK_SCREEN_TRACE_ERR("Failed to create a new timer for lazy initializer"); + _lazy_init_timer_cb(NULL); + } + + s_app_data.is_service_initialized = 1; + } + + if (ev->fully_obscured == 1) { + lockd_event(LKD_EVT_WIN_BECOME_INVISIBLE, NULL); + } else { + lockd_event(LKD_EVT_WIN_BECOME_VISIBLE, NULL); + } + + return ECORE_CALLBACK_PASS_ON; +} + +static Eina_Bool _load_layout(void *data) +{ + if(!_create_conformant()) + { + LOCK_SCREEN_TRACE_DBG("Failed to create conformant"); + evas_object_del(s_app_data.win); + return FALSE; + } + + if(!_create_layout()) + { + LOCK_SCREEN_TRACE_DBG("Failed to create layout"); + evas_object_del(s_app_data.conformant); + evas_object_del(s_app_data.win); + return EINA_FALSE; + } + + if(!_load_tables()) + { + LOCK_SCREEN_TRACE_DBG("Failed to load tables"); + evas_object_del(s_app_data.conformant); + evas_object_del(s_app_data.win); + return FALSE; + } + + underbar_view_update(); + + return EINA_FALSE; +} + +bool _create_app(void *data) +{ + LOCK_SCREEN_TRACE_DBG(""); + + elm_app_base_scale_set(1.8); + + lockd_init(); + lockd_event(LKD_EVT_APP_CREATE, NULL); + + int locktype = get_locktype(); + property_get_int(LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED, &s_app_data.emergency); + + + int pw_lock = 0; + int ret = vconf_get_bool(VCONFKEY_PWLOCK_FIRST_BOOT, &pw_lock); + + if(ret == VCONF_ERROR) + { + LOCK_SCREEN_TRACE_ERR("failed to get PW-Lock state"); + } + else + { + LOCK_SCREEN_TRACE_WARN("pw-lock state[%d]", pw_lock); + + if(pw_lock == 0) + { + _set_dualclock_timezone(); + } + } + + Evas_Object *win = NULL; + if (locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) { + win = lockd_window_create(0, &(s_app_data.window_width), &(s_app_data.window_height)); + } else { + win = lockd_window_create(1, &(s_app_data.window_width), &(s_app_data.window_height)); + } + retv_if(win == NULL, FALSE); + s_app_data.win = win; + + if(!_create_bg()) + { + LOCK_SCREEN_TRACE_DBG("Create bg failed"); + return FALSE; + } + + Ecore_Event_Handler *handler = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_VISIBILITY_CHANGE, + _window_visibility_cb, s_app_data.win); + if (!handler) { + LOCK_SCREEN_TRACE_ERR("Failed to add an ecore event handler (VISIBILITY_CHANGE)"); + } + + evas_object_show(win); + s_app_data.safety_init_timer = ecore_timer_add(VISIBILITY_TIMEOUT, _visibility_timeout_cb, NULL); + + return TRUE; +} + +static void _app_control(app_control_h control, void *data) +{ + char *control_val = NULL; + + app_control_get_extra_data(control, LOCK_CONTROL_TYPE_KEY, &control_val); + LOCK_SCREEN_TRACE_WARN("control value : %s", control_val); + + if (control_val) { + if (!strncmp(control_val, LOCK_CONTROL_TYPE_VALUE_RECOVERY, strlen(LOCK_CONTROL_TYPE_VALUE_RECOVERY))) { + set_recovery_mode(1); + } + free(control_val); + control_val = NULL; + } + + static int is_win_created = 0; + + if (is_win_created == 0) { + app_control_get_extra_data(control, LOCK_CONTROL_KEY, &control_val); + LOCK_SCREEN_TRACE_WARN("control value : %s", control_val); + if (control_val) { + if (!strncmp(control_val, LOCK_CONTROL_VALUE_START_READY, strlen(LOCK_CONTROL_VALUE_START_READY))) { + LKD_State_Config *conf = lockd_state_config_new(1, 0); + lockd_event(LKD_EVT_WIN_CREATE, conf); + lockd_state_config_del(conf); + } + free(control_val); + } else { + LKD_State_Config *conf = lockd_state_config_new(0, 0); + lockd_event(LKD_EVT_WIN_CREATE, conf); + lockd_state_config_del(conf); + } + is_win_created = 1; + } +} + +static void _unregister_vconf(void) +{ + LOCK_SCREEN_TRACE_DBG("RKI_UNREGISTER"); + vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SVCTYPE, NULL); + vconf_ignore_key_changed(VCONFKEY_SYSTEM_TIME_CHANGED, NULL); + vconf_ignore_key_changed(VCONFKEY_IDLE_LOCK_BGSET, update_background_image_cb); + vconf_ignore_key_changed(VCONF_LOCKSCREEN_FESTIVAL_BGSET, update_background_image_cb); + vconf_ignore_key_changed(VCONFKEY_PWLOCK_FIRST_BOOT, _pw_lock_state_changed_cb); +} + +void _terminate_app(void *data) +{ + if (s_app_data.layout) + evas_object_del(s_app_data.layout); + if (s_app_data.conformant) + evas_object_del(s_app_data.conformant); + if (s_app_data.win) + evas_object_del(s_app_data.win); + + _unregister_vconf(); + feedback_deinitialize(); + + LOCK_SCREEN_TRACE_DBG("lockApp is terminated"); + + _unload_tables(); + background_image_next_set(); +} + +void _pause_app(void *user_data) +{ + LOCK_SCREEN_TRACE_DBG("Pause app"); + if (s_app_data.is_service_initialized == 1) { + default_unlock_pause_application(); + lockd_event(LKD_EVT_APP_PAUSE, NULL); + //lockscreen_set_bg_on(); + } +} + + +void _resume_app(void *user_data) +{ + LOCK_SCREEN_TRACE_DBG("Resume app"); + if (s_app_data.is_service_initialized == 1) { + lockd_event(LKD_EVT_APP_RESUME, NULL); + //lockscreen_set_bg_off(); + } +} + + +static void _language_changed(void *data) +{ + LOCK_SCREEN_TRACE_DBG("language_changed app"); + + char *lang = NULL; + lang = vconf_get_str(VCONFKEY_LANGSET); + if (lang) { + elm_language_set(lang); + } + free(lang); + + modules_language_changed(); +} + + +static void _feedback_state_changed_cb(keynode_t *node, void *data) +{ + if(!node) + { + LOCK_SCREEN_TRACE_DBG("Failed to get node"); + return; + } + + s_app_data.is_feedback_enabled = node->value.b; +} + +static void _touch_sound_state_changed_cb(keynode_t *node, void *data) +{ + if(!node) + { + LOCK_SCREEN_TRACE_DBG("Failed to get node"); + return; + } + + s_app_data.is_keyboard_tap_sound_enabled = node->value.b; +} + +static void _key_sound_state_changed_cb(keynode_t *node, void *data) +{ + if(!node) + { + LOCK_SCREEN_TRACE_DBG("Failed to get node"); + return; + } + + s_app_data.is_key_sound_enabled = node->value.b; +} + +static void _call_state_changed_cb(keynode_t *node, void *data) +{ + int ret = vconf_get_int(VCONFKEY_CALL_STATE, &s_app_data.call_state); + if(ret == VCONF_ERROR) + { + LOCK_SCREEN_TRACE_ERR("Failed to get call state"); + s_app_data.call_state = 0; + } + + default_unlock_call_state_cb(); +} + +static void _pw_lock_state_changed_cb(keynode_t *node, void *data) +{ + int pw_lock = 0; + int ret = vconf_get_bool(VCONFKEY_PWLOCK_FIRST_BOOT, &pw_lock); + + if(ret == VCONF_ERROR) + { + LOCK_SCREEN_TRACE_ERR("failed to get PW-Lock state"); + } + else + { + LOCK_SCREEN_TRACE_WARN("pw-lock state[%d]", pw_lock); + + if(pw_lock == 0) + { + _set_dualclock_timezone(); + } + } +} + +static void _register_vconf(void) +{ + if(vconf_notify_key_changed(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, _feedback_state_changed_cb, &s_app_data)) + { + LOCK_SCREEN_TRACE_ERR("Failed to add sound feedback callback"); + } + if(vconf_notify_key_changed(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL , _touch_sound_state_changed_cb, &s_app_data)) + { + LOCK_SCREEN_TRACE_ERR("Failed to add touch sound callback"); + } +#ifdef VCONFKEY_ISE_KEYSOUND + if(vconf_notify_key_changed(VCONFKEY_ISE_KEYSOUND , _key_sound_state_changed_cb, &s_app_data)) + { + LOCK_SCREEN_TRACE_ERR("Failed to key sound callback"); + } +#endif + if(vconf_notify_key_changed(VCONFKEY_IDLE_LOCK_BGSET, update_background_image_cb, NULL)) + { + LOCK_SCREEN_TRACE_ERR("Failed to add background image change callback"); + } + if(vconf_notify_key_changed(VCONF_LOCKSCREEN_FESTIVAL_BGSET, update_background_image_cb, NULL)) + { + LOCK_SCREEN_TRACE_ERR("Failed to add fes background image change callback"); + } + if(vconf_notify_key_changed(VCONFKEY_CALL_STATE, _call_state_changed_cb, &s_app_data)) + { + LOCK_SCREEN_TRACE_ERR("Failed to add call state change callback"); + } + if(vconf_notify_key_changed(VCONFKEY_PWLOCK_FIRST_BOOT, _pw_lock_state_changed_cb, NULL)) + { + LOCK_SCREEN_TRACE_ERR("Failed to pw-lock state change callback"); + } +} + +static void _vconf_get_values(void) +{ + int ret = VCONF_ERROR; + + ret = vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &s_app_data.locktype); + if(ret == VCONF_ERROR) + { + LOCK_SCREEN_TRACE_DBG("Failed to get lockscreen type"); + } + + s_app_data.password_after_swiping = 1; + + ret = vconf_get_bool(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, &s_app_data.is_feedback_enabled); + if(ret == VCONF_ERROR) + { + LOCK_SCREEN_TRACE_DBG("Failed to get sound lock state"); + } + ret = vconf_get_bool(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL , &s_app_data.is_keyboard_tap_sound_enabled); + if(ret == VCONF_ERROR) + { + LOCK_SCREEN_TRACE_DBG("Failed to get keyboard tap sound state"); + } +#ifdef VCONFKEY_ISE_KEYSOUND + ret = vconf_get_bool(VCONFKEY_ISE_KEYSOUND , &s_app_data.is_key_sound_enabled); + if(ret == VCONF_ERROR) + { + LOCK_SCREEN_TRACE_DBG("Failed to get button key sound state"); + } +#endif +} + +static void _set_dualclock_timezone() +{ + int first_launching = 0; + vconf_get_int("memory/private/com.samsung.lockscreen/first_launching", &first_launching); + + if(first_launching) + { + LOCK_SCREEN_TRACE_DBG("This is device first booting,Set dualclock time zone!!"); + int need_retry = 0; + char *timezone = NULL; + char *timezone_int = NULL; + + timezone = vconf_get_str(VCONFKEY_LOCKSCREEN_DUAL_CLOCK_TIMEZONE_ID); + + if(timezone == NULL) + { + need_retry = 1; + } + else if(strlen(timezone) == 0) + { + free(timezone); + need_retry = 1; + timezone = NULL; + } + else + { + LOCK_SCREEN_TRACE_DBG("timezone is already set[%s]", timezone); + free(timezone); + return ; + } + + if (need_retry == 1) + { + char tz[1024] = {0,}; + char buf[1024] = {0}; + + ssize_t len = readlink("/opt/etc/localtime", buf, sizeof(buf)-1); + buf[1023] = '\0'; + + if (buf[0] != '\0' && len != -1) + { + if(strstr(buf,TIME_ZONEINFO_PATH)) + { + memcpy(tz, &buf[TIME_ZONEINFO_PATH_LEN],len-TIME_ZONEINFO_PATH_LEN); + } + //get TimeZone + timezone = strdup(tz); + } + + LOCK_SCREEN_TRACE_WARN("irst booting timezone name is [%s]", timezone); + + //get GMT +// timezone_int = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_INT); + time_t t = time(0); // get unix time. sec. + struct tm* data = NULL; + data = localtime(&t); // save time as structure. + + if(!data) + { + LOCK_SCREEN_TRACE_WARN("data is NULL!!"); + if(timezone) + free(timezone); + return ; + } + + int gmtoffset_hour = (data->tm_gmtoff)/3600; // result : hour. + int gmtoffset_min = ((data->tm_gmtoff)%3600)/60; // result : min. + char str_buf[1024] = {0}; + + snprintf(str_buf, 1024, "%+d:%02u", gmtoffset_hour, gmtoffset_min); + timezone_int = strdup(str_buf); + + if(timezone != NULL && strlen(timezone) > 0 && timezone_int != NULL && strlen(timezone_int) > 0) + { + LOCK_SCREEN_TRACE_DBG("vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID) success : save vconf to lockscreen setting"); + if(vconf_set_str(VCONFKEY_LOCKSCREEN_DUAL_CLOCK_TIMEZONE_ID, timezone) != 0 || vconf_set_str(VCONFKEY_LOCKSCREEN_DUAL_CLOCK_TIMEZONE, timezone_int) != 0) + { + LOCK_SCREEN_TRACE_DBG("vconf_set_str() failed"); + } + } + + LOCK_SCREEN_TRACE_DBG("dual clock timezone[%s], GMT[%s]", timezone, timezone_int); + + if(timezone_int) + free(timezone_int); + + if(timezone) + free(timezone); + } + + vconf_set_int("memory/private/com.samsung.lockscreen/first_launching", 0); + + } +} + +Eina_Bool default_bg_set(Evas_Object *bg) +{ + if(bg == NULL) + { + LOCK_SCREEN_TRACE_ERR("parameter is NULL"); + return EINA_FALSE; + } + + char *bg_path = NULL; + Eina_Bool ret = EINA_FALSE; + + bg_path = vconf_get_str(VCONFKEY_IDLE_LOCK_BGSET); + if(bg_path) + { + ret = elm_bg_file_set(bg, bg_path, NULL); + if(ret == EINA_FALSE) + { + LOCK_SCREEN_TRACE_ERR("elm_bg_file_set() failed"); + } + free(bg_path); + } + if(ret == EINA_FALSE) + { + LOCK_SCREEN_TRACE_ERR("default bg set"); + ret = elm_bg_file_set(bg, DEFAULT_BG_PATH, NULL); + if(ret == EINA_FALSE) + { + LOCK_SCREEN_TRACE_ERR("elm_bg_file_set() failed"); + return EINA_FALSE; + } + } + return EINA_TRUE; +} + +Eina_Bool lockscreen_bg_preload_path_is(const char *file) +{ + Eina_Bool ret = EINA_FALSE; + int preload_vconf = 0; + + if(file == NULL) + { + LOCK_SCREEN_TRACE_ERR("parameter error!"); + if(s_app_data.layout != NULL) + { + elm_object_signal_emit(s_app_data.layout, "hide,img.bg_gradation", "img.bg_gradation"); + } + return EINA_FALSE; + } + + if(vconf_get_bool(VCONFKEY_PRELOAD_WALLPAPER, &preload_vconf) != 0) + { + LOCK_SCREEN_TRACE_DBG("vconf_get_bool() failed"); + int wallpaper_type = 0; + if(vconf_get_int(VCONFKEY_WALLPAPER_TYPE, &wallpaper_type) == 0) { + LOCK_SCREEN_TRACE_DBG("wallpaper type(%d)", wallpaper_type); + if(wallpaper_type == 0) + { + ret = EINA_TRUE; + } + else + { + ret = EINA_FALSE; + } + } + else + { + LOCK_SCREEN_TRACE_ERR("vconf_get_int() failed"); + if(strstr(file, PRELOADED_BG_DIR) == NULL) + { + ret = EINA_FALSE; + } + else + { + ret = EINA_TRUE; + } + } + } + else + { + if(preload_vconf) + { + ret = EINA_TRUE; + } + else + { + ret = EINA_FALSE; + } + } + + if(s_app_data.layout != NULL) + { + if(ret) + { + elm_object_signal_emit(s_app_data.layout, "hide.gradation", ""); + } + else + { + elm_object_signal_emit(s_app_data.layout, "show.gradation", ""); + } + } + else + { + LOCK_SCREEN_TRACE_ERR("There is no main layout yet"); + } + + return ret; +} + +static Evas_Object* _create_bg(void) +{ + Evas_Object *bg = NULL; + Evas_Object *win = NULL; + + win = s_app_data.win; + if(!win) + { + LOCK_SCREEN_TRACE_ERR("Failed to get window"); + return NULL; + } + + bg = elm_bg_add(win); //elm_image_add(); + if(!bg) + { + LOCK_SCREEN_TRACE_DBG("Failed to get background"); + return NULL; + } + elm_bg_option_set(bg, ELM_BG_OPTION_SCALE); + + evas_object_size_hint_min_set(bg, s_app_data.window_width, s_app_data.window_height); + elm_win_resize_object_add(win, bg); + evas_object_show(bg); + + background_image_set_to(NULL, bg, LOCK_BG_DEFAULT, NULL, 1); + + s_app_data.bg = bg; + return bg; +} + +static Evas_Object* _create_layout() +{ + Evas_Object *layout = NULL; + Evas_Object *default_layout = NULL; + //Evas_Object *box = NULL; + + if(!s_app_data.win) + { + LOCK_SCREEN_TRACE_DBG("Invalid state of application : win is not created"); + return NULL; + } + + layout = elm_layout_add(s_app_data.win); + if(!layout) + { + LOCK_SCREEN_TRACE_DBG("Failed to create main layout"); + return NULL; + } + s_app_data.layout = layout; + evas_object_show(layout); + + if(!elm_layout_file_set(layout, LOCKSCREEN_EDJE_FILE, "lockscreen-lite")) + { + LOCK_SCREEN_TRACE_DBG("Failed to load edje file"); + evas_object_del(layout); + s_app_data.layout = NULL; + return NULL; + } + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + + default_layout = default_unlock_layout_create(layout); + if(!default_layout) + { + LOCK_SCREEN_TRACE_DBG("Failed to create default layout"); + evas_object_del(layout); + s_app_data.layout = NULL; + return NULL; + } + elm_object_part_content_set(layout, "default_layout", default_layout); + if(!elm_object_part_content_get(layout, "default_layout")) + { + LOCK_SCREEN_TRACE_DBG("Failed to set default layout"); + evas_object_del(default_layout); + evas_object_del(layout); + s_app_data.layout = NULL; + } + + camera_view_create(layout); + create_password_layout(); + + elm_object_part_content_set(s_app_data.conformant, "elm.swallow.bg", layout); + ea_object_event_callback_add(layout, EA_CALLBACK_BACK, default_unlock_hw_back_cb, NULL); + + elm_object_part_content_set(s_app_data.layout, "sw.bg", s_app_data.bg); + + /* check bg preloaded image : NG here */ + char *bg_path = vconf_get_str(VCONFKEY_IDLE_LOCK_BGSET); + if (bg_path) { + lockscreen_bg_preload_path_is((const char *)bg_path); + free(bg_path); + } + + LOCK_SCREEN_TRACE_DBG("Success create Default unlock"); +// security_server_reset_pwd("1111", 5, 30); //TODO: Test purpose only. Please remove when propper password will be available + + return layout; +} + +void create_password_layout(void) +{ + LOCK_SCREEN_TRACE_DBG("PASSWORD_CREATE!!!"); + + if(s_app_data.layout == NULL) + { + LOCK_SCREEN_TRACE_ERR("ther is no main layout"); + return; + } + + if(get_locktype() == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) + { + Evas_Object *simple_password = create_simple_password_layout_2(s_app_data.layout, EINA_FALSE); + elm_object_part_content_set(s_app_data.layout, "password_ly", simple_password); + } + else if (get_locktype() == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + Evas_Object *complex_password = create_complex_password_layout_2(s_app_data.layout, EINA_FALSE); + elm_object_part_content_set(s_app_data.layout, "password_ly", complex_password); + } +} + +void destroy_password_layout(void) +{ + LOCK_SCREEN_TRACE_DBG("PASSWORD_DESTROYED"); + + if(s_app_data.layout == NULL) + { + LOCK_SCREEN_TRACE_ERR("ther is no main layout"); + return; + } + + control_panel_password_destroy(); + + Evas_Object *ly_password = elm_object_part_content_get(s_app_data.layout, "password_ly"); + if(ly_password) + { + evas_object_del(ly_password); + } + + destroy_emg_button(); + control_panel_sim_state_changed(); +} + +static Evas_Object* _create_conformant(void) +{ + LOCK_SCREEN_TRACE_DBG(""); + Evas_Object *conformant = NULL; + Evas_Object *indicator_bg = NULL; + + if(!s_app_data.win) + { + LOCK_SCREEN_TRACE_DBG("Window is not created"); + return NULL; + } + + conformant = elm_conformant_add(s_app_data.win); + if(!conformant) + { + LOCK_SCREEN_TRACE_DBG("Failed to create conformant"); + return NULL; + } + elm_win_conformant_set(s_app_data.win, EINA_TRUE); + + indicator_bg = elm_bg_add(conformant); + if(!indicator_bg) + { + LOCK_SCREEN_TRACE_DBG("Failed to create indicator_bg"); + return NULL; + } + + elm_object_style_set(indicator_bg, "indicator/transparent"); + elm_object_part_content_set(conformant, "elm.swallow.indicator_bg", indicator_bg); + evas_object_show(indicator_bg); + + evas_object_size_hint_weight_set(conformant, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(s_app_data.win, conformant); + + elm_win_indicator_mode_set(s_app_data.win, ELM_WIN_INDICATOR_SHOW); + elm_win_indicator_opacity_set(s_app_data.win, ELM_WIN_INDICATOR_OPAQUE); + elm_object_signal_emit(conformant, "elm,state,indicator,overlap", "elm"); + + + evas_object_show(conformant); + s_app_data.conformant = conformant; + + return conformant; +} + +static bool _load_tables(void) +{ + Evas_Object *win = NULL; + Ea_Theme_Color_Table *color_table = NULL; + Eina_List *font_table = NULL; + + win = s_app_data.win; + if(!win) + { + LOCK_SCREEN_TRACE_DBG("Window is not created"); + return false; + } + + color_table = ea_theme_color_table_new(COLOR_TABLE); + if(!color_table) + { + LOCK_SCREEN_TRACE_ERR("Failed to load color table"); + return false; + } + + font_table = ea_theme_font_table_new(FONT_TABLE); + if(!font_table) + { + LOCK_SCREEN_TRACE_DBG("Failed to get font table"); + ea_theme_color_table_free(color_table); + return false; + } + + LOCK_SCREEN_TRACE_DBG("[%p] color_table [%p] ", color_table, font_table); + + ea_theme_colors_set(color_table, EA_THEME_STYLE_LIGHT); + ea_theme_fonts_set(font_table); + ea_theme_changeable_ui_enabled_set(EINA_TRUE); + + s_app_data.color_table = color_table; + s_app_data.font_table = font_table; + + + return true; +} + +static void _unload_tables() +{ + if(s_app_data.color_table) + { + ea_theme_color_table_free(s_app_data.color_table); + s_app_data.color_table = NULL; + } + + if(s_app_data.font_table) + { + ea_theme_font_table_free(s_app_data.font_table); + s_app_data.font_table = NULL; + } +} + + +void trigger_unlock(void) +{ + int locktype = get_locktype(); + if(locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + password_verification_verify_unlock_trigger(); + lockd_event(LKD_EVT_UNLOCK, NULL); + } + else + { + lockd_event(LKD_EVT_UNLOCK, NULL); + } +} + +void set_recovery_mode(int enabled) +{ + s_app_data.is_recovery_mode = enabled; +} + +int get_recovery_mode(void) +{ + return s_app_data.is_recovery_mode; +} + +int get_locktype(void) +{ + int locktype = 0; + + property_get_int(LKD_PROP_ID_LOCKTYPE, &locktype); + + if (s_app_data.is_recovery_mode == 1) { + return SETTING_SCREEN_LOCK_TYPE_PASSWORD; + } else { + return locktype; + } +} + +void set_locktype(int locktype) +{ + s_app_data.locktype = locktype; +} + +bool lockscreen_password_after_swiping_get(void) +{ + return s_app_data.password_after_swiping; +} + +bool lockscreen_is_view_simple_get(void) +{ + return s_app_data.is_simple; +} + +void lockscreen_is_view_simple_set(bool is_simple) +{ + s_app_data.is_simple = is_simple; +} + +Evas_Object *lockscreen_get_bg(void) +{ + return s_app_data.bg; +} + +int lockscreen_is_calling_state_get(void) +{ + return s_app_data.call_state; +} + +void lockscreen_play_lock_feedback(void) +{ + LOCK_SCREEN_TRACE_DBG("lock sound : %d", s_app_data.is_feedback_enabled); + + if (s_app_data.is_feedback_enabled) { + LOCK_SCREEN_TRACE_DBG("lock sound : %d",s_app_data.locktype); + if (s_app_data.locktype == SETTING_SCREEN_LOCK_TYPE_SWIPE) { + feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_LOCK); + } else { + feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_LOCK); + } + } +} + +void lockscreen_play_key_feedback(void) +{ + if(!s_app_data.is_key_sound_enabled) + { + return; + } + + feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_SIP); +} + +static Eina_Bool _unlock_feedback_timer_cb(void *data) +{ + feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_UNLOCK); + + return ECORE_CALLBACK_CANCEL; +} + +void lockscreen_play_unlock_feedback(double delay) +{ + if(!s_app_data.is_feedback_enabled) + { + return; + } + + if (delay == 0.0) { + feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_UNLOCK); + } else { + ecore_timer_add(delay, _unlock_feedback_timer_cb, NULL); + } +} + +void lockscreen_play_tap_feedback(void) +{ + if(!s_app_data.is_keyboard_tap_sound_enabled) + { + return; + } + + feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TOUCH_TAP); +} + +static void _confirm_popup_ok(void *data, Evas_Object *obj, void *event_info) +{ + ret_if(data == NULL); + evas_object_del((Evas_Object *)data); +} + +void lockscreen_confirm_popup(char *title, char *text, Evas_Smart_Cb func, void *data, double timeout) +{ + Evas_Object *window = lockscreen_get_window(); + ret_if(window == NULL); + Evas_Object *popup = elm_popup_add(window); + ret_if(popup == NULL); + + evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + + if (title) { + elm_object_part_text_set(popup, "title,text", title); + } + + if (text) { + elm_object_text_set(popup, text); + } + + Evas_Object *btn = elm_button_add(popup); + elm_object_style_set(btn, "popup"); + elm_object_text_set(btn, _("IDS_COM_BUTTON_OK_ABB")); + elm_object_part_content_set(popup, "button1", btn); + if (timeout > 0.0) { + elm_popup_timeout_set(popup, timeout); + } + if (func) { + evas_object_smart_callback_add(btn, "clicked", func, popup); + ea_object_event_callback_add(popup, EA_CALLBACK_BACK, func, popup); + } else { + evas_object_smart_callback_add(btn, "clicked", _confirm_popup_ok, popup); + ea_object_event_callback_add(popup, EA_CALLBACK_BACK, _confirm_popup_ok, popup); + } + + if (data) { + evas_object_data_set(popup, "user_data", data); + } + + evas_object_show(popup); +} + +/*! + * module + */ + +static void _resume(LKD_Module_Data *md) +{ + property_get_int(LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED, &s_app_data.emergency); +} + +static void _property_changed(LKD_Module_Data *md, int property_id) +{ + if(property_id == LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED) + { + property_get_int(LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED, &s_app_data.emergency); + } + +} + +LKD_Module g_mod_lockscreen_default = { + .id = "lockscreen-default", + .notifying = 1, + .property_list = LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED, + .init = NULL, + .fini = NULL, + .resume = _resume, + .pause = NULL, + .property_changed = _property_changed, +}; diff --git a/src/lockscreen.c b/src/lockscreen.c deleted file mode 100755 index 5bc609d..0000000 --- a/src/lockscreen.c +++ /dev/null @@ -1,194 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 -#include -#include -#include - -#include "lockscreen.h" -#include "util.h" - -#define QP_EMUL_STR "Emulator" - -static void win_del(void *data, Evas_Object * obj, void *event) -{ - elm_exit(); -} - -static Evas_Object *create_win(const char *name) -{ - if (name == NULL) - return NULL; - - Evas_Object *eo; - int w, h; - - eo = elm_win_add(NULL, name, ELM_WIN_BASIC); - if (!eo) { - LOGE("[%s:%d] eo is NULL", __func__, __LINE__); - return NULL; - } - - elm_win_title_set(eo, name); - elm_win_borderless_set(eo, EINA_TRUE); - evas_object_smart_callback_add(eo, "delete,request", win_del, NULL); - ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h); - evas_object_resize(eo, w, h); - elm_win_alpha_set(eo, EINA_TRUE); - - return eo; -} - -static void resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - Evas_Coord w; - Evas_Coord h; - - evas_object_geometry_get(obj, NULL, NULL, &w, &h); -} - -static int _check_emul() -{ - int is_emul = 0; - char *info = NULL; - - if (system_info_get_value_string(SYSTEM_INFO_KEY_MODEL, &info) == 0) { - if (info == NULL) return 0; - if (!strncmp(QP_EMUL_STR, info, strlen(info))) { - is_emul = 1; - } - } - - if (info != NULL) free(info); - - return is_emul; -} - -static bool app_create(void *data) -{ - struct appdata *ad = data; - LOGD("[ == %s == ]", __func__); - if (ad == NULL) - return false; - - vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &ad->lock_type); - - ad->win = NULL; - ad->ly_main = NULL; - ad->ao_bg = NULL; - ad->info = NULL; - ad->event_bg = NULL; - ad->slider = NULL; - ad->bDrag = 0; - - Evas_Object *win = NULL; - - ecore_x_window_size_get(ecore_x_window_root_first_get(), &ad->win_w, &ad->win_h); - LOGD("[%s:%d] win_w : %d, win_h : %d", __func__, __LINE__, ad->win_w, ad->win_h); - - win = create_win(PACKAGE); - if (win == NULL) - return false; - ad->win = win; - elm_win_conformant_set(ad->win, EINA_TRUE); - evas_object_resize(win, ad->win_w, ad->win_h); - evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, resize_cb, NULL); - - int ret = _app_create(ad); - if(ret == -1) - return false; - - return true; -} - -static void app_service(service_h service, void *data) -{ - struct appdata *ad = data; - LOGD("[ == %s == ]", __func__); - if (ad == NULL) - return; - - if (ad->win) - elm_win_activate(ad->win); - - _app_reset(ad); -} - -static void app_terminate(void *data) -{ - struct appdata *ad = data; - LOGD("[ == %s == ]", __func__); - if (ad == NULL) - return; - - if (ad->ly_main) - evas_object_del(ad->ly_main); - - if (ad->win) - evas_object_del(ad->win); -} - -static void app_pause(void *data) -{ - struct appdata *ad = data; - LOGD("[ == %s == ]", __func__); - if (ad == NULL) - return; -} - -static void app_resume(void *data) -{ - struct appdata *ad = data; - LOGD("[ == %s == ]", __func__); - if (ad == NULL) - return; -} - -static void device_orientation(app_device_orientation_e orientation, void * data) -{ - struct appdata *ad = data; - LOGD("[ == %s == ]", __func__); - if (ad == NULL || ad->win == NULL) - return; -} - -int main(int argc, char *argv[]) -{ - struct appdata ad; - - app_event_callback_s event_callback; - - event_callback.create = app_create; - event_callback.terminate = app_terminate; - event_callback.pause = app_pause; - event_callback.resume = app_resume; - event_callback.service = app_service; - event_callback.low_memory = NULL; - event_callback.low_battery = NULL; - event_callback.device_orientation = device_orientation; - event_callback.language_changed = NULL; - event_callback.region_format_changed = NULL; - - memset(&ad, 0x0, sizeof(struct appdata)); - - if(!_check_emul()) { - setenv("ELM_ENGINE", "gl", 1); - } - - return app_efl_main(&argc, &argv, &event_callback, &ad); -} diff --git a/src/lockscreen.h b/src/lockscreen.h deleted file mode 100755 index c323277..0000000 --- a/src/lockscreen.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 __LOCKSCREEN_H__ -#define __LOCKSCREEN_H__ - -#include -#include "log.h" - -#if !defined(PACKAGE) -#define PACKAGE "lockscreen" -#endif - -#if !defined(EDJDIR) -#define EDJDIR "/usr/apps/org.tizen."PACKAGE"/res/edje/lockscreen" -#endif - -#define EDJEFILE EDJEDIR"/"PACKAGE".edj" - -#define _S(str) dgettext("sys_string", str) -#define _L(str) dgettext("lockscreen", str) -#define _NOT_LOCALIZED(str) (str) -#define _(str) gettext(str) - -#define _EDJ(x) elm_layout_edje_get(x) -#define _X(x) (x*elm_config_scale_get()) - -#define FLICK_LINE 898 -#define SLIDER_RATIO_H 0.089 -#define SLIDER_RATIO_Y 0.872 - -enum { - POS_DOWN = 0, - POS_MOVE, - POS_UP, - POS_REC,//to record the pre position - STEP, - POS_MAX -}; - -struct appdata { - int lock_type; - - Evas_Object *win; - Evas_Object *ly_main;//top_layout - Evas_Object *ao_bg; - - Evas_Coord win_w; - Evas_Coord win_h; - Evas_Coord posx[POS_MAX]; - Evas_Coord posy[POS_MAX]; - - Evas_Object *info;//time - Evas_Object *noti; - Evas_Object *ly_simple_password; - Evas_Object *ly_complex_password; - Evas_Object *c_password_entry; - Evas_Object *event_bg; - Evas_Object *slider; - - Evas_Coord_Rectangle slider_rel1; - Evas_Coord_Rectangle slider_rel2; - - Eina_Bool bFlick;//flick to launch shorcuts - Eina_Bool bDrag;//for drag lock - - int heynoti_fd; - - void *h_password_policy; - Ecore_Timer *password_timer; - int block_seconds; - Eina_Bool is_disabled; - - struct ui_gadget *emgc_ug; -}; - -#endif diff --git a/src/log.h b/src/log.h deleted file mode 100755 index 8c0d757..0000000 --- a/src/log.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 __LOG_H__ -#define __LOG_H__ - -#include - -#ifdef LOG_TAG -#undef LOG_TAG -#endif - -#define LOG_TAG "lockscreen" -#define ENABLE_LOG_SYSTEM - -#ifdef ENABLE_LOG_SYSTEM -#define LOCK_SCREEN_TRACE_ERR(fmt, arg...) LOGE("["LOG_TAG"%s:%d:E] : %s "fmt, __FILE__, __LINE__, __func__, ##arg) -#define LOCK_SCREEN_TRACE_DBG(fmt, arg...) LOGD("["LOG_TAG"%s:%d:D] : %s "fmt, __FILE__, __LINE__, __func__, ##arg) -#define LOCK_SCREEN_TRACE_WARN(fmt, arg...) LOGW("["LOG_TAG"%s:%d:D] : %s "fmt, __FILE__, __LINE__, __func__, ##arg) -#else -#define LOCK_SCREEN_TRACE_ERR(fmt, arg...) -#define LOCK_SCREEN_TRACE_DBG(fmt, arg...) -#define LOCK_SCREEN_TRACE_WARN(fmt, arg...) -#endif - -#endif diff --git a/src/music-player.c b/src/music-player.c new file mode 100755 index 0000000..f4cad43 --- /dev/null +++ b/src/music-player.c @@ -0,0 +1,201 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include +#include +#include +#include + +#include "lockscreen-lite.h" +#include "music-player.h" +#include "background-view.h" + +#define MUSIC_PLAYER_NAME "[music-minicontrol.LOCKSCREEN]" +#define SOUND_PLAYER_NAME "[sound-minicontrol.LOCKSCREEN]" + +#define MUSIC_INI_DIR "/opt/usr/apps/com.samsung.music-player-lite/data" +#define MUSIC_PLAYING_FILE_NAME "playing_track_music.ini" +#define SOUND_PLAYING_FILE_NAME "playing_track_sound.ini" +#define MUSIC_PLAYING_INI_FILE MUSIC_INI_DIR"/"MUSIC_PLAYING_FILE_NAME +#define SOUND_PLAYING_INI_FILE MUSIC_INI_DIR"/"SOUND_PLAYING_FILE_NAME +#define PLAYER_STATUS "/opt/usr/apps/com.samsung.music-player-lite/shared/data/MusicPlayStatus.ini" +#define BUF_LEN 1024 +#define NULL_FILE_NAME "(null)" + +static Ecore_File_Monitor* music_file_monitor = NULL; + +char *minictrl_music_album_file_name_get(read_file_error *error, const char *file_name) +{ + FILE *fp = NULL; + char line[BUF_LEN] = {0,}; + char *buf = NULL; + int i = 0; + + if((fp = fopen(file_name, "r")) == NULL) + { + LOCK_SCREEN_TRACE_ERR("Failed to open %s", file_name); + return NULL; + } + + for(i = 0; i < 3; i++) + { + if(!fgets(line, BUF_LEN-1, fp)) + { + LOCK_SCREEN_TRACE_ERR("Failed to read player file:%d %d", i, ferror(fp)); + if(ferror(fp)) + { + *error = READ_FILE_ERROR_ERROR; + } + if(feof(fp)) + { + *error = READ_FILE_ERROR_EOF; + } + fclose(fp); + return NULL; + } + } + + if(fclose(fp) < 0) + { + LOCK_SCREEN_TRACE_DBG("Failed to close fp"); + } + + buf = strdup(line); + if (buf == NULL) + { + LOCK_SCREEN_TRACE_ERR("Failed to allocate memory"); + return NULL; + } + + if(!strncmp(buf, NULL_FILE_NAME, strlen(NULL_FILE_NAME))) + { + free(buf); + return NULL; + } + + int it = 0; + + while(buf[it] != '\0') + { + it++; + } + + buf[it - 1] = '\0'; + + return buf; +} + +static void _album_art_bg_set(char *file_name) +{ + read_file_error error = READ_FILE_ERROR_NONE; + char *file = minictrl_music_album_file_name_get(&error, file_name); + if(error != READ_FILE_ERROR_NONE) + { + LOCK_SCREEN_TRACE_ERR("Error during read music info file:%d", error); + return; + } + + if (background_image_set(LOCK_BG_ALBUM_ART, file, 1) != 0) { + LOCK_SCREEN_TRACE_ERR("file set error, set to default"); + background_image_set(LOCK_BG_DEFAULT, NULL, 1); + } + + free(file); +} + +static void _file_monitor_cb(void *data, Ecore_File_Monitor *em, Ecore_File_Event event, const char *path) +{ + if(!data) { + return; + } + + if(event == ECORE_FILE_EVENT_MODIFIED) { + _album_art_bg_set((char*)data); + } +} + +void music_player_bg_set(Evas_Object *bg, music_state_t music_state) +{ + char *file_name = NULL; + if(!music_file_monitor) + { + if(music_state == MUSIC_PLAYER_ON) + { + file_name = MUSIC_PLAYING_INI_FILE; + } + else + { + file_name = SOUND_PLAYING_INI_FILE; + } + music_file_monitor = ecore_file_monitor_add(file_name, _file_monitor_cb, file_name); + } + + if (file_name) { + _album_art_bg_set(file_name); + } +} + +void music_player_bg_unset(void) +{ + if(music_file_monitor) { + ecore_file_monitor_del(music_file_monitor); + music_file_monitor = NULL; + } + + background_image_set(LOCK_BG_DEFAULT, NULL, 1); +} + +Evas_Object* create_minicontroller(Evas_Object *layout, const char *name, int width, int height) +{ + Evas_Object *mini_control = minicontrol_viewer_add(layout, name); + if(mini_control == NULL) + { + LOCK_SCREEN_TRACE_DBG("Create minicontrol viewer failed"); + return NULL; + } + + evas_object_show(mini_control); + evas_object_size_hint_min_set(mini_control, width, height); + evas_object_resize(mini_control, width, height); + + return mini_control; +} + +bool music_player_is_playing(void) +{ + FILE *fp = NULL; + char line[BUF_LEN] = {0, }; + bool ret = false; + + if((fp = fopen(PLAYER_STATUS, "r")) == NULL) + { + LOCK_SCREEN_TRACE_ERR("Failed to open music player status file!"); + return false; + } + + if(fgets(line, BUF_LEN, fp)) + { + if(strstr(line, "play")) + { + ret = true; + } + } + + fclose(fp); + return ret; +} diff --git a/src/noti.c b/src/noti.c deleted file mode 100755 index bf9adaa..0000000 --- a/src/noti.c +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 -#include -#include - -#include "lockscreen.h" -#include "log.h" - -#define PHONE_LAUNCH_PKG "org.tizen.phone" -#define EMAIL_LAUNCH_PKG "org.tizen.email" -#define MESSAGE_LAUNCH_PKG "org.tizen.message" -#define MAX_NOTI_NUM 3 - -static void __noti_info_set(void *data, const char *pkgname, const char *title, int count, int line_num) -{ - struct appdata *ad = (struct appdata *)data; - if(ad == NULL || pkgname == NULL){ - return; - } - - LOCK_SCREEN_TRACE_DBG("pkgname : %s, title : %s, count = %d, line_num = %d", pkgname, title, count, line_num); - - char buf1[512] = {0}; - char buf2[512] = {0}; - - snprintf(buf2, sizeof(buf2), "noti_title%d", line_num); - - if (!strcmp(pkgname, PHONE_LAUNCH_PKG)) { - if(count == 1){ - snprintf(buf1, sizeof(buf1), "%d %s", count, _("IDS_IDLE_POP_MISSED_CALL")); - }else if(count > 1){ - snprintf(buf1, sizeof(buf1), "%d %s", count, _("IDS_IDLE_POP_MISSED_CALL")); - } - edje_object_part_text_set(_EDJ(ad->noti), buf2, buf1); - } else if (!strcmp(pkgname, MESSAGE_LAUNCH_PKG)) { - if(count == 1){ - snprintf(buf1, sizeof(buf1), "%d %s", count, _("IDS_IDLE_POP_NEW_MESSAGE")); - }else if(count > 1){ - snprintf(buf1, sizeof(buf1), "%d %s", count, _("IDS_IDLE_POP_NEW_MESSAGE")); - } - edje_object_part_text_set(_EDJ(ad->noti), buf2, buf1); - } else if (!strcmp(pkgname, EMAIL_LAUNCH_PKG)) { - if(count == 1){ - snprintf(buf1, sizeof(buf1), "%d %s", count, _("IDS_IDLE_POP_NEW_EMAIL")); - }else if(count > 1){ - snprintf(buf1, sizeof(buf1), "%d %s", count, _("IDS_IDLE_POP_NEW_EMAIL")); - } - edje_object_part_text_set(_EDJ(ad->noti), buf2, buf1); - } else { - edje_object_part_text_set(_EDJ(ad->noti), buf2, title); - } -} - -static int __ticker_check_setting_event_value(notification_h noti) -{ - char *pkgname = NULL; - char key[512] = {0, }; - int ret = 0; - int boolval = 0; - - notification_get_application(noti, &pkgname); - - if (pkgname == NULL) { - notification_get_pkgname(noti, &pkgname); - } - - if (pkgname == NULL) { - return 0; - } - - if (!strcmp(pkgname, MESSAGE_LAUNCH_PKG)) { - ret = vconf_get_bool(VCONFKEY_SETAPPL_STATE_TICKER_NOTI_MESSAGES_BOOL, &boolval); - if (ret == 0 && boolval == 0) { - return 0; - } - } else if (!strcmp(pkgname, EMAIL_LAUNCH_PKG)) { - ret = vconf_get_bool(VCONFKEY_SETAPPL_STATE_TICKER_NOTI_EMAIL_BOOL, &boolval); - if (ret == 0 && boolval == 0) { - return 0; - } - } - - snprintf(key, sizeof(key), "db/app-settings/noti-enabled/%s", pkgname); - ret = vconf_get_int(key, &boolval); - if (ret == 0 && boolval == 0) { - return 0; - } - - return 1; -} - -static void __noti_changed_cb(void *data, notification_type_e type) -{ - notification_h noti = NULL; - notification_list_h notification_list = NULL; - notification_list_h get_list = NULL; - int count = 0, group_id = 0, priv_id = 0, show_noti = 0, num = 1; - char *pkgname = NULL; - char *title = NULL; - char *str_count = NULL; - int i = 1; - char buf[512] = {0}; - struct appdata *ad = (struct appdata *)data; - - for(i = 1; i <= MAX_NOTI_NUM; i++){ - snprintf(buf, sizeof(buf), "noti_title%d", i); - edje_object_part_text_set(_EDJ(ad->noti), buf, ""); - } - - notification_get_list(NOTIFICATION_TYPE_NOTI, -1, ¬ification_list); - if (notification_list) { - get_list = notification_list_get_head(notification_list); - noti = notification_list_get_data(get_list); - LOCK_SCREEN_TRACE_DBG("get_list : %p, noti : %p", get_list, noti); - while(get_list != NULL) { - notification_get_id(noti, &group_id, &priv_id); - notification_get_pkgname(noti, &pkgname); - if(pkgname == NULL){ - notification_get_application(noti, &pkgname); - } - show_noti = __ticker_check_setting_event_value(noti); - LOCK_SCREEN_TRACE_DBG("show noti : %d", show_noti); - if (show_noti == 0) { - get_list = notification_list_get_next(get_list); - noti = notification_list_get_data(get_list); - continue; - } - - if(num > MAX_NOTI_NUM){ - if (notification_list != NULL) { - notification_free_list(notification_list); - notification_list = NULL; - } - return; - } - - notification_get_text(noti, NOTIFICATION_TEXT_TYPE_EVENT_COUNT, &str_count); - if (!str_count) { - count = 0; - } else { - count = atoi(str_count); - } - notification_get_title(noti, &title, NULL); - __noti_info_set(data, pkgname, title, count, num); - get_list = notification_list_get_next(get_list); - noti = notification_list_get_data(get_list); - num++; - } - } - if (notification_list != NULL) { - notification_free_list(notification_list); - notification_list = NULL; - } -} - -void noti_process(void *data) -{ - struct appdata *ad = (struct appdata *)data; - if(ad == NULL){ - return; - } - - ad->noti = elm_layout_add(ad->ly_main); - elm_layout_file_set(ad->noti, EDJEFILE, "lock-noti"); - evas_object_show(ad->noti); - elm_object_part_content_set(ad->ly_main, "sw.noti", ad->noti); - - notification_resister_changed_cb(__noti_changed_cb, ad); - __noti_changed_cb(ad, NOTIFICATION_TYPE_NOTI); -} diff --git a/src/noti.h b/src/noti.h deleted file mode 100755 index 8d6e37e..0000000 --- a/src/noti.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 __NOTI_H__ -#define __NOTI_H__ - -void noti_process(void *data); - -#endif diff --git a/src/notification-item.c b/src/notification-item.c new file mode 100755 index 0000000..50da2a2 --- /dev/null +++ b/src/notification-item.c @@ -0,0 +1,349 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include "lockscreen-lite.h" +#include "notification-item.h" +#include "control-panel.h" +#include "default-unlock.h" +#include "contextual-info.h" +#include "complex-password.h" +#include "simple-password.h" +#include "progress_circle.h" +#include "battery.h" + +static const int NOTIFICATION_ITEM_WIDTH = 480; +static const int NOTIFICATION_ITEM_HEIGHT = 87; + +static struct { + Evas_Object *selected_notification_item; + int selected_notification_item_type; + + Eina_Bool was_scrolled; +} s_notification_item_info = { + .selected_notification_item = NULL, + .selected_notification_item_type = NOTIFICATION_ITEM_NONE, + + .was_scrolled = EINA_FALSE +}; +static void _notification_item_mouse_up(void *data, Evas_Object *obj, void *event_info); + +static void _notification_item_tapped_swipe(Evas_Object *obj, const char* event_text); +static void _notification_item_tapped_pin(Evas_Object *obj, const char* event_text); +static void _notification_item_tapped_password(Evas_Object *obj, const char* event_text); + +#define SWIPE_NOTIFICATION_TEXT_MESSAGE _("IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_OPEN_MESSAGES") +#define SWIPE_NOTIFICATION_TEXT_CALL _("IDS_LCKSCN_BODY_SWIPE_THE_SCREEN_TO_VIEW_THE_CALL_LOG") +#define MISSED_CALL_TEXT _("IDS_IDLE_POP_MISSED_CALL") +//#define MISSED_CALL_TEXT _("Missed calls") + +Evas_Object* notification_item_create(char *icon, char *content, char *title, char *time) +{ + LOCK_SCREEN_TRACE_DBG(""); + Evas_Object *main_window = NULL; + Evas_Object *box = NULL; + Evas_Object *item_main = NULL; + Evas_Object *layout = NULL; + + main_window = lockscreen_get_window(); + if (!main_window) + { + LOCK_SCREEN_TRACE_DBG("Failed to get lockscreen window"); + return NULL; + } + + item_main = notification_item_main_create(icon, content, title, time); + if(!item_main) + { + LOCK_SCREEN_TRACE_DBG("Failed to create item main"); + evas_object_del(layout); + return NULL; + } + + box = elm_box_add(main_window); + if(!box) + { + LOCK_SCREEN_TRACE_DBG("Failed to create box"); + evas_object_del(item_main); + return NULL; + } + elm_box_horizontal_set(box, EINA_TRUE); + + evas_object_size_hint_min_set(box, ELM_SCALE_SIZE(NOTIFICATION_ITEM_WIDTH), ELM_SCALE_SIZE(NOTIFICATION_ITEM_HEIGHT)); + evas_object_size_hint_max_set(box, ELM_SCALE_SIZE(NOTIFICATION_ITEM_WIDTH), ELM_SCALE_SIZE(NOTIFICATION_ITEM_HEIGHT)); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + + elm_box_pack_end(box, item_main); + + evas_object_show(box); + + return box; +} + +Evas_Object* notification_item_main_create(char *icon_path, char *content, char *title, char *time) +{ + Evas_Object *main_window = NULL; + Evas_Object *layout = NULL; + Evas_Object *icon = NULL; + Evas_Object *event = NULL; + + LOCK_SCREEN_TRACE_DBG(""); + + main_window = lockscreen_get_window(); + if (!main_window) + { + LOCK_SCREEN_TRACE_DBG("Failed to get lockscreen window"); + return NULL; + } + + layout = elm_layout_add(main_window); + if(!layout) + { + LOCK_SCREEN_TRACE_DBG("Failed to create layout"); + return NULL; + } + + if (!elm_layout_file_set(layout, EDJE_DIR"notification-item.edj", + "notification_item_main")) + { + LOCK_SCREEN_TRACE_DBG("Failed to set file for notification item main layout"); + return NULL; + } + + icon = elm_image_add(main_window); + if(!icon) + { + LOCK_SCREEN_TRACE_DBG("Failed to create icon file"); + return NULL; + } + + elm_image_file_set(icon, icon_path, NULL); + elm_object_part_content_set(layout, "icon", icon); + + if(title) + { + elm_object_part_text_set(layout, "event_title", title); + } + + if(content) + { + elm_object_part_text_set(layout, "event_details", content); + } + if(time) + { + elm_object_part_text_set(layout, "time_text", time); + } + + event = elm_button_add(layout); + if (!event) + { + LOCK_SCREEN_TRACE_DBG("Failed to create event button"); + return NULL; + } + elm_object_style_set(event, "focus"); + evas_object_show(event); + elm_object_part_content_set(layout, "event", event); + evas_object_smart_callback_add(event, "clicked", _notification_item_mouse_up, layout); + + evas_object_size_hint_min_set(layout, + _SCALE(NOTIFICATION_ITEM_WIDTH), _SCALE(NOTIFICATION_ITEM_HEIGHT)); + evas_object_show(layout); + + return layout; +} + +void notification_item_set_default(Evas_Object *notification_scroller) +{ + LOCK_SCREEN_TRACE_DBG(""); + if(notification_scroller) + { + Evas_Object *notification_item_layout = evas_object_data_get(notification_scroller, "noti_item_layout"); + if(!notification_item_layout) + { + LOCK_SCREEN_TRACE_DBG("Failed to get item layout"); + return; + } + elm_object_signal_emit(notification_item_layout, "set_default", "layout"); + } +} + +void notification_item_set_selected(Evas_Object *notification_scroller) +{ + LOCK_SCREEN_TRACE_DBG(""); + if(notification_scroller) + { + Evas_Object *notification_item_layout = evas_object_data_get(notification_scroller, "noti_item_layout"); + if(!notification_item_layout) + { + LOCK_SCREEN_TRACE_DBG("Failed to get item layout"); + return; + } + elm_object_signal_emit(notification_item_layout, "set_selected", "layout"); + } +} + +void notification_item_selected_item_set(Evas_Object *obj) +{ + s_notification_item_info.selected_notification_item = obj; +} + +Evas_Object* notification_item_selected_item_get() +{ + return s_notification_item_info.selected_notification_item; +} + +void notification_item_selected_item_type_set(int type) +{ + s_notification_item_info.selected_notification_item_type = type; +} + +int notification_item_selected_item_type_get(void) +{ + return s_notification_item_info.selected_notification_item_type; +} + +void notification_item_was_scrolled_set(Eina_Bool state) +{ + s_notification_item_info.was_scrolled = state; +} + + +static void _notification_item_mouse_up(void *data, Evas_Object *obj, void *event_info) +{ + Evas_Object *layout = data; + if (!layout) return; + const char *event_text = elm_object_part_text_get(layout, "event_title"); + if(!event_text) + { + LOCK_SCREEN_TRACE_ERR("Can not get event title"); + return; + } + + if(s_notification_item_info.was_scrolled) + { + LOGD("Contextual info box was scrolled"); + return; + } + + if(!default_unlock_is_noti_tapped()) + { + lockscreen_play_tap_feedback(); + + int locktype = get_locktype(); + switch(locktype) + { + case SETTING_SCREEN_LOCK_TYPE_SWIPE: + LOCK_SCREEN_TRACE_DBG("Noti item clicked - swipe"); + _notification_item_tapped_swipe(layout, event_text); + break; + case SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD: + LOCK_SCREEN_TRACE_DBG("Noti item clicked - pin"); + _notification_item_tapped_pin(layout, event_text); + lockd_event(LKD_EVT_VIEW_GESTURED, NULL); + break; + case SETTING_SCREEN_LOCK_TYPE_PASSWORD: + LOCK_SCREEN_TRACE_DBG("Noti item clicked - password"); + _notification_item_tapped_password(layout, event_text); + lockd_event(LKD_EVT_VIEW_GESTURED, NULL); + break; + default: + LOCK_SCREEN_TRACE_ERR("Invalid lock type"); + break; + } + } +} + +static void _notification_item_tapped_swipe(Evas_Object *obj, const char* event_text) +{ + notification_item_selected_item_set(obj); + + elm_object_signal_emit(obj, "set_selected", "layout"); + edje_object_message_signal_process(elm_layout_edje_get(obj)); + ecore_main_loop_iterate(); + + if(!strncmp(event_text, MISSED_CALL_TEXT, strlen(MISSED_CALL_TEXT))) + { + notification_item_selected_item_type_set(NOTIFICATION_ITEM_CALL); + default_unlock_show_on_noti_tapped(obj, SWIPE_NOTIFICATION_TEXT_CALL); + default_unlock_set_noti_tapped(obj); + elm_object_part_text_set(obj, "event_details", SWIPE_NOTIFICATION_TEXT_CALL); + elm_object_domain_translatable_part_text_set(obj, "event_details", PROJECT, SWIPE_NOTIFICATION_TEXT_CALL); + } + else + { + notification_item_selected_item_type_set(NOTIFICATION_ITEM_MESSAGE); + default_unlock_show_on_noti_tapped(obj, SWIPE_NOTIFICATION_TEXT_MESSAGE); + default_unlock_set_noti_tapped(obj); + elm_object_part_text_set(obj, "event_details", SWIPE_NOTIFICATION_TEXT_MESSAGE); + elm_object_domain_translatable_part_text_set(obj, "event_details", PROJECT, SWIPE_NOTIFICATION_TEXT_MESSAGE); + } + elm_layout_text_set(contextual_info_layout_get(), "close_text", _("IDS_TPLATFORM_ACBUTTON_CANCEL_ABB")); +} + +static void _notification_item_tapped_pin(Evas_Object *obj, const char* event_text) +{ + LOCK_SCREEN_TRACE_DBG(""); + notification_item_selected_item_set(obj); + default_unlock_set_noti_tapped(obj); + LOCK_SCREEN_TRACE_DBG("event_text: %s, MISSED_CALL_TEXT: %s", event_text, MISSED_CALL_TEXT); + + lockscreen_password_visible_set(EINA_TRUE); + set_lockscreen_is_after_swipe(true); + + if(!strncmp(event_text, MISSED_CALL_TEXT, strlen(MISSED_CALL_TEXT))) + { + notification_item_selected_item_type_set(NOTIFICATION_ITEM_CALL); + } + else + { + notification_item_selected_item_type_set(NOTIFICATION_ITEM_MESSAGE); + } + + simple_password_reset(); + elm_layout_text_set(contextual_info_layout_get(), "close_text", _("IDS_TPLATFORM_ACBUTTON_CANCEL_ABB")); +} + +static Eina_Bool _show_keyboard(void *data) +{ + complex_password_focus_entry(); + + return ECORE_CALLBACK_CANCEL; +} + +static void _notification_item_tapped_password(Evas_Object *obj, const char* event_text) +{ + LOCK_SCREEN_TRACE_DBG(""); + notification_item_selected_item_set(obj); + default_unlock_set_noti_tapped(obj); + LOCK_SCREEN_TRACE_DBG("event_text: %s, MISSED_CALL_TEXT: %s", event_text, MISSED_CALL_TEXT); + + lockscreen_password_visible_set(EINA_TRUE); + set_lockscreen_is_after_swipe(true); + + if(!strncmp(event_text, MISSED_CALL_TEXT, strlen(MISSED_CALL_TEXT))) + { + notification_item_selected_item_type_set(NOTIFICATION_ITEM_CALL); + } + else + { + notification_item_selected_item_type_set(NOTIFICATION_ITEM_MESSAGE); + } + + complex_password_reset(); + ecore_timer_add(0.2, _show_keyboard, NULL); + elm_layout_text_set(contextual_info_layout_get(), "close_text", _("IDS_TPLATFORM_ACBUTTON_CANCEL_ABB")); +} diff --git a/src/notification-panel.c b/src/notification-panel.c new file mode 100755 index 0000000..098f82f --- /dev/null +++ b/src/notification-panel.c @@ -0,0 +1,289 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include + +#include "lockscreen-lite.h" +#include "default-unlock.h" +#include "notification-item.h" +#include "contextual-info.h" +#include "util-time.h" +#include "notification-panel.h" +#include "battery.h" + +#define MISSED_MESSAGE_ICON IMAGE_DIR"Notification_ic_message.png" +#define MISSED_CALL_ICON IMAGE_DIR"Notification_ic_missedcall.png" + +static const int MAX_CONTENT = 128; + +static void _notification_panel_notification_list_changed(void *data, notification_type_e type, notification_op *op_list, int num_op); + +void notification_cb(Evas_Object *layout) +{ + LOCK_SCREEN_TRACE_DBG("Notigication callback function"); + + notification_error_e noti_err = notification_register_detailed_changed_cb(_notification_panel_notification_list_changed, (void*)layout); + if(noti_err != NOTIFICATION_ERROR_NONE) + { + LOCK_SCREEN_TRACE_DBG("Failed to register notification callbacks"); + } +} + +void notification_panel_update_notification_list(Evas_Object *layout) +{ + _notification_panel_notification_list_changed(layout, 0, NULL, 0); +} + +void notification_panel_dismiss_notifications(void) +{ + LOCK_SCREEN_TRACE_DBG(""); + + char *pkgname = NULL; + notification_list_h noti_list = NULL; + notification_list_h noti_list_head = NULL; + notification_error_e noti_err = NOTIFICATION_ERROR_NONE; + notification_h noti = NULL; + + noti_err = notification_get_list(NOTIFICATION_TYPE_NOTI, -1, ¬i_list_head); + + if(noti_err != NOTIFICATION_ERROR_NONE) + { + LOCK_SCREEN_TRACE_DBG("Failed to get notification list"); + return; + } + + noti_list = noti_list_head; + while(noti_list != NULL) + { + LOCK_SCREEN_TRACE_DBG(""); + + noti = notification_list_get_data(noti_list); + notification_get_pkgname(noti, &pkgname); + LOCK_SCREEN_TRACE_DBG("pkgname is %s ", pkgname); + + if(noti) + { + notification_get_pkgname(noti, &pkgname); + LOCK_SCREEN_TRACE_DBG("pkgname is %s ", pkgname); + + if(!strncmp(CALL_APP, pkgname, strlen(CALL_APP)) || !strncmp(MESSAGE_APP, pkgname, strlen(MESSAGE_APP))) + { + notification_delete(noti); + } + } + + noti_list = notification_list_get_next(noti_list); + } + notification_free_list(noti_list_head); +} + +static void _add_missed_notification_item(notification_h noti, char *pkgname) +{ + char *str_count = NULL; + char *title = NULL; + char *content = NULL; + char time[MAX_CONTENT]; + time_t notification_time; + + if(!noti) + { + LOGE("Invalid parameter"); + return; + } + + if(notification_get_text(noti, NOTIFICATION_TEXT_TYPE_TITLE, &title) != NOTIFICATION_ERROR_NONE) + { + LOGE("Notification error"); + return; + } + if(notification_get_text(noti, NOTIFICATION_TEXT_TYPE_CONTENT, &content) != NOTIFICATION_ERROR_NONE) + { + LOGE("Notification error"); + return; + } + if(notification_get_text(noti, NOTIFICATION_TEXT_TYPE_EVENT_COUNT, &str_count) != NOTIFICATION_ERROR_NONE) + { + LOGE("Notification error"); + return; + } + if(notification_get_time(noti, ¬ification_time) != NOTIFICATION_ERROR_NONE) + { + LOGE("Notification error"); + return; + } + + char *formatted_time = util_time_get_formatted_noti_time(notification_time); + if (formatted_time != NULL) { + strncpy(time, formatted_time, sizeof(time) - 1); + } + + if (!str_count) + { + str_count = "1"; + } + + if(!strncmp(CALL_APP, pkgname, strlen(CALL_APP))) + { + add_notification_item(MISSED_CALL_ICON, content, title, time, str_count, TYPE_MISSED_CALL, noti); + } + else + { + add_notification_item(MISSED_MESSAGE_ICON, content, title, time, str_count, TYPE_NEW_MESSAGE, noti); + } + + free(formatted_time); +} + +static Eina_Bool _time_update_idler_cb(void *data) +{ + Evas_Object *layout = data; + + if (layout) { + update_time(layout); + } + + return ECORE_CALLBACK_CANCEL; +} + +static void _notification_panel_notification_list_changed(void *data, notification_type_e type, notification_op *op_list, int num_op) +{ + LOCK_SCREEN_TRACE_DBG(""); + + Evas_Object *layout; + char *pkgname = NULL; + int app_list = 0; + int is_exist_call = 0; + int is_exist_msg = 0; + + if(data == NULL) + { + LOCK_SCREEN_TRACE_DBG("Failed to get layout data"); + return; + } + + layout = (Evas_Object*)data; + + notification_list_h noti_list = NULL; + notification_list_h noti_list_head = NULL; + notification_error_e noti_err = NOTIFICATION_ERROR_NONE; + + notification_h noti = NULL; + + noti_err = notification_get_list(NOTIFICATION_TYPE_NOTI, -1, ¬i_list_head); + + if(noti_err != NOTIFICATION_ERROR_NONE) + { + LOCK_SCREEN_TRACE_DBG("Failed to get notification list"); + return; + } + + noti_list = noti_list_head; + while(noti_list != NULL) + { + int need_create = 0; + noti = notification_list_get_data(noti_list); + notification_get_pkgname(noti, &pkgname); + LOCK_SCREEN_TRACE_DBG("pkgname is %s ", pkgname); + + if(notification_get_display_applist(noti, &app_list) != NOTIFICATION_ERROR_NONE) + { + LOCK_SCREEN_TRACE_ERR("Failed to get app list"); + return; + } + + if(app_list & NOTIFICATION_DISPLAY_APP_LOCK) + { + LOCK_SCREEN_TRACE_DBG("Adding new notification"); + + if(!strncmp(CALL_APP, pkgname, strlen(CALL_APP))) + { + need_create = 1; + is_exist_call = 1; + } + if(!strncmp(MESSAGE_APP, pkgname, strlen(MESSAGE_APP))) + { + need_create = 1; + is_exist_msg = 1; + } + if(need_create) + { + notification_h noti_clone = NULL; + notification_clone(noti, ¬i_clone); + + _add_missed_notification_item(noti_clone, pkgname); + if (lockscreen_is_view_simple_get()) + { + lockscreen_is_view_simple_set(false); + reset_time(); + ecore_idler_add(_time_update_idler_cb, layout); + elm_object_signal_emit(layout, "event", "layout"); + } + if(is_password_layout_get()) + { + battery_view_hide(); + } + } + } + + noti_list = notification_list_get_next(noti_list); + } + + if (!is_exist_call) contextual_info_delete_missed_call(); + if (!is_exist_msg) contextual_info_delete_unread_message(); + + if (!eina_list_count(elm_box_children_get(contextual_info_noti_box_get()))) + { + contextual_info_notification_page_hide(); + } + + notification_free_list(noti_list_head); +} + +/*! + * module + */ +static Evas_Object *_create_view(Evas_Object *parent, LKD_Module_Data *md) +{ + return NULL; +} + +static int _destroy_view(LKD_Module_Data *md) +{ + return LKD_RET_OK; +} + +static void _resume(LKD_Module_Data *md) +{ +} + +static void _pause(LKD_Module_Data *md) +{ +} + +LKD_Module g_mod_notification_panel = { + .id = "notification-panel", + .notifying = 1, + .init = NULL, + .fini = NULL, + .create_view = _create_view, + .destroy_view = _destroy_view, + .resume = _resume, + .pause = _pause, +}; diff --git a/src/password-verification.c b/src/password-verification.c index 634c49b..f88af17 100755 --- a/src/password-verification.c +++ b/src/password-verification.c @@ -1,176 +1,793 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 -#include -#include -#include -#include -#include - -#include "log.h" -#include "password-verification.h" - -typedef enum { - NORMAL_PASSWORD = 0, - EMPTY_PASSWORD, - OVERLENGTH_PASSWORD, -}lockscreen_password_type; - -typedef struct { - unsigned int current_attempt; - unsigned int max_attempt; - unsigned int expire_sec; - int recoverable; - password_operation_cb callback; - void *data; -} lockscreen_password_policy; - -static Eina_Bool __password_verification_check_phone_password(void *data, const char *str) -{ - LOCK_SCREEN_TRACE_DBG("%s : %s\n", __FUNCTION__, str); - - lockscreen_password_policy *lock_policy = (lockscreen_password_policy *)data; - - int ret = SECURITY_SERVER_API_ERROR_PASSWORD_MISMATCH; - - unsigned int current_attempt = 0; - unsigned int max_attempt = 0; - unsigned int valid_secs = 0; - - if(!lock_policy) { - LOCK_SCREEN_TRACE_DBG("lock_policy is NULL"); - return EINA_FALSE; - } - - ret = security_server_chk_pwd(str, ¤t_attempt, &max_attempt, &valid_secs); - LOCK_SCREEN_TRACE_DBG("security_server_chk_pwd => ret:%d current_attempt:%d max_attempt:%d valid_secs:%d", - ret, current_attempt, max_attempt, valid_secs); - lock_policy->current_attempt = current_attempt; - lock_policy->max_attempt = max_attempt; - lock_policy->expire_sec = valid_secs; - if ((ret == SECURITY_SERVER_API_SUCCESS) || (ret == SECURITY_SERVER_API_ERROR_PASSWORD_EXPIRED)) { - LOCK_SCREEN_TRACE_DBG("correct password!"); - return EINA_TRUE; - } else { - LOCK_SCREEN_TRACE_DBG("incorrect password!"); - return EINA_FALSE; - } -} - -static lockscreen_password_type __password_verification_check_length(const char *str, int min, int max) -{ - int len = 0; - - if (!str) { - return EMPTY_PASSWORD; - } - - len = strlen(str); - - LOCK_SCREEN_TRACE_DBG("%s() len : %d", __FUNCTION__, len); - - if (len == 0) { - return EMPTY_PASSWORD; - } - - if (len < min || len > max) { - return OVERLENGTH_PASSWORD; - } - - return NORMAL_PASSWORD; -} - -void *password_verification_policy_create() -{ - lockscreen_password_policy *password_policy = NULL; - int ret = 0; - unsigned int cur_attempt = 0; - unsigned int max_attempt = 0; - unsigned int expire_sec = 0; - - password_policy = (lockscreen_password_policy *) calloc(1, sizeof(lockscreen_password_policy)); - - if (!password_policy){ - return NULL; - } - - ret = security_server_is_pwd_valid(&cur_attempt, &max_attempt, &expire_sec); - LOCK_SCREEN_TRACE_DBG("policy status:%d, cur_attempt:%d, max_attempt:%d ", ret, cur_attempt, max_attempt); - - if(ret == SECURITY_SERVER_API_ERROR_NO_PASSWORD) { - password_policy->current_attempt = cur_attempt; - password_policy->max_attempt = max_attempt; - password_policy->recoverable = EINA_FALSE; - password_policy->expire_sec = expire_sec; - } - - return password_policy; -} - -void password_verification_policy_destroy(void *data) -{ - lockscreen_password_policy *password_policy = (lockscreen_password_policy *)data; - - if (!password_policy){ - return; - } - - free(password_policy); - password_policy = NULL; -} - -void password_verification_verify(void *data, const char *password) -{ - lockscreen_password_type password_type = NORMAL_PASSWORD; - lockscreen_password_policy *password_policy = (lockscreen_password_policy *)data; - - if(!password_policy) { - LOCK_SCREEN_TRACE_DBG("lock_policy is NULL"); - return; - } - password_type = __password_verification_check_length(password, 4, 16); - switch(password_type){ - case NORMAL_PASSWORD: - if (__password_verification_check_phone_password(password_policy, password)) { - LOCK_SCREEN_TRACE_DBG("password is right!!!!"); - elm_exit(); - } else { - if(password_policy->callback){ - password_policy->callback("", password_policy->data); - } - } - break; - case EMPTY_PASSWORD: - password_policy->callback("empty", password_policy->data); - break; - case OVERLENGTH_PASSWORD: - password_policy->callback("overlength", password_policy->data); - break; - } -} - -void password_verification_callback_set(void *data, password_operation_cb callback, void *priv) -{ - lockscreen_password_policy *password_policy = (lockscreen_password_policy *)data; - - if (!password_policy){ - return; - } - - password_policy->callback = callback; - password_policy->data = priv; -} +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include + +#include "password-verification.h" +#include "lockscreen-lite.h" +#include "control-panel.h" +#include "contextual-info.h" +#include "progress_circle.h" + +#if !DISABLE_MDM +#include +#endif + +#define LOCK_SOCK_PREFIX "/tmp/phlock" +#define LOCK_SOCK_MAXBUFF 65535 + +typedef enum { + NORMAL_PASSWORD = 0, + EMPTY_PASSWORD, + OVERLENGTH_PASSWORD, +} lock_password_type; + +typedef struct { + unsigned int current_attempt; + unsigned int block_attempt; + unsigned int max_attempt; + unsigned int expire_sec; + unsigned int incorrect_count; + int recoverable; + int mdm_quality; + password_operation_cb callback; + void *data; +} lock_password_policy; + +static struct { + Ecore_Timer *send_timer; + Ecore_Timer *recovery_wait_timer; + Ecore_Timer *factory_reset_retry_timer; +} s_complex_password_info; + +//static Eina_Bool __password_verification_check_pw_expired(void *data); +//static Eina_Bool __password_verification_check_recovery(void *data); +static Eina_Bool __password_verification_check_phone_password(void *data, const char *str); +static lock_password_type __password_verification_check_length(const char *str, int min, int max); +static Eina_Bool __password_verification_recorver_password_by_mdm(void *data, Eina_Bool is_recovery_mode); +static Eina_Bool __password_verification_password_failed(void); + +//Socket function for connect with starte app +static Eina_Bool _ready_to_send_cmd(void *data); +static int _lock_ready_to_send_cmd(const char *cmd); +static int _lock_create_sock(void); +static void _lock_set_sock_option(int fd, int cli); + +static int _current_attempts_get(lock_password_policy *policy) +{ + retv_if(policy == NULL, PASSWORD_ATTEMPTS_MAX_NUM); + + if (policy->max_attempt > INFINITE_ATTEMPT) { + return policy->current_attempt; + } else { + int value = policy->block_attempt; + vconf_get_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, &value); + + return policy->block_attempt - value; + } +} + +static void _left_attempts_set(lock_password_policy *policy, int value) +{ + ret_if(policy == NULL); + + if (policy->max_attempt == INFINITE_ATTEMPT) { + if (vconf_set_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, value) != 0) { + LOCK_SCREEN_TRACE_DBG("Failed to set attempts left"); + } + } +} + +static void _left_attempts_down(lock_password_policy *policy) +{ + ret_if(policy == NULL); + + if (policy->max_attempt == INFINITE_ATTEMPT) { + int value = policy->block_attempt; + vconf_get_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, &value); + value = (value - 1) < 0 ? 0 : value - 1; + if (vconf_set_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, value) != 0) { + LOCK_SCREEN_TRACE_DBG("Failed to set attempts left"); + } + } +} + +static void _incorrect_count_set(lock_password_policy *policy, int value) +{ + ret_if(policy == NULL); + + policy->incorrect_count = value; +} + +static void _incorrect_count_up(lock_password_policy *policy) +{ + ret_if(policy == NULL); + + policy->incorrect_count++; +} + +static void _callback_call(int event, lock_password_policy *policy, done_cb cb) +{ + int remain = 0; + int attempt = 0; + int max_attempt = 0; + + ret_if(policy == NULL); + ret_if(policy->callback == NULL); + + if (policy->max_attempt <= INFINITE_ATTEMPT) { + max_attempt = policy->block_attempt; + } else { + max_attempt = policy->max_attempt; + } + attempt = _current_attempts_get(policy) % max_attempt; + + remain = max_attempt - attempt; + remain = (remain < 0) ? 0 : remain; + + policy->callback(event, + max_attempt, + policy->block_attempt, + attempt, + remain, + policy->data, + cb); +} + +static void _recovery_mode_wait_timer_del(void) +{ + if (s_complex_password_info.recovery_wait_timer) { + ecore_timer_del(s_complex_password_info.recovery_wait_timer); + s_complex_password_info.recovery_wait_timer = NULL; + } +} + +static Eina_Bool _recovery_mode_wait_timer_cb(void *data) +{ + s_complex_password_info.recovery_wait_timer = NULL; + + if (get_recovery_mode() == 1) { + LOCK_SCREEN_TRACE_DBG("enter recovery mode"); + _callback_call(PWD_EVENT_RECOVERY_ENTER, data, NULL); + } else { + LOCK_SCREEN_TRACE_DBG("not ready to enter recovery mode"); + __password_verification_recorver_password_by_mdm(data, EINA_FALSE); + s_complex_password_info.recovery_wait_timer = ecore_timer_add(1.0, _recovery_mode_wait_timer_cb, data); + } + + return ECORE_CALLBACK_CANCEL; +} + +static void _recovery_mode_wait(lock_password_policy *policy) +{ + _recovery_mode_wait_timer_del(); + + s_complex_password_info.recovery_wait_timer = ecore_timer_add(0.3, _recovery_mode_wait_timer_cb, policy); +} + +static void _factory_reset_retry_timer_del(void) +{ + if (s_complex_password_info.factory_reset_retry_timer) { + ecore_timer_del(s_complex_password_info.factory_reset_retry_timer); + s_complex_password_info.factory_reset_retry_timer = NULL; + } +} + +static Eina_Bool _factory_reset_retry_timer_cb(void *data) +{ + LOCK_SCREEN_TRACE_WARN("retry factory reset"); + + s_complex_password_info.factory_reset_retry_timer = NULL; + + if (__password_verification_password_failed() == EINA_FALSE) { + LOCK_SCREEN_TRACE_WARN("failed to execute factory reset"); + s_complex_password_info.factory_reset_retry_timer = ecore_timer_add(1.0, _factory_reset_retry_timer_cb, NULL); + } else { + LOCK_SCREEN_TRACE_WARN("success to execute factory reset"); + } + + return ECORE_CALLBACK_CANCEL; +} + +static void _factory_reset_retry(void) +{ + _factory_reset_retry_timer_del(); + + s_complex_password_info.factory_reset_retry_timer = ecore_timer_add(1.0, _factory_reset_retry_timer_cb, NULL); +} + +static Eina_Bool __password_verification_check_pw_expired(void *data) +{ + lock_password_policy *password_policy = (lock_password_policy *)data; + if (!password_policy) { + return EINA_FALSE; + } + + LOCK_SCREEN_TRACE_DBG("Checking pw expired => valid_secs:%d", password_policy->expire_sec); + + if (password_policy->expire_sec == 0) { + return EINA_TRUE; + } else + return EINA_FALSE; +} + +static Eina_Bool __password_verification_check_recovery(void *data) +{ + lock_password_policy *password_policy = (lock_password_policy *)data; + if (!password_policy) { + return EINA_FALSE; + } + + LOCK_SCREEN_TRACE_DBG("Checking recovery => current_attempt:%d max_attempt:%d", + _current_attempts_get(password_policy), password_policy->max_attempt); + + if ((password_policy->max_attempt != INFINITE_ATTEMPT) && (_current_attempts_get(password_policy) >= password_policy->max_attempt)) { + return EINA_TRUE; + } else + return EINA_FALSE; +} + +static Eina_Bool __password_verification_check_phone_password(void *data, const char *str) +{ + lock_password_policy *policy = (lock_password_policy *)data; + + int ret = SECURITY_SERVER_API_ERROR_PASSWORD_MISMATCH; + + unsigned int current_attempt = 0; + unsigned int max_attempt = 0; + unsigned int valid_secs = 0; + + if(!policy) + { + LOCK_SCREEN_TRACE_DBG("lock_policy is NULL"); + return EINA_FALSE; + } + + ret = security_server_chk_pwd(str, ¤t_attempt, &max_attempt, &valid_secs); + LOCK_SCREEN_TRACE_DBG("security_server_chk_pwd ret:%d current_attempt:%d max_attempt:%d valid_secs:%d", + ret, current_attempt, max_attempt, valid_secs); + + policy->current_attempt = current_attempt; + policy->max_attempt = max_attempt; + policy->expire_sec = valid_secs; + + if ((ret == SECURITY_SERVER_API_SUCCESS) || (ret == SECURITY_SERVER_API_ERROR_PASSWORD_EXPIRED)) { + LOCK_SCREEN_TRACE_ERR("correct password!"); + policy->current_attempt = current_attempt; + policy->max_attempt = max_attempt; + policy->expire_sec = valid_secs; + return EINA_TRUE; + } else if (ret == SECURITY_SERVER_API_ERROR_PASSWORD_RETRY_TIMER) { + LOCK_SCREEN_TRACE_ERR("timer set! : not saved"); + LOCK_SCREEN_TRACE_ERR("saved values => current_attempt:%d max_attempt:%d valid_secs:%d", + policy->current_attempt , policy->max_attempt, policy->expire_sec); + return EINA_FALSE; + } else { + LOCK_SCREEN_TRACE_ERR("incorrect password!"); + policy->current_attempt = current_attempt; + policy->max_attempt = max_attempt; + policy->expire_sec = valid_secs; + return EINA_FALSE; + } +} + +static lock_password_type __password_verification_check_length(const char *str, int min, int max) +{ + int len = 0; + + if (!str) + { + return EMPTY_PASSWORD; + } + + len = strlen(str); + + LOCK_SCREEN_TRACE_DBG("len : %d", len); + + if (len == 0) + { + return EMPTY_PASSWORD; + } + + if (len < min || len > max) + { + return OVERLENGTH_PASSWORD; + } + + return NORMAL_PASSWORD; +} + +static void __password_verification_set_expired_password_by_mdm(void *data, Eina_Bool is_recovery_mode) +{ + lock_password_policy *password_policy = (lock_password_policy *)data; + + if(!password_policy) { + LOCK_SCREEN_TRACE_DBG("lock_policy is NULL"); + return; + } + +#if !DISABLE_MDM + if(!is_recovery_mode) { + if(mdm_get_service() == MDM_RESULT_SUCCESS) { + LOCK_SCREEN_TRACE_DBG("success to connect mdm server..!!"); + if (mdm_enforce_password_change() == MDM_RESULT_SUCCESS) { + LOCK_SCREEN_TRACE_DBG("success to call mdm_enforce_password_change..!!"); + } else { + LOCK_SCREEN_TRACE_DBG("[ERROR] failed to call mdm_enforce_password_change..!!"); + } + + if (mdm_set_password_status(MDM_PASSWORD_EXPIRED) == MDM_RESULT_SUCCESS) { + LOCK_SCREEN_TRACE_DBG("success to set MDM_PASSWORD_EXPIRED..!!"); + } else { + LOCK_SCREEN_TRACE_DBG("[ERROR] failed to set MDM_PASSWORD_EXPIRED..!!"); + } + mdm_release_service(); + } else { + LOCK_SCREEN_TRACE_DBG("[ERROR] failed to connect mdm server"); + } + }else { + if(mdm_get_service() == MDM_RESULT_SUCCESS) { + LOCK_SCREEN_TRACE_DBG("success to connect mdm server..!!"); + if (mdm_enforce_password_change() == MDM_RESULT_SUCCESS) { + LOCK_SCREEN_TRACE_DBG("success to call mdm_enforce_password_change..!!"); + } else { + LOCK_SCREEN_TRACE_DBG("[ERROR] failed to call mdm_enforce_password_change..!!"); + } + if(mdm_set_password_status(MDM_RECOVERY_PASSWORD_SUCCEEDED) == MDM_RESULT_SUCCESS) { + LOCK_SCREEN_TRACE_DBG("success to set MDM_RECOVERY_PASSWORD_SUCCEEDED..!!"); + } else { + LOCK_SCREEN_TRACE_DBG("[ERROR] failed to set MDM_RECOVERY_PASSWORD_SUCCEEDED..!!"); + } + mdm_release_service(); + } else { + LOCK_SCREEN_TRACE_DBG("[ERROR] failed to connect mdm server"); + } + } +#endif +} + +static void __password_verification_password_failed_cb(void) +{ + LOCK_SCREEN_TRACE_WARN("wiping ok"); + + if (__password_verification_password_failed() == EINA_FALSE) { + LOCK_SCREEN_TRACE_WARN("failed to execute factory reset"); + _factory_reset_retry(); + } else { + LOCK_SCREEN_TRACE_WARN("success to execute factory reset"); + } +} + +static Eina_Bool __password_verification_password_failed(void) +{ + Eina_Bool ret = EINA_FALSE; + +#if !DISABLE_MDM + if(mdm_get_service() == MDM_RESULT_SUCCESS) { + LOCK_SCREEN_TRACE_WARN("success to connect mdm server..!!"); + if(mdm_set_password_status(MDM_RECOVERY_PASSWORD_FAILED) == MDM_RESULT_SUCCESS) { + LOCK_SCREEN_TRACE_WARN("success to set MDM_RECOVERY_PASSWORD_FAILED"); + ret = EINA_TRUE; + } else { + LOCK_SCREEN_TRACE_WARN("[ERROR] failed to set MDM_RECOVERY_PASSWORD_FAILED"); + } + mdm_release_service(); + } else { + LOCK_SCREEN_TRACE_WARN("[ERROR] failed to connect mdm server"); + } +#endif + + return ret; +} + +static Eina_Bool __password_verification_recorver_password_by_mdm(void *data, Eina_Bool is_recovery_mode) +{ + Eina_Bool ret = EINA_FALSE; + lock_password_policy *password_policy = (lock_password_policy *)data; + + if(!password_policy) { + LOCK_SCREEN_TRACE_DBG("lock_policy is NULL"); + return EINA_FALSE; + } + +#if !DISABLE_MDM + if(!is_recovery_mode) { + if(mdm_get_service() == MDM_RESULT_SUCCESS) { + LOCK_SCREEN_TRACE_DBG("success to connect mdm server..!!"); + mdm_data_t * lp_data = NULL; + mdm_password_policy_t *pwd_info = NULL; + lp_data = mdm_get_password_policy(); + if (lp_data != NULL) { + pwd_info = (mdm_password_policy_t *)lp_data->data; + password_policy->mdm_quality = pwd_info->quality; + LOCK_SCREEN_TRACE_DBG("mdm quality : %d", password_policy->mdm_quality); + lp_data->mem_header.free_func(lp_data); + } else { + LOCK_SCREEN_TRACE_DBG("set password policy fail"); + } + if (password_policy->mdm_quality != MDM_PASSWORD_QUALITY_UNSPECIFIED) { + if (mdm_set_password_status(MDM_PASSWORD_FAILED) == MDM_RESULT_SUCCESS) { + LOCK_SCREEN_TRACE_DBG("success to set MDM_PASSWORD_FAILED..!!"); + ret = EINA_TRUE; + } else { + LOCK_SCREEN_TRACE_DBG("[ERROR] failed to set MDM_PASSWORD_FAILED..!!"); + } + } + mdm_release_service(); + } else { + LOCK_SCREEN_TRACE_DBG("[ERROR] failed to connect mdm server"); + } + } else { + /* factory reset */ + if(password_policy->callback) { + _callback_call(PWD_EVENT_RECOVERY_FAILED, password_policy, __password_verification_password_failed_cb); + } else { + if (__password_verification_password_failed() == EINA_FALSE) { + _factory_reset_retry(); + } + } + ret = EINA_TRUE; + } +#endif + + return ret; +} + +void *password_verification_policy_create() +{ + LOCK_SCREEN_TRACE_DBG(""); + lock_password_policy *policy = NULL; + int ret = 0; + unsigned int cur_attempt = 0; + unsigned int max_attempt = 0; + unsigned int expire_sec = 0; + + policy = (lock_password_policy *) calloc(1, sizeof(lock_password_policy)); + retv_if(policy == NULL, NULL); + + policy->incorrect_count = 0; + + ret = security_server_is_pwd_valid(&cur_attempt, &max_attempt, &expire_sec); + LOCK_SCREEN_TRACE_WARN("policy status:%d, cur_attempt:%d, max_attempt:%d ", ret, cur_attempt, max_attempt); + + if(ret == SECURITY_SERVER_API_ERROR_NO_PASSWORD || ret == SECURITY_SERVER_API_ERROR_PASSWORD_EXIST) + { + policy->current_attempt = cur_attempt; + policy->max_attempt = max_attempt; + policy->recoverable = EINA_FALSE; + policy->expire_sec = expire_sec; + } + policy->block_attempt = PASSWORD_ATTEMPTS_MAX_NUM; + + return policy; +} + +void password_verification_policy_destroy(void *data) +{ + LOCK_SCREEN_TRACE_DBG(""); + lock_password_policy *policy = (lock_password_policy *)data; + + if (!policy) + { + return; + } + + free(policy); + policy = NULL; +} + +void password_verification_verify_unlock_trigger(void) +{ + _lock_ready_to_send_cmd("unlock"); +} + +static void _verification(void *data, const char *password, Eina_Bool is_recovery_mode) +{ + lock_password_type password_type = NORMAL_PASSWORD; + lock_password_policy *password_policy = (lock_password_policy *)data; + + if(!password_policy) { + LOCK_SCREEN_TRACE_DBG("lock_policy is NULL"); + return; + } + if(!password) { + LOCK_SCREEN_TRACE_DBG("password is NULL"); + return; + } + + char *password_dup = strdup(password); + + password_type = __password_verification_check_length(password, 4, 16); + switch(password_type){ + case NORMAL_PASSWORD: + if (__password_verification_check_phone_password(password_policy, password)) { + if ( __password_verification_check_pw_expired(password_policy)) { + __password_verification_set_expired_password_by_mdm(password_policy, is_recovery_mode); + } + LOCK_SCREEN_TRACE_DBG("password is right!!!!"); + _left_attempts_set(password_policy, PASSWORD_ATTEMPTS_MAX_NUM); + _incorrect_count_set(password_policy, 0); + + _callback_call(PWD_EVENT_PASSWORD_CORRECT, password_policy, NULL); + lockd_util_key_lock_set(0, password_dup); + _recovery_mode_wait_timer_del(); + _factory_reset_retry_timer_del(); + } else { + if (__password_verification_check_recovery(password_policy)) { + LOCK_SCREEN_TRACE_DBG("Set recovery lock mode..!!"); + if (__password_verification_recorver_password_by_mdm(password_policy, is_recovery_mode) == EINA_FALSE) { + LOCK_SCREEN_TRACE_ERR("Failed to set recovery mode"); + } else { + LOCK_SCREEN_TRACE_ERR("success to set recovery mode"); + } + _callback_call(PWD_EVENT_PASSWORD_INCORRECT_WAIT_RECOVERY_MODE, password_policy, NULL); + _recovery_mode_wait(password_policy); + } else { + if(password_policy->callback){ + //calculate the remain attempts according to mdm_policy + int need_block = 0; + int need_popup = 0; + + int max_attempt = 0; + int attempt = 0; + int remain = 0; + + _left_attempts_down(password_policy); + _incorrect_count_up(password_policy); + + if (password_policy->max_attempt <= INFINITE_ATTEMPT) { + max_attempt = password_policy->block_attempt; + } else { + max_attempt = password_policy->max_attempt; + } + + attempt = _current_attempts_get(password_policy); + if ((attempt % PASSWORD_ATTEMPTS_MAX_NUM) == 0 && attempt > 0) { + need_block = 1; + } + + remain = max_attempt - attempt; + if (remain < PASSWORD_ATTEMPTS_MAX_NUM) { + need_popup = 1; + } + + LOCK_SCREEN_TRACE_DBG("c_attempt:%d max_attempt:%d need_popup:%d need_block:%d", + attempt, max_attempt, need_popup, need_block); + + if (password_policy->max_attempt != INFINITE_ATTEMPT) { + if (need_block == 1) { + if (need_popup == 1) { + _callback_call(PWD_EVENT_INPUT_BLOCK_WARNING, password_policy, NULL); + } else { + _callback_call(PWD_EVENT_INPUT_BLOCK, password_policy, NULL); + } + } else if (need_popup == 1) { + _callback_call(PWD_EVENT_PASSWORD_INCORRECT_WARNING, password_policy, NULL); + } else { + _callback_call(PWD_EVENT_PASSWORD_INCORRECT, password_policy, NULL); + } + } else { + if (need_block == 1) { + _callback_call(PWD_EVENT_INPUT_BLOCK, password_policy, NULL); + _left_attempts_set(password_policy, PASSWORD_ATTEMPTS_MAX_NUM); + } else { + _callback_call(PWD_EVENT_PASSWORD_INCORRECT, password_policy, NULL); + } + } + } + } + } + break; + case EMPTY_PASSWORD: + _callback_call(PWD_EVENT_PASSWORD_EMPTY, password_policy, NULL); + break; + case OVERLENGTH_PASSWORD: + _callback_call(PWD_EVENT_PASSWORD_OVER, password_policy, NULL); + break; + } + + free(password_dup); +} + +static void _verification_recovery(void *data, const char *password, Eina_Bool is_recovery_mode) +{ + lock_password_type password_type = NORMAL_PASSWORD; + lock_password_policy *password_policy = (lock_password_policy *)data; + + if(!password_policy) { + LOCK_SCREEN_TRACE_DBG("lock_policy is NULL"); + return; + } + if(!password) { + LOCK_SCREEN_TRACE_DBG("password is NULL"); + return; + } + + char *password_dup = strdup(password); + LOCK_SCREEN_TRACE_DBG("recovery mode"); + + password_type = __password_verification_check_length(password, 4, 16); + switch(password_type){ + case NORMAL_PASSWORD: + if (__password_verification_check_phone_password(password_policy, password)) { + __password_verification_set_expired_password_by_mdm(password_policy, is_recovery_mode); + LOCK_SCREEN_TRACE_DBG("password is right!!!!"); + _left_attempts_set(password_policy, PASSWORD_ATTEMPTS_MAX_NUM); + _incorrect_count_set(password_policy, 0); + set_recovery_mode(0); + _callback_call(PWD_EVENT_PASSWORD_CORRECT, password_policy, NULL); + __password_verification_set_expired_password_by_mdm(password_policy, EINA_FALSE); + lockd_util_key_lock_set(0, password_dup); + _recovery_mode_wait_timer_del(); + _factory_reset_retry_timer_del(); + } else { + LOCK_SCREEN_TRACE_DBG("Recovery lock mode..!!"); + __password_verification_recorver_password_by_mdm(password_policy, is_recovery_mode); + } + break; + case EMPTY_PASSWORD: + _callback_call(PWD_EVENT_PASSWORD_EMPTY, password_policy, NULL); + break; + case OVERLENGTH_PASSWORD: + _callback_call(PWD_EVENT_PASSWORD_OVER, password_policy, NULL); + break; + } + + free(password_dup); +} + +void password_verification_verify(void *data, const char *password) +{ + Eina_Bool is_recovery_mode = (get_recovery_mode() == 1) ? EINA_TRUE : EINA_FALSE; + + if (is_recovery_mode == EINA_FALSE) { + _verification(data, password, is_recovery_mode); + } else { + _verification_recovery(data, password, is_recovery_mode); + } +} + +void password_verification_callback_set(void *data, password_operation_cb callback, void *priv) +{ + LOCK_SCREEN_TRACE_DBG(""); + lock_password_policy *policy = (lock_password_policy *)data; + + if (!policy) + { + return; + } + + policy->callback = callback; + policy->data = priv; +} + +int password_verification_lock_send_cmd(const char *cmd) +{ + int fd; + int len; + int datalen; + + fd = _lock_create_sock(); + if (fd < 0) { + LOCK_SCREEN_TRACE_DBG("create sock failed..!!"); + return -1; + } + + if (cmd != NULL) { + datalen = strlen(cmd); + if ((len = send(fd, cmd, datalen, 0)) != datalen) { + LOCK_SCREEN_TRACE_DBG("send() failed %d %d, errno:%d", len, datalen, + errno); + close(fd); + return -1; + } + } + close(fd); + return 0; +} + +static Eina_Bool _ready_to_send_cmd(void *data) +{ + LOCK_SCREEN_TRACE_DBG("_ready_to_send_cmd..!!"); + s_complex_password_info.send_timer = NULL; + password_verification_lock_send_cmd(data); + //contextual_info_run_selected_notification_item_app(); /* duplicated */ + return ECORE_CALLBACK_CANCEL; +} + +static int _lock_ready_to_send_cmd(const char *cmd) +{ + s_complex_password_info.send_timer = ecore_timer_add(0.3, _ready_to_send_cmd, cmd); + return 0; +} + +static int _lock_create_sock(void) +{ + struct sockaddr_un saddr; + int fd; + int retry = 1; + + fd = socket(AF_UNIX, SOCK_STREAM, 0); + if (fd < 0) { + if (errno == EINVAL) { + fd = socket(AF_UNIX, SOCK_STREAM, 0); + if (fd < 0) { + LOCK_SCREEN_TRACE_DBG("socket create error"); + return -1; + } + } else { + LOCK_SCREEN_TRACE_DBG("socket error"); + return -1; + } + } + + bzero(&saddr, sizeof(saddr)); + saddr.sun_family = AF_UNIX; + + strncpy(saddr.sun_path, LOCK_SOCK_PREFIX, + strlen(LOCK_SOCK_PREFIX)); + saddr.sun_path[strlen(LOCK_SOCK_PREFIX)] = 0; + +retry_con: + if (connect(fd, (struct sockaddr *)&saddr, sizeof(saddr)) < 0) { + if (retry > 0) { + usleep(100 * 1000); + retry--; + goto retry_con; + } + close(fd); + return -1; + } + _lock_set_sock_option(fd, 1); + + return fd; +} + +static void _lock_set_sock_option(int fd, int cli) +{ + int size; + int ret; + struct timeval tv = { 1, 200 * 1000 }; /* 1.2 sec */ + + size = LOCK_SOCK_MAXBUFF; + ret = setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &size, sizeof(size)); + if(ret != 0) { + return; + } + ret = setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &size, sizeof(size)); + if(ret != 0) { + return; + } + if (cli) { + ret = setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)); + if(ret != 0) { + return; + } + } +} + +int password_verification_incorrect_count_get(void *data) +{ + lock_password_policy *policy = data; + retv_if(policy == NULL, 0); + + return policy->incorrect_count; +} diff --git a/src/password-verification.h b/src/password-verification.h deleted file mode 100755 index 18f241c..0000000 --- a/src/password-verification.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 __PASSWORD_VERIFICATION_H__ -#define __PASSWORD_VERIFICATION_H__ - -typedef void (*password_operation_cb) (const char *event, void *data); - -void *password_verification_policy_create(); -void password_verification_policy_destroy(void *data); -void password_verification_verify(void *data, const char *password); -void password_verification_callback_set(void *data, password_operation_cb callback, void *priv); - -#endif diff --git a/src/progress_circle.c b/src/progress_circle.c new file mode 100755 index 0000000..ce894f8 --- /dev/null +++ b/src/progress_circle.c @@ -0,0 +1,783 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include + +#include "lockscreen-lite.h" +#include "default-unlock.h" +#include "progress_circle.h" +#include "control-panel.h" +#include "control-panel-password.h" +#include "complex-password.h" +#include "notification-item.h" +#include "contextual-info.h" +#include "underbar.h" +#include "camera.h" + +#define _X(x) (ELM_SCALE_SIZE(x)) + +#define UNLOCK_MOVE_DISTANCE _X(150.0) + +#define CAMERA_ICON_POZ_X _X(412) +#define CAMERA_ICON_POZ_Y _X(734) +#define CAMERA_ICON_WIDTH _X(88) +#define CAMERA_ICON_HEIGHT _X(88) + +#define INDICATOR_HEIGHT _X(45) + +#define CAMERA_CLICKED_POZ_X_KEYBOARD_ON _X(412) +#define CAMERA_CLICKED_POZ_Y_KEYBOARD_ON _X(456) + +#if RESOLUTION_HD +#define CAMERA_PKGID_1 "com.samsung.camera-app" +#else +#define CAMERA_PKGID_1 "com.samsung.camera-app-lite" +#endif + +static struct +{ + int clickedX, clickedY; + + bool is_clicked; + bool is_blocked; + bool drawing_camera_circle; + bool drawing_cp_link; + bool is_after_swipe; + bool is_keyboard_on; + + bool is_unlock_effect_on; + + lockscreen_exit_state exit_state; + lockscreen_mode_state mode_state; + Ecore_Timer * camera_launch_timer; + Ecore_Timer *noti_apps_launch_timer; + Ecore_Timer *view_back_timer; +} s_unlock_data = +{ + .clickedX = 0, + .clickedY = 0, + + .is_clicked = false, + .is_blocked = false, + .drawing_camera_circle = false, + .drawing_cp_link = false, + .is_after_swipe = false, + .is_keyboard_on = false, + + .is_unlock_effect_on = false, + + .exit_state = LOCKSCREEN_STATE_NORMAL, + .mode_state = LOCKSCREEN_MODE_SWIPE, + .camera_launch_timer = NULL, + .noti_apps_launch_timer = NULL, + .view_back_timer = NULL, +}; + +static void _noti_apps_launch_cb(app_control_h service, app_control_h reply, app_control_result_e result, void* user_data); +static void _camera_reply_cb(app_control_h service, app_control_h reply, app_control_result_e result, void* user_data); +static Eina_Bool _camera_reply_timeout_timer_cb(void *data); + +void lockscreen_password_visible_set(Eina_Bool is_transition) +{ + if(is_transition) + { + elm_object_signal_emit(lockscreen_get_layout(), "set_password_with_transition", "bg"); + } + else + { + elm_object_signal_emit(lockscreen_get_layout(), "set_password_with", "bg"); + } +} + +void lockscreen_show_camera_icon(void) +{ + elm_object_signal_emit(lockscreen_get_layout(), "show.camera.icon", ""); +} + +void lockscreen_hide_camera_icon(void) +{ + elm_object_signal_emit(lockscreen_get_layout(), "hide.camera.icon", ""); +} + +static void _camera_unlock(void) +{ + int locktype = get_locktype(); + + notification_item_selected_item_set(NULL); + notification_item_selected_item_type_set(NOTIFICATION_ITEM_NONE); + + double timeout = 2.0; + if (lockd_unlock_count_get() < 2) { + timeout = 5.0; + } + s_unlock_data.camera_launch_timer = ecore_timer_add(timeout, _camera_reply_timeout_timer_cb, NULL); + if(!s_unlock_data.camera_launch_timer) + { + LOCK_SCREEN_TRACE_DBG("Failed to create camera launch request"); + return ; + } + + app_control_h service = NULL; + + if (app_control_create(&service) != APP_CONTROL_ERROR_NONE) + { + LOCK_SCREEN_TRACE_ERR("app_control_create() failed"); + return ; + } + app_control_set_operation(service, APP_CONTROL_OPERATION_MAIN); + app_control_set_app_id(service, CAMERA_PKGID_1); + + if(locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + app_control_add_extra_data(service, "CALLER", "lock_screen"); + app_control_add_extra_data(service, "secure_mode", "true"); + } + else + { + app_control_add_extra_data(service, "CALLER", "lock_screen"); + + } + + if (app_control_send_launch_request(service, _camera_reply_cb, NULL) != APP_CONTROL_ERROR_NONE) + { + LOCK_SCREEN_TRACE_ERR("app_control_send_request() failed"); + ecore_timer_del(s_unlock_data.camera_launch_timer); + s_unlock_data.camera_launch_timer = NULL; + _camera_reply_timeout_timer_cb(NULL); + } + app_control_destroy(service); + + + s_unlock_data.exit_state = LOCKSCREEN_STATE_NORMAL; +} + +static void _vi_cancel_effect_end_signal_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + LOCK_SCREEN_TRACE_DBG(""); +} + +Eina_Bool unlock_mouse_down(void *data, int type, void *event) +{ + LOCK_SCREEN_TRACE_DBG(""); + + Ecore_Event_Mouse_Button *m = event; + int unlock_state = get_locktype(); + + if(!s_unlock_data.is_clicked && !s_unlock_data.is_blocked && !s_unlock_data.is_after_swipe) + { + LOCK_SCREEN_TRACE_DBG(""); + int camera_icon_x = 0; + int camera_icon_y = 0; + int x = 0, y = 0, w = 0, h = 0; + int touch_upper_y = 0; + + edje_object_part_geometry_get(_EDJ(lockscreen_get_layout()), "camera_icon", &x, &y, &w, &h); + camera_icon_x += x; + camera_icon_y += y; + LOCK_SCREEN_TRACE_DBG("%p camera_icon_x(%d) camera_y(%d)", lockscreen_get_layout(), camera_icon_x, camera_icon_y); + + underbar_cp_link_trigger_set(0); + + if(lockscreen_is_view_simple_get()) + { + touch_upper_y = INDICATOR_HEIGHT; + LOCK_SCREEN_TRACE_DBG("touch(%d) y(%d)", m->root.y, touch_upper_y); + } + else + { + edje_object_part_geometry_get(_EDJ(lockscreen_get_layout()), "default_layout", &x, &y, &w, &h); + touch_upper_y += y; + edje_object_part_geometry_get(_EDJ(default_unlock_control_panel_get()), "event_info_swallow", &x, &y, &w, &h); + touch_upper_y += y; + touch_upper_y += h; + LOCK_SCREEN_TRACE_DBG("touch(%d) y(%d)", m->root.y, touch_upper_y); + } + + int u_x = 0, u_y = 0, u_w = 0, u_h = 0; + underbar_geometry_get(&u_x, &u_y, &u_w, &u_h); + + if(is_camera_visible() && m->root.y >= camera_icon_y + && m->root.x >= camera_icon_x) + { + LOCK_SCREEN_TRACE_DBG(""); + s_unlock_data.is_clicked = true; + + s_unlock_data.clickedX = m->root.x; + s_unlock_data.clickedY = m->root.y; + + s_unlock_data.drawing_camera_circle = true; + s_unlock_data.drawing_cp_link = false; + + camera_view_action(CAMERA_VIEW_DRAGGING_START, 0); + + if(m->root.y > touch_upper_y && s_unlock_data.exit_state == LOCKSCREEN_STATE_NORMAL) { + elm_object_signal_emit(lockscreen_get_layout(), "vi_effect_start", "bg"); + s_unlock_data.is_unlock_effect_on = true; + + if(get_locktype() == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || get_locktype() == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + control_panel_password_update(); + } + } + } + else if (underbar_is_dragable() && m->root.x > u_x && m->root.y > u_y && (unlock_state == SETTING_SCREEN_LOCK_TYPE_SWIPE || (!s_unlock_data.is_after_swipe && lockscreen_password_after_swiping_get()))) + { + LOCK_SCREEN_TRACE_DBG(""); + + if(get_locktype() != SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD && get_locktype() != SETTING_SCREEN_LOCK_TYPE_PASSWORD) { + s_unlock_data.is_clicked = true; + s_unlock_data.clickedX = m->root.x; + s_unlock_data.clickedY = m->root.y; + s_unlock_data.drawing_camera_circle = false; + s_unlock_data.drawing_cp_link = true; + + if(s_unlock_data.exit_state == LOCKSCREEN_STATE_NORMAL) { + elm_object_signal_emit(lockscreen_get_layout(), "vi_effect_start", "bg"); + s_unlock_data.is_unlock_effect_on = true; + } + + underbar_proxy_create(); + } else { + s_unlock_data.is_clicked = false; + } + } + else if(m->root.y > touch_upper_y && (unlock_state == SETTING_SCREEN_LOCK_TYPE_SWIPE || (!s_unlock_data.is_after_swipe && lockscreen_password_after_swiping_get()))) + { + LOCK_SCREEN_TRACE_DBG(""); + + s_unlock_data.is_clicked = true; + + s_unlock_data.clickedX = m->root.x; + s_unlock_data.clickedY = m->root.y; + + s_unlock_data.drawing_camera_circle = false; + s_unlock_data.drawing_cp_link = false; + + if(m->root.y > touch_upper_y && s_unlock_data.exit_state == LOCKSCREEN_STATE_NORMAL) { + elm_object_signal_emit(lockscreen_get_layout(), "vi_effect_start", "bg"); + s_unlock_data.is_unlock_effect_on = true; + + if(get_locktype() == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || get_locktype() == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + control_panel_password_update(); + } + } + } + else + { + s_unlock_data.is_clicked = false; + } + } + + return ECORE_CALLBACK_PASS_ON; +} + +Eina_Bool unlock_mouse_up(void *data, int type, void *event) +{ + LOGE(""); + Ecore_Event_Mouse_Button *m = event; + + if(m->multi.device != 0) + { + //other than first finger - ignore + return 0; + } + + if (s_unlock_data.is_clicked == false) { + LOCK_SCREEN_TRACE_WARN("already unlocked"); + return 0; + } + + s_unlock_data.is_clicked = false; + + int locktype = get_locktype(); + if(s_unlock_data.exit_state == LOCKSCREEN_STATE_START_CAMERA){ + _camera_unlock(); + } + else if(s_unlock_data.exit_state == LOCKSCREEN_STATE_EXIT) + { + if (s_unlock_data.is_after_swipe == false) { + lockd_event(LKD_EVT_VIEW_GESTURED, NULL); + } + + s_unlock_data.is_after_swipe = true; + if(locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) + { + s_unlock_data.mode_state = LOCKSCREEN_MODE_SIMPLE_PASSWORD; + } + else if(locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + s_unlock_data.mode_state = LOCKSCREEN_MODE_COMPLEX_PASSWORD; + complex_password_focus_entry(); + } + else + { + if(lockscreen_get_emergency() == 2) + { + vi_end_signal_emit(EINA_FALSE, EINA_FALSE); + } + else + { + vi_end_signal_emit(EINA_TRUE, EINA_FALSE); + } + } + } + else if(s_unlock_data.exit_state == LOCKSCREEN_STATE_START_CP_LINK) + { + LOGE("LOCKSCREEN_STATE_START_CP_LINK"); + underbar_proxy_destroy(); + + if (s_unlock_data.is_after_swipe == false) { + lockd_event(LKD_EVT_VIEW_GESTURED, NULL); + } + + s_unlock_data.is_after_swipe = true; + if(locktype != SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD && locktype != SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + if(lockscreen_get_emergency() == 2) + { + vi_end_signal_emit(EINA_FALSE, EINA_FALSE); + } + else + { + vi_end_signal_emit(EINA_TRUE, EINA_FALSE); + } + } + + underbar_cp_link(); + } + else if(s_unlock_data.is_unlock_effect_on) + { + LOCK_SCREEN_TRACE_DBG("cancel unlocking"); + underbar_proxy_destroy(); + + elm_object_signal_emit(lockscreen_get_layout(), "vi_effect_stop", "bg"); + elm_object_signal_emit(lockscreen_get_layout(), "vi_effect_stop_behind", "bg"); + if(is_camera_visible()) + { + elm_object_signal_emit(lockscreen_get_layout(), "vi_effect_stop_camera", "bg"); + } + s_unlock_data.is_unlock_effect_on = false; + } + s_unlock_data.is_unlock_effect_on = false; + + return ECORE_CALLBACK_PASS_ON; +} + +#define MSG_ID 1 +#define UNLOCK_DISTANCE 275 +#define UNLOCK_DISTANCE_CAMERA_MIN 180 +#define UNLOCK_DISTANCE_CAMERA_MAX 262 + +#define MSG_KEY_DISTANCE 0 +#define MSG_KEY_PASSWORD 1 +#define MSG_KEY_SCALED_UNLOCK_DISTANCE 2 +#define MSG_KEY_WIN_W 3 +#define MSG_KEY_CAMERA 4 +#define MSG_KEY_EMERGENCY 5 + +Eina_Bool unlock_mouse_move(void *data, int type, void *event) +{ + if(s_unlock_data.is_clicked && !s_unlock_data.is_blocked && !s_unlock_data.is_after_swipe) + { + int win_w = lockscreen_get_window_width(); + if(!event) + { + LOCK_SCREEN_TRACE_ERR("Failed to get event pointer"); + return ECORE_CALLBACK_CANCEL; + } + + Ecore_Event_Mouse_Move *m = event; + + if(m->multi.device != 0) + { + //other than first finger - ignore + return ECORE_CALLBACK_DONE; + } + + int const dx = m->x - s_unlock_data.clickedX; + int const dy = s_unlock_data.clickedY - m->y; + int scaled_unlock_distance = ELM_SCALE_SIZE(UNLOCK_DISTANCE); + int camera_unlock_distance_min = ELM_SCALE_SIZE(UNLOCK_DISTANCE_CAMERA_MIN); + int camera_unlock_distance_max = ELM_SCALE_SIZE(UNLOCK_DISTANCE_CAMERA_MAX); + int min_unlock_distance = MIN(scaled_unlock_distance, camera_unlock_distance_min); + int distance = sqrt(dx*dx + dy*dy) + ELM_SCALE_SIZE(20); + + if(distance >= min_unlock_distance) + { + if(s_unlock_data.drawing_camera_circle) { + int circle_full = camera_view_is_circle_full(); + if (circle_full) { + s_unlock_data.exit_state = LOCKSCREEN_STATE_START_CAMERA; + } + + if (circle_full && distance >= camera_unlock_distance_max) { + _camera_unlock(); + s_unlock_data.is_clicked = false; + return ECORE_CALLBACK_CANCEL; + } + } else if (distance >= scaled_unlock_distance) { + if (s_unlock_data.drawing_cp_link) { + s_unlock_data.exit_state = LOCKSCREEN_STATE_START_CP_LINK; + } + else { + s_unlock_data.exit_state = LOCKSCREEN_STATE_EXIT; + } + } + + if (distance >= scaled_unlock_distance) { + distance = scaled_unlock_distance; + } + } + else + { + s_unlock_data.exit_state = LOCKSCREEN_STATE_NORMAL; + } + Edje_Message_Int_Set *msg = malloc(sizeof(*msg) + 6 * sizeof(int)); + msg->count = 7; + msg->val[MSG_KEY_DISTANCE] = distance; + + if(!s_unlock_data.drawing_camera_circle && (get_locktype() == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || get_locktype() == SETTING_SCREEN_LOCK_TYPE_PASSWORD)) + { + msg->val[MSG_KEY_PASSWORD] = 1; + } + else + { + msg->val[MSG_KEY_PASSWORD] = 0; + } + + /* window size */ + msg->val[MSG_KEY_SCALED_UNLOCK_DISTANCE] = scaled_unlock_distance; + msg->val[MSG_KEY_WIN_W] = win_w; + + if(is_camera_visible() && s_unlock_data.drawing_camera_circle) + { + msg->val[MSG_KEY_CAMERA] = 2; + } + else if(is_camera_visible()) + { + msg->val[MSG_KEY_CAMERA] = 1; + } + else + { + msg->val[MSG_KEY_CAMERA] = 0; + } + + if(2 == lockscreen_get_emergency()) + { + msg->val[MSG_KEY_EMERGENCY] = 1; + } + else + { + msg->val[MSG_KEY_EMERGENCY] = 0; + } + + edje_object_message_send(_EDJ(lockscreen_get_layout()), EDJE_MESSAGE_INT_SET, MSG_ID, msg); + free(msg); + } + + return ECORE_CALLBACK_DONE; +} + +static Eina_Bool _launch_notification_apps_request(void *data) +{ + LOCK_SCREEN_TRACE_DBG("timer expired"); + vi_end_signal_emit(EINA_FALSE, EINA_TRUE); + s_unlock_data.noti_apps_launch_timer = NULL; + return ECORE_CALLBACK_CANCEL; +} + +static void _vi_effect_end_signal_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + //trigger_unlock(); +} + +void vi_end_signal_emit(Eina_Bool is_effect_on, Eina_Bool is_ignore_noti) +{ + if(!is_ignore_noti && notification_item_selected_item_get()) { + LOCK_SCREEN_TRACE_DBG("Any notification items selected"); + + contextual_info_run_selected_notification_item_app(_noti_apps_launch_cb); + + s_unlock_data.noti_apps_launch_timer = ecore_timer_add(1.5, _launch_notification_apps_request, NULL); + } + else + { + LOCK_SCREEN_TRACE_DBG("No notification imtem selected"); + + int locktype = get_locktype(); + if(locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + if(lockscreen_get_emergency() == 2 || is_effect_on == EINA_FALSE) + { + trigger_unlock(); + } + else + { + if (locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) { + elm_object_signal_emit(lockscreen_get_layout(), "vi_effect_unlock_fadding", "sw.bg"); + lockd_event_delay(LKD_EVT_UNLOCK, 0.5); + } else { + elm_object_signal_emit(lockscreen_get_layout(), "vi_effect_unlock", "sw.bg"); + lockd_event_delay(LKD_EVT_UNLOCK, 0.5); + } + } + if (underbar_cp_link_trigger_get()) { + LOCK_SCREEN_TRACE_DBG("launch cp"); + underbar_cp_link(); + } + } + else + { + if(lockscreen_get_emergency() == 2 || is_effect_on == EINA_FALSE) + { + trigger_unlock(); + } + else + { + elm_object_signal_emit(lockscreen_get_layout(), "vi_effect_unlock", "sw.bg"); + lockd_event_delay(LKD_EVT_UNLOCK, 0.5); + } + } + lockscreen_play_unlock_feedback(0.3); + } +} + +Eina_Bool unlock_panel_create(Evas_Object *obj) +{ + LOGE(""); + Evas *evas = evas_object_evas_get(obj); + if(evas == NULL) + { + LOGE("Can not get evas from evas_object"); + return ECORE_CALLBACK_CANCEL; + } + + /* for camera */ + ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, unlock_mouse_down, obj); + ecore_event_handler_add(ECORE_EVENT_MOUSE_MOVE, unlock_mouse_move, NULL); + ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP, unlock_mouse_up, NULL); + + elm_object_signal_callback_add(lockscreen_get_layout(), "vi_effect_unlock_end", "*", _vi_effect_end_signal_cb, NULL); + elm_object_signal_callback_add(lockscreen_get_layout(), "vi_effect_stop_after", "*", _vi_cancel_effect_end_signal_cb, NULL); + + return ECORE_CALLBACK_DONE; +} + +void set_lockscreen_state(lockscreen_mode_state state) +{ + s_unlock_data.mode_state = state; +} + +bool get_lockscreen_is_after_swipe(void) +{ + return s_unlock_data.is_after_swipe; +} + +void set_lockscreen_is_after_swipe(bool state) +{ + s_unlock_data.is_after_swipe = state; +} + +void set_lockscreen_exit_state_normal(void) +{ + s_unlock_data.exit_state = LOCKSCREEN_STATE_NORMAL; +} + +bool get_lockscreen_is_clicked(void) +{ + return s_unlock_data.is_clicked; +} + +void set_lockscreen_swipe_is_blocked(bool is_blocked) +{ + s_unlock_data.is_blocked = is_blocked; +} + +void set_lockscreen_is_keyboard_on(bool state) +{ + s_unlock_data.is_keyboard_on = state; +} + +lockscreen_mode_state get_lockscreen_state(void) +{ + return s_unlock_data.mode_state; +} + +/*! + * module + */ +static Evas_Object *_create_view(Evas_Object *parent, LKD_Module_Data *md) +{ + return NULL; +} + +static int _destroy_view(LKD_Module_Data *md) +{ + return LKD_RET_OK; +} + +static void _resume(LKD_Module_Data *md) +{ + LOCK_SCREEN_TRACE_DBG(); + + if(is_camera_visible() && !get_lockscreen_is_after_swipe()) + { + lockscreen_show_camera_icon(); + } + else + { + lockscreen_hide_camera_icon(); + } +} + +static void _pause(LKD_Module_Data *md) +{ +} + +LKD_Module g_mod_progress_circle = { + .id = "progress-circle", + .notifying = 1, + .init = NULL, + .fini = NULL, + .create_view = _create_view, + .destroy_view = _destroy_view, + .resume = _resume, + .pause = _pause, +}; + +static void _noti_apps_launch_cb(app_control_h service, app_control_h reply, app_control_result_e result, void* user_data) +{ + char *val = NULL; + + app_control_get_extra_data(reply, "destroy_request", &val); + LOCK_SCREEN_TRACE_DBG("result[%d], data:[%s]", result, val); + + if(val) + { + if(!strcmp("true", val)) + { + vi_end_signal_emit(EINA_TRUE, EINA_FALSE); + } + if(s_unlock_data.noti_apps_launch_timer) + { + ecore_timer_del(s_unlock_data.noti_apps_launch_timer); + s_unlock_data.noti_apps_launch_timer = NULL; + } + free(val); + } + + app_control_destroy(service); +} + +static void _password_lock_camera_win_hide_cb(void *user_data, void *event_info) +{ + LOCK_SCREEN_TRACE_DBG(); + + /* removing event triggers */ + lockd_event_unregister_cb(DAEMON_EVENT_WIN_INVISIBLE, _password_lock_camera_win_hide_cb); + if (s_unlock_data.view_back_timer != NULL) { + ecore_timer_del(s_unlock_data.view_back_timer); + s_unlock_data.view_back_timer = NULL; + } + + default_unlock_view_back_change(false); + + camera_view_action(CAMERA_VIEW_DRAGGING_STOP, 0); +} + +static Eina_Bool _password_lock_camera_timer_cb(void *data) +{ + LOCK_SCREEN_TRACE_DBG(); + + /* removing event triggers */ + lockd_event_unregister_cb(DAEMON_EVENT_WIN_INVISIBLE, _password_lock_camera_win_hide_cb); + s_unlock_data.view_back_timer = NULL; + + default_unlock_view_back_change(false); + + return ECORE_CALLBACK_CANCEL; +} + +static void _camera_reply_cb(app_control_h service, app_control_h reply, app_control_result_e result, void* user_data) +{ + char *val = NULL; + + app_control_get_extra_data(reply, "destroy_request", &val); + LOCK_SCREEN_TRACE_DBG("result[%d], data:[%s]", result, val); + + camera_view_action(CAMERA_VIEW_DRAGGING_STOP, 0); + + if (val) { + if(!strcmp("true", val)) + { + int locktype = get_locktype(); + if(locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + lockd_event_register_cb(DAEMON_EVENT_WIN_INVISIBLE, _password_lock_camera_win_hide_cb, NULL); + if (s_unlock_data.view_back_timer != NULL) { + ecore_timer_del(s_unlock_data.view_back_timer); + s_unlock_data.view_back_timer = NULL; + } + s_unlock_data.view_back_timer = ecore_timer_add(1.0, _password_lock_camera_timer_cb, NULL); + int locktype = get_locktype(); + if(locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) { + complex_password_focus_disable_set(); + } + } else { + lockd_event(LKD_EVT_UNLOCK, NULL); + } + if(s_unlock_data.camera_launch_timer) + { + ecore_timer_del(s_unlock_data.camera_launch_timer); + s_unlock_data.camera_launch_timer = NULL; + } + } + free(val); + } + + app_control_destroy(service); + service = NULL; +} + +static Eina_Bool _camera_reply_timeout_timer_cb(void *data) +{ + LOCK_SCREEN_TRACE_DBG(); + s_unlock_data.camera_launch_timer = NULL ; + + camera_view_action(CAMERA_VIEW_DRAGGING_STOP, 0); + + int locktype = get_locktype(); + if(locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) + { + lockd_event_register_cb(DAEMON_EVENT_WIN_INVISIBLE, _password_lock_camera_win_hide_cb, NULL); + if (s_unlock_data.view_back_timer != NULL) { + ecore_timer_del(s_unlock_data.view_back_timer); + s_unlock_data.view_back_timer = NULL; + } + s_unlock_data.view_back_timer = ecore_timer_add(1.0, _password_lock_camera_timer_cb, NULL); + int locktype = get_locktype(); + if(locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) { + complex_password_focus_disable_set(); + } + } else { + lockd_event(LKD_EVT_UNLOCK, NULL); + } + + return ECORE_CALLBACK_CANCEL; +} diff --git a/src/sim-state.c b/src/sim-state.c index 71661ab..b87c91e 100755 --- a/src/sim-state.c +++ b/src/sim-state.c @@ -1,175 +1,844 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 -#include - -#include "lockscreen.h" -#include "sim-state.h" - -#define TELEPHONY_MAX_KEY_NUM 4 -#define BUFFER_LENGTH 256 - -static int _sim_state_value_get(const char *key, char *txt, int size) -{ - int i = 0; - int len = 0; - char *str = NULL; - - str = vconf_get_str(key); - if (str == NULL || str[0] == '\0'){ - return 0; - } - - /* check ASCII code */ - for (i = strlen(str) - 1; i >= 0; i--) { - if (str[i] <= 31 || str[i] >= 127) { - if (str){ - free(str); - str = NULL; - } - return 0; - } - } - - len = snprintf(txt, size, "%s", str); - if (str){ - free(str); - str = NULL; - } - - return len; -} - -static void _sim_state_string_get(char *keylist[], char *sim_state_string) -{ - char txt[BUFFER_LENGTH] = {0}; - char buf[BUFFER_LENGTH] = {0}; - int len = 0; - int i = 0; - - for (i = 0; keylist[i]; i++) { - if (_sim_state_value_get(keylist[i], buf, sizeof(buf))) { - LOCK_SCREEN_TRACE_DBG("VCONFKEY(%s) = %s", keylist[i], buf); - len = strlen(txt); - snprintf(&txt[len], sizeof(txt) - len, "%s%s", len ? " - " : "", buf); - } - if (keylist[i]) { - free(keylist[i]); - keylist[i] = NULL; - } - } - snprintf(sim_state_string, BUFFER_LENGTH, "%s", txt); -} - -static void _set_sim_state(void *data) -{ - struct appdata *ad = data; - if (ad == NULL) - return; - - int state = 0; - int ret = 0; - int i = 0; - char buf[BUFFER_LENGTH] = {0}; - char *keylist[TELEPHONY_MAX_KEY_NUM] = {0}; - - int service_type = VCONFKEY_TELEPHONY_SVCTYPE_SEARCH; - - if(vconf_get_int(VCONFKEY_TELEPHONY_SVCTYPE, &service_type) != 0) { - LOCK_SCREEN_TRACE_ERR("fail to get VCONFKEY_TELEPHONY_SVCTYPE"); - } - - ret = (vconf_get_int(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, &state)); - if (ret == 0) { - LOCK_SCREEN_TRACE_DBG("[%s:%d] VCONFKEY(%s) = %d", __func__, __LINE__, VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, state); - if (state != VCONFKEY_TELEPHONY_DISP_INVALID && service_type > VCONFKEY_TELEPHONY_SVCTYPE_SEARCH) { - if(i < TELEPHONY_MAX_KEY_NUM) { - if(state & VCONFKEY_TELEPHONY_DISP_SPN) { - keylist[i++] = strdup(VCONFKEY_TELEPHONY_SPN_NAME); - } - if(state & VCONFKEY_TELEPHONY_DISP_PLMN) { - keylist[i++] = strdup(VCONFKEY_TELEPHONY_NWNAME); - } - } - if (i > 0) { - _sim_state_string_get(keylist, buf); - edje_object_part_text_set(_EDJ(ad->ly_main), "sim.state", buf); - } - - }else if (service_type == VCONFKEY_TELEPHONY_SVCTYPE_NOSVC) { - edje_object_part_text_set(_EDJ(ad->ly_main), "sim.state", _S("IDS_COM_BODY_NO_SERVICE")); - } else if (service_type == VCONFKEY_TELEPHONY_SVCTYPE_EMERGENCY) { - edje_object_part_text_set(_EDJ(ad->ly_main), "sim.state", _("IDS_LCKSCN_HEADER_EMERGENCY_CALLS_ONLY")); - } else if (service_type == VCONFKEY_TELEPHONY_SVCTYPE_SEARCH) { - edje_object_part_text_set(_EDJ(ad->ly_main), "sim.state", _S("IDS_COM_BODY_SEARCHING")); - } else { - edje_object_part_text_set(_EDJ(ad->ly_main), "sim.state", ""); - } - } -} - -static void _sim_state_changed_cb(keynode_t *node, void *data) -{ - _set_sim_state(data); -} - -static void _register_sim_state_event_handler(void *data) -{ - int ret = 0; - - ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_SVCTYPE, - _sim_state_changed_cb, data); - if (ret != 0) - LOCK_SCREEN_TRACE_ERR("Failed to register [%s]", - VCONFKEY_TELEPHONY_SVCTYPE); - - ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, - _sim_state_changed_cb, data); - if (ret != 0) - LOCK_SCREEN_TRACE_ERR("Failed to register [%s]", - VCONFKEY_TELEPHONY_SPN_DISP_CONDITION); - - ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_SPN_NAME, - _sim_state_changed_cb, data); - if (ret != 0) - LOCK_SCREEN_TRACE_ERR("Failed to register [%s]", - VCONFKEY_TELEPHONY_SPN_NAME); - - - ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_NWNAME, - _sim_state_changed_cb, data); - if (ret != 0) - LOCK_SCREEN_TRACE_ERR("Failed to register [%s]", - VCONFKEY_TELEPHONY_NWNAME); -} - -void set_sim_state(void *data) -{ - _set_sim_state(data); - _register_sim_state_event_handler(data); -} - -void fini_sim_state(void *data) -{ - vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SVCTYPE, _sim_state_changed_cb); - - vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, _sim_state_changed_cb); - - vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SPN_NAME, _sim_state_changed_cb); - - vconf_ignore_key_changed(VCONFKEY_TELEPHONY_NWNAME, _sim_state_changed_cb); -} +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include +#include +#include +#include +#include +#include + +#include "sim-state.h" +#include "util.h" +#include "control-panel.h" +#include "lockscreen-lite.h" +#include "util-time.h" + +#if !DISABLE_TELEPHONY +#include +#endif + +#define TAPI_HANDLE_MAX 2 +#define NO_SIM_LEN 8 + +static struct { + int is_initialized; + TapiHandle *handle[TAPI_HANDLE_MAX+1]; + Eina_Bool sim_card_ready[2]; + Eina_Bool sim_card_roam[2]; + int is_flight_mode_on; + + char *network_name_1; + char *network_name_2; + + char *network_name; //this name represents viewed string in lockscreen + +} s_sim_state = { + .is_initialized = 0, + .handle[0] = NULL, + .handle[1] = NULL, + .handle[2] = NULL, + .sim_card_ready[0] = EINA_FALSE, + .sim_card_ready[1] = EINA_FALSE, + .sim_card_roam[0] = EINA_FALSE, + .sim_card_roam[1] = EINA_FALSE, + .is_flight_mode_on = false, + + .network_name_1 = NULL, + .network_name_2 = NULL, + + .network_name = NULL, +}; + +static bool _get_sim_status(void); +static bool _sim_status_network_names_init(void); +static char *_get_spn_or_name(TapiHandle *handle); + +/** + * Network name functions + */ +static char *_sim_network_name(TapiHandle *handle); +static char *_sim_spn_name(TapiHandle *handle); + +/** + * Callback registering and unregistering + */ +static void _sim_state_register(); +static void _sim_state_unregister(); + +/** + * Callback functions + */ +static void _sim_status_changed_cb(TapiHandle *handle, const char *noti_id, void *data, void *user_data); +static void _sim_name_changed_cb(TapiHandle *handle, const char *noti_id, void *data, void *user_data); +static void _sim_roam_changed_cb(TapiHandle *handle, const char *noti_id, void *data, void *user_data); + +static void _ready_cb(keynode_t *key, void *data); +static void _flight_mode_cb(keynode_t *key, void *data); + +#if !DISABLE_TELEPHONY +static void _sim_status_listener_init(void) +{ + LOCK_SCREEN_TRACE_DBG(""); + + int modem_num = 0; + char **cp_list = NULL; + + if (s_sim_state.is_initialized == 1) { + LOCK_SCREEN_TRACE_WARN("already initialized"); + return ; + } + + cp_list = tel_get_cp_name_list(); + if(cp_list == NULL) + { + LOCK_SCREEN_TRACE_ERR("Failed to get tel_get_cp_name_list"); + return ; + } + + /** + * Initialize sim handlers + */ + while(cp_list[modem_num]) + { + s_sim_state.handle[modem_num] = tel_init(cp_list[modem_num]); + if(!s_sim_state.handle[modem_num]) + { + LOCK_SCREEN_TRACE_ERR("Failed to initialize modem %d ", modem_num); + } + modem_num++; + } + s_sim_state.handle[modem_num] = NULL; + + int i = 0; + while (cp_list[i] != NULL) { + free(cp_list[i++]); + } + free(cp_list); + + _sim_state_register(); + if(!_sim_status_network_names_init()) + { + LOCK_SCREEN_TRACE_ERR("Failed to init network names getter"); + } + + if(!_get_sim_status()) + { + /* roam state : dual clock set */ + if(s_sim_state.sim_card_roam[0] || s_sim_state.sim_card_roam[1]) + { + util_time_roaming_state_set(1); + } + else + { + util_time_roaming_state_set(0); + } + } else { + LOCK_SCREEN_TRACE_ERR("Failed to get sim status "); + } + + s_sim_state.is_initialized = 1; +} + +bool sim_status_listener_init(void) +{ + int tel_status = 0; + int vconf_ret = -1; + + vconf_ret = vconf_get_bool(VCONFKEY_TELEPHONY_READY, &tel_status); + if(vconf_ret != VCONF_OK) + { + LOCK_SCREEN_TRACE_ERR("Failed to get VCONFKEY_TELEPHONY_READY"); + } + if (vconf_notify_key_changed(VCONFKEY_TELEPHONY_READY, _ready_cb, NULL) != 0) + { + LOCK_SCREEN_TRACE_ERR("Failed to listen VCONFKEY_TELEPHONY_READY"); + } + if (vconf_notify_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, _flight_mode_cb, NULL) != 0) + { + LOCK_SCREEN_TRACE_ERR("Failed to listen VCONFKEY_TELEPHONY_FLIGHT_MODE"); + } + + if (tel_status) { + _sim_status_listener_init(); + control_panel_sim_state_changed(); + update_time(NULL); + return true; + } else { + LOCK_SCREEN_TRACE_ERR("TAPI isn't ready yet"); + return false; + } +} +#endif + +void sim_status_listener_deinit(void) +{ + int it = 0; + int ret = 0; + LOCK_SCREEN_TRACE_DBG(""); + + if (s_sim_state.is_initialized == 0) { + LOCK_SCREEN_TRACE_ERR("TAPI handler is already initialized"); + return; + } + _sim_state_unregister(); + + while(s_sim_state.handle[it]) + { + ret = tel_deregister_noti_event(s_sim_state.handle[it], TAPI_NOTI_SIM_STATUS); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to deinitialize callback"); + } + it++; + } + + it = 0; + while(s_sim_state.handle[it]) + { + tel_deinit(s_sim_state.handle[it]); + it++; + } + + s_sim_state.is_initialized = 0; +} + +char *sim_status_network_name_get(void) +{ + LOGD(""); + + if(s_sim_state.is_flight_mode_on == EINA_TRUE) + { + LOCK_SCREEN_TRACE_DBG("Fligh mode is enabled"); + return strdup(_("IDS_COM_BODY_NO_SERVICE")); + } + else if(!s_sim_state.sim_card_ready[0] && !s_sim_state.sim_card_ready[1]) + { + LOCK_SCREEN_TRACE_DBG("Sim card slots are empty"); + return strdup(_("IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY")); + } + else + { + if(s_sim_state.network_name_1 && (!s_sim_state.network_name_2 || !s_sim_state.sim_card_ready[1])) + { + return strdup(s_sim_state.network_name_1); + } + else if((!s_sim_state.network_name_1 || !s_sim_state.sim_card_ready[0]) && s_sim_state.network_name_2) + { + return strdup(s_sim_state.network_name_2); + } + else if(s_sim_state.network_name_1 && s_sim_state.network_name_2) + { + char buf[BUF_SIZE]; + snprintf(buf, sizeof(buf), "%s / %s", s_sim_state.network_name_1, s_sim_state.network_name_2); + return strdup(buf); + } + } + + return NULL; +} + +int sim_status_roaming_status_is_on_check(void) +{ + LOGD(""); + + int status_sim1 = 0, status_sim2 = 0; + int ret = 0; + + ret = tel_get_property_int(s_sim_state.handle[0], TAPI_PROP_NETWORK_ROAMING_STATUS, &status_sim1); + LOCK_SCREEN_TRACE_DBG("Roaming status for SIM1 is : %d ", status_sim1); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to get roaming status "); + return -1; + } + + ret = tel_get_property_int(s_sim_state.handle[1], TAPI_PROP_NETWORK_ROAMING_STATUS, &status_sim2); + LOCK_SCREEN_TRACE_DBG("Roaming status for SIM2 is : %d ", status_sim2); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to get roaming status "); + return -1; + } + + return status_sim1 | status_sim2; +} + +/** + * @brief Set network name + * @return TRUE if no error + */ +static bool _sim_status_network_names_init(void) +{ + free(s_sim_state.network_name_1); + s_sim_state.network_name_1 = NULL; + + free(s_sim_state.network_name_2); + s_sim_state.network_name_2 = NULL; + + s_sim_state.network_name_1 = _get_spn_or_name(s_sim_state.handle[0]); + if(!s_sim_state.network_name_1) + { + LOCK_SCREEN_TRACE_ERR("Failed to get sim 1 name"); + } + s_sim_state.network_name_2 = _get_spn_or_name(s_sim_state.handle[1]); + if(!s_sim_state.network_name_2) + { + LOCK_SCREEN_TRACE_ERR("Failed to get sim 2 name"); + } + + LOCK_SCREEN_TRACE_WARN("sim1:%s", s_sim_state.network_name_1); + LOCK_SCREEN_TRACE_WARN("sim2:%s", s_sim_state.network_name_2); + + return true; +} + +/** + * @brief Function initialize status table of sim cards. If status of sim card is correct it set proper table element as EINA_TRUE + */ +static bool _get_sim_status(void) +{ + LOGD(""); + + int i = 0; + int ret; + int card_changed; + + TelSimCardStatus_t sim_status; + + while(s_sim_state.handle[i]) + { + ret = tel_get_sim_init_info(s_sim_state.handle[i], &sim_status, &card_changed); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to get sim %d status ", i); + return false; + } + + LOCK_SCREEN_TRACE_DBG("Sims status is %d ", sim_status); + + if(sim_status == TAPI_SIM_STATUS_SIM_INIT_COMPLETED || + sim_status == TAPI_SIM_STATUS_SIM_PIN_REQUIRED) + { + LOCK_SCREEN_TRACE_DBG("Sim %d ready", i); + s_sim_state.sim_card_ready[i] = EINA_TRUE; + } + + /* sim state */ + int roam = 0; + ret = tel_get_property_int (s_sim_state.handle[i], TAPI_PROP_NETWORK_ROAMING_STATUS, &roam); + if(roam) + { + LOCK_SCREEN_TRACE_DBG("Sim %d roaming is enabled", i); + s_sim_state.sim_card_roam[i] = EINA_TRUE; + } + else + { + LOCK_SCREEN_TRACE_DBG("Sim %d roaming is disabled", i); + s_sim_state.sim_card_roam[i] = EINA_FALSE; + } + + i++; + } + + return true; +} + +static int _get_china_spn_or_name(char *mcc_mnc, int service_type, char *buf) +{ + retv_if(mcc_mnc == NULL, 0); + retv_if(buf == NULL, 0); + + const char *rat = NULL; + if (service_type == TAPI_NETWORK_SERVICE_TYPE_3G) { + rat = "3G"; + } + + LOCK_SCREEN_TRACE_DBG("PLMN:%s", mcc_mnc); + + if (strcmp(mcc_mnc, "46001") == 0) { + if (rat == NULL) { + strncpy(buf,_("IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN"), BUF_SIZE - 1); + } else { + snprintf(buf, BUF_SIZE - 1,"%s %s",_("IDS_SIM_BODY_CHINA_UNICOM_M_CHINA_OPERATOR_CHN"), rat); + } + } + else if (strcmp(mcc_mnc, "46000") == 0 || + strcmp(mcc_mnc, "46002") == 0 || + strcmp(mcc_mnc, "46007") == 0 || + strcmp(mcc_mnc, "46008") == 0) { + if(rat == NULL) { + strncpy(buf,_("IDS_IDLE_BODY_CMCC_CHN"), BUF_SIZE - 1); + } else { + snprintf(buf, BUF_SIZE - 1, "%s %s", _("IDS_IDLE_BODY_CMCC_CHN"), rat); + } + } + else if (strcmp(mcc_mnc, "46692") == 0) { + strncpy(buf, _("IDS_SIM_BODY_CHUNGHWA_M_CHINA_OPERATOR_CHN"), BUF_SIZE - 1);//chunghwa_operator_name + } + else if (strcmp(mcc_mnc, "46601") == 0) { + strncpy(buf, _("IDS_IDLE_BODY_FAREASTONE_CHN"), BUF_SIZE - 1);//fareastone_operator_name + } + else if (strcmp(mcc_mnc, "46688") == 0) { + strncpy(buf, _("IDS_SIM_BODY_KGT_M_CHINA_OPERATOR_CHN"), BUF_SIZE - 1);//kgt_operator_name + } + else if (strcmp(mcc_mnc, "46689") == 0) { + strncpy(buf, _("IDS_SIM_BODY_T_STAR_M_CHINA_OPERATOR_CHN"), BUF_SIZE - 1);//kgt_operator_name + } + else if(strcmp(mcc_mnc, "46697") == 0 || + strcmp(mcc_mnc, "46693") == 0 || + strcmp(mcc_mnc, "46699") == 0) { + strncpy(buf, _("IDS_IDLE_BODY_TW_MOBILE_CHN"), BUF_SIZE - 1);//kgt_operator_name + } + + if (strlen(buf) > 0) { + return 1; + } + + return 0; +} + +/** + * @brief Function get spn or network name for sim card + * @details Function get network name property or it is not correct try to get SPN name for sim card. + * @param pointer to proper Sim card handle + * @return returns char pointer if no error, or empty string "" if network name or spin is NULL. + */ +static char *_get_spn_or_name(TapiHandle *handle) +{ + LOGD(""); + + int ret = TAPI_API_SUCCESS; + int service_type = TAPI_NETWORK_SERVICE_TYPE_UNKNOWN; + int name_option = TAPI_NETWORK_DISP_INVALID; + char *plmn = NULL; + char *spn = NULL; + char buf[BUF_SIZE]; + + memset(buf, 0, BUF_SIZE); + + if(handle == NULL) + { + LOCK_SCREEN_TRACE_ERR("Invalid parameter"); + return NULL; + } + + ret = tel_get_property_int(handle, TAPI_PROP_NETWORK_SERVICE_TYPE, &service_type); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to get service type"); + return NULL; + } + + if(service_type >= TAPI_NETWORK_SERVICE_TYPE_2G) + { + ret = tel_get_property_int(handle, TAPI_PROP_NETWORK_NAME_OPTION, &name_option); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to get name_option"); + return NULL; + } + char *mcc_mnc = NULL; + ret = tel_get_property_string(handle, TAPI_PROP_NETWORK_PLMN, &mcc_mnc); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to get PLMN"); + return NULL; + } + + if (_get_china_spn_or_name(mcc_mnc, service_type, buf) == 0) { + switch(name_option) + { + case TAPI_NETWORK_DISP_SPN: + spn = _sim_spn_name(handle); + if (spn != NULL && spn[0] != 0) + { + snprintf(buf, sizeof(buf), "%s", spn); + } + break; + case TAPI_NETWORK_DISP_PLMN: + plmn = _sim_network_name(handle); + if(plmn != NULL && plmn[0] != 0) + { + snprintf(buf, sizeof(buf), "%s", plmn); + } + break; + case TAPI_NETWORK_DISP_SPN_PLMN: + spn = _sim_spn_name(handle); + plmn = _sim_network_name(handle); + if (spn != NULL && spn[0] != 0 && plmn != NULL && plmn[0] != 0) + { + snprintf(buf, sizeof(buf), "%s - %s", plmn, spn); + } + else if (spn != NULL && spn[0] != 0) + { + snprintf(buf, sizeof(buf), "%s", spn); + } + else if (plmn != NULL && plmn[0] != 0) + { + snprintf(buf, sizeof(buf), "%s", plmn); + } + break; + default: + plmn = _sim_network_name(handle); + if (plmn != NULL && plmn[0] != 0) + { + snprintf(buf, sizeof(buf), "%s", plmn); + } + break; + } + } + free(mcc_mnc); + LOCK_SCREEN_TRACE_WARN("name option:%d", name_option); + LOCK_SCREEN_TRACE_WARN("spn/plmn:%s", buf); + } + else + { + switch (service_type) + { + case TAPI_NETWORK_SERVICE_TYPE_NO_SERVICE: + LOCK_SCREEN_TRACE_DBG("No service"); + snprintf(buf, sizeof(buf), "%s", _("IDS_COM_BODY_NO_SERVICE")); + break; + case TAPI_NETWORK_SERVICE_TYPE_EMERGENCY: + LOCK_SCREEN_TRACE_DBG("Emergency"); + snprintf(buf, sizeof(buf), "%s", _("IDS_IDLE_MBODY_EMERGENCY_CALLS_ONLY")); + break; + case TAPI_NETWORK_SERVICE_TYPE_SEARCH: + LOCK_SCREEN_TRACE_DBG("Searching"); + snprintf(buf, sizeof(buf), "%s", _("IDS_COM_BODY_SEARCHING")); + break; + default: + plmn = _sim_network_name(handle); + if (plmn != NULL && plmn[0] != 0) + { + snprintf(buf, sizeof(buf), "%s", plmn); + } + break; + } + LOCK_SCREEN_TRACE_WARN("service_type:%d", service_type); + LOCK_SCREEN_TRACE_WARN("spn/plmn:%s", buf); + } + + free(spn); + free(plmn); + + if (strlen(buf) > 0) + { + control_panel_sim_state_changed(); + return strdup(buf); + } + else + { + return NULL; + } + +} + +/** + * @brief Register callbacks + * @details Register callback function for sim status, sim name, sim spn , sim plm + * @return FALSE if something went wrong. + */ +static void _sim_state_register() +{ + LOGD(""); + + int i = 0; + int ret; + + ret = vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &s_sim_state.is_flight_mode_on); + if(ret != 0) + { + LOCK_SCREEN_TRACE_ERR("Could not get 'VCONFKEY_TELEPHONY_FLIGHT_MODE' value"); + } + + for(i = 0; i < TAPI_HANDLE_MAX; ++i) + { + if(s_sim_state.handle[i]) + { + ret = tel_register_noti_event(s_sim_state.handle[i], TAPI_NOTI_SIM_STATUS, _sim_status_changed_cb, (void*)i); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to register _sim_status_changed_cb"); + } + + ret = tel_register_noti_event(s_sim_state.handle[i], TAPI_PROP_NETWORK_PLMN, _sim_name_changed_cb, (void*)i); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to register _sim_name_changed_cb"); + } + + ret = tel_register_noti_event(s_sim_state.handle[i], TAPI_PROP_NETWORK_SPN_NAME, _sim_name_changed_cb, (void*)i); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to register _sim_name_changed_cb"); + } + + ret = tel_register_noti_event(s_sim_state.handle[i], TAPI_PROP_NETWORK_NETWORK_NAME, _sim_name_changed_cb, (void*)i); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to register _sim_name_changed_cb"); + } + + ret = tel_register_noti_event(s_sim_state.handle[i], TAPI_PROP_NETWORK_SERVICE_TYPE, _sim_name_changed_cb, (void*)i); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to register _sim_name_changed_cb"); + } + + /* roam check */ + ret = tel_register_noti_event(s_sim_state.handle[i], TAPI_PROP_NETWORK_ROAMING_STATUS, _sim_roam_changed_cb, (void*)i); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to register _sim_roam_changed_cb for : %d" , i); + } + } + } +} + +/** + * Unregister sim callbacks + */ +static void _sim_state_unregister() +{ + LOGD(""); + + int i = 0; + int ret; + + for(i = 0; i < TAPI_HANDLE_MAX; ++i) + { + if(s_sim_state.handle[i]) + { + ret = tel_deregister_noti_event(s_sim_state.handle[i], TAPI_NOTI_SIM_STATUS); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to register _sim_status_changed_cb"); + } + + ret = tel_deregister_noti_event(s_sim_state.handle[i], TAPI_PROP_NETWORK_PLMN); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to register _sim_plm_changed_cb"); + } + + ret = tel_deregister_noti_event(s_sim_state.handle[i], TAPI_PROP_NETWORK_SPN_NAME); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to register _sim_spn_changed_cb"); + } + + ret = tel_deregister_noti_event(s_sim_state.handle[i], TAPI_PROP_NETWORK_NETWORK_NAME); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to register _sim_spn_changed_cb"); + } + + ret = tel_deregister_noti_event(s_sim_state.handle[i], TAPI_PROP_NETWORK_SERVICE_TYPE); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to register _sim_spn_changed_cb"); + } + + ret = tel_deregister_noti_event(s_sim_state.handle[i], TAPI_PROP_NETWORK_ROAMING_STATUS); + if(ret != TAPI_API_SUCCESS) + { + LOCK_SCREEN_TRACE_ERR("Failed to register _sim_name_changed_cb"); + } + } + } +} + +/** + * Callback functions + */ +static void _ready_cb(keynode_t *key, void *data) +{ + Eina_Bool status = EINA_FALSE; + status = vconf_keynode_get_bool(key); + + LOCK_SCREEN_TRACE_DBG("TAPI ready:%d", status); + + if(status == TRUE) + { +#if !DISABLE_TELEPHONY + _sim_status_listener_init(); +#endif + control_panel_sim_state_changed(); + } + else + { + sim_status_listener_deinit(); + } +} + +/** + * @brief Vconf callback function for flight mode key. + */ +static void _flight_mode_cb(keynode_t *key, void *data) +{ + s_sim_state.is_flight_mode_on = vconf_keynode_get_bool(key); + + if(!_sim_status_network_names_init()) + { + LOCK_SCREEN_TRACE_ERR("Failed to reinitialize network names"); + return; + } + control_panel_sim_state_changed(); +} + +/** + * @brief Tapi callback for handle change of sim cards states. + */ +static void _sim_status_changed_cb(TapiHandle *handle, const char *noti_id, void *data, void *user_data) +{ + LOGD(""); + + int i = (int) user_data; + int *sim_status = data; + + if(*sim_status == TAPI_SIM_STATUS_SIM_INIT_COMPLETED || *sim_status == TAPI_SIM_STATUS_SIM_PIN_REQUIRED) + { + s_sim_state.sim_card_ready[i] = EINA_TRUE; + } + else + { + s_sim_state.sim_card_ready[i] = EINA_FALSE; + } + + control_panel_sim_state_changed(); +} + +/** + * @brief Tapi callback function for handle network name changes. + */ +static void _sim_name_changed_cb(TapiHandle *handle, const char *noti_id, void *data, void *user_data) +{ + LOGD(""); + + if(!_sim_status_network_names_init()) + { + LOCK_SCREEN_TRACE_ERR("Failed to reinitialize network names"); + return; + } + + control_panel_sim_state_changed(); +} + +static void _sim_roam_changed_cb(TapiHandle *handle, const char *noti_id, void *data, void *user_data) +{ + LOGD(""); + + guchar *roaming_status = data; + int i_roaming_status = *roaming_status; + + if(i_roaming_status) + { + s_sim_state.sim_card_roam[(int)user_data] = EINA_TRUE; + } + else + { + s_sim_state.sim_card_roam[(int)user_data] = EINA_FALSE; + } + + if(s_sim_state.sim_card_roam[0] || s_sim_state.sim_card_roam[1]) + { + util_time_roaming_state_set(1); + } + else + { + util_time_roaming_state_set(0); + } +} + +/** + * @brief Gets network name from TAPI handle + * @param handle pointer + * @return name of network or NULL if error. + */ +static char *_sim_network_name(TapiHandle *handle) +{ + LOGD(""); + + int ret; + char *name = NULL; + + ret = tel_get_property_string(handle, TAPI_PROP_NETWORK_NETWORK_NAME, &name); + if(ret == TAPI_API_SUCCESS && name != NULL) + { + return name; + } + else + { + return NULL; + } +} + +/** + * @brief Gets spn name from TAPI handle + * @return spn network name or NULL if error. + */ +static char *_sim_spn_name(TapiHandle *handle) +{ + LOGD(""); + int ret; + char *spn_name = NULL; + + ret = tel_get_property_string(handle, TAPI_PROP_NETWORK_SPN_NAME, &spn_name); + if(ret == TAPI_API_SUCCESS && spn_name != NULL) + { + return spn_name; + } + else + { + return NULL; + } +} + +/*! + * module + */ +static Evas_Object *_create_view(Evas_Object *parent, LKD_Module_Data *md) +{ + return NULL; +} + +static int _destroy_view(LKD_Module_Data *md) +{ + return LKD_RET_OK; +} + +static void _resume(LKD_Module_Data *md) +{ +} + +static void _pause(LKD_Module_Data *md) +{ +} + +LKD_Module g_mod_sim_state = { + .id = "sim-state", + .notifying = 1, + .init = NULL, + .fini = NULL, + .create_view = _create_view, + .destroy_view = _destroy_view, + .resume = _resume, + .pause = _pause, +}; diff --git a/src/sim-state.h b/src/sim-state.h deleted file mode 100755 index 10fc92a..0000000 --- a/src/sim-state.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 __SIM_STATE_H__ -#define __SIM_STATE_H__ - -void set_sim_state(void *data); -void fini_sim_state(void *data); - -#endif diff --git a/src/simple-password.c b/src/simple-password.c index 5216f62..f5dc8b6 100755 --- a/src/simple-password.c +++ b/src/simple-password.c @@ -1,317 +1,623 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 - -#include "lockscreen.h" -#include "util.h" -#include "log.h" -#include "password-verification.h" - -#define MAX_PASSWORD_NUM 4 -#define PASSWORD_ATTEMPTS_MAX_NUM 5 -#define VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT VCONFKEY_SETAPPL_PREFIX"/phone_lock_attempts_left" -#define VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR VCONFKEY_SETAPPL_PREFIX"/phone_lock_timestamp" -#define PASSWORD_TIMESTAMP_STR_LENGTH 512 -#define PASSWORD_BLOCK_SECONDS 30 - -static char simple_password[MAX_PASSWORD_NUM + 1] = {0}; -static int simple_password_length = 0; -static Evas_Coord simple_pw_down_y = 0; - -static void __simple_password_password_show(struct appdata *ad) -{ - char buf1[50] = {0}; - char buf2[50] = {0}; - int i = 1; - - for(i = 1; i <= simple_password_length; i++){ - snprintf(buf1, sizeof(buf1), "show,password%d", i); - snprintf(buf2, sizeof(buf2), "password%d", i); - edje_object_signal_emit(_EDJ(ad->ly_simple_password), buf1, buf2); - } - for(i = MAX_PASSWORD_NUM; i > simple_password_length; i--){ - snprintf(buf1, sizeof(buf1), "hide,password%d", i); - snprintf(buf2, sizeof(buf2), "password%d", i); - edje_object_signal_emit(_EDJ(ad->ly_simple_password), buf1, buf2); - } -} - -static void __simple_password_keypad_process(void *data, Evas_Object *obj, const char *emission, const char *source) -{ - struct appdata *ad = data; - - LOCK_SCREEN_TRACE_DBG("source = %s", source); - if (strcmp("SOS", source) == 0) { - launch_emgcall(ad); - return; - } else if (strcmp("Backspace", source) == 0) { - if(simple_password_length <= 0){ - simple_password[0] = '\0'; - return; - } - simple_password_length--; - simple_password[simple_password_length] = '\0'; - } else { - if(ad->is_disabled){ - return; - } - if(simple_password_length >= MAX_PASSWORD_NUM){ - return; - }else { - simple_password[simple_password_length] = *source; - simple_password_length++; - } - - if(simple_password_length == MAX_PASSWORD_NUM){ - password_verification_verify(ad->h_password_policy, simple_password); - } - } - - LOCK_SCREEN_TRACE_DBG("simple_password = %s, simple_password_length = %d", simple_password, simple_password_length); - __simple_password_password_show(ad); -} - -static void __simple_password_layout_destroy(void *data, Evas_Object *obj, const char *emission, const char *source) -{ - struct appdata *ad = data; - int i = 0; - LOCK_SCREEN_TRACE_DBG("__simple_password_layout_destroy"); - - for(i = 0; i <= MAX_PASSWORD_NUM; i++){ - simple_password[i] = 0; - } - simple_password_length = 0; - if (ad->password_timer) { - ecore_timer_del(ad->password_timer); - ad->password_timer = NULL; - } - if(ad->ly_simple_password){ - evas_object_del(ad->ly_simple_password); - ad->ly_simple_password = NULL; - } - password_verification_policy_destroy(ad->h_password_policy); - lockscreen_info_show(ad); -} - -static void __simple_password_mouse_down_cb(void *data, Evas * evas, Evas_Object * obj, - void *event_info) -{ - Evas_Event_Mouse_Down *ei = event_info; - - simple_pw_down_y = ei->output.y; - - LOCK_SCREEN_TRACE_DBG("simple_pw_down_y = %d", simple_pw_down_y); -} - -static void __simple_password_mouse_up_cb(void *data, Evas * evas, Evas_Object * obj, - void *event_info) -{ - struct appdata *ad = data; - Evas_Event_Mouse_Down *ei = event_info; - - Evas_Coord pos_up_y = ei->output.y; - - if((pos_up_y - simple_pw_down_y) > _X(300)){ - edje_object_signal_emit(_EDJ(ad->ly_simple_password), "hide,numberkeyboard", "sw.keypad.number"); - edje_object_signal_callback_add(_EDJ(ad->ly_simple_password), "hide,simplepw", "event", __simple_password_layout_destroy, ad); - } -} - -static void __simple_password_mouse_move_cb(void *data, Evas * evas, Evas_Object * obj, - void *event_info) -{ - LOCK_SCREEN_TRACE_DBG("__simple_password_mouse_move_cb"); -} - -void __simple_password_check_result(void *data, char *event) -{ - struct appdata *ad = (struct appdata *) data; - - int value = -1; - int ret = 0; - - ret = vconf_get_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, &value); - value--; - - if(ret == 0) { - if (value > 0 && value <= PASSWORD_ATTEMPTS_MAX_NUM) { - char temp_str[200] = {0}; - char temp_left[50] = {0}; - - vconf_set_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, - value); - if(value == 1) - { - snprintf(temp_left, sizeof(temp_left), _("IDS_IDLE_BODY_1_ATTEMPT_LEFT")); - } - else - { - snprintf(temp_left, sizeof(temp_left), _("IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"), value); - } - snprintf(temp_str, sizeof(temp_str), "%s, %s", _("IDS_IDLE_BODY_INCORRECT_PASSWORD"), temp_left); - edje_object_part_text_set(_EDJ(ad->ly_simple_password), "txt.result", temp_str); - } else if (value == 0) { - time_t cur_time = time(NULL); - char cur_timestamp[64] = {0}; - char temp_str[512] = {0}; - - snprintf(cur_timestamp, sizeof(cur_timestamp), "%ld", cur_time); - vconf_set_str(VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR, cur_timestamp); - vconf_set_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, value); - ad->block_seconds = PASSWORD_BLOCK_SECONDS; - - snprintf(temp_str, sizeof(temp_str), _L("Input password again after %d seconds."), ad->block_seconds); - edje_object_part_text_set(_EDJ(ad->ly_simple_password), "txt.result", temp_str); - } - } else { - char temp_str[200] = {0}; - snprintf(temp_str, sizeof(temp_str), _("IDS_IDLE_BODY_INCORRECT_PASSWORD")); - edje_object_part_text_set(_EDJ(ad->ly_simple_password), "txt.result", temp_str); - - while(simple_password_length != 0) { - simple_password_length--; - simple_password[simple_password_length] = '\0'; - } - } -} - -static void __simple_password_check_result_cb (const char *event, void *data) -{ - __simple_password_check_result(data, event); -} - -static void __simple_password_results_update(void *data) -{ - int value = -1; - int ret = 0; - - struct appdata *ad = (struct appdata *) data; - - if (ad == NULL) { - return; - } - LOCK_SCREEN_TRACE_DBG("%s", __FUNCTION__); - - ret = - vconf_get_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, - &value); - - if (ret != 0) { - return; - } - - if (value == 0) { - char timestamp_str[512] = {0}; - char *temp = NULL; - int length = 0; - int temp_length = 0; - temp = vconf_get_str(VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR); - temp_length = strlen(temp); - length = (temp_length <= PASSWORD_TIMESTAMP_STR_LENGTH) ? temp_length : PASSWORD_TIMESTAMP_STR_LENGTH; - strncpy(timestamp_str, temp, length); - if(length == PASSWORD_TIMESTAMP_STR_LENGTH) { - timestamp_str[length-1] = '\0'; - }else { - timestamp_str[length] = '\0'; - } - if ((strcmp(timestamp_str, "") != 0) - || (strlen(timestamp_str) != 0)) { - time_t cur_time = time(NULL); - time_t last_lock_time; - sscanf(timestamp_str, "%ld", &last_lock_time); - - if ((cur_time - last_lock_time) < PASSWORD_BLOCK_SECONDS) { - ad->block_seconds = PASSWORD_BLOCK_SECONDS - (cur_time - last_lock_time); - LOCK_SCREEN_TRACE_DBG("ad->block_seconds = %d", ad->block_seconds); - ad->is_disabled = EINA_TRUE; - char temp_str[512] = {0}; - snprintf(temp_str, sizeof(temp_str), _L("Input password again after %d seconds."), ad->block_seconds); - edje_object_part_text_set(_EDJ(ad->ly_simple_password), "txt.result", temp_str); - } else { - ad->is_disabled = EINA_FALSE; - vconf_set_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, PASSWORD_ATTEMPTS_MAX_NUM); - } - } - } -} - -static Eina_Bool __simple_password_results_update_cb(void *data) -{ - __simple_password_results_update(data); - return EINA_TRUE; -} - -static void __simple_password_check_vconf_value(void *data) -{ - int phone_lock_value = -1; - struct appdata *ad = (struct appdata *) data; - - if (ad == NULL) { - return; - } - LOCK_SCREEN_TRACE_DBG("%s", __FUNCTION__); - - vconf_get_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, &phone_lock_value); - - if (phone_lock_value == 0) { - if (ad->password_timer) { - return; - } - ad->password_timer = ecore_timer_add(1, (Ecore_Task_Cb)__simple_password_results_update_cb, ad); - } else { - if (ad->password_timer) { - ecore_timer_del(ad->password_timer); - ad->password_timer = NULL; - } - ad->is_disabled = EINA_FALSE; - } -} - -static void __simple_password_check_vconf_value_cb(keynode_t * key, void *data) -{ - __simple_password_check_vconf_value(data); -} - -void simple_password_layout_create(void *data) -{ - struct appdata *ad = (struct appdata *)data; - if(ad == NULL){ - return; - } - - Evas_Object *keypad_layout = NULL; - - ad->h_password_policy = password_verification_policy_create(); - password_verification_callback_set(ad->h_password_policy, __simple_password_check_result_cb, ad); - lockscreen_info_hide(ad); - ad->ly_simple_password = elm_layout_add(ad->ly_main); - elm_layout_file_set(ad->ly_simple_password, EDJEFILE, "lock-simple-password"); - elm_object_part_content_set(ad->ly_main, "sw.phone-lock", ad->ly_simple_password); - edje_object_part_text_set(_EDJ(ad->ly_simple_password), "txt.title", _S("IDS_COM_BODY_ENTER_PASSWORD")); - - keypad_layout = elm_layout_add(ad->ly_simple_password); - elm_layout_file_set(keypad_layout, EDJEFILE, "lock-keypad-number"); - elm_object_part_content_set(ad->ly_simple_password, "sw.keypad.number", keypad_layout); - edje_object_signal_emit(_EDJ(ad->ly_simple_password), "show,numberkeyboard", "sw.keypad.number"); - edje_object_signal_callback_add(_EDJ(keypad_layout), "keypad_down_clicked", "*", __simple_password_keypad_process, ad); - //evas_object_event_callback_add(ad->ly_simple_password, EVAS_CALLBACK_MOUSE_DOWN, __simple_password_mouse_down_cb, ad); - //evas_object_event_callback_add(ad->ly_simple_password, EVAS_CALLBACK_MOUSE_MOVE, __simple_password_mouse_move_cb, ad); - //evas_object_event_callback_add(ad->ly_simple_password, EVAS_CALLBACK_MOUSE_UP, __simple_password_mouse_up_cb, ad); - evas_object_show(keypad_layout); - vconf_notify_key_changed(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, __simple_password_check_vconf_value_cb, ad); - __simple_password_check_vconf_value(ad); -} +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include + +#include "lockscreen-lite.h" +#include "password-verification.h" +#include "control-panel.h" +#include "tizen-account.h" +#include "progress_circle.h" +#include "control-panel-password.h" +#include "simple-password.h" +#include "notification-item.h" +#include "default-unlock.h" + +#define PRIVATE_DATE_PASSWORD_POLICY "p_d_p_p" + +#define MAX_PASSWORD_NUM 4 +#define INFINITE_ATTEMPT 0 +#define PASSWORD_ATTEMPTS_COUNT_TIMES 5 +#define PASSWORD_BLOCK_SECONDS 30 +#define PASSWORD_TIMESTAMP_STR_LENGTH 512 +#define VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR VCONFKEY_SETAPPL_PREFIX"/phone_lock_timestamp" + + +#define DOT_TIME 1.5 + +static struct +{ + Evas_Object *simple_password_layout; + Ecore_Timer *dot_timer; + + Eina_Bool is_simple_password_blocked; + + Evas_Object *keypad_layout; + void *policy; +} s_simple_password_info = +{ + .simple_password_layout = NULL, + .dot_timer = NULL, + .is_simple_password_blocked = EINA_FALSE, + .keypad_layout = NULL, + .policy = NULL, +}; + +static char simple_password[MAX_PASSWORD_NUM + 1] = {0}; +static int simple_password_length = 0; +static int max_attempts = PASSWORD_ATTEMPTS_MAX_NUM; +static int remain_attempts = PASSWORD_ATTEMPTS_MAX_NUM; +Ecore_Timer *gWrong_pin_timer = NULL; +int gPin_time_remaining = PASSWORD_BLOCK_SECONDS ; + +static void __simple_password_keypad_process(void *data, Evas_Object *obj, const char *emission, const char *source); +static Eina_Bool __simple_password_clear_entry(void *data); +static void __simple_password_save_lock_time(void); +static void _pwd_verify_result_cb(int event, int max_attempt, int block_attempt, int current_attemp, int remain_attempt, void *data, done_cb cb); + + +static void _main_title_set(Evas_Object *layout) +{ + ret_if(layout == NULL); + + int selected_noti_type = notification_item_selected_item_type_get(); + if (selected_noti_type == NOTIFICATION_ITEM_MESSAGE) { + elm_object_part_text_set(layout, "title", _("IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB")); + } + else if (selected_noti_type == NOTIFICATION_ITEM_CALL) { + elm_object_part_text_set(layout, "title", _("IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB")); + } + else { + elm_object_part_text_set(layout, "title", _("IDS_COM_BODY_ENTER_PIN")); + } +} + +void simple_password_update(void) +{ + if (s_simple_password_info.is_simple_password_blocked == EINA_FALSE) { + _main_title_set(s_simple_password_info.simple_password_layout); + } +} + +void simple_password_reset(void) +{ + simple_password_update(); + clear_password_entry(); + s_simple_password_info.is_simple_password_blocked = EINA_FALSE; + control_panel_password_tizen_account_hide(); + + Evas_Object *layout = s_simple_password_info.simple_password_layout; + if (layout) { + void *policy = evas_object_data_get(layout, PRIVATE_DATE_PASSWORD_POLICY); + if (password_verification_incorrect_count_get(policy) > 0) { + control_panel_password_tizen_account_show(); + } + control_panel_password_cancel_enable_set(1); + } +} + +const Eina_Bool is_simple_password_blocked() +{ + return s_simple_password_info.is_simple_password_blocked; +} + +static void _del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + if (obj) { + void *policy = evas_object_data_del(obj, PRIVATE_DATE_PASSWORD_POLICY); + if (policy) { + if (s_simple_password_info.policy == policy) { + s_simple_password_info.policy = NULL; + } + password_verification_policy_destroy(policy); + } + if (obj == s_simple_password_info.simple_password_layout) { + s_simple_password_info.simple_password_layout = NULL; + } + elm_object_signal_callback_del(obj, "keypad_down_clicked", "*", __simple_password_keypad_process); + } +} + +Evas_Object* create_simple_password_layout_2(Evas_Object *parent, Eina_Bool is_for_image) +{ + LOCK_SCREEN_TRACE_DBG(""); + Evas_Object *layout = NULL; + retv_if(parent == NULL, NULL); + + if(!is_for_image) { + s_simple_password_info.policy = password_verification_policy_create(); + password_verification_callback_set(s_simple_password_info.policy, _pwd_verify_result_cb, NULL); + } + + layout = elm_layout_add(parent); + if(!layout) + { + LOCK_SCREEN_TRACE_DBG("Failed to add simple_password_layout"); + return NULL; + } + elm_layout_file_set(layout, EDJE_DIR"lock-simple-password2.edj", "lock-simple-password"); + + _main_title_set(layout); + + if(!is_for_image) { + elm_object_signal_callback_add(layout, "keypad_down_clicked", "*", __simple_password_keypad_process, NULL); + } + + /*keypad_layout = elm_layout_add(simple_password_layout); + if(!keypad_layout) + { + LOCK_SCREEN_TRACE_DBG("Failed to add keypad_layout"); + return NULL; + } + elm_layout_file_set(keypad_layout, EDJE_DIR"lock-simple-password.edj", "keyboard-simple-password"); + elm_object_part_content_set(simple_password_layout, "keyboard", keypad_layout); + elm_object_signal_callback_add(keypad_layout, "clicked", "*", __simple_password_keypad_process, NULL); + evas_object_show(keypad_layout); + + s_simple_password_info.keypad_layout = keypad_layout;*/ + + if(!is_for_image) { + s_simple_password_info.simple_password_layout = layout; + } + //evas_object_show(simple_password_layout); + + /* TODO : move into simple password layout */ + /*create_emg_button(); + control_panel_create_tizen_account_button(); + + if(tizen_account_if_registered_check() == EINA_TRUE) + { + control_panel_tizen_account_btn_show(); + }*/ + + /* make control panel on lockscreen layout */ + Evas_Object *control_panel = control_panel_password_create(layout, is_for_image); + elm_object_part_content_set(layout, "control_panel", control_panel); + + if(!is_for_image) { + evas_object_data_set(layout, PRIVATE_DATE_PASSWORD_POLICY, s_simple_password_info.policy); + evas_object_event_callback_add(layout + , EVAS_CALLBACK_DEL, _del_cb, NULL); + } + + return layout; +} + +static Eina_Bool _hide_dot_cb(void *data) +{ + char signal_buf[32]; + retv_if(s_simple_password_info.simple_password_layout == NULL, ECORE_CALLBACK_CANCEL); + + snprintf(signal_buf, sizeof(signal_buf), "dot_show%d", (int)data); + elm_object_signal_emit(s_simple_password_info.simple_password_layout, signal_buf, "keyboard"); + s_simple_password_info.dot_timer = NULL; + return ECORE_CALLBACK_CANCEL; +} + +static void _simple_password_backscpace(int length) +{ + char signal_buf[32]; + ret_if(s_simple_password_info.simple_password_layout == NULL); + + snprintf(signal_buf, sizeof(signal_buf), "dot_hide%d", length); + elm_object_signal_emit(s_simple_password_info.simple_password_layout, signal_buf, "keyboard"); + if(s_simple_password_info.dot_timer) + { + ecore_timer_del(s_simple_password_info.dot_timer); + s_simple_password_info.dot_timer = NULL; + } +} + +static void _simple_password_input(int length, const char *text) +{ + char part_buf[32]; + char signal_buf[32]; + ret_if(s_simple_password_info.simple_password_layout == NULL); + + lockscreen_play_key_feedback(); + snprintf(part_buf, sizeof(part_buf), "panel%d", length); + elm_object_part_text_set(s_simple_password_info.simple_password_layout, part_buf, text); + + snprintf(signal_buf, sizeof(signal_buf), "input_show%d", length); + elm_object_signal_emit(s_simple_password_info.simple_password_layout, signal_buf, "keyboard"); + + if(length > 0) + { + snprintf(signal_buf, sizeof(signal_buf), "dot_show%d", length-1); + elm_object_signal_emit(s_simple_password_info.simple_password_layout, signal_buf, "keyboard"); + } + + if(s_simple_password_info.dot_timer) + { + ecore_timer_del(s_simple_password_info.dot_timer); + s_simple_password_info.dot_timer = NULL; + } + if(length < 3) + { + s_simple_password_info.dot_timer = ecore_timer_add(DOT_TIME, _hide_dot_cb, (void*)length); + } +} + +static void __simple_password_keypad_process(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + LOCK_SCREEN_TRACE_DBG(""); + + if(s_simple_password_info.is_simple_password_blocked) + { + LOCK_SCREEN_TRACE_DBG("blocked"); + lockscreen_play_key_feedback(); + return; + } + + if (!strncmp("Backspace", source, strlen("Backspace"))) + { + LOCK_SCREEN_TRACE_DBG("Backspace"); + lockscreen_play_key_feedback(); + if(simple_password_length <= 0) + { + return; + } + _simple_password_backscpace(--simple_password_length); + } + else + { + if(simple_password_length >= MAX_PASSWORD_NUM) + { + LOCK_SCREEN_TRACE_DBG("Too long"); + return; + } + else + { + simple_password[simple_password_length] = *source; + _simple_password_input(simple_password_length++, source); + } + } + if(simple_password_length == MAX_PASSWORD_NUM) + { + password_verification_verify(s_simple_password_info.policy, simple_password); + } +} + +void clear_password_entry(void) +{ + int i; + char signal_buf[32]; + ret_if(s_simple_password_info.simple_password_layout == NULL); + + if(s_simple_password_info.dot_timer) + { + ecore_timer_del(s_simple_password_info.dot_timer); + s_simple_password_info.dot_timer = NULL; + } + for(i = 0; i <= 3; i++) + { + snprintf(signal_buf, sizeof(signal_buf), "dot_hide%d", i); + elm_object_signal_emit(s_simple_password_info.simple_password_layout, signal_buf, "keyboard"); + } + simple_password_length = 0; +} + +static Eina_Bool __simple_password_clear_entry(void *data) +{ + clear_password_entry(); + return ECORE_CALLBACK_CANCEL; +} + +static void __simple_password_save_lock_time(void) +{ + time_t cur_time = time(NULL); + char cur_timestamp[64] = {0}; + snprintf(cur_timestamp, sizeof(cur_timestamp), "%ld", cur_time); + vconf_set_str(VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR, cur_timestamp); +} + +static void __simple_password_init_lock_time(void) +{ + LOCK_SCREEN_TRACE_DBG(""); + + vconf_set_str(VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR, ""); +} + +static void __simple_password_load_lock_time(void) +{ + LOCK_SCREEN_TRACE_DBG(""); + + char *time_stamp = vconf_get_str(VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR); + if(time_stamp == NULL) { + LOCK_SCREEN_TRACE_ERR("vconf_get_str() failed"); + return; + } + + if(strcmp(time_stamp, "") == 0) { + LOCK_SCREEN_TRACE_DBG("time_stamp is not saved"); + return; + } + + time_t cur_time = time(NULL); + time_t last_lock_time; + sscanf(time_stamp, "%ld", &last_lock_time); + free(time_stamp); + + if((cur_time - last_lock_time) < PASSWORD_BLOCK_SECONDS && (cur_time - last_lock_time) > 0) + { + gPin_time_remaining = PASSWORD_BLOCK_SECONDS - (cur_time - last_lock_time); + + char try_again_buff[200] = {0}; + snprintf(try_again_buff, sizeof(try_again_buff), _("IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"), gPin_time_remaining); + elm_object_signal_emit(s_simple_password_info.simple_password_layout, "show_title", "title"); + + char incorrent_pass_buff[200] = {0}; + snprintf(incorrent_pass_buff, sizeof(incorrent_pass_buff), "%s
%s", _("IDS_COM_BODY_INCORRECT_PIN"), try_again_buff); + elm_object_part_text_set(s_simple_password_info.simple_password_layout, "title", incorrent_pass_buff); + } + else + { + if(gWrong_pin_timer) + { + ecore_timer_del(gWrong_pin_timer); + gWrong_pin_timer = NULL; + + gPin_time_remaining = PASSWORD_BLOCK_SECONDS; + remain_attempts = PASSWORD_ATTEMPTS_MAX_NUM; + + _main_title_set(s_simple_password_info.simple_password_layout); + elm_object_signal_emit(s_simple_password_info.simple_password_layout, "show_title", "title"); + + s_simple_password_info.is_simple_password_blocked = EINA_FALSE; + set_lockscreen_swipe_is_blocked(false); + lockd_event(LKD_EVT_VIEW_INPUT_UNBLOCK, NULL); + } + control_panel_password_cancel_enable_set(1); + } +} + +static Eina_Bool wrong_password_wait_timer_cb(void *data) +{ + retv_if(s_simple_password_info.simple_password_layout == NULL, ECORE_CALLBACK_CANCEL); + + char try_again_buff[200] = {0}; + snprintf(try_again_buff, sizeof(try_again_buff), _("IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"), gPin_time_remaining); + + char incorrent_pass_buff[200] = {0}; + snprintf(incorrent_pass_buff, sizeof(incorrent_pass_buff), "%s
%s", _("IDS_COM_BODY_INCORRECT_PIN"), try_again_buff); + elm_object_part_text_set(s_simple_password_info.simple_password_layout, "title", incorrent_pass_buff); + + if(gPin_time_remaining == PASSWORD_BLOCK_SECONDS) + { + gPin_time_remaining--; + return ECORE_CALLBACK_RENEW; + } + else if(gPin_time_remaining > 0) + { + gPin_time_remaining--; + return ECORE_CALLBACK_RENEW; + } + else + { + gPin_time_remaining = PASSWORD_BLOCK_SECONDS; + remain_attempts = PASSWORD_ATTEMPTS_MAX_NUM; + max_attempts += PASSWORD_ATTEMPTS_MAX_NUM; + gWrong_pin_timer = NULL; + + _main_title_set(s_simple_password_info.simple_password_layout); + elm_object_signal_emit(s_simple_password_info.simple_password_layout, "show_title", "title"); + s_simple_password_info.is_simple_password_blocked = EINA_FALSE; + set_lockscreen_swipe_is_blocked(false); + + __simple_password_init_lock_time(); + + Evas_Object *layout = s_simple_password_info.simple_password_layout; + if (layout) { + void *policy = evas_object_data_get(layout, PRIVATE_DATE_PASSWORD_POLICY); + if (password_verification_incorrect_count_get(policy) > 0) { + control_panel_password_tizen_account_show(); + } + control_panel_password_cancel_enable_set(1); + } + + lockd_event(LKD_EVT_VIEW_INPUT_UNBLOCK, NULL); + + return ECORE_CALLBACK_CANCEL; + } +} + +Evas_Object* simple_password_layout_get(void) +{ + return s_simple_password_info.simple_password_layout; +} + +static void _handler_pwd_correct(int event, int max_attempt, int block_attempt, int current_attemp, int remain_attempt, void *data, done_cb cb) +{ + LOCK_SCREEN_TRACE_DBG("event:%d", event); + + __simple_password_init_lock_time(); + + s_simple_password_info.is_simple_password_blocked = EINA_TRUE; + max_attempts = PASSWORD_ATTEMPTS_MAX_NUM; + vi_end_signal_emit(EINA_TRUE, EINA_FALSE); +} + +static void _handler_pwd_incorrect(int event, int max_attempt, int block_attempt, int current_attemp, int remain_attempt, void *data, done_cb cb) +{ + LOCK_SCREEN_TRACE_DBG(""); + char temp_str[200] = {0}; + char temp_left[200] = {0}; + + if (event == PWD_EVENT_PASSWORD_INCORRECT_WAIT_RECOVERY_MODE) { + elm_object_part_text_set((s_simple_password_info.simple_password_layout), "title", _("IDS_COM_BODY_INCORRECT_PIN")); + } else { + if(remain_attempt == 1) + { + snprintf(temp_left, sizeof(temp_left), "%s", _("IDS_IDLE_BODY_1_ATTEMPT_LEFT")); + } + else + { + snprintf(temp_left, sizeof(temp_left), _("IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"), remain_attempt); + } + snprintf(temp_str, sizeof(temp_str), "%s
%s", _("IDS_COM_BODY_INCORRECT_PIN"), temp_left); + elm_object_part_text_set((s_simple_password_info.simple_password_layout), "title", temp_str); + } + control_panel_password_tizen_account_show(); + + ecore_timer_add(0.1, __simple_password_clear_entry, NULL); + + if (event == PWD_EVENT_PASSWORD_INCORRECT_WARNING) { + char popup_text[512] = {0}; + snprintf(popup_text, sizeof(popup_text), _("IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"), current_attemp, max_attempt - current_attemp); + lockscreen_confirm_popup(NULL, popup_text, NULL, NULL, 0.0); + } +} + +static void _handler_pwd_block(int event, int max_attempt, int block_attempt, int current_attemp, int remain_attempt, void *data, done_cb cb) +{ + LOCK_SCREEN_TRACE_DBG(""); + __simple_password_save_lock_time(); + + int block_seconds = PASSWORD_BLOCK_SECONDS; + + char try_again_buff[200] = {0}; + snprintf(try_again_buff, sizeof(try_again_buff), _("IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"), block_seconds); + + char incorrect_pass_buff[200] = {0}; + snprintf(incorrect_pass_buff, sizeof(incorrect_pass_buff), "%s
%s", _("IDS_COM_BODY_INCORRECT_PIN"), try_again_buff); + + elm_object_part_text_set((s_simple_password_info.simple_password_layout), "title", incorrect_pass_buff); + + s_simple_password_info.is_simple_password_blocked = EINA_TRUE; + set_lockscreen_swipe_is_blocked(true); + lockd_event(LKD_EVT_VIEW_INPUT_BLOCK, NULL); + + if(gWrong_pin_timer) + { + ecore_timer_del(gWrong_pin_timer); + gWrong_pin_timer = NULL ; + } + + gWrong_pin_timer = ecore_timer_add(1.0, wrong_password_wait_timer_cb, NULL); + control_panel_password_tizen_account_hide(); + + ecore_timer_add(0.1, __simple_password_clear_entry, NULL); + + char popup_text[512] = {0}; + if (event == PWD_EVENT_INPUT_BLOCK_WARNING) { + snprintf(popup_text, sizeof(popup_text), _("IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"), current_attemp, max_attempt - current_attemp); + lockscreen_confirm_popup(NULL, popup_text, NULL, NULL, 0.0); + } else { + snprintf(popup_text, sizeof(popup_text), _("IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"), PASSWORD_ATTEMPTS_MAX_NUM, PASSWORD_BLOCK_SECONDS); + lockscreen_confirm_popup(_("IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"), + popup_text, NULL, NULL, 15.0); + } + control_panel_password_cancel_enable_set(0); +} + +static void _handler_pwd_recovery_enter(int event, int max_attempt, int block_attempt, int current_attemp, int remain_attempt, void *data, done_cb cb) +{ + default_unlock_password_view_change(); +} + +static void _pwd_verify_result_cb(int event, int max_attempt, int block_attempt, int current_attemp, int remain_attempt, void *data, done_cb cb) +{ + LOCK_SCREEN_TRACE_WARN("event:%d", event); + ret_if(s_simple_password_info.simple_password_layout == NULL); + + static struct PWD_Event_Handler fn_table[] = { + { + .event = PWD_EVENT_PASSWORD_CORRECT, + .process = _handler_pwd_correct, + }, + { + .event = PWD_EVENT_PASSWORD_INCORRECT, + .process = _handler_pwd_incorrect, + }, + { + .event = PWD_EVENT_PASSWORD_INCORRECT_WARNING, + .process = _handler_pwd_incorrect, + }, + { + .event = PWD_EVENT_PASSWORD_INCORRECT_WAIT_RECOVERY_MODE, + .process = _handler_pwd_incorrect, + }, + { + .event = PWD_EVENT_INPUT_BLOCK, + .process = _handler_pwd_block, + }, + { + .event = PWD_EVENT_INPUT_BLOCK_WARNING, + .process = _handler_pwd_block, + }, + { + .event = PWD_EVENT_RECOVERY_ENTER, + .process = _handler_pwd_recovery_enter, + }, + { + .event = 0, + .process = NULL, + }, + }; + + int i = 0; + for (i = 0; fn_table[i].process != NULL; i++) { + if (event == fn_table[i].event && fn_table[i].process != NULL) { + fn_table[i].process(event, max_attempt, block_attempt, current_attemp, remain_attempt, data, cb); + } + } +} + +/*! + * module + */ +static Evas_Object *_create_view(Evas_Object *parent, LKD_Module_Data *md) +{ + return NULL; +} + +static int _destroy_view(LKD_Module_Data *md) +{ + return LKD_RET_OK; +} + +static void _resume(LKD_Module_Data *md) +{ + if(get_locktype() == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) { + LOCK_SCREEN_TRACE_DBG(); + __simple_password_load_lock_time(); + } +} + +static void _pause(LKD_Module_Data *md) +{ + if(s_simple_password_info.simple_password_layout && gWrong_pin_timer) + { + LOCK_SCREEN_TRACE_DBG("hide Pin view title"); + elm_object_signal_emit(s_simple_password_info.simple_password_layout, "hide_title", "title"); + } +} + +LKD_Module g_mod_simple_password = { + .id = "simple-password", + .notifying = 1, + .init = NULL, + .fini = NULL, + .create_view = _create_view, + .destroy_view = _destroy_view, + .resume = _resume, + .pause = _pause, +}; diff --git a/src/simple-password.h b/src/simple-password.h deleted file mode 100755 index cc2834e..0000000 --- a/src/simple-password.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 __SIMPLE_PASSWORD_H__ -#define __SIMPLE_PASSWORD_H__ - -void simple_password_layout_create(void *data); - -#endif diff --git a/src/tizen-account.c b/src/tizen-account.c new file mode 100755 index 0000000..17fe2e0 --- /dev/null +++ b/src/tizen-account.c @@ -0,0 +1,195 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "tizen-account.h" +#include "lockscreen-lite.h" +#include "password-verification.h" + +static bool _tizen_account_check_cb(account_h account, void *data); +static Eina_Bool _tizen_account_unlock_set(void *data); +static void _account_launch_efl_tizen_account_cb(app_control_h service, app_control_h reply, app_control_result_e result, void* user_data); + + +Eina_Bool tizen_account_if_registered_check(void) +{ + LOCK_SCREEN_TRACE_DBG(""); + +#if DISABLE_TIZEN_ACCOUNT + return EINA_FALSE; +#endif + + int ret; + + ret = account_connect(); + if(ret != ACCOUNT_ERROR_NONE) + { + LOCK_SCREEN_TRACE_ERR("account_connect() failed ret(%d)", ret); + return EINA_FALSE; + } + + ret = account_query_account_by_package_name(_tizen_account_check_cb, TIZEN_ACCOUNT_APPID, NULL); + + switch(ret) + { + case ACCOUNT_ERROR_NONE: //accunt exists + break; + case ACCOUNT_ERROR_INVALID_PARAMETER: + LOCK_SCREEN_TRACE_ERR("ACCOUNT_ERROR_INVALID_PARAMETER"); + break; + case ACCOUNT_ERROR_DB_FAILED: + LOCK_SCREEN_TRACE_ERR("ACCOUNT_ERROR_DB_FAILED"); + break; + case ACCOUNT_ERROR_PERMISSION_DENIED: + LOCK_SCREEN_TRACE_ERR("ACCOUNT_ERROR_PERMISSION_DENIED"); + break; + case ACCOUNT_ERROR_RECORD_NOT_FOUND: // NOT EXIST + LOCK_SCREEN_TRACE_ERR("ACCOUNT_ERROR_RECORD_NOT_FOUND"); + break; + default: + LOCK_SCREEN_TRACE_ERR("UNKNOWN ERROR: %d", ret); + break; + } + + account_disconnect(); + + if(ret == ACCOUNT_ERROR_NONE) + { + LOCK_SCREEN_TRACE_DBG("Account registered"); + return EINA_TRUE; + } + else + { + LOCK_SCREEN_TRACE_DBG("Account module not registered"); + return EINA_FALSE; + } +} + +void tizen_account_launch_cb(void *data, Evas_Object *o, const char *emission, const char *source) +{ + LOCK_SCREEN_TRACE_DBG(""); + + app_control_h service; + int ret; + + ret = app_control_create(&service); + if(ret != APP_CONTROL_ERROR_NONE) + { + LOCK_SCREEN_TRACE_ERR("Create service handle failed"); + return; + } + + ret = app_control_set_app_id(service, TIZEN_ACCOUNT_APPID); + ret += app_control_set_operation(service, TIZEN_ACCOUNT_OPERATION); + + ret += app_control_add_extra_data(service, "client_id", TIZEN_ACCOUNT_CLIENTID); + ret += app_control_add_extra_data(service, "client_secret", TIZEN_ACCOUNT_CLIENTSECRET); + ret += app_control_add_extra_data(service, "service_category", TIZEN_ACCOUNT_SERVICECATEGORY); //there is no info about in in + ret += app_control_add_extra_data(service, "z_order", "highest"); //z-order param is deprecated (info from documentation) + + if(ret != APP_CONTROL_ERROR_NONE) + { + LOCK_SCREEN_TRACE_ERR("Failed to add extra service data : ret is [%d]",ret); + app_control_destroy(service); + return; + } + + ret = app_control_send_launch_request(service, _account_launch_efl_tizen_account_cb, NULL); + if(ret != APP_CONTROL_ERROR_NONE) + { + LOCK_SCREEN_TRACE_ERR("Failed to send launch request"); + app_control_destroy(service); + return; + } +} + +static bool _tizen_account_check_cb(account_h account, void *data) +{ + LOCK_SCREEN_TRACE_DBG(""); + + char *temp_buf = NULL; + if(!account) + { + LOCK_SCREEN_TRACE_DBG("invalid parameter : account is NULL"); + return FALSE; + } + + account_get_user_name(account, &temp_buf); + + if(!temp_buf || !strlen(temp_buf)) + { + if(temp_buf) + { + free(temp_buf); + } + LOCK_SCREEN_TRACE_ERR("Invalid user name"); + return FALSE; + } + + if(temp_buf) + { + free(temp_buf); + } + + return TRUE; +} + +static Eina_Bool _tizen_account_unlock_set(void *data) +{ + LOCK_SCREEN_TRACE_DBG(""); + + password_verification_lock_send_cmd("unlock"); + lockd_event(LKD_EVT_UNLOCK, NULL); + lockscreen_play_unlock_feedback(0.3); + + notification_status_message_post(_("IDS_LCKSCN_TPOP_DEVICE_UNLOCKED")); + + return ECORE_CALLBACK_CANCEL; +} + +static void _account_launch_efl_tizen_account_cb(app_control_h service, app_control_h reply, app_control_result_e result, void* user_data) +{ + LOCK_SCREEN_TRACE_DBG("result_e:[%d]", result); + + if(result == -1) + { + char *errorMsg = NULL; + app_control_get_extra_data(reply, "errorMessage", &errorMsg); + LOGD("errorMessage:[%s]", errorMsg); + free(errorMsg); + return; + } + + app_control_h setting_svc = NULL; + app_control_create(&setting_svc); + app_control_set_operation(setting_svc, APP_CONTROL_OPERATION_DEFAULT); + app_control_set_app_id(setting_svc, "setting-locktype-efl"); + app_control_add_extra_data(setting_svc, "caller", "lockscreen"); + app_control_send_launch_request(setting_svc, NULL, NULL); + app_control_destroy(setting_svc); + + app_control_destroy(service); + service = NULL; + + ecore_timer_add(0.3, _tizen_account_unlock_set, NULL); +} diff --git a/src/underbar.c b/src/underbar.c new file mode 100755 index 0000000..8fab39f --- /dev/null +++ b/src/underbar.c @@ -0,0 +1,460 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include + +#include "lockscreen-lite.h" +#include "progress_circle.h" +#include "simple-password.h" +#include "complex-password.h" +#include "underbar.h" + +#if !DISABLE_WALLPAPER_SERIVCE +#include +#endif + +#define PRIVATE_DATA_PROXY_IMAGE "p_d_p_i" +#define PRIVATE_DATA_LANDING_PAGE "p_d_l_p" +#define PRIVATE_DATA_CP_LINK_TRIGGER "p_d_c_l_t" + +static int _is_underbar_enabled(void) +{ + int enabled = 0; + int emergency = 0; + property_get_int(LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED, &emergency); + if (emergency != EMERGENCY_UI_MODE_ULTRA_POWER_SAVING) { + enabled = 1; + } else { + enabled = 0; + } + + return enabled; +} + +static Evas_Object *_parent_view_get(void) +{ + Evas_Object *layout = lockscreen_get_layout(); + if (layout) { + return elm_object_part_content_get(layout, "control_panel"); + } + + return NULL; +} + +static Evas_Object *_view_get(void) +{ + Evas_Object *parent = _parent_view_get(); + if (parent) { + return elm_object_part_content_get(parent, "underbar"); + } + + return NULL; +} + +static void _del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + char *landing_url = evas_object_data_del(obj, PRIVATE_DATA_LANDING_PAGE); + if (landing_url) { + free(landing_url); + } + + Evas_Object *proxy = evas_object_data_del(obj, PRIVATE_DATA_PROXY_IMAGE); + if (proxy) { + evas_object_del(proxy); + } + + evas_object_data_del(obj, PRIVATE_DATA_CP_LINK_TRIGGER); +} + +static Eina_Bool _show_keyboard(void *data) +{ + complex_password_focus_entry(); + + return ECORE_CALLBACK_CANCEL; +} + +static void _clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + int locktype = SETTING_SCREEN_LOCK_TYPE_SWIPE; + property_get_int(LKD_PROP_ID_LOCKTYPE, &locktype); + + if (locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) { + LOCK_SCREEN_TRACE_DBG(""); + lockscreen_play_tap_feedback(); + set_lockscreen_is_after_swipe(true); + + if (locktype == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) { + simple_password_reset(); + } + else if (locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) { + complex_password_reset(); + ecore_timer_add(0.2, _show_keyboard, NULL); + } + + underbar_cp_link_trigger_set(1); + lockscreen_password_visible_set(EINA_TRUE); + lockd_event(LKD_EVT_VIEW_GESTURED, NULL); + } +} + +static void _view_update(char *file, Evas_Object *view) +{ + ret_if(file == NULL); + ret_if(view == NULL); + +#if DISABLE_WALLPAPER_SERIVCE + return; +#else + int ret = 0; + char *icon_path = NULL; + + Evas_Object *icon_old = elm_object_part_content_unset(view, "image"); + if (icon_old) { + evas_object_del(icon_old); + } + + Evas_Object *icon = NULL; + if((ret = wallpaper_service_get_image_info_cp_logo_image_path(file, &icon_path)) == WALLPAPER_SERVICE_ERROR_NONE) { + if (icon_path) { + if (ecore_file_exists(icon_path)) { + icon = elm_image_add(view); + if (icon) { + elm_image_file_set(icon, icon_path, NULL); + elm_object_part_content_set(view, "image", icon); + evas_object_show(icon); + } + } else { + LOCK_SCREEN_TRACE_ERR("file not exist:%s", icon_path); + } + } + } else { + LOCK_SCREEN_TRACE_ERR("wallpaper_service_get_image_info_cp_logo_image_path() failed:%d", ret); + } + if (icon == NULL) { + elm_object_signal_emit(view, "icon.hide", "prog"); + } else { + elm_object_signal_emit(view, "icon.show", "prog"); + } + + char *text_1 = NULL; + if((ret = wallpaper_service_get_image_info_image_title(file, &text_1)) != WALLPAPER_SERVICE_ERROR_NONE) { + LOCK_SCREEN_TRACE_ERR("wallpaper_service_get_image_info_image_title() failed:%d", ret); + } + char *text_2 = NULL; + if((ret = wallpaper_service_get_image_info_photographer(file, &text_2)) != WALLPAPER_SERVICE_ERROR_NONE) { + LOCK_SCREEN_TRACE_ERR("wallpaper_service_get_image_info_photographer() failed:%d", ret); + } + + if (text_1 != NULL && text_2 != NULL) { + elm_object_part_text_set(view, "text.1", text_1); + elm_object_part_text_set(view, "text.2", text_2); + elm_object_signal_emit(view, "default", "prog"); + } + else if (text_1 != NULL && text_2 == NULL) { + elm_object_part_text_set(view, "text.1", text_1); + elm_object_part_text_set(view, "text.2", ""); + elm_object_signal_emit(view, "long", "prog"); + } + else if (text_1 == NULL && text_2 != NULL) { + elm_object_part_text_set(view, "text.1", text_2); + elm_object_part_text_set(view, "text.2", ""); + elm_object_signal_emit(view, "long", "prog"); + } + else { + elm_object_part_text_set(view, "text.1", ""); + elm_object_part_text_set(view, "text.2", ""); + elm_object_signal_emit(view, "default", "prog"); + } + + char *landing_page_old = evas_object_data_del(view, PRIVATE_DATA_LANDING_PAGE); + if (landing_page_old) { + free(landing_page_old); + } + + char *landing_page = NULL; + if(wallpaper_service_get_image_info_landing_page_url(file, &landing_page) == WALLPAPER_SERVICE_ERROR_NONE) { + evas_object_data_set(view, PRIVATE_DATA_LANDING_PAGE, landing_page); + } + + if (landing_page) { + elm_object_signal_emit(view, "resposible.true", "prog"); + } else { + elm_object_signal_emit(view, "resposible.false", "prog"); + } + + elm_object_signal_callback_del(view, "clicked", "prog", _clicked_cb); + elm_object_signal_callback_add(view, "clicked", "prog", _clicked_cb, NULL); + + LOCK_SCREEN_TRACE_WARN("%s %s %s %s %s", file, icon_path, text_1, text_2, landing_page); + + free(icon_path); + free(text_1); + free(text_2); +#endif +} + +static void _proxy_del(Evas_Object *view) +{ + Evas_Object *proxy_old = evas_object_data_del(view, PRIVATE_DATA_PROXY_IMAGE); + if (proxy_old) { + evas_object_image_source_visible_set(proxy_old, EINA_TRUE); + evas_object_del(proxy_old); + } +} + +Evas_Object *underbar_view_create(void) +{ + Evas_Object *parent = _parent_view_get(); + if (parent) { + Evas_Object *layout = elm_layout_add(parent); + if(elm_layout_file_set(layout, EDJE_DIR"lockscreen-bg.edj", "underbar") == EINA_TRUE) { + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, _del_cb, NULL); + elm_object_part_content_set(parent, "underbar", layout); + evas_object_show(layout); + } else { + LOCK_SCREEN_TRACE_DBG("Failed to load edje file"); + } + + return layout; + } else { + LOCK_SCREEN_TRACE_ERR("Failed to get parent"); + } + + return NULL; +} + +void underbar_view_destroy(void) +{ + Evas_Object *parent = _parent_view_get(); + if (parent) { + Evas_Object *view = elm_object_part_content_unset(parent, "underbar"); + if (view) { + evas_object_del(view); + } + } else { + LOCK_SCREEN_TRACE_ERR("Failed to get parent"); + } +} + +void underbar_view_update(void) +{ +#if DISABLE_WALLPAPER_SERIVCE + return; +#else + Evas_Object *bg = lockscreen_get_bg(); + ret_if(bg == NULL); + + if (_is_underbar_enabled() == 0) { + underbar_view_destroy(); + LOCK_SCREEN_TRACE_WARN("underbar isn't enabled"); + return ; + } + + int view_destroy = 1; + char *bg_file = NULL; + elm_bg_file_get(bg, (const char **)&bg_file, NULL); + + if (bg_file) { + if (ecore_file_exists(bg_file) == EINA_TRUE) { + char *id = NULL; + if (wallpaper_service_get_image_info_id(bg_file, &id) == WALLPAPER_SERVICE_ERROR_NONE) { + if (id != NULL) { + Evas_Object *view = _view_get(); + if (view == NULL) { + view = underbar_view_create(); + } + _view_update(bg_file, view); + view_destroy = 0; + } + } else { + LOCK_SCREEN_TRACE_ERR("file %s isn't supported by wallpaper service", bg_file); + } + } else { + LOCK_SCREEN_TRACE_ERR("file %s isn't exist", bg_file); + } + } else { + LOCK_SCREEN_TRACE_ERR("Failed to get BG file"); + } + + if (view_destroy) { + underbar_view_destroy(); + } +#endif +} + +Evas_Object *underbar_proxy_create(void) +{ + Eina_Bool ret = EINA_TRUE; + Evas_Object *proxy_image = NULL; + + Evas_Object *view = _view_get(); + retv_if(!view, NULL); + Evas_Object * win = lockscreen_get_window(); + retv_if(!win, NULL); + Evas *e = evas_object_evas_get(win); + retv_if(!e, NULL); + + _proxy_del(view); + + proxy_image = evas_object_image_filled_add(e); + if (!proxy_image) { + LOCK_SCREEN_TRACE_ERR("Cannot add an image"); + return NULL; + } + + ret = evas_object_image_source_set(proxy_image, view); + if(ret == EINA_FALSE) LOCK_SCREEN_TRACE_ERR("Cannot set the source into the proxy image"); + + evas_object_image_source_visible_set(proxy_image, EINA_FALSE); + evas_object_image_source_clip_set(proxy_image, EINA_FALSE); + evas_object_repeat_events_set(proxy_image, EINA_TRUE); + evas_object_size_hint_weight_set(proxy_image, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + + int x = 0, y = 0, w = 0, h = 0; + evas_object_geometry_get(view, &x, &y, &w, &h); + + evas_object_size_hint_min_set(proxy_image, w, h); + evas_object_resize(proxy_image, w, h); + evas_object_move(proxy_image, x, y); + evas_object_show(proxy_image); + + evas_object_data_set(view, PRIVATE_DATA_PROXY_IMAGE, proxy_image); + + return proxy_image; +} + +void underbar_proxy_destroy(void) +{ + Evas_Object *view = _view_get(); + if (view) { + _proxy_del(view); + } +} + +int underbar_is_dragable(void) +{ + Evas_Object *view = _view_get(); + if (view != NULL) { + if (evas_object_data_get(view, PRIVATE_DATA_LANDING_PAGE) != NULL) { + return 1; + } + } + + return 0; +} + +int underbar_geometry_get(int *x, int *y, int *w, int *h) +{ + Evas_Object *view = _view_get(); + if (view) { + evas_object_geometry_get(view, x, y, w, h); + return 1; + } + + return 0; +} + +void underbar_cp_link_trigger_set(int trigger) +{ + Evas_Object *view = _view_get(); + if (view) { + evas_object_data_set(view, PRIVATE_DATA_CP_LINK_TRIGGER, (void*)trigger); + } +} + +int underbar_cp_link_trigger_get(void) +{ + Evas_Object *view = _view_get(); + if (view) { + return (int)evas_object_data_get(view, PRIVATE_DATA_CP_LINK_TRIGGER); + } + + return 0; +} + +#define SERVICE_LAUNCHING_BROWER_NAME "com.samsung.browser" +void underbar_cp_link(void) +{ + Evas_Object *view = _view_get(); + ret_if(!view); + + char *landing_url = evas_object_data_get(view, PRIVATE_DATA_LANDING_PAGE); + ret_if(!landing_url); + + app_control_h service = NULL; + int ret = -1; + ret = app_control_create(&service); + if(ret != APP_CONTROL_ERROR_NONE) { + LOCK_SCREEN_TRACE_ERR("app_control_create() failed ret(%d)", ret); + return; + } + + ret = app_control_set_operation(service, APP_CONTROL_OPERATION_DEFAULT); + if(ret != APP_CONTROL_ERROR_NONE) { + LOCK_SCREEN_TRACE_ERR("app_control_set_operation() failed ret(%d)", ret); + app_control_destroy(service); + return; + } + ret = app_control_set_app_id(service, SERVICE_LAUNCHING_BROWER_NAME); + if(ret != APP_CONTROL_ERROR_NONE) { + LOCK_SCREEN_TRACE_ERR("app_control_set_app_id() failed ret(%d)", ret); + app_control_destroy(service); + return; + } + ret = app_control_set_uri(service, landing_url); + if(ret != APP_CONTROL_ERROR_NONE) { + LOCK_SCREEN_TRACE_ERR("app_control_set_uri() failed ret(%d)", ret); + app_control_destroy(service); + return; + } + ret = app_control_send_launch_request(service, NULL, NULL); + if(ret != APP_CONTROL_ERROR_NONE) { + LOCK_SCREEN_TRACE_ERR("app_control_send_request() failed ret(%d)", ret); + app_control_destroy(service); + return; + } + app_control_destroy(service); +} + +static void _property_changed(LKD_Module_Data *md, int property_id) +{ + if (property_id == LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED) { + if (_is_underbar_enabled()) { + underbar_view_update(); + } else { + underbar_view_destroy(); + } + } +} + +static void _pause(LKD_Module_Data *md) +{ + underbar_view_update(); +} + +LKD_Module g_mod_underbar = { + .id = "underbar", + .notifying = 1, + .property_list = LKD_PROP_ID_ULTRA_POWER_SAVING_ENABLED, + .property_changed = _property_changed, + .pause = _pause, +}; diff --git a/src/util-time.c b/src/util-time.c new file mode 100755 index 0000000..b956027 --- /dev/null +++ b/src/util-time.c @@ -0,0 +1,1355 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "lockscreen-lite.h" +#include "util-time.h" +#include "contextual-info.h" +#include "sim-state.h" +#include "notification-panel.h" +#include "default-unlock.h" + +#define TIME_LOCALE_FILE "/opt/etc/localtime" +#define TIME_ZONEINFO_PATH "/usr/share/zoneinfo/" +#define TIME_ZONEINFO_PATH_LEN (strlen(TIME_ZONEINFO_PATH)) + +static struct info { + int is_initialized; + Ecore_Timer *timer; + int is_timer_enabled; + UDateFormat *formatter_date; + UDateFormat *formatter_time; + UDateFormat *formatter_ampm; + UDateTimePatternGenerator *generator; + int timeformat; + char *timeregion_format; + char *timezone_id; + Eina_Bool is_pre_meridiem; + int is_roaming; + + int need_sync; +} s_info = { + .is_initialized = 0, + .timer = NULL, + .is_timer_enabled = 0, + .formatter_date = NULL, + .formatter_time = NULL, + .formatter_ampm = NULL, + .generator = NULL, + .timeformat = APPCORE_TIME_FORMAT_24, + .timeregion_format = NULL, + .timezone_id = NULL, + .is_pre_meridiem = EINA_FALSE, + .is_roaming = -1, + + .need_sync = 0, +}; + +extern LKD_Module g_mod_datetime; +static Eina_Bool _timer_cb(void *data); +static void util_time_heartbeat_do(void); + +static Evas_Object *_default_layout_get(void) +{ + Evas_Object *base_layout = lockscreen_get_layout(); + retv_if(base_layout == NULL, NULL); + + Evas_Object *default_layout = elm_object_part_content_get(base_layout, "default_layout"); + + return default_layout; +} + +static char *_get_locale(void) +{ + char *locale = vconf_get_str(VCONFKEY_REGIONFORMAT); + if(locale == NULL) { + LOCK_SCREEN_TRACE_ERR("vconf_get_str() failed : region format"); + return strdup("en_US.UTF-8"); + } + return locale; +} + +static int _is_korea_locale() +{ + int ret = 0; + char *locale = _get_locale(); + if (locale) { + if (strstr(locale,"ko_KR")) { + ret = 1; + } + free(locale); + } + + return ret; +} + +static char *_util_time_dualclock_timezone_id_get() +{ + int need_retry = 0; + char *timezone = NULL; + char *timezone_int = NULL; + + timezone = vconf_get_str(VCONFKEY_LOCKSCREEN_DUAL_CLOCK_TIMEZONE_ID); + if (timezone == NULL) { + need_retry = 1; + } + else if (strlen(timezone) == 0) { + free(timezone); + need_retry = 1; + timezone = NULL; + } + + if (need_retry == 1) { + LOCK_SCREEN_TRACE_DBG("vconf_get_str() failed : get vconf from setting"); + timezone = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID); + timezone_int = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_INT); + if(timezone != NULL && strlen(timezone) > 0 && timezone_int != NULL && strlen(timezone_int) > 0) { + LOCK_SCREEN_TRACE_DBG("vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID) success : save vconf to lockscreen setting"); + if(vconf_set_str(VCONFKEY_LOCKSCREEN_DUAL_CLOCK_TIMEZONE_ID, timezone) != 0 || vconf_set_str(VCONFKEY_LOCKSCREEN_DUAL_CLOCK_TIMEZONE, timezone_int) != 0) + { + LOCK_SCREEN_TRACE_DBG("vconf_set_str() failed"); + } + } + free(timezone_int); + } + + LOCK_SCREEN_TRACE_DBG("dual clock timezone is %s ", timezone); + + return timezone; +} + +static UDateFormat *_get_formatter_time(void *data, int time_format, const char *timezone) +{ + UErrorCode status = U_ZERO_ERROR; + char buf[64] = {0,}; + char *locale = NULL; + UChar u_pattern[64] = {0,}; + UChar u_timezone[64] = {0,}; + UDateFormat *formatter = NULL; + + UDateTimePatternGenerator *generator = NULL; + UChar u_best_pattern[64] = {0,}; + int32_t u_best_pattern_capacity; + + uloc_setDefault(getenv("LC_TIME"), &status); + if (U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("uloc_setDefault() is failed."); + return NULL; + } + + if(time_format == APPCORE_TIME_FORMAT_24) { + snprintf(buf, sizeof(buf)-1, "%s", "HH:mm"); + } else { + /* set time format 12 */ + snprintf(buf, sizeof(buf)-1, "%s", "h:mm"); + } + if(u_uastrncpy(u_pattern, buf, sizeof(u_pattern)) == NULL) { + LOCK_SCREEN_TRACE_ERR("u_uastrncpy() is failed."); + return NULL; + } + + locale = _get_locale(); + + if(time_format == APPCORE_TIME_FORMAT_12) { + generator = udatpg_open(locale, &status); + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udatpg_open() failed"); + generator = NULL; + if(locale) { + free(locale); + locale = NULL; + } + return NULL; + } + + u_best_pattern_capacity = + (int32_t) (sizeof(u_best_pattern) / sizeof((u_best_pattern)[0])); + + udatpg_getBestPattern(generator, u_pattern, u_strlen(u_pattern), + u_best_pattern, u_best_pattern_capacity, &status); + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udatpg_getBestPattern() failed"); + if(locale) { + free(locale); + locale = NULL; + } + } + + /* remove am/pm of best pattern */ + char a_best_pattern[64] = {0.}; + u_austrcpy(a_best_pattern, u_best_pattern); + char *a_best_pattern_fixed = strtok(a_best_pattern, "a"); + a_best_pattern_fixed = strtok(a_best_pattern_fixed, " "); + if(a_best_pattern_fixed) { + u_uastrcpy(u_best_pattern, a_best_pattern_fixed); + } + u_strncpy(u_pattern, u_best_pattern, sizeof(u_pattern)); + } + + if(timezone) { + u_uastrncpy(u_timezone, timezone, sizeof(u_timezone)); + formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, locale, u_timezone, -1, + u_pattern, -1, &status); + } else { + formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, locale, NULL, -1, + u_pattern, -1, &status); + } + if (U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udat_open() is failed."); + if(locale) { + free(locale); + locale = NULL; + } + return NULL; + } + + if(locale) { + free(locale); + locale = NULL; + } + + if(generator) { + udat_close(generator); + generator = NULL; + } + + if(formatter) { + return formatter; + } else { + return NULL; + } +} + +static UDateFormat *_get_formatter_ampm(void *data, const char *timezone) +{ + UErrorCode status = U_ZERO_ERROR; + + char a_best_pattern[64] = {0.}; + char *locale = NULL; + + UChar u_timezone[64] = {0,}; + UChar u_skeleton[64] = {0,}; + int skeleton_len = 0; + + UDateFormat *formatter = NULL; + UDateTimePatternGenerator *generator = NULL; + + UChar u_best_pattern[64] = {0,}; + int32_t u_best_pattern_capacity; + + uloc_setDefault(getenv("LC_TIME"), &status); + if (U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("uloc_setDefault() is failed."); + return NULL; + } + + locale = _get_locale(); + + u_uastrncpy(u_skeleton, "hhmm", strlen("hhmm")); + skeleton_len = u_strlen(u_skeleton); + + generator = udatpg_open(locale, &status); + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udatpg_open() failed"); + generator = NULL; + if(locale) { + free(locale); + locale = NULL; + } + return NULL; + } + + u_best_pattern_capacity = + (int32_t) (sizeof(u_best_pattern) / sizeof((u_best_pattern)[0])); + + udatpg_getBestPattern(generator, u_skeleton, skeleton_len, + u_best_pattern, u_best_pattern_capacity, &status); + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udatpg_getBestPattern() failed"); + if(locale) { + free(locale); + locale = NULL; + } + } + + u_austrcpy(a_best_pattern, u_best_pattern); + u_uastrcpy(u_best_pattern, "a"); + + if(a_best_pattern[0] == 'a') { + s_info.is_pre_meridiem = EINA_TRUE; + } else { + s_info.is_pre_meridiem = EINA_FALSE; + } + + if(timezone != NULL) { + u_uastrncpy(u_timezone, timezone, sizeof(u_timezone)); + formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, locale, u_timezone, -1, + u_best_pattern, -1, &status); + } else { + formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, locale, NULL, -1, + u_best_pattern, -1, &status); + } + + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udat_open() failed"); + if(locale) { + free(locale); + locale = NULL; + } + return NULL; + } + + if(locale) { + free(locale); + locale = NULL; + } + + if(generator) { + udat_close(generator); + generator = NULL; + } + + return formatter; +} + +static UDateFormat *_get_formatter_date(void *data, const char *timezone, Eina_Bool is_info, const char *skeleton) +{ + UErrorCode status = U_ZERO_ERROR; + char *locale = NULL; + UChar u_timezone[64] = {0,}; + UChar u_skeleton[64] = {0,}; + int skeleton_len = 0; + + UDateFormat *formatter = NULL; + UDateTimePatternGenerator *generator = NULL; + + UChar u_best_pattern[64] = {0,}; + int32_t u_best_pattern_capacity; + + uloc_setDefault(getenv("LC_TIME"), &status); + if (U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("uloc_setDefault() is failed."); + return NULL; + } + + locale = _get_locale(); + + u_uastrncpy(u_skeleton, skeleton, strlen(skeleton)); + skeleton_len = u_strlen(u_skeleton); + + generator = udatpg_open(locale, &status); + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udatpg_open() failed"); + generator = NULL; + if(locale) { + free(locale); + locale = NULL; + } + return NULL; + } + + u_best_pattern_capacity = + (int32_t) (sizeof(u_best_pattern) / sizeof((u_best_pattern)[0])); + + (void)udatpg_getBestPattern(generator, u_skeleton, skeleton_len, + u_best_pattern, u_best_pattern_capacity, &status); + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udatpg_getBestPattern() failed"); + if(locale) { + free(locale); + locale = NULL; + } + } + + if(timezone) { + u_uastrncpy(u_timezone, timezone, sizeof(u_timezone)); + formatter = udat_open(UDAT_IGNORE, UDAT_DEFAULT, locale, u_timezone, -1, + u_best_pattern, u_strlen(u_best_pattern), &status); + } else { + formatter = udat_open(UDAT_IGNORE, UDAT_DEFAULT, locale, NULL, -1, + u_best_pattern, u_strlen(u_best_pattern), &status); + } + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udat_open() is failed."); + if(locale) { + free(locale); + locale = NULL; + } + return NULL; + } + + if(locale) { + free(locale); + locale = NULL; + } + + if(generator) { + udat_close(generator); + generator = NULL; + } + + return formatter; +} + +int get_formatted_time_from_utc_time(time_t intime, char *buf, int buf_len, const char *timezone, int time_format, void *data) +{ + UDate u_time = (UDate)intime * 1000; + UChar u_formatted_str[64] = {0,}; + int32_t u_formatted_str_capacity; + + UErrorCode status = U_ZERO_ERROR; + + UDateFormat *formatter = _get_formatter_time(NULL, time_format, timezone); + if(formatter == NULL) { + LOCK_SCREEN_TRACE_ERR("_get_formatter_time() failed"); + return -1; + } + + /* calculate formatted string capacity */ + u_formatted_str_capacity = + (int32_t)(sizeof(u_formatted_str) / sizeof((u_formatted_str)[0])); + + /* fomatting date using formatter */ + (void)udat_format(formatter, u_time, u_formatted_str, u_formatted_str_capacity, + NULL, &status); + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udat_format() failed"); + if(formatter) { + udat_close(formatter); + formatter = NULL; + } + return -1; + } + + buf = u_austrncpy(buf, u_formatted_str, buf_len); + LOCK_SCREEN_TRACE_DBG("time : %s %d", buf, intime); + if(formatter) { + udat_close(formatter); + formatter = NULL; + } + return 0; +} + +int get_formatted_ampm_from_utc_time(time_t intime, char *buf, int buf_len, int *ampm_len, const char *timezone, void *data) +{ + UDate u_time = (UDate)intime * 1000; + UChar u_formatted_str[64] = {0,}; + int32_t u_formatted_str_capacity; + + UErrorCode status = U_ZERO_ERROR; + + UDateFormat *formatter = _get_formatter_ampm(NULL, timezone); + + if(formatter == NULL){ + LOCK_SCREEN_TRACE_ERR("_get_formatter_ampm() failed"); + return -1; + } + + u_formatted_str_capacity = + (int32_t)(sizeof(u_formatted_str) / sizeof((u_formatted_str)[0])); + + (void)udat_format(formatter, u_time, u_formatted_str, u_formatted_str_capacity, + NULL, &status); + + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udat_format() failed"); + if(formatter) { + udat_close(formatter); + formatter = NULL; + } + return -1; + } + + (*ampm_len) = u_strlen(u_formatted_str); + + buf = u_austrncpy(buf, u_formatted_str, buf_len); + LOCK_SCREEN_TRACE_DBG("ampm : %s %d", buf, intime); + if(formatter) { + udat_close(formatter); + formatter = NULL; + } + return 0; +} + +int get_formatted_date_from_utc_time(time_t intime, char *buf, int buf_len, const char *timezone, void *data, const char *format) +{ + UDate u_time = (UDate)intime *1000; + UChar u_formatted_str[64] = {0,}; + int32_t u_formatted_str_capacity; + UErrorCode status = U_ZERO_ERROR; + + UDateFormat *formatter = NULL; + + if(format) { + formatter = _get_formatter_date(NULL, timezone, EINA_TRUE, format); + } else { + formatter = _get_formatter_date(NULL, timezone, EINA_TRUE, "MMMMEd"); + } + if(formatter == NULL) { + LOCK_SCREEN_TRACE_ERR("_get_formatter_time() failed"); + return -1; + } + + u_formatted_str_capacity = + (int32_t)(sizeof(u_formatted_str) / sizeof((u_formatted_str)[0])); + + (void)udat_format(formatter, u_time, u_formatted_str, u_formatted_str_capacity, + NULL, &status); + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udat_format() failed"); + if(formatter) { + udat_close(formatter); + formatter = NULL; + } + return -1; + } + + buf = u_austrncpy(buf, u_formatted_str, buf_len); + LOCK_SCREEN_TRACE_DBG("time : %s %d", buf, intime); + if(formatter) { + udat_close(formatter); + formatter = NULL; + } + return 0; +} + +static UDateTimePatternGenerator *__util_time_generator_get(void *data) +{ + UErrorCode status = U_ZERO_ERROR; + UDateTimePatternGenerator *generator = NULL; + + retv_if(s_info.timeregion_format == NULL, NULL); + + generator = udatpg_open(s_info.timeregion_format, &status); + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udatpg_open() failed"); + generator = NULL; + return NULL; + } + return generator; +} + +static UDateFormat *__util_time_date_formatter_get(void *data, const char *timezone_id, const char *skeleton) +{ + UErrorCode status = U_ZERO_ERROR; + + UChar u_skeleton[64] = {0,}; + int skeleton_len = 0; + + UChar u_best_pattern[64] = {0,}; + int32_t u_best_pattern_capacity; + UDateFormat *formatter = NULL; + + retv_if(s_info.generator == NULL, NULL); + + u_uastrncpy(u_skeleton, skeleton, strlen(skeleton)); + skeleton_len = u_strlen(u_skeleton); + + u_best_pattern_capacity = + (int32_t) (sizeof(u_best_pattern) / sizeof((u_best_pattern)[0])); + + udatpg_getBestPattern(s_info.generator, u_skeleton, skeleton_len, + u_best_pattern, u_best_pattern_capacity, &status); + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udatpg_getBestPattern() failed"); + return NULL; + } + + UChar u_timezone_id[64] = {0,}; + if(timezone_id == NULL) { + u_uastrncpy(u_timezone_id, s_info.timezone_id, sizeof(u_timezone_id)); + formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, s_info.timeregion_format, u_timezone_id, -1, + u_best_pattern, -1, &status); + } else { + u_uastrncpy(u_timezone_id, timezone_id, sizeof(u_timezone_id)); + formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, s_info.timeregion_format, u_timezone_id, -1, + u_best_pattern, -1, &status); + } + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udat_open() failed"); + return NULL; + } + + char a_best_pattern[64] = {0,}; + u_austrcpy(a_best_pattern, u_best_pattern); + + return formatter; +} + +static UDateFormat *__util_time_ampm_formatter_get(void *data, const char *timezone_id) +{ + UErrorCode status = U_ZERO_ERROR; + + UChar u_best_pattern[64] = {0,}; + UDateFormat *formatter = NULL; + + u_uastrcpy(u_best_pattern, "a"); + + UChar u_timezone_id[64] = {0,}; + if(timezone_id == NULL) { + u_uastrncpy(u_timezone_id, s_info.timezone_id, sizeof(u_timezone_id)); + formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, s_info.timeregion_format, u_timezone_id, -1, + u_best_pattern, -1, &status); + } else { + u_uastrncpy(u_timezone_id, timezone_id, sizeof(u_timezone_id)); + formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, s_info.timeregion_format, u_timezone_id, -1, + u_best_pattern, -1, &status); + } + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udat_open() failed"); + return NULL; + } + + char a_best_pattern[64] = {0,}; + u_austrcpy(a_best_pattern, u_best_pattern); + + return formatter; +} + +static UDateFormat *__util_time_time_formatter_get(void *data, int time_format, const char *timezone_id) +{ + char buf[64] = {0,}; + UErrorCode status = U_ZERO_ERROR; + UChar u_pattern[64] = {0,}; + UChar u_best_pattern[64] = {0,}; + int32_t u_best_pattern_capacity; + char a_best_pattern[64] = {0,}; + + UDateFormat *formatter = NULL; + + retv_if(s_info.generator == NULL, NULL); + + if(time_format == APPCORE_TIME_FORMAT_24) { + snprintf(buf, sizeof(buf)-1, "%s", "HH:mm"); + } else { + /* set time format 12 */ + snprintf(buf, sizeof(buf)-1, "%s", "h:mm"); + } + + if(u_uastrncpy(u_pattern, buf, sizeof(u_pattern)) == NULL) { + LOCK_SCREEN_TRACE_ERR("u_uastrncpy() is failed."); + return NULL; + } + + u_best_pattern_capacity = + (int32_t) (sizeof(u_best_pattern) / sizeof((u_best_pattern)[0])); + + udatpg_getBestPattern(s_info.generator, u_pattern, u_strlen(u_pattern), + u_best_pattern, u_best_pattern_capacity, &status); + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udatpg_getBestPattern() failed"); + return NULL; + } + + u_austrcpy(a_best_pattern, u_best_pattern); + + if(a_best_pattern[0] == 'a') { + s_info.is_pre_meridiem = EINA_TRUE; + } else { + s_info.is_pre_meridiem = EINA_FALSE; + } + + char *a_best_pattern_fixed = strtok(a_best_pattern, "a"); + a_best_pattern_fixed = strtok(a_best_pattern_fixed, " "); + if(a_best_pattern_fixed) { + u_uastrcpy(u_best_pattern, a_best_pattern_fixed); + } + + UChar u_timezone_id[64] = {0,}; + if(timezone_id == NULL) { + u_uastrncpy(u_timezone_id, s_info.timezone_id, sizeof(u_timezone_id)); + formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, s_info.timeregion_format, u_timezone_id, -1, + u_best_pattern, -1, &status); + } else { + u_uastrncpy(u_timezone_id, timezone_id, sizeof(u_timezone_id)); + formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, s_info.timeregion_format, u_timezone_id, -1, + u_best_pattern, -1, &status); + } + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udat_open() failed"); + return NULL; + } + + return formatter; +} + +static void _util_time_formatters_create(void *data) +{ + if (s_info.generator == NULL) { + s_info.generator = __util_time_generator_get(NULL); + } + + if (s_info.formatter_date == NULL) { + s_info.formatter_date = __util_time_date_formatter_get(NULL, NULL, "MMMMEd"); + } + + if(s_info.timeformat == APPCORE_TIME_FORMAT_12) { + if (s_info.formatter_ampm == NULL) { + s_info.formatter_ampm = __util_time_ampm_formatter_get(NULL, NULL); + } + } + + if (s_info.formatter_time == NULL) { + s_info.formatter_time = __util_time_time_formatter_get(NULL, s_info.timeformat, NULL); + } +} + +static void _util_time_formatters_destroy(void *data) +{ + if(s_info.generator) { + udat_close(s_info.generator); + s_info.generator = NULL; + } + if(s_info.formatter_date) { + udat_close(s_info.formatter_date); + s_info.formatter_date = NULL; + } + if(s_info.formatter_time) { + udat_close(s_info.formatter_time); + s_info.formatter_time = NULL; + } + if(s_info.formatter_ampm) { + udat_close(s_info.formatter_ampm); + s_info.formatter_ampm = NULL; + } +} + +static char *_util_time_regionformat_get(void) +{ + char locale_tmp[32] = { 0, }; + char *locale = vconf_get_str(VCONFKEY_REGIONFORMAT); + if (locale == NULL) + { + LOCK_SCREEN_TRACE_ERR("vconf_get_str() failed : region format"); + return strdup("en_US"); + } + + strncpy(locale_tmp, locale, sizeof(locale_tmp)-1); + free(locale); + + // remove .UTF-8 + if (strlen(locale_tmp) > 0) + { + char *p = strstr(locale_tmp, ".UTF-8"); + if (p) + { + *p = 0; + } + } + + if (strlen(locale_tmp) > 0) + { + return strdup(locale_tmp); + } + + return strdup("en_US"); +} + +static char *_timezone_id_get_from_file(void) +{ + char tz[1024] = {0,}; + char buf[1024] = {0,}; + char *timezone = NULL; + + ssize_t len = readlink(TIME_LOCALE_FILE, buf, sizeof(buf)-1); + buf[1023] = '\0'; + if (buf[0] != '\0' && len != -1) { + if(strstr(buf,TIME_ZONEINFO_PATH)) { + memcpy(tz, &buf[TIME_ZONEINFO_PATH_LEN],len-TIME_ZONEINFO_PATH_LEN); + } + timezone = strdup(tz); + } + + return timezone; +} + +static char *_timezone_id_get_from_vconf(void) +{ + return vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID); +} + +static char *_util_time_timezone_id_get(void) +{ + char tz[1024] = {0,}; + char *timezone = NULL; + + timezone = _timezone_id_get_from_file(); + if (timezone == NULL) { + timezone = _timezone_id_get_from_vconf(); + } + + if(timezone == NULL) { + memcpy(tz, "Asia/Seoul",strlen("Asia/Seoul")); + timezone = strdup(tz); + } + + LOCK_SCREEN_TRACE_DBG("timezone is %s ", timezone); + return timezone; +} + +static int __util_time_formatted_time_get(UDateFormat *formatter, time_t tt, char *buf, int buf_len) +{ + retv_if(formatter == NULL, -1); + + UDate u_time = (UDate)tt * 1000; + UChar u_formatted_str[64] = {0,}; + int32_t u_formatted_str_capacity; + UErrorCode status = U_ZERO_ERROR; + + u_formatted_str_capacity = (int32_t)(sizeof(u_formatted_str) / sizeof((u_formatted_str)[0])); + + (void)udat_format(formatter, u_time, u_formatted_str, u_formatted_str_capacity, NULL, &status); + if(U_FAILURE(status)) { + LOCK_SCREEN_TRACE_ERR("udat_format() failed"); + return -1; + } + + u_austrncpy(buf, u_formatted_str, buf_len-1); + LOCK_SCREEN_TRACE_DBG("time(%d) formatted(%s)", tt, buf); + + return (int)u_strlen(u_formatted_str); +} + +static void _formatter_create(void *data) { + int ret = 0; + + ret = vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, &s_info.timeformat); + if(ret != 0) { + LOCK_SCREEN_TRACE_ERR("vconf_get_int() failed"); + s_info.timeformat = APPCORE_TIME_FORMAT_24; + } + + if (s_info.timeregion_format == NULL) { + s_info.timeregion_format = _util_time_regionformat_get(); + } + + if (s_info.timezone_id == NULL) { + s_info.timezone_id = _util_time_timezone_id_get(); + } + + _util_time_formatters_create(NULL); + + s_info.is_initialized = 1; + LOCK_SCREEN_TRACE_DBG("%d %s %s", s_info.timeformat, s_info.timeregion_format, s_info.timezone_id); +} + +static void _formatter_destroy(void *data) { + + if(s_info.timeregion_format) { + free(s_info.timeregion_format); + s_info.timeregion_format = NULL; + } + if(s_info.timezone_id) { + free(s_info.timezone_id); + s_info.timezone_id = NULL; + } + + _util_time_formatters_destroy(NULL); + + s_info.is_initialized = 0; +} + +static void _util_time_get(int is_current_time, time_t tt_a, char *timezone, char *skeleton, char **str_date, char **str_time, char **str_meridiem) +{ + time_t tt; + struct tm st; + char buf_date[512] = {0,}; + char buf_time[512] = {0,}; + char buf_ampm[512] = {0,}; + + if (is_current_time == 1) { + tt = time(NULL); + } else { + tt = tt_a; + } + localtime_r(&tt, &st); + + UDateFormat *formatter_date = NULL; + UDateFormat *formatter_time = NULL; + UDateFormat *formatter_ampm = NULL; + + if (timezone != NULL) { + if (skeleton == NULL) { + formatter_date = __util_time_date_formatter_get(NULL, timezone, "MMMMEd"); + } else { + formatter_date = __util_time_date_formatter_get(NULL, timezone, skeleton); + } + formatter_time = __util_time_time_formatter_get(NULL, s_info.timeformat, timezone); + if(s_info.timeformat == APPCORE_TIME_FORMAT_12) { + formatter_ampm = __util_time_ampm_formatter_get(NULL, timezone); + } + } else { + if (skeleton == NULL) { + formatter_date = s_info.formatter_date; + } else { + formatter_date = __util_time_date_formatter_get(NULL, timezone, skeleton); + } + formatter_time = s_info.formatter_time; + formatter_ampm = s_info.formatter_ampm; + } + + if (s_info.formatter_time == NULL) { + s_info.formatter_time = __util_time_time_formatter_get(NULL, s_info.timeformat, NULL); + } + + __util_time_formatted_time_get(formatter_date, tt, buf_date, sizeof(buf_date)); + + /* time */ + if(s_info.timeformat == APPCORE_TIME_FORMAT_24) { + __util_time_formatted_time_get(formatter_time, tt, buf_time, sizeof(buf_time)-1); + } else { + __util_time_formatted_time_get(formatter_time, tt, buf_time, sizeof(buf_time)-1); + int ampm_len = __util_time_formatted_time_get(formatter_ampm, tt, buf_ampm, sizeof(buf_ampm)-1); + if(ampm_len > 4) { + if(st.tm_hour >= 0 && st.tm_hour < 12) { + snprintf(buf_ampm, sizeof(buf_ampm)-1, "AM"); + } else { + snprintf(buf_ampm, sizeof(buf_ampm)-1, "PM"); + } + } + } + + if (str_date != NULL) { + *str_date = strdup(buf_date); + } + if (str_time != NULL) { + *str_time = strdup(buf_time); + } + if (str_meridiem != NULL) { + *str_meridiem = strdup(buf_ampm); + } + + if (timezone != NULL) { + if (formatter_date != NULL) udat_close(formatter_date); + if (formatter_time != NULL) udat_close(formatter_time); + if (formatter_ampm != NULL) udat_close(formatter_ampm); + } +} + +static void _timer_add(void) { + time_t tt; + struct tm st; + + tt = time(NULL); + localtime_r(&tt, &st); + + s_info.timer = ecore_timer_add(60 - st.tm_sec, _timer_cb, NULL); +} + +static void _timer_del(void) { + if(s_info.timer != NULL) { + ecore_timer_del(s_info.timer); + s_info.timer = NULL; + } +} + +static Eina_Bool _timer_cb(void *data) +{ + s_info.timer = NULL; + + util_time_heartbeat_do(); + + if (s_info.is_timer_enabled ==1) { + _timer_add(); + } + return ECORE_CALLBACK_CANCEL; +} + +static void _util_time_reset_view(void) +{ + Evas_Object *layout = _default_layout_get(); + if (layout) { + elm_object_part_text_set(layout, "time_hours_roaming", ""); + elm_object_part_text_set(layout, "date_text_roaming", ""); + elm_object_part_text_set(layout, "time_hours", ""); + elm_object_part_text_set(layout, "date_text", ""); + } +} + +static void _util_time_update_view(void) +{ + Evas_Object *layout = _default_layout_get(); + ret_if(layout == NULL); + + struct tm st; + time_t tt = time(NULL); + localtime_r(&tt, &st); + + char *str_date = NULL; + char *str_time = NULL; + char *str_meridiem = NULL; + char time_buf[PATH_MAX] = {0,}; + char date_buf[PATH_MAX] = {0,}; + bool bSingle_clock = true; + + if(contextual_info_is_dual_clock_enabled() && lockscreen_is_view_simple_get() && !contextual_info_visible_get()) + { + LOCK_SCREEN_TRACE_DBG("dual clock is enabled"); + + char *timezone_id = _util_time_dualclock_timezone_id_get(); + if(timezone_id != NULL && layout) + { + _util_time_get(1, 0, timezone_id, "EEEMMMd", &str_date, &str_time, &str_meridiem); + elm_object_signal_emit(layout, "dual_clock", "layout"); + + if(s_info.timeformat == APPCORE_TIME_FORMAT_12) { + if( _is_korea_locale()) { + snprintf(time_buf, sizeof(time_buf),"<%s>%s%s","small_font",str_meridiem,str_time); + } else { + snprintf(time_buf, sizeof(time_buf),"%s<%s>%s", str_time, "small_font", str_meridiem); + } + } else { + if( _is_korea_locale()) { + snprintf(time_buf, sizeof(time_buf),"%s", str_time); + } else { + snprintf(time_buf, sizeof(time_buf),"%s", str_time); + } + } + elm_object_part_text_set(layout, "time_hours_roaming", time_buf); + elm_object_part_text_set(layout, "date_text_roaming", str_date); + + free(str_date); + free(str_time); + free(str_meridiem); + str_date = NULL; + str_time = NULL; + str_meridiem = NULL; + } + free(timezone_id); + } + else + { + if(!contextual_info_is_dual_clock_enabled() && lockscreen_is_view_simple_get() && !contextual_info_visible_get()) + { + LOCK_SCREEN_TRACE_DBG("display single clock"); + elm_object_signal_emit(layout, "default", "layout"); + } + } + + if(contextual_info_is_dual_clock_enabled() && lockscreen_is_view_simple_get() && !contextual_info_visible_get()) { + _util_time_get(1, 0, NULL, "EEEMMMd", &str_date, &str_time, &str_meridiem); + bSingle_clock = false ; + } else { +#if 0 // TBD for E, d MMMM format + if (_is_english_locale()) { + char *str_draft = NULL; + char *str_y = NULL; + const char *result = NULL; + _util_time_get(1, 0, NULL, "MMMMEdy", &str_draft, &str_time, &str_meridiem); + _util_time_get(1, 0, NULL, "y", &str_y, NULL, NULL); + + Eina_Strbuf *strbuf = eina_strbuf_manage_new(str_draft); + if (strbuf) { + eina_strbuf_replace_all(strbuf, str_y, ""); + eina_strbuf_trim(strbuf); + result = eina_strbuf_string_get(strbuf); + if (result) { + str_date = strdup(result); + } + eina_strbuf_free(strbuf); + } else { + free(str_draft); + _util_time_get(1, 0, NULL, "MMMMEdy", &str_date, &str_time, &str_meridiem); + } + free(str_y); + } else { + _util_time_get(1, 0, NULL, "MMMMEd", &str_date, &str_time, &str_meridiem); + } +#endif + _util_time_get(1, 0, NULL, "MMMMEd", &str_date, &str_time, &str_meridiem); + } + if(s_info.timeformat == APPCORE_TIME_FORMAT_12) { + if(bSingle_clock) + { + if( _is_korea_locale()) { + snprintf(time_buf, sizeof(time_buf),"<%s>%s %s","small_font",str_meridiem,str_time); + } else { + snprintf(time_buf, sizeof(time_buf),"%s<%s> %s", str_time, "small_font", str_meridiem); + } + } + else + { + if( _is_korea_locale()) { + snprintf(time_buf, sizeof(time_buf),"<%s>%s%s","small_font",str_meridiem,str_time); + } else { + snprintf(time_buf, sizeof(time_buf),"%s<%s>%s", str_time, "small_font", str_meridiem); + } + } + } else { + if( _is_korea_locale()) { + snprintf(time_buf, sizeof(time_buf),"%s",str_time); + } else { + snprintf(time_buf, sizeof(time_buf),"%s", str_time); + } + } + + snprintf(date_buf, sizeof(time_buf),"<%s>%s","small_font",str_date); + + if(contextual_info_visible_get()) { + char date_time_buf[PATH_MAX + PATH_MAX] = {0,}; + snprintf(date_time_buf, sizeof(date_time_buf) - 1,"%s  %s", time_buf, date_buf); + elm_object_part_text_set(layout, "time_hours", date_time_buf); + elm_object_part_text_set(layout, "date_text", ""); + } else { + elm_object_part_text_set(layout, "time_hours", time_buf); + elm_object_part_text_set(layout, "date_text", str_date); + } + + free(str_date); + free(str_time); + free(str_meridiem); + + /* + * update notification texts + */ + notification_panel_update_notification_list(default_unlock_control_panel_get()); +} + +static void util_time_heartbeat_do(void) +{ + if (s_info.is_initialized == 0) { + LOCK_SCREEN_TRACE_ERR("time information ins't initialized"); + return; + } + + _util_time_update_view(); + + contextual_info_time_update(); +} + +static void _util_time_vconf_changed_cb(keynode_t *key, void *data) +{ + int index = (int)data; + LOCK_SCREEN_TRACE_WARN("tick by %d", index); + + _formatter_destroy(data); + _formatter_create(data); + + if (index == 1) { + s_info.need_sync = 1; + } +} + +static void _time_event_attach(void *data) +{ + int ret = 0; + + /* register vconf cbs */ + ret = vconf_notify_key_changed(VCONFKEY_SYSTEM_TIME_CHANGED, _util_time_vconf_changed_cb, (void*)1); + ret_if(ret != 0); + ret = vconf_notify_key_changed(VCONFKEY_REGIONFORMAT_TIME1224, _util_time_vconf_changed_cb, (void*)2); + ret_if(ret != 0); + ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_SVC_ROAM, _util_time_vconf_changed_cb, (void*)3); + ret_if(ret != 0); + ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_TIMEZONE_INT, _util_time_vconf_changed_cb, (void*)4); + ret_if(ret != 0); + ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_TIMEZONE_ID, _util_time_vconf_changed_cb, (void*)5); + ret_if(ret != 0); + ret = vconf_notify_key_changed(VCONFKEY_REGIONFORMAT, _util_time_vconf_changed_cb, (void*)6); + ret_if(ret != 0); +} + +static void _time_event_deattach(void *data) +{ + int ret = 0; + + /* unregister vconf cbs */ + ret = vconf_ignore_key_changed(VCONFKEY_SYSTEM_TIME_CHANGED, _util_time_vconf_changed_cb); + ret_if(ret != 0); + ret = vconf_ignore_key_changed(VCONFKEY_REGIONFORMAT_TIME1224, _util_time_vconf_changed_cb); + ret_if(ret != 0); + ret = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SVC_ROAM, _util_time_vconf_changed_cb); + ret_if(ret != 0); + ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_TIMEZONE_INT, _util_time_vconf_changed_cb); + ret_if(ret != 0); + ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_TIMEZONE_ID, _util_time_vconf_changed_cb); + ret_if(ret != 0); + ret = vconf_ignore_key_changed(VCONFKEY_REGIONFORMAT, _util_time_vconf_changed_cb); + ret_if(ret != 0); +} + + +/* + * Exported functions + */ +void util_time_init(void) +{ + module_init(&g_mod_datetime, NULL); +} + +void util_time_fini(void) +{ + module_fini(&g_mod_datetime); +} + +void util_time_timer_enable_set(int is_enable) { + _timer_del(); + s_info.is_timer_enabled = is_enable; + + if (is_enable == 1) { + _timer_add(); + } +} + +void reset_time(void) +{ + _util_time_reset_view(); +} + +int update_time(Evas_Object *info_layout) +{ + util_time_heartbeat_do(); + + return LKD_RET_OK; +} + +void util_time_roaming_state_set(int state) +{ + int state_old = s_info.is_roaming; + + if (state_old != state) { + util_time_heartbeat_do(); + } + + s_info.is_roaming = state; +} + +int util_time_roaming_state_get(void) +{ + if (s_info.is_roaming == -1) { + + s_info.is_roaming = sim_status_roaming_status_is_on_check(); + } + + return s_info.is_roaming; +} + +char *util_time_get_formatted_noti_time(time_t ts) +{ + char *time_str = NULL; + char *curr_date = NULL; + char *noti_date = NULL; + + _util_time_get(0, time(NULL), NULL, UDAT_YEAR_NUM_MONTH_DAY, &curr_date, NULL, NULL); + _util_time_get(0, ts, NULL, UDAT_YEAR_NUM_MONTH_DAY, ¬i_date, NULL, NULL); + + if (curr_date != NULL && noti_date != NULL) { + if (strcmp(curr_date, noti_date)) { + char *date = NULL; + _util_time_get(0, ts, NULL, UDAT_ABBR_MONTH_DAY, &date, NULL, NULL); + free(curr_date); + free(noti_date); + return date; + } + } + + if (s_info.timeformat == APPCORE_TIME_FORMAT_24) { + _util_time_get(0, ts, NULL, UDAT_HOUR_MINUTE , NULL, &time_str, NULL); + if (time_str) { + return time_str; + } + } + else { + struct tm st; + localtime_r(&ts, &st); + _util_time_get(0, ts, NULL, UDAT_HOUR_MINUTE , NULL, &time_str, NULL); + + char buf_ampm[512] = {0,}; + int ampm_len = __util_time_formatted_time_get(s_info.formatter_ampm, ts, buf_ampm, sizeof(buf_ampm) - 1); + if(ampm_len > 4) { + if(st.tm_hour >= 0 && st.tm_hour < 12) { + snprintf(buf_ampm, sizeof(buf_ampm)-1, "AM"); + } else { + snprintf(buf_ampm, sizeof(buf_ampm)-1, "PM"); + } + } + + char time[PATH_MAX]; + + if( _is_korea_locale()) { + snprintf(time, sizeof(time), "%s %s", buf_ampm, time_str); + } + else + { + snprintf(time, sizeof(time), "%s %s", time_str, buf_ampm); + } + + free(time_str); + + return strdup(time); + } + + return NULL; +} + + +/* + * Modules + */ +static int _init(LKD_Module_Data *data) +{ + _formatter_create(NULL); + _time_event_attach(NULL); + + return LKD_RET_OK; +} + +static int _fini(LKD_Module_Data *data) +{ + _formatter_destroy(data); + _time_event_deattach(NULL); + + return LKD_RET_OK; +} + +static void _resume(LKD_Module_Data *md) +{ + if (s_info.need_sync == 1) { + _formatter_destroy(NULL); + _formatter_create(NULL); + s_info.need_sync = 0; + } + util_time_heartbeat_do(); + util_time_timer_enable_set(1); +} + +static void _pause(LKD_Module_Data *md) +{ + _util_time_reset_view(); + util_time_timer_enable_set(0); +} + +LKD_Module g_mod_datetime = { + .id = "datetime", + .notifying = 1, + .init = _init, + .fini = _fini, + .resume = _resume, + .pause = _pause, +}; diff --git a/src/util.c b/src/util.c deleted file mode 100755 index 935db7b..0000000 --- a/src/util.c +++ /dev/null @@ -1,731 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 -#include -#include -#include -#include -#include -#include -#include - -#include "util.h" -#include "sim-state.h" -#include "info.h" -#include "bg.h" -#include "noti.h" - -#define DEFAULT_BG_PATH "/opt/share/settings/Wallpapers/Home_default.jpg" -#define SYSTEM_RESUME "system_wakeup" - -static Evas_Coord pos_down_y = 0; - -void _set_win_property(Evas_Object * win) -{ - Ecore_X_Window xwin; - - if (win == NULL) { - LOGD("[Error:%s] Invalid argument: win is NULL", __func__); - return; - } - xwin = elm_win_xwindow_get(win); - if (xwin == 0) { - LOGD("[Error:%s] Cannot get xwindow", __func__); - return; - } - - ecore_x_netwm_window_type_set(xwin, ECORE_X_WINDOW_TYPE_NOTIFICATION); - - utilx_set_system_notification_level(ecore_x_display_get(), xwin, UTILX_NOTIFICATION_LEVEL_NORMAL); - - utilx_set_window_opaque_state(ecore_x_display_get(), xwin, UTILX_OPAQUE_STATE_ON); -} - -Evas_Object *_add_layout(Evas_Object *parent, const char *file, const char *group) -{ - if (parent == NULL) - return NULL; - - Evas_Object *ly; - int r; - - ly = elm_layout_add(parent); - if (ly == NULL) - return NULL; - - r = elm_layout_file_set(ly, file, group); - if (!r) { - evas_object_del(ly); - return NULL; - } - evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - - evas_object_show(ly); - - return ly; -} - -Evas_Object *_make_top_layout(struct appdata *ad) -{ - if (ad == NULL) - return NULL; - - Evas_Object *eo = NULL; - Evas_Object *conform = NULL; - - conform = elm_conformant_add(ad->win); - if(conform == NULL) { - return NULL; - } - -#if 0 - elm_object_style_set(conform, "indicator_overlap"); -#else - elm_object_signal_emit(conform, "elm,state,virtualkeypad,disable", ""); - elm_object_signal_emit(conform, "elm,state,indicator,overlap", ""); - elm_object_signal_emit(conform, "elm,state,clipboard,disable", ""); -#endif - - eo = _add_layout(conform, EDJEFILE, "lock-main"); - if (eo == NULL) - return NULL; - - evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, - EVAS_HINT_EXPAND); - elm_win_resize_object_add(ad->win, conform); - elm_object_content_set(conform, eo); - evas_object_show(conform); - evas_object_resize(eo, ad->win_w, ad->win_h); - - return eo; -} - -Evas_Object *_make_slider(Evas_Object *parent) -{ - Evas_Object *layout = NULL; - - if (parent == NULL) { - LOCK_SCREEN_TRACE_DBG("The parent of slider is null"); - return NULL; - } - - layout = _add_layout(parent, EDJEFILE, "lock-slider"); - if (layout == NULL) { - return NULL; - } - - return layout; -} - -Evas_Object *_get_bg_image(Evas_Object *parent) -{ - Evas_Object *bg = NULL; - char *file = NULL; - Eina_Bool ret = EINA_FALSE; - - if (parent == NULL) - return NULL; - - if ((file = vconf_get_str(VCONFKEY_IDLE_LOCK_BGSET)) == NULL) { - file = vconf_get_str(VCONFKEY_BGSET); - } - - bg = elm_icon_add(parent); - if (bg == NULL) - return NULL; - elm_icon_aspect_fixed_set(bg, EINA_FALSE); - - if (file) { - ret = elm_icon_file_set(bg, file, NULL); - if (ret == EINA_FALSE) { - elm_icon_file_set(bg, DEFAULT_BG_PATH, NULL); - } - free(file); - } else { - elm_icon_file_set(bg, DEFAULT_BG_PATH, NULL); - } - return bg; -} - -void lockscreen_info_show(struct appdata *ad) -{ - if(ad == NULL){ - return; - } - - edje_object_signal_emit(_EDJ(ad->ly_main), "show,text.area", "text.area"); - edje_object_signal_emit(_EDJ(ad->ly_main), "show,sw.noti", "sw.noti"); - edje_object_signal_emit(_EDJ(ad->ly_main), "show,sim.state", "sim.state"); - edje_object_signal_emit(_EDJ(ad->ly_main), "show,rect.info", "rect.info"); - if(ad->slider != NULL) { - evas_object_show(ad->slider); - } -} - -void lockscreen_info_hide(struct appdata *ad) -{ - if(ad == NULL){ - return; - } - - edje_object_signal_emit(_EDJ(ad->ly_main), "hide,text.area", "text.area"); - edje_object_signal_emit(_EDJ(ad->ly_main), "hide,sw.noti", "sw.noti"); - edje_object_signal_emit(_EDJ(ad->ly_main), "hide,sim.state", "sim.state"); - edje_object_signal_emit(_EDJ(ad->ly_main), "hide,rect.info", "rect.info"); - if(ad->slider != NULL) { - evas_object_hide(ad->slider); - } -} - -static void _app_exit(void *data, Evas_Object *obj, const char *emission, const char *source) -{ - struct appdata *ad = data; - _app_terminate(ad); -} - -static int _init_heynoti(void *data) -{ - struct appdata *ad = data; - if (ad == NULL) { - return EXIT_FAILURE; - } - int fd = -1, ret = -1; - LOCK_SCREEN_TRACE_DBG("[ == %s == ]", __func__); - - fd = heynoti_init(); - if (fd == -1) { - LOCK_SCREEN_TRACE_DBG("Heynoti init error\n"); - return EXIT_FAILURE; - } - - ret = heynoti_subscribe(fd, SYSTEM_RESUME, update_time, ad); - if (ret == -1) { - LOCK_SCREEN_TRACE_DBG("[Error] heynoti_subscribe : system_wakeup\n"); - return EXIT_FAILURE; - } - - ret = heynoti_attach_handler(fd); - if (ret == -1) { - LOCK_SCREEN_TRACE_DBG("[Error] heynoti_attach_handler failed.\n"); - return EXIT_FAILURE; - } - - ad->heynoti_fd = fd; - - return EXIT_SUCCESS; -} - -static void _fini_heynoti(void *data) -{ - struct appdata *ad = data; - if (ad == NULL) { - return; - } - LOCK_SCREEN_TRACE_DBG("[ == %s == ]", __func__); - heynoti_unsubscribe(ad->heynoti_fd, SYSTEM_RESUME, update_time); - heynoti_close(ad->heynoti_fd); - ad->heynoti_fd = 0; -} - -static int _get_vconf_screenreader(void) -{ - int is_screenreader = -1; - if(vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &is_screenreader) < 0) { - return -1; - } - return is_screenreader; -} - -static void _pm_state_cb(keynode_t * node, void *data) -{ - LOCK_SCREEN_TRACE_DBG("_pm_state_cb"); - - struct appdata *ad = data; - int val = -1; - - if (vconf_get_int(VCONFKEY_PM_STATE, &val) < 0) { - LOCK_SCREEN_TRACE_ERR("Cannot get VCONFKEY_PM_STATE"); - return; - } - - if (val == VCONFKEY_PM_STATE_NORMAL) { - LOCK_SCREEN_TRACE_DBG("LCD on"); - update_time(ad); - if(_get_vconf_screenreader() && ad->ao_bg) { - elm_access_highlight_set(ad->ao_bg); - } - } else { - init_slider_touch_variables(ad); - } -} - -static Eina_Bool _mouse_cb(void *data, Evas_Object *obj, void *action_info) -{ - struct appdata *ad = data; - if (!ad) return EINA_FALSE; - - Elm_Access_Action_Info *a; - a = (Elm_Access_Action_Info *) action_info; - if (!a) return EINA_FALSE; - LOCK_SCREEN_TRACE_DBG("event : %d, read x: %d, y: %d\n", a->mouse_type, a->x, a->y); - - static Eina_Bool bDrag = EINA_FALSE; - static int event = 0; - static int origin_x = -1; - static int origin_y = -1; - - int step_width = 0; - int step_number = 0; - int alpha = 0; - - event = a->mouse_type; - if(event == 0) { - origin_x = a->x; - origin_y = a->y; - bDrag = EINA_TRUE; - - edje_object_signal_emit(_EDJ(ad->slider), "press", - "lock.image.l"); - edje_object_signal_emit(_EDJ(ad->slider), "press02", - "lock.image.r"); - } else if(event == 1) { - if(bDrag == EINA_FALSE) { - return EINA_FALSE; - } - if(abs(a->y - origin_y) > _X(80)){ - bDrag = EINA_FALSE; - } else { - step_width = _X(360)/14; - step_number = abs(a->x - origin_x) / step_width; - alpha = 255 - (2.55 * step_number *3); - - if (step_number < 1) { - edje_object_signal_emit(_EDJ(ad->slider), "press02", - "lock.image.r"); - } else if (step_number < 2) { - edje_object_signal_emit(_EDJ(ad->slider), "press03", - "lock.image.r"); - } else if (step_number < 3) { - edje_object_signal_emit(_EDJ(ad->slider), "press04", - "lock.image.r"); - } else if (step_number < 4) { - edje_object_signal_emit(_EDJ(ad->slider), "press05", - "lock.image.r"); - } else if (step_number < 5) { - edje_object_signal_emit(_EDJ(ad->slider), "press06", - "lock.image.r"); - } else if (step_number < 6) { - edje_object_signal_emit(_EDJ(ad->slider), "press07", - "lock.image.r"); - } else if (step_number < 7) { - edje_object_signal_emit(_EDJ(ad->slider), "press08", - "lock.image.r"); - } else if (step_number < 8) { - edje_object_signal_emit(_EDJ(ad->slider), "press09", - "lock.image.r"); - } else if (step_number < 9) { - edje_object_signal_emit(_EDJ(ad->slider), "press10", - "lock.image.r"); - } else if (step_number < 10) { - edje_object_signal_emit(_EDJ(ad->slider), "press11", - "lock.image.r"); - } else if (step_number < 11) { - edje_object_signal_emit(_EDJ(ad->slider), "press12", - "lock.image.r"); - } else if (step_number < 12) { - edje_object_signal_emit(_EDJ(ad->slider), "press13", - "lock.image.r"); - } else if (step_number < 13) { - edje_object_signal_emit(_EDJ(ad->slider), "press14", - "lock.image.r"); - } else { - edje_object_signal_emit(_EDJ(ad->slider), "press15", - "lock.image.r"); - } - evas_object_color_set(ad->ly_main, alpha, alpha, alpha, alpha); - } - } else if(event == 2) { - edje_object_signal_emit(_EDJ(ad->slider), "release", "lock.image.l"); - edje_object_signal_emit(_EDJ(ad->slider), "release", "lock.image.r"); - evas_object_color_set(ad->ly_main, 255, 255, 255, 255); - ad->bDrag = 0; - - if(bDrag == EINA_TRUE && abs(a->x - origin_x) > _X(360)) { - - if(ad->slider) { - evas_object_del(ad->slider); - ad->slider = NULL; - } - LOCK_SCREEN_TRACE_DBG("unlock the lock-screen"); - elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_HIDE); - elm_object_signal_emit(ad->ly_main, "transit,clipper", "clipper"); - vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK); - } - bDrag = EINA_FALSE; - } - return EINA_TRUE; -} - -static Evas_Object *_access_object_get(Evas_Object *obj, const char *part) -{ - if(obj == NULL || part == NULL){ - LOCK_SCREEN_TRACE_ERR(""); - return NULL; - } - Evas_Object *to = NULL; - Evas_Object *ao = NULL; - to = (Evas_Object *)edje_object_part_object_get(elm_layout_edje_get(obj), part); - if(to == NULL) { - LOCK_SCREEN_TRACE_ERR(""); - return NULL; - } - ao = elm_access_object_get(to); - if(ao == NULL) { - ao = elm_access_object_register(to, obj); - } - return ao; -} - -const char *_lock_info_access_activate_cb(void *data, Evas_Object *obj) -{ - struct appdata *ad = data; - if(ad == NULL || obj == NULL) { - return NULL; - } - if(ad->ly_main == NULL || ad->info == NULL) { - return NULL; - } - - const char *text = NULL; - Eina_Strbuf *str_buf = NULL; - str_buf = eina_strbuf_new(); - if(str_buf == NULL) { - LOCK_SCREEN_TRACE_ERR("eina_strbuf_new() failed"); - return NULL; - } - - text = elm_object_part_text_get(ad->info, "txt.clock"); - if(text) { - text = evas_textblock_text_markup_to_utf8(NULL, text); - if(text) - eina_strbuf_append(str_buf, text); - } - - text = elm_object_part_text_get(ad->info, "txt.date"); - if(text) { - text = evas_textblock_text_markup_to_utf8(NULL, text); - if(text) - eina_strbuf_append(str_buf, text); - } - - text = strdup(eina_strbuf_string_get(str_buf)); - eina_strbuf_free(str_buf); - - return text?strdup(text):NULL; -} - -static void _response_cb(void *data, Evas_Object *obj, void *event_info) -{ - elm_exit(); -} - -static Eina_Bool _init_widget_cb(void *data) -{ - struct appdata *ad = data; - LOGD("[ == %s == ]", __func__); - if (ad == NULL) - return ECORE_CALLBACK_CANCEL; - - ad->slider = _make_slider(ad->ly_main); - evas_object_resize(ad->slider, ad->win_w, SLIDER_RATIO_H * ad->win_h); - evas_object_move(ad->slider, 0, SLIDER_RATIO_Y * ad->win_h); - evas_object_show(ad->slider); - evas_object_geometry_get( - edje_object_part_object_get(_EDJ(ad->slider), "lock.wrapper.image.l"), - &ad->slider_rel1.x, &ad->slider_rel1.y, &ad->slider_rel1.w, - &ad->slider_rel1.h); - evas_object_geometry_get( - edje_object_part_object_get(_EDJ(ad->slider), "lock.wrapper.image.r"), - &ad->slider_rel2.x, &ad->slider_rel2.y, &ad->slider_rel2.w, - &ad->slider_rel2.h); - - set_sim_state(ad); - - ad->info = elm_layout_add(ad->win); - elm_layout_file_set(ad->info, EDJEFILE, "lock-info"); - evas_object_show(ad->info); - elm_object_part_content_set(ad->ly_main, "rect.info", ad->info); - _set_info(ad); - - if(_init_heynoti(ad) != EXIT_SUCCESS) { - LOCK_SCREEN_TRACE_DBG("heynoti ERR..!!"); - } - - if (vconf_notify_key_changed(VCONFKEY_PM_STATE, _pm_state_cb, ad) != 0) { - LOCK_SCREEN_TRACE_ERR("Fail vconf_notify_key_changed : VCONFKEY_PM_STATE"); - } - - int state = 0; - vconf_get_bool(VCONFKEY_LOCKSCREEN_EVENT_NOTIFICATION_DISPLAY, &state); - if(state){ - noti_process(ad); - } - - //evas_object_event_callback_add(ad->event_bg, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb_s, ad); - //evas_object_event_callback_add(ad->event_bg, EVAS_CALLBACK_MOUSE_UP, _mouse_up_cb_s, ad); - //evas_object_event_callback_add(ad->event_bg, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move_cb_s, ad); - evas_object_event_callback_add(ad->slider, EVAS_CALLBACK_MOUSE_DOWN, _slider_down_cb, ad); - evas_object_event_callback_add(ad->slider, EVAS_CALLBACK_MOUSE_UP, _slider_up_cb, ad); - evas_object_event_callback_add(ad->slider, EVAS_CALLBACK_MOUSE_MOVE, _slider_move_cb, ad); - if(evas_alloc_error() != EVAS_ALLOC_ERROR_NONE) { - LOCK_SCREEN_TRACE_ERR("evas_object_event_callback_add() failed"); - Evas_Object *popup = NULL; - Evas_Object *button = NULL; - popup = elm_popup_add(ad->ly_main); - evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_object_text_set(popup, _NOT_LOCALIZED("callback add failed")); - button = elm_button_add(popup); - elm_object_text_set(button, _S("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); - return ECORE_CALLBACK_CANCEL; - } else { - LOCK_SCREEN_TRACE_DBG("evas_object_event_callback_add() success"); - } - - edje_object_signal_callback_add(_EDJ(ad->ly_main), "exit,app", "event", _app_exit, ad); - - Eina_List *chain_list = NULL; - - ad->ao_bg = _access_object_get(ad->ly_main, "tts.bg"); - if(ad->ao_bg) { - elm_access_action_cb_set(ad->ao_bg, ELM_ACCESS_ACTION_MOUSE, _mouse_cb, ad); - elm_object_focus_allow_set(ad->ao_bg, EINA_TRUE); - chain_list = eina_list_append(chain_list, ad->ao_bg); - } - Evas_Object *ao_title = _access_object_get(ad->ly_main, "tts.title"); - if(ao_title) { - elm_access_info_set(ao_title, ELM_ACCESS_INFO, "Life Magazine"); - elm_access_info_set(ao_title, ELM_ACCESS_TYPE, ""); - elm_object_focus_allow_set(ao_title, EINA_TRUE); - chain_list = eina_list_append(chain_list, ao_title); - } - Evas_Object *ao_sim = _access_object_get(ad->ly_main, "tts.sim.state"); - if(ao_sim) { - const char *text_sim = elm_object_part_text_get(ad->ly_main, "sim.state"); - if(text_sim) { - elm_access_info_set(ao_sim, ELM_ACCESS_INFO, text_sim); - } - elm_access_info_set(ao_sim, ELM_ACCESS_TYPE, ""); - elm_object_focus_allow_set(ao_sim, EINA_TRUE); - chain_list = eina_list_append(chain_list, ao_sim); - } - Evas_Object *ao_info = _access_object_get(ad->ly_main, "tts.info"); - if(ao_info) { - elm_access_info_cb_set(ao_info, ELM_ACCESS_INFO, _lock_info_access_activate_cb, ad); - elm_access_info_set(ao_info, ELM_ACCESS_TYPE, ""); - elm_object_focus_allow_set(ao_info, EINA_TRUE); - chain_list = eina_list_append(chain_list, ao_info); - } - elm_object_focus_custom_chain_set(ad->ly_main, chain_list); - - vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_LOCK); - - return ECORE_CALLBACK_CANCEL; -} - -int _app_create(struct appdata *ad) -{ - if (ad == NULL) - return -1; - LOGD("[ == %s == ]", __func__); - - ecore_x_icccm_name_class_set(elm_win_xwindow_get(ad->win), "LOCK_SCREEN", "LOCK_SCREEN"); - evas_object_show(ad->win); - _set_win_property(ad->win); - - elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_SHOW); - - ad->ly_main = _make_top_layout(ad); - if (ad->ly_main == NULL) - return -1; - ad->event_bg = _get_bg_image(ad->ly_main); - if (ad->event_bg == NULL) - return -1; - elm_object_part_content_set(ad->ly_main, "sw.bg", ad->event_bg); - - return 0; -} - -#define _MAKE_ATOM(a, s) \ - do { \ - a = ecore_x_atom_get(s); \ - if (!a) \ - LOCK_SCREEN_TRACE_ERR("%s creation failed.", s); \ - } while(0) - -#define STR_ATOM_PANEL_SCROLLABLE_STATE "_E_MOVE_PANEL_SCROLLABLE_STATE" - -int _app_reset(struct appdata *ad) -{ - if (ad == NULL) - return -1; - - if (ad->emgc_ug) { - ug_destroy(ad->emgc_ug); - ad->emgc_ug = NULL; - } - - static int initted = 0; - if (ad->lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) { - if(initted == 0) { - Ecore_X_Atom ATOM_PANEL_SCROLLABLE_STATE = 0; - unsigned int val[3]; - - // init atoms - _MAKE_ATOM(ATOM_PANEL_SCROLLABLE_STATE, STR_ATOM_PANEL_SCROLLABLE_STATE ); - - val[0] = 0; // always enable F - val[1] = 0; // quickpanel enable F - val[2] = 0; // apptray enable F - - LOCK_SCREEN_TRACE_DBG("Set quickpanel disable"); - ecore_x_window_prop_card32_set(elm_win_xwindow_get(ad->win), - ATOM_PANEL_SCROLLABLE_STATE, - val, - 3); - - simple_password_layout_create(ad); - initted = 1; - } - }else { - if(initted == 0) { - ecore_idler_add(_init_widget_cb, ad); - initted = 1; - } - } - - return 0; -} - -int _app_resume(struct appdata *ad) -{ - if (ad == NULL) - return -1; - - return 0; -} - -int _app_terminate(struct appdata *ad) -{ - if (ad == NULL) { - LOGD("[_app_terminate] Invalid argument : struct appdata is NULL\n"); - return -1; - } - - vconf_ignore_key_changed(VCONFKEY_PM_STATE, _pm_state_cb); - fini_sim_state(ad); - _fini_heynoti(ad); - - LOGD("[%s] app termiante", __func__); - elm_exit(); - - return 0; -} - -static void __layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv) -{ - struct appdata *ad; - Evas_Object *base; - - if (!ug || !priv) - return; - - ad = priv; - base = ug_get_layout(ug); - if (!base) - return; - - switch(mode) { - case UG_MODE_FULLVIEW: - LOCK_SCREEN_TRACE_DBG("[%s:%d]", __func__, __LINE__); - evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(ad->win, base); - evas_object_show(base); - break; - case UG_MODE_FRAMEVIEW: - break; - default: - break; - } -} - -static void __result_cb(ui_gadget_h ug, service_h service, void *priv) -{ - LOCK_SCREEN_TRACE_DBG("result_cb\n"); -} - -static void __destroy_cb(ui_gadget_h ug, void *priv) -{ - struct appdata *ad = (struct appdata *)priv; - - if (!ug || !ad) { - return; - } - LOCK_SCREEN_TRACE_DBG("[%s:%d]", __func__, __LINE__); - - ug_destroy(ug); - ug = NULL; -} - -void launch_emgcall(struct appdata *ad) -{ - if (ad == NULL) - return; - - 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) { - service_destroy(service); - return; - } - cbs->layout_cb = __layout_cb; - cbs->result_cb = __result_cb; - cbs->destroy_cb = __destroy_cb; - cbs->priv = (void *)ad; - - LOCK_SCREEN_TRACE_DBG("[%s:%d]", __func__, __LINE__); - - if (!service) { - service_destroy(service); - free(cbs); - return; - } - - service_add_extra_data(service, "emergency_dialer", "emergency"); - ad->emgc_ug = ug_create(NULL, "dialer-efl", UG_MODE_FULLVIEW, service, cbs); - service_destroy(service); - free(cbs); - - if (!ad->emgc_ug) { - LOCK_SCREEN_TRACE_DBG("dialer ug failed"); - return; - } -} diff --git a/src/util.h b/src/util.h deleted file mode 100755 index dd007cb..0000000 --- a/src/util.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.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 __UTIL_H__ -#define __UTIL_H__ - -#include "lockscreen.h" - -void _set_win_property(Evas_Object *win); - -Evas_Object *_add_layout(Evas_Object *parent, const char *file, const char *group); -Evas_Object *_make_top_layout(struct appdata *ad); -Evas_Object *_get_bg_image(Evas_Object *parent); -void lockscreen_info_show(struct appdata *ad); -void lockscreen_info_hide(struct appdata *ad); -void launch_emgcall(struct appdata *ad); - -int _app_create(struct appdata *ad); -int _app_reset(struct appdata *ad); -int _app_terminate(struct appdata *ad); - -#endif diff --git a/src/various-utils.c b/src/various-utils.c new file mode 100755 index 0000000..41a040e --- /dev/null +++ b/src/various-utils.c @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "various-utils.h" + +#include +#include +#include + +int is_Korean_locale_enabled() +{ + char *locale = vconf_get_str(VCONFKEY_REGIONFORMAT); + return locale && strstr(locale,"ko_KR"); +} diff --git a/src/weather.c b/src/weather.c new file mode 100755 index 0000000..85d6526 --- /dev/null +++ b/src/weather.c @@ -0,0 +1,465 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include "lockscreen-lite.h" +#include "time.h" +#include "weather.h" + +#define WEATHER_LAYOUT_EDJE_FILE EDJE_DIR"weather.edj" +#define WEATHER_EDJE_GROUP "weather_layout" + +#define CELCIUS "c" + +enum { + CELCIUS_INDEX = 0, + FAHRENHEIT_INDEX, + UNITS_MAX_INDEX, +}; + +static struct { + char *city; + char *unit; + int weather_icon_index; + int temperature; + int is_notify; +} s_info = { + .city = NULL, + + .unit = NULL, + .weather_icon_index = 0, + .temperature = -1, + .is_notify = 0, +}; + +typedef struct{ + char *weather_icon; + int weather_info; +}weather_s; + +extern LKD_Module g_mod_weather; +static char *weathers[19] = { + IMAGE_DIR"weather_icon_01.png", + IMAGE_DIR"weather_icon_02.png", + IMAGE_DIR"weather_icon_03.png", + IMAGE_DIR"weather_icon_04.png", + IMAGE_DIR"weather_icon_05.png", + IMAGE_DIR"weather_icon_06.png", + IMAGE_DIR"weather_icon_07.png", + IMAGE_DIR"weather_icon_08.png", + IMAGE_DIR"weather_icon_09.png", + IMAGE_DIR"weather_icon_10.png", + IMAGE_DIR"weather_icon_11.png", + IMAGE_DIR"weather_icon_12.png", + IMAGE_DIR"weather_icon_13.png", + IMAGE_DIR"weather_icon_14.png", + IMAGE_DIR"weather_icon_15.png", + IMAGE_DIR"weather_icon_16.png", + IMAGE_DIR"weather_icon_17.png", + IMAGE_DIR"weather_icon_18.png", + IMAGE_DIR"weather_icon_19.png", +}; + +static char *weather_units[UNITS_MAX_INDEX] = { + IMAGE_DIR"celsius_icon.png", + IMAGE_DIR"fahrenheit_icon.png" +}; + +static Evas_Object *_default_layout_get(void) +{ + Evas_Object *base_layout = lockscreen_get_layout(); + retv_if(base_layout == NULL, NULL); + + Evas_Object *default_layout = elm_object_part_content_get(base_layout, "default_layout"); + + return default_layout; +} + +static Evas_Object *_layout_get(void) +{ + Evas_Object *default_layout = _default_layout_get(); + retv_if(default_layout == NULL, NULL); + + Evas_Object *layout = elm_object_part_content_get(default_layout, "weather_swallow"); + + return layout; +} + +static bool _weather_info_get(void) +{ + char *unit = NULL; + char *city = NULL; + + int weather_icon_id = -1; + int temperature = -1; + int weather_location = -1; + + if (vconf_get_bool(VCONFKEY_DAILYBRIEFING_WEATHER_MY_LOCATION, &weather_location) != 0) { + LOCK_SCREEN_TRACE_ERR("Failed to get weather_location"); + return false; + } + if (!weather_location) { + return false; + } + + if (vconf_get_int(VCONFKEY_DAILYBRIEFING_WEATHER_ICON_ID, &weather_icon_id) != 0) { + LOCK_SCREEN_TRACE_ERR("Failed to get weather icon id"); + return false; + } + + if (vconf_get_int(VCONFKEY_DAILYBRIEFING_WEATHER_TEMP, &temperature) != 0) { + LOCK_SCREEN_TRACE_ERR("Failed to get weather temperature"); + return false; + } + + unit = vconf_get_str(VCONFKEY_DAILYBRIEFING_WEATHER_TEMP_UNIT); + if (unit) { + if (strlen(unit) <= 0) { + LOCK_SCREEN_TRACE_ERR("Failed to get weather unit"); + free(unit); + return false; + } + } else { + LOCK_SCREEN_TRACE_ERR("Failed to get weather unit"); + return false; + } + + city = vconf_get_str(VCONFKEY_DAILYBRIEFING_WEATHER_CITY_NAME); + if (city) { + if (strlen(city) <= 0) { + LOCK_SCREEN_TRACE_ERR("Failed to get weather city"); + free(city); + free(unit); + return false; + } + } else { + LOCK_SCREEN_TRACE_ERR("Failed to get weather city"); + free(unit); + return false; + } + + s_info.temperature = temperature; + s_info.weather_icon_index = weather_icon_id; + free(s_info.city); + s_info.city = city; + free(s_info.unit); + s_info.unit = unit; + + return true; +} + +static bool _layout_icons_create(Evas_Object *layout) +{ + Evas_Object *weather_icon = NULL; + Evas_Object *unit_icon = NULL; + + if(!layout) + { + LOCK_SCREEN_TRACE_ERR("Failed to create weather icon"); + return false; + } + + if(s_info.weather_icon_index > 18)// || s_info.unit) + { + LOCK_SCREEN_TRACE_ERR("Invalid weather data, icon index[%d], unit[%d]", s_info.weather_icon_index,s_info.unit ); + return false; + } + + weather_icon = elm_image_add(layout); + if(!weather_icon) + { + LOCK_SCREEN_TRACE_ERR("Failed to create weather image"); + return false; + } + + if(!elm_image_file_set(weather_icon, weathers[s_info.weather_icon_index], NULL)) + { + LOCK_SCREEN_TRACE_ERR("Failed to load image"); + return false; + } + + elm_object_part_content_set(layout, "weather.icon.swallow", weather_icon); + evas_object_size_hint_weight_set(weather_icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(weather_icon); + + unit_icon = elm_image_add(layout); + if(!unit_icon) + { + LOCK_SCREEN_TRACE_ERR("Failed to create weather image"); + return false; + } + + if(!strncmp(s_info.unit, CELCIUS, strlen(s_info.unit))) + { + if(!elm_image_file_set(unit_icon, weather_units[CELCIUS_INDEX], NULL)) + { + LOCK_SCREEN_TRACE_ERR("Failed to load image"); + return false; + } + } + else + { + if(!elm_image_file_set(unit_icon, weather_units[FAHRENHEIT_INDEX], NULL)) + { + LOCK_SCREEN_TRACE_ERR("Failed to load image"); + return false; + } + } + + elm_object_part_content_set(layout, "unit.icon.swallow", unit_icon); + evas_object_size_hint_weight_set(unit_icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(unit_icon); + + return true; +} + +static void _layout_icons_destroy(Evas_Object *layout) +{ + ret_if(layout == NULL); + + Evas_Object *icons = NULL; + icons = elm_object_part_content_unset(layout, "weather.icon.swallow"); + if (icons != NULL) { + evas_object_del(icons); + } + + icons = elm_object_part_content_unset(layout, "unit.icon.swallow"); + if (icons != NULL) { + evas_object_del(icons); + } +} + +static void _text_update(Evas_Object *layout) +{ + char temperature[256] = {0,}; + + snprintf(temperature, 4, "%d", s_info.temperature); + + elm_object_part_text_set(layout, "temp.text", temperature); + elm_object_part_text_set(layout, "city.text", s_info.city); +} + +static Evas_Object *_layout_create(Evas_Object *parent) +{ + Evas_Object *layout = NULL; + + if(!parent) { + LOCK_SCREEN_TRACE_ERR("Invalid parent parameter"); + return NULL; + } + + layout = elm_layout_add(parent); + retv_if(layout == NULL, NULL); + + if(!elm_layout_file_set(layout, WEATHER_LAYOUT_EDJE_FILE , WEATHER_EDJE_GROUP)) { + LOCK_SCREEN_TRACE_ERR("Failed to load edje file"); + return NULL; + } + + _layout_icons_create(layout); + _text_update(layout); + + evas_object_show(layout); + + return layout; +} + +static Evas_Object *_view_create(Evas_Object *default_layout) +{ + retv_if(default_layout == NULL, NULL); + + if (_weather_info_get() == false) { + return NULL;; + } + + Evas_Object *weather = _layout_create(default_layout); + if (weather != NULL) { + elm_object_part_content_set(default_layout, "weather_swallow" , weather); + } + + return weather; +} + +static void _view_destroy(void) +{ + Evas_Object *default_layout = _default_layout_get(); + ret_if(default_layout == NULL); + + Evas_Object *layout = elm_object_part_content_unset(default_layout, "weather_swallow"); + if (layout) { + _layout_icons_destroy(layout); + evas_object_del(layout); + } +} + +static void _view_update(Evas_Object *layout) +{ + _layout_icons_destroy(layout); + _layout_icons_create(layout); + _text_update(layout); +} + +static void _weather_view_manage(void) +{ + Evas_Object *layout = _layout_get(); + + if (weather_is_visible() == 1) { + if (_weather_info_get() == true) { + if (layout == NULL) { + Evas_Object *view = _view_create(_default_layout_get()); + if (view == NULL) { + LOCK_SCREEN_TRACE_ERR("failed to create weather view"); + } + } else { + _view_update(layout); + } + } else { + _view_destroy(); + } + } else { + _view_destroy(); + } +} + +static void _vconf_cb(keynode_t *node, void *data) +{ + _weather_view_manage(); +} + +static void _event_register(void) +{ + if (s_info.is_notify == 0) { + if(vconf_notify_key_changed(VCONFKEY_DAILYBRIEFING_WEATHER_MY_LOCATION, _vconf_cb, NULL) != 0) { + LOCK_SCREEN_TRACE_ERR("Failed to notify VCONFKEY_DAILYBRIEFING_WEATHER_MY_LOCATION"); + } + if(vconf_notify_key_changed(VCONFKEY_DAILYBRIEFING_WEATHER_ICON_ID, _vconf_cb, NULL) != 0) { + LOCK_SCREEN_TRACE_ERR("Failed to notify VCONFKEY_DAILYBRIEFING_WEATHER_ICON_ID"); + } + if(vconf_notify_key_changed(VCONFKEY_DAILYBRIEFING_WEATHER_TEMP, _vconf_cb, NULL) != 0) { + LOCK_SCREEN_TRACE_ERR("Failed to notify VCONFKEY_DAILYBRIEFING_WEATHER_TEMP"); + } + if(vconf_notify_key_changed(VCONFKEY_DAILYBRIEFING_WEATHER_TEMP_UNIT, _vconf_cb, NULL) != 0) { + LOCK_SCREEN_TRACE_ERR("Failed to notify VCONFKEY_DAILYBRIEFING_WEATHER_MY_LOCATION"); + } + if(vconf_notify_key_changed(VCONFKEY_DAILYBRIEFING_WEATHER_CITY_NAME, _vconf_cb, NULL) != 0) { + LOCK_SCREEN_TRACE_ERR("Failed to notify VCONFKEY_DAILYBRIEFING_WEATHER_MY_LOCATION"); + } + s_info.is_notify = 1; + } +} + +static void _event_deregister(void) +{ + if (s_info.is_notify == 1) { + if(vconf_ignore_key_changed(VCONFKEY_DAILYBRIEFING_WEATHER_MY_LOCATION, _vconf_cb) != 0) { + LOCK_SCREEN_TRACE_ERR("Failed to notify VCONFKEY_DAILYBRIEFING_WEATHER_MY_LOCATION"); + } + if(vconf_ignore_key_changed(VCONFKEY_DAILYBRIEFING_WEATHER_ICON_ID, _vconf_cb) != 0) { + LOCK_SCREEN_TRACE_ERR("Failed to notify VCONFKEY_DAILYBRIEFING_WEATHER_ICON_ID"); + } + if(vconf_ignore_key_changed(VCONFKEY_DAILYBRIEFING_WEATHER_TEMP, _vconf_cb) != 0) { + LOCK_SCREEN_TRACE_ERR("Failed to notify VCONFKEY_DAILYBRIEFING_WEATHER_TEMP"); + } + if(vconf_ignore_key_changed(VCONFKEY_DAILYBRIEFING_WEATHER_TEMP_UNIT, _vconf_cb) != 0) { + LOCK_SCREEN_TRACE_ERR("Failed to notify VCONFKEY_DAILYBRIEFING_WEATHER_TEMP_UNIT"); + } + if(vconf_ignore_key_changed(VCONFKEY_DAILYBRIEFING_WEATHER_CITY_NAME, _vconf_cb) != 0) { + LOCK_SCREEN_TRACE_ERR("Failed to notify VCONFKEY_DAILYBRIEFING_WEATHER_CITY_NAME"); + } + s_info.is_notify = 0; + } +} + +void weather_view_init(Evas_Object *default_layout) +{ + ret_if(default_layout == NULL); + + module_init(&g_mod_weather, NULL); + + if (_view_create(default_layout) != NULL) { + _event_register(); + } else { + LOCK_SCREEN_TRACE_ERR("Failed to create weather layout"); + } +} + +void weather_view_fini(void) +{ + module_fini(&g_mod_weather); + + _view_destroy(); + _event_deregister(); +} + +int weather_is_visible(void) +{ +#if DISABLE_WEATHER + return 0; +#else + if (2 == lockscreen_get_emergency()) + return 0; + int enabled = 0; + property_get_bool(LKD_PROP_ID_WEATHER_STATE, &enabled); + + return enabled; +#endif +} + +/*! + * module + */ +static int _init(LKD_Module_Data *md) +{ + property_listen(LKD_PROP_ID_WEATHER_STATE); + + return LKD_RET_OK; +} + +static int _fini(LKD_Module_Data *md) +{ + property_ignore(LKD_PROP_ID_WEATHER_STATE); + + return LKD_RET_OK; +} + +static void _resume(LKD_Module_Data *md) +{ + _weather_view_manage(); + _event_register(); +} + +static void _pause(LKD_Module_Data *md) +{ + _event_deregister(); +} + +static void _property_changed(LKD_Module_Data *md, int property_id) +{ + _weather_view_manage(); +} + +LKD_Module g_mod_weather = { + .id = "weather", + .notifying = 1, + .property_list = LKD_PROP_ID_WEATHER_STATE, + .init = _init, + .fini = _fini, + .resume = _resume, + .pause = _pause, + .property_changed = _property_changed, +}; -- 2.7.4