diff options
author | Sehong Na <sehong.na@samsung.com> | 2014-05-31 12:56:06 +0900 |
---|---|---|
committer | Sehong Na <sehong.na@samsung.com> | 2014-05-31 12:56:06 +0900 |
commit | a8e70b588194917897c789a95c4f8f53874058f5 (patch) | |
tree | d1b126819dd825fe2c820f117168986df08cd9bd | |
download | w-launcher-app-tizen_2.3.tar.gz w-launcher-app-tizen_2.3.tar.bz2 w-launcher-app-tizen_2.3.zip |
Initialize Tizen 2.3submit/tizen_2.3/20140531.1032522.3a_releasetizen_2.3
-rw-r--r-- | AUTHORS | 1 | ||||
-rwxr-xr-x | CMakeLists.txt | 124 | ||||
-rwxr-xr-x | LICENSE | 75 | ||||
-rw-r--r-- | NOTICE | 2 | ||||
-rwxr-xr-x | data/CMakeLists.txt | 31 | ||||
-rw-r--r-- | data/images/b_home_screen_badge.9.png | bin | 0 -> 4242 bytes | |||
-rw-r--r-- | data/images/b_home_screen_default_icon.png | bin | 0 -> 21117 bytes | |||
-rw-r--r-- | data/images/b_home_screen_dialer_more_apps.png | bin | 0 -> 3733 bytes | |||
-rw-r--r-- | data/images/b_home_screen_more_apps_badge.9.png | bin | 0 -> 2830 bytes | |||
-rw-r--r-- | data/images/b_home_screen_scrollbar.9.png | bin | 0 -> 79 bytes | |||
-rwxr-xr-x | data/index.edc | 224 | ||||
-rwxr-xr-x | data/layout_clock.edc | 292 | ||||
-rwxr-xr-x | data/more_apps.edc | 263 | ||||
-rwxr-xr-x | data/scrollbar.edc | 531 | ||||
-rwxr-xr-x | data/scroller_box.edc | 282 | ||||
-rwxr-xr-x | data/w_launcher_app.edc | 115 | ||||
-rwxr-xr-x | data/watchlauncher_settings.xml | 9 | ||||
-rwxr-xr-x | data/watchlauncher_settings_emulator.xml | 4 | ||||
-rwxr-xr-x | debian/changelog | 7 | ||||
-rw-r--r-- | debian/com.samsung.w-launcher.install.in | 2 | ||||
-rw-r--r-- | debian/compat | 1 | ||||
-rw-r--r-- | debian/control | 17 | ||||
-rw-r--r-- | debian/dirs | 2 | ||||
-rw-r--r-- | debian/docs | 1 | ||||
-rwxr-xr-x | debian/rules | 119 | ||||
-rwxr-xr-x | include/app_tray.h | 28 | ||||
-rwxr-xr-x | include/clock.h | 30 | ||||
-rwxr-xr-x | include/dbus.h | 32 | ||||
-rwxr-xr-x | include/log.h | 77 | ||||
-rwxr-xr-x | include/logic.h | 31 | ||||
-rwxr-xr-x | include/main.h | 193 | ||||
-rwxr-xr-x | include/pkgmgr.h | 49 | ||||
-rwxr-xr-x | include/scroller.h | 26 | ||||
-rwxr-xr-x | include/util_efl.h | 29 | ||||
-rwxr-xr-x | include/xml_parse.h | 24 | ||||
-rw-r--r-- | org.tizen.w-launcher-app.desktop.in | 8 | ||||
-rwxr-xr-x | org.tizen.w-launcher-app.manifest | 8 | ||||
-rw-r--r-- | org.tizen.w-launcher-app.rule | 37 | ||||
-rwxr-xr-x | org.tizen.w-launcher-app.xml | 10 | ||||
-rwxr-xr-x | packaging/org.tizen.w-launcher-app.spec | 90 | ||||
-rw-r--r-- | po/CMakeLists.txt | 35 | ||||
-rw-r--r-- | po/ar.po | 66 | ||||
-rw-r--r-- | po/as.po | 66 | ||||
-rw-r--r-- | po/az.po | 66 | ||||
-rw-r--r-- | po/bg.po | 66 | ||||
-rw-r--r-- | po/bn.po | 66 | ||||
-rw-r--r-- | po/ca.po | 66 | ||||
-rw-r--r-- | po/cs.po | 66 | ||||
-rw-r--r-- | po/da.po | 66 | ||||
-rw-r--r-- | po/de.po | 66 | ||||
-rw-r--r-- | po/de_DE.po | 3 | ||||
-rw-r--r-- | po/el_GR.po | 66 | ||||
-rw-r--r-- | po/en.po | 66 | ||||
-rw-r--r-- | po/en_PH.po | 66 | ||||
-rw-r--r-- | po/en_US.po | 66 | ||||
-rw-r--r-- | po/es_ES.po | 66 | ||||
-rw-r--r-- | po/es_MX.po | 3 | ||||
-rw-r--r-- | po/es_US.po | 66 | ||||
-rw-r--r-- | po/et.po | 66 | ||||
-rw-r--r-- | po/eu.po | 66 | ||||
-rw-r--r-- | po/fa.po | 66 | ||||
-rw-r--r-- | po/fi.po | 66 | ||||
-rwxr-xr-x | po/fil.po | 33 | ||||
-rw-r--r-- | po/fr.po | 66 | ||||
-rw-r--r-- | po/fr_CA.po | 66 | ||||
-rw-r--r-- | po/fr_FR.po | 3 | ||||
-rw-r--r-- | po/ga.po | 66 | ||||
-rw-r--r-- | po/gl.po | 66 | ||||
-rw-r--r-- | po/gu.po | 66 | ||||
-rw-r--r-- | po/he.po | 66 | ||||
-rw-r--r-- | po/hi.po | 66 | ||||
-rw-r--r-- | po/hr.po | 66 | ||||
-rw-r--r-- | po/hu.po | 66 | ||||
-rw-r--r-- | po/hy.po | 66 | ||||
-rw-r--r-- | po/id.po | 66 | ||||
-rw-r--r-- | po/is.po | 66 | ||||
-rw-r--r-- | po/it_IT.po | 66 | ||||
-rw-r--r-- | po/ja_JP.po | 66 | ||||
-rw-r--r-- | po/ka.po | 66 | ||||
-rw-r--r-- | po/khmer.po | 33 | ||||
-rw-r--r-- | po/kk.po | 66 | ||||
-rw-r--r-- | po/km.po | 66 | ||||
-rw-r--r-- | po/kn.po | 66 | ||||
-rw-r--r-- | po/ko_KR.po | 66 | ||||
-rw-r--r-- | po/lo.po | 66 | ||||
-rw-r--r-- | po/lt.po | 66 | ||||
-rw-r--r-- | po/lv.po | 66 | ||||
-rw-r--r-- | po/mk.po | 66 | ||||
-rw-r--r-- | po/ml.po | 66 | ||||
-rw-r--r-- | po/mr.po | 66 | ||||
-rw-r--r-- | po/ms.po | 66 | ||||
-rw-r--r-- | po/my.po | 66 | ||||
-rw-r--r-- | po/nb.po | 66 | ||||
-rw-r--r-- | po/ne.po | 66 | ||||
-rw-r--r-- | po/nl.po | 66 | ||||
-rw-r--r-- | po/nl_NL.po | 3 | ||||
-rw-r--r-- | po/or.po | 66 | ||||
-rw-r--r-- | po/pa.po | 66 | ||||
-rw-r--r-- | po/pl.po | 66 | ||||
-rw-r--r-- | po/pt_BR.po | 66 | ||||
-rw-r--r-- | po/pt_PT.po | 66 | ||||
-rw-r--r-- | po/ro.po | 66 | ||||
-rw-r--r-- | po/ru_RU.po | 66 | ||||
-rw-r--r-- | po/si.po | 66 | ||||
-rwxr-xr-x | po/sinhala.po | 33 | ||||
-rw-r--r-- | po/sk.po | 66 | ||||
-rw-r--r-- | po/sl.po | 66 | ||||
-rw-r--r-- | po/sq.po | 66 | ||||
-rw-r--r-- | po/sr.po | 66 | ||||
-rw-r--r-- | po/sv.po | 66 | ||||
-rw-r--r-- | po/ta.po | 66 | ||||
-rw-r--r-- | po/te.po | 66 | ||||
-rw-r--r-- | po/th.po | 66 | ||||
-rw-r--r-- | po/tl.po | 66 | ||||
-rw-r--r-- | po/tr_TR.po | 66 | ||||
-rw-r--r-- | po/uk.po | 66 | ||||
-rw-r--r-- | po/update-po.sh | 60 | ||||
-rw-r--r-- | po/ur.po | 66 | ||||
-rw-r--r-- | po/uz.po | 66 | ||||
-rw-r--r-- | po/vi.po | 66 | ||||
-rw-r--r-- | po/zh_CN.po | 66 | ||||
-rw-r--r-- | po/zh_HK.po | 66 | ||||
-rw-r--r-- | po/zh_TW.po | 66 | ||||
-rwxr-xr-x | src/app_tray.c | 458 | ||||
-rwxr-xr-x | src/clock.c | 363 | ||||
-rwxr-xr-x | src/dbus.c | 451 | ||||
-rwxr-xr-x | src/logic.c | 1300 | ||||
-rwxr-xr-x | src/main.c | 337 | ||||
-rwxr-xr-x | src/pkgmgr.c | 352 | ||||
-rwxr-xr-x | src/scroller.c | 1115 | ||||
-rwxr-xr-x | src/util_efl.c | 104 | ||||
-rwxr-xr-x | src/xml_parse.c | 191 |
132 files changed, 12535 insertions, 0 deletions
@@ -0,0 +1 @@ +Geunsun Lee<gs86.lee@samsung.com> diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100755 index 0000000..cf4e131 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,124 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(w-launcher-app C) + +SET(SRCS + src/main.c + src/util_efl.c + src/logic.c + src/scroller.c + src/pkgmgr.c + src/app_tray.c + src/xml_parse.c + src/dbus.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/apps/org.${VENDOR}.${PACKAGE}/data") +SET(LOCALEDIR "${RESDIR}/locale") +#SET(ICONDIR "/usr/share/icons/default/small") +SET(IMAGEDIR "${RESDIR}/images/${PACKAGE}") +SET(EDJDIR "${RESDIR}/edje") + +IF("${ARCH}" STREQUAL "arm") + OPTION(USE_ARM "Use Arm" ON) + ADD_DEFINITIONS("-DARM_TYPE") +ELSE() + OPTION(USE_EMULATOR "Use Emulator" ON) + ADD_DEFINITIONS("-DEMULATOR_TYPE") +ENDIF() +MESSAGE("ARCH: ${ARCH}") + +IF("${CMAKE_BUILD_TYPE}" STREQUAL "") + SET(CMAKE_BUILD_TYPE "Release") +ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") +MESSAGE("Build type: ${CMAKE_BUILD_TYPE}") + +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include) + +INCLUDE(FindPkgConfig) +pkg_check_modules(pkgs REQUIRED + capi-appfw-application + appcore-efl + ecore-x + ecore + evas + edje + vconf + deviced + utilX + bundle + pkgmgr + pkgmgr-info + dlog + minicontrol-viewer + minicontrol-monitor + libxml-2.0 + syspopup-caller +) + +IF(USE_ARM) +pkg_check_modules(pkgs_arm REQUIRED + capi-context-manager + dbus-1 + glib-2.0 + dbus-glib-1 + json +) +ENDIF() + +FOREACH(flag ${pkgs_CFLAGS}) + SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") +ENDFOREACH(flag) +FOREACH(flag ${pkgs_arm_CFLAGS}) + 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") + +FIND_PROGRAM(UNAME NAMES uname) +EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH") + +IF("${ARCH}" STREQUAL "arm") + ADD_DEFINITIONS("-DTARGET") + MESSAGE("add -DTARGET") +ENDIF("${ARCH}" STREQUAL "arm") + +ADD_DEFINITIONS("-DVENDOR=\"${VENDOR}\"") +ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"") +ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"") +ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"") +ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"") +ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"") +ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"") +#ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"") +ADD_DEFINITIONS("-DIMAGEDIR=\"${IMAGEDIR}\"") +ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"") + +#SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed") +SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed") + +ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS}) +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -lm) +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_arm_LDFLAGS} -lm) + +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR}) + +# install desktop file & icon +#CONFIGURE_FILE(${PKGNAME}.desktop.in ${CMAKE_BINARY_DIR}/${PKGNAME}.desktop) +INSTALL(FILES ${CMAKE_BINARY_DIR}/${PKGNAME}.xml DESTINATION /usr/share/packages) +#INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PKGNAME}.png DESTINATION ${ICONDIR}) +INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PKGNAME}.rule DESTINATION /etc/smack/accesses2.d) + +# data +ADD_SUBDIRECTORY(data) + +# i18n +ADD_SUBDIRECTORY(po) + @@ -0,0 +1,75 @@ +Flora License + +Version 1.0, May, 2012 + +http://www.tizenopensource.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 Compatibility Definition Document and passes the Compatibility Test Suite 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. + +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.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.tizenopensource.org/license + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. @@ -0,0 +1,2 @@ +Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt new file mode 100755 index 0000000..0f17e62 --- /dev/null +++ b/data/CMakeLists.txt @@ -0,0 +1,31 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) + +# install edj +ADD_CUSTOM_TARGET(w_launcher_app.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images ${EDJE_CFLAGS} + ${CMAKE_CURRENT_SOURCE_DIR}/w_launcher_app.edc w_launcher_app.edj + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/w_launcher_app.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} w_launcher_app.edj) +INSTALL(FILES w_launcher_app.edj DESTINATION ${EDJDIR}) + +ADD_CUSTOM_TARGET(scrollbar.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images ${EDJE_CFLAGS} + ${CMAKE_CURRENT_SOURCE_DIR}/scrollbar.edc scrollbar.edj + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/scrollbar.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} scrollbar.edj) +INSTALL(FILES scrollbar.edj DESTINATION ${EDJDIR}) + +# install images +INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/images/ DESTINATION ${IMAGEDIR} FILES_MATCHING PATTERN "*.png") + +IF(USE_ARM) + # install xml + INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/watchlauncher_settings.xml DESTINATION /opt/usr/share/w-launcher) + INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/watchlauncher_settings.xml DESTINATION /usr/apps/org.tizen.w-launcher-app/data) +ELSEIF(USE_EMULATOR) + # install xml + INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/watchlauncher_settings_emulator.xml DESTINATION /opt/usr/share/w-launcher/ RENAME watchlauncher_settings.xml) + INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/watchlauncher_settings_emulator.xml DESTINATION /usr/apps/org.tizen.w-launcher-app/data/ RENAME watchlauncher_settings.xml) +ENDIF() diff --git a/data/images/b_home_screen_badge.9.png b/data/images/b_home_screen_badge.9.png Binary files differnew file mode 100644 index 0000000..a9c606a --- /dev/null +++ b/data/images/b_home_screen_badge.9.png diff --git a/data/images/b_home_screen_default_icon.png b/data/images/b_home_screen_default_icon.png Binary files differnew file mode 100644 index 0000000..31417b3 --- /dev/null +++ b/data/images/b_home_screen_default_icon.png diff --git a/data/images/b_home_screen_dialer_more_apps.png b/data/images/b_home_screen_dialer_more_apps.png Binary files differnew file mode 100644 index 0000000..3897772 --- /dev/null +++ b/data/images/b_home_screen_dialer_more_apps.png diff --git a/data/images/b_home_screen_more_apps_badge.9.png b/data/images/b_home_screen_more_apps_badge.9.png Binary files differnew file mode 100644 index 0000000..6cfe2cf --- /dev/null +++ b/data/images/b_home_screen_more_apps_badge.9.png diff --git a/data/images/b_home_screen_scrollbar.9.png b/data/images/b_home_screen_scrollbar.9.png Binary files differnew file mode 100644 index 0000000..f8f8d7f --- /dev/null +++ b/data/images/b_home_screen_scrollbar.9.png diff --git a/data/index.edc b/data/index.edc new file mode 100755 index 0000000..07ee8be --- /dev/null +++ b/data/index.edc @@ -0,0 +1,224 @@ +/* + * + * Copyright (c) 2000 - 2012 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 INDEX_PAGECONTROL_IND_INC 50 8 +#define INDEX_PAGECONTROL_IND_MIN_INC 50 8 +#define INDEX_PAGECONTROL_FONT_COLOR_INC 255 255 255 +#define INDEX_PAGECONTROL_FONT_SIZE_INC 1 + +collections { + group { + name: "elm/index/base/vertical/w-launcher-app/index"; + alias: "elm/index/base/horizontal/w-launcher-app/index"; + parts { + part { name: "clip"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + visible: 0; + color: 255 255 255 0; + } + description { state: "active" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + part { name: "elm.swallow.index.0"; + type: SWALLOW; + scale: 1; + mouse_events: 0; + clip_to: "clip"; + description { + state: "default" 0.0; + align: 0.5 0.5; + rel1.relative: 0 0; + rel2.relative: 1 1; + } + } + part { name: "elm.swallow.event.0"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 0; + description { state: "default" 0.0; + align: 0.5 0.5; + } + } + part { + name: "access"; + type: RECT; + description { state: "default" 0.0; + fixed: 1 1; + rel1 { + to: "elm.swallow.index.0"; + offset: -3 0; + } + rel2 { + to: "elm.swallow.index.0"; + } + color: 0 0 0 0; + visible: 0; + } + description { state: "active" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + } + programs { + program { name: "active"; + signal: "elm,state,active"; + source: "elm"; + action: STATE_SET "active" 0.0; + transition: DECELERATE 0.5; + target: "clip"; + } + program { name: "inactive"; + signal: "elm,state,inactive"; + source: "elm"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.5; + target: "clip"; + } + program { + name: "access.active"; + signal: "elm,access,state,active"; + source: "elm"; + action: STATE_SET "active" 0.0; + target: "access"; + } + program { + name: "access.inactive"; + signal: "elm,access,state,inactive"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "access"; + } + } + } + group { + name: "elm/index/item/vertical/w-launcher-app/index"; + alias: "elm/index/item_odd/vertical/w-launcher-app/index"; + alias: "elm/index/item/horizontal/w-launcher-app/index"; + alias: "elm/index/item_odd/horizontal/w-launcher-app/index"; + images { + image: "./images/b_home_screen_scrollbar.9.png" COMP; + } + parts { + part { name:"bg"; + type : RECT; + scale: 1; + description { state: "default" 0.0; + min: INDEX_PAGECONTROL_IND_INC; + max: INDEX_PAGECONTROL_IND_INC; + fixed: 1 1; + visible: 0; + align: 0.5 0.5; + } + } +#if 0 + part { name: "indicator1"; + type: IMAGE; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + align: 0.5 0.5; + fixed: 1 1; + rel1.to: "bg"; + rel2.to: "bg"; + image { + normal: "../images/locator_bg.png"; + } + } + description { state: "active" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } +#endif + part { name: "indicator2"; + type: IMAGE; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + align: 0.5 0.5; + fixed: 1 1; + min: INDEX_PAGECONTROL_IND_MIN_INC; + max: INDEX_PAGECONTROL_IND_MIN_INC; + fixed: 1 1; + image.normal: "./images/b_home_screen_scrollbar.9.png"; + image.border: 3 3 3 3; + visible: 0; + } + description { state: "active" 0.0; + inherit: "default" 0.0; + min: INDEX_PAGECONTROL_IND_INC; + max: INDEX_PAGECONTROL_IND_INC; + fixed : 1 1; + visible: 1; + } + } +#if 0 + part { name: "elm.text"; + type: TEXT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + color: INDEX_PAGECONTROL_FONT_COLOR_INC 0; + align: 0.5 0.5; + text { + font: "TIZEN:style=Bold"; + size: INDEX_PAGECONTROL_FONT_SIZE_INC; + min: 0 1; + //FIXME:values should be 0.5 0.5 when fonts are aligned correctly. + align: 0.53 0.56; + } + rel1 { to: "indicator2"; } + rel2 { to: "indicator2"; } + } + description { state: "active" 0.0; + inherit: "default" 0.0; + color: INDEX_PAGECONTROL_FONT_COLOR_INC 255; + } + } +#endif + } + programs { + program { name: "active"; + signal: "elm,state,active"; + source: "elm"; + action: STATE_SET "active" 0.0; + //transition: LINEAR 0.2; + //target: "indicator1"; + target: "indicator2"; + //target: "elm.text"; + } + program { name: "inactive"; + signal: "elm,state,inactive"; + source: "elm"; + action: STATE_SET "default" 0.0; + //transition: LINEAR 0.2; + //target: "indicator1"; + target: "indicator2"; + //target: "elm.text"; + } + } + } +} diff --git a/data/layout_clock.edc b/data/layout_clock.edc new file mode 100755 index 0000000..650e187 --- /dev/null +++ b/data/layout_clock.edc @@ -0,0 +1,292 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define CLOCK_WIDTH 320 +#define CLOCK_HEIGHT 320 + +#define SAMSUNG_SANS "Samsung Sans" + + group { + name : "layout_clock_date"; + parts{ + part { + name : "bg"; + type : RECT; + description { + state : "default" 0.0; + color : 0 0 0 0; + } + } + part { + name: "txt.clock"; + type: TEXT; + effect: SHADOW BOTTOM; + scale: 1; + mouse_events: 0; + description{ + state: "default" 0.0; + color: 255 255 255 255; + color2: 255 128 0 255; + rel1{ + relative: 26/CLOCK_WIDTH 74/CLOCK_HEIGHT; + to: "bg"; + } + rel2{ + relative: (26 + 268)/CLOCK_WIDTH (74 + 84)/CLOCK_HEIGHT; + to: "bg"; + } + text { + text: ""; + font: SAMSUNG_SANS":style=Light"; + text_class: SAMSUNG_SANS; + size: 100; + align: 0.5 0.5; + } + } + } + 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: 255 128 0 255; + rel1{ + relative: 0.0 (74 + 84 + 40)/CLOCK_HEIGHT; + to: "bg"; + } + rel2{ + relative: 1.0 (74 + 84 + 40 + 44)/CLOCK_HEIGHT; + to: "bg"; + } + text{ + text: ""; + font: SAMSUNG_SANS":style=Regular"; + text_class: SAMSUNG_SANS; + size: 36; + align: 0.5 0.5; + } + } + } + } //parts end + } //group end + + group { + name : "layout_clock_weather"; + images { + image: "weather/b_idle_clock_weather_temperature_c.png" COMP; + image: "weather/b_idle_clock_weather_temperature_f.png" COMP; + } + parts{ + part { + name : "bg"; + type : RECT; + description { + state : "default" 0.0; + color : 0 0 0 0; + } + } + part { + name: "txt.clock"; + type: TEXT; + effect: SHADOW BOTTOM; + scale: 1; + mouse_events: 0; + description{ + state: "default" 0.0; + color: 255 255 255 255; + color2: 255 128 0 255; + rel1{ + relative: 26/CLOCK_WIDTH 41/CLOCK_HEIGHT; + to: "bg"; + } + rel2{ + relative: (26 + 268)/CLOCK_WIDTH (41 + 84)/CLOCK_HEIGHT; + to: "bg"; + } + text { + text: ""; + font: SAMSUNG_SANS":style=Light"; + text_class: SAMSUNG_SANS; + size: 100; + align: 0.5 0.5; + } + } + } + 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: 255 128 0 255; + rel1{ + relative: 0.0 (41 + 84 + 20)/CLOCK_HEIGHT; + to: "bg"; + } + rel2{ + relative: 1.0 (41 + 84 + 20 + 44)/CLOCK_HEIGHT; + to: "bg"; + } + text{ + text: ""; + font: SAMSUNG_SANS":style=Regular"; + text_class: SAMSUNG_SANS; + size: 30; + align: 0.5 0.5; + } + } + } + part { + name: "txt.temp"; + type: TEXT; + effect: SHADOW BOTTOM; + scale: 1; + mouse_events: 0; + description{ + state: "default" 0.0; + color: 255 255 255 255; + rel1{ + relative: 46/CLOCK_WIDTH 220/CLOCK_HEIGHT; + to: "bg"; + } + rel2{ + relative: (46 + 76)/CLOCK_WIDTH (220 + 52)/CLOCK_HEIGHT; + to: "bg"; + } + text { + text: ""; + font: SAMSUNG_SANS":style=Regular"; + text_class: SAMSUNG_SANS; + size: 68; + align: 1.0 0.5; //right + } + } + description{ + state: "3digit" 0.0; + inherit: "default" 0.0; + rel1{ + relative: 30/CLOCK_WIDTH 220/CLOCK_HEIGHT; + to: "bg"; + } + rel2{ + relative: (30 + 108)/CLOCK_WIDTH (220 + 52)/CLOCK_HEIGHT; + to: "bg"; + } + } + } + part { + name : "rect.temp"; + type : RECT; + description { + state : "default" 0.0; + color : 0 0 0 0; + rel1{ + relative: 126/CLOCK_WIDTH 220/CLOCK_HEIGHT; + to: "bg"; + } + rel2{ + relative: (126 + 36)/CLOCK_WIDTH (220 + 52)/CLOCK_HEIGHT; + to: "bg"; + } + } + description { + state : "3digit" 0.0; + color : 100 100 100 150; + inherit: "default" 0.0; + rel1{ + relative: 142/CLOCK_WIDTH 220/CLOCK_HEIGHT; + to: "bg"; + } + rel2{ + relative: (142+ 36)/CLOCK_WIDTH (220 + 52)/CLOCK_HEIGHT; + to: "bg"; + } + } + } + part{ + name: "img.temp.unit"; + type: IMAGE; + description{ + state: "default" 0.0; + rel1{ + to: "rect.temp"; + } + rel2{ + to: "rect.temp"; + } + image.normal: "weather/b_idle_clock_weather_temperature_c.png"; + } + description{ + state: "fahrenheit" 0.0; + inherit: "default" 0.0; + image.normal: "weather/b_idle_clock_weather_temperature_f.png"; + } + } + part { + name : "rect.weather"; + type : RECT; + description { + state : "default" 0.0; + color : 0 0 0 0; + rel1{ + relative: 178/CLOCK_WIDTH 198/CLOCK_HEIGHT; + to: "bg"; + } + rel2{ + relative: (178 + 100)/CLOCK_WIDTH (198 + 100)/CLOCK_HEIGHT; + to: "bg"; + } + } + } + part { + name : "sw.weather.icon"; + type : SWALLOW; + description { + state : "default" 0.0; + fixed: 1 1; + rel1{ + to: "rect.weather"; + } + rel2{ + to: "rect.weather"; + } + } + } + } //parts end + programs{ + program{ + name: "change.weather.temp.celsius"; + signal: "change.weather.temp.celsius"; + source: "img.temp.unit"; + action: STATE_SET "default" 0.0; + target: "img.temp.unit"; + } + program{ + name: "change.weather.temp.fahrenheit"; + signal: "change.weather.temp.fahrenheit"; + source: "img.temp.unit"; + action: STATE_SET "fahrenheit" 0.0; + target: "img.temp.unit"; + } + } //programs end + } //group end diff --git a/data/more_apps.edc b/data/more_apps.edc new file mode 100755 index 0000000..5902b92 --- /dev/null +++ b/data/more_apps.edc @@ -0,0 +1,263 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define MORE_APPS_WIDTH 320 +#define MORE_APPS_HEIGHT 320 + +#define SAMSUNG_SANS "Samsung Sans" +#define TIZEN "Tizen" +#define MORE_APPS_FONT_SIZE 22 +#define MORE_APPS_FONT_COLOR "#FFFFFF" + +styles { + style { + name: "more_apps_textblock_style"; + base: "font="TIZEN":style=Regular font_size="MORE_APPS_FONT_SIZE" align=center color="MORE_APPS_FONT_COLOR" text_class=tizen wrap=mixed ellipsis=1.0"; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "hilight" "+ font="SAMSUNG_SANS":style=Bold"; + tag: "b" "+ font="SAMSUNG_SANS":style=Bold"; + tag: "tab" "\t"; + } +} + +#define MAKE_ICON_PART(num, rel1_x, rel1_y, rel2_x, rel2_y)\ + part{\ + name: "sw.icon."num;\ + type: SWALLOW;\ + mouse_events : 0;\ + scale : 1;\ + description{\ + state: "default" 0.0;\ + fixed: 1 1;\ + rel1.to: "rect.icon."num;\ + rel2.to: "rect.icon."num;\ + }\ + }\ + part{\ + name: "rect.icon."num;\ + type: RECT;\ + mouse_events : 1;\ + scale : 1;\ + description{\ + state: "default" 0.0;\ + color : 0 0 0 0;\ + rel1{ relative: rel1_x/MORE_APPS_WIDTH rel1_y/MORE_APPS_HEIGHT; to: "bg"; }\ + rel2{ relative: rel2_x/MORE_APPS_WIDTH rel2_y/MORE_APPS_HEIGHT; to: "bg"; }\ + }\ + }\ + part {\ + name : "txt.app.name."num;\ + type : TEXTBLOCK;\ + effect: SHADOW BOTTOM;\ + scale: 1;\ + mouse_events: 0;\ + description {\ + state : "default" 0.0;\ + color : 255 255 255 255;\ + fixed : 1 1;\ + rel1 { to : "rect.icon."num; offset: -24 (96+5); }\ + rel2 { to : "rect.icon."num; offset: 25 (5+48+7); }\ + text {\ + style : "more_apps_textblock_style";\ + min : 0 1;\ + align : 0.0 0.0;\ + }\ + }\ + }\ + part {\ + name : "rect.app.name."num;\ + type : RECT;\ + scale : 1;\ + description {\ + state : "default" 0.0;\ + color : 0 0 0 0;\ + rel1.to : "txt.app.name."num;\ + rel2.to : "txt.app.name."num;\ + }\ + }\ + part {\ + name : "img.badge."num;\ + type : IMAGE;\ + mouse_events : 0;\ + description {\ + state : "default" 0.0;\ + rel1 { relative: 0/MORE_APPS_WIDTH 0/MORE_APPS_HEIGHT; to : "rect.icon."num; offset: 68 0; }\ + rel2 { relative: 42/MORE_APPS_WIDTH 48/MORE_APPS_HEIGHT; to : "rect.icon."num; offset: (68+40) 46; }\ + image { normal: "b_home_screen_more_apps_badge.9.png"; border: 1 1 1 1; }\ + visible: 0;\ + }\ + description {\ + state : "1digit" 0.0;\ + inherit: "default" 0.0;\ + visible: 1;\ + }\ + description {\ + state : "2digit" 0.0;\ + inherit: "default" 0.0;\ + rel1 { relative: 0/MORE_APPS_WIDTH 0/MORE_APPS_HEIGHT; to : "rect.icon."num; offset: 64 0; }\ + rel2 { relative: 42/MORE_APPS_WIDTH 48/MORE_APPS_HEIGHT; to : "rect.icon."num; offset: (64+50) 46; }\ + visible: 1;\ + }\ + description {\ + state : "3digit" 0.0;\ + inherit: "default" 0.0;\ + rel1 { relative: 0/MORE_APPS_WIDTH 0/MORE_APPS_HEIGHT; to : "rect.icon."num; offset: 60 0; }\ + rel2 { relative: 42/MORE_APPS_WIDTH 48/MORE_APPS_HEIGHT; to : "rect.icon."num; offset: (60+58) 46; }\ + visible: 1;\ + }\ + }\ + part {\ + name : "txt.badge."num;\ + type : TEXT;\ + effect: SHADOW BOTTOM;\ + scale: 1;\ + mouse_events: 0;\ + description {\ + state : "default" 0.0;\ + color : 255 255 255 255;\ + rel1 { to : "img.badge."num; }\ + rel2 { to : "img.badge."num; }\ + text {\ + text: "";\ + font: TIZEN":style=Bold";\ + text_class: "tizen";\ + size : 24;\ + align : 0.5 0.5;\ + }\ + visible: 1;\ + }\ + description {\ + state : "show" 0.0;\ + inherit: "default" 0.0;\ + visible: 1;\ + }\ + }\ + +#define MAKE_ICON_PROGRAM(num)\ + program{\ + name: "clicked,rect,icon,"num;\ + signal: "mouse,clicked,*";\ + source: "rect.icon."num;\ + action: SIGNAL_EMIT "clicked,rect,icon,"num "*";\ + }\ + program{\ + name: "clicked,txtrect,icon,"num;\ + signal: "mouse,clicked,*";\ + source: "rect.app.name."num;\ + action: SIGNAL_EMIT "clicked,txtrect,icon,"num "*";\ + }\ + program{\ + name: "change,badge,hidden,"num;\ + signal: "change,badge,hidden,"num;\ + source: "img.badge."num;\ + action: STATE_SET "default" 0.0;\ + target: "img.badge."num;\ + }\ + program{\ + name: "change,badge,1digit,"num;\ + signal: "change,badge,1digit,"num;\ + source: "img.badge."num;\ + action: STATE_SET "1digit" 0.0;\ + target: "img.badge."num;\ + }\ + program{\ + name: "change,badge,2digit,"num;\ + signal: "change,badge,2digit,"num;\ + source: "img.badge."num;\ + action: STATE_SET "2digit" 0.0;\ + target: "img.badge."num;\ + }\ + program{\ + name: "change,badge,3digit,"num;\ + signal: "change,badge,3digit,"num;\ + source: "img.badge."num;\ + action: STATE_SET "3digit" 0.0;\ + target: "img.badge."num;\ + }\ + program{\ + name: "show,txt,badge,"num;\ + signal: "show,txt,badge,"num;\ + source: "txt.badge."num;\ + action: STATE_SET "show" 0.0;\ + target: "txt.badge."num;\ + }\ + program{\ + name: "hide,txt,badge,"num;\ + signal: "hide,txt,badge,"num;\ + source: "txt.badge."num;\ + action: STATE_SET "default" 0.0;\ + target: "txt.badge."num;\ + }\ + + group { + name : "layout_more_apps"; + parts{ + part { + name : "bg"; + type : RECT; + description { + state : "default" 0.0; + color : 0 0 0 255; + } + } + part { + name : "sw.scroller.apps"; + type : SWALLOW; + mouse_events : 1; + scale : 1; + description { + state : "default" 0.0; + fixed: 1 1; + rel1 { + relative : 0.0 0.0; + to : "bg"; + } + rel2 { + relative : 1.0 1.0; + to : "bg"; + } + } + } + } //parts end + } //group end + + group { + name : "app_tray"; + images { + image: "b_home_screen_more_apps_badge.9.png" COMP; + } + parts{ + part { + name : "bg"; + type : RECT; + description { + state : "default" 0.0; + color : 0 0 0 0; + } + } + MAKE_ICON_PART(0, 37, 4, (37+96), (4+96)); + MAKE_ICON_PART(1, (37+96+54), 4, (37+96+54+96), (4+96)); + MAKE_ICON_PART(2, 37, (4+96+5+48+8), (37+96), (4+96+5+48+8+96)); + MAKE_ICON_PART(3, (37+96+54), (4+96+5+48+8), (37+96+54+96), (4+96+5+48+8+96)); + } //parts end + programs{ + MAKE_ICON_PROGRAM(0); + MAKE_ICON_PROGRAM(1); + MAKE_ICON_PROGRAM(2); + MAKE_ICON_PROGRAM(3); + } //programs end + } //group end diff --git a/data/scrollbar.edc b/data/scrollbar.edc new file mode 100755 index 0000000..dd3be54 --- /dev/null +++ b/data/scrollbar.edc @@ -0,0 +1,531 @@ +/* + * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved + * + * PROPRIETARY/CONFIDENTIAL + * + * This software is the confidential and proprietary information of SAMSUNG + * ELECTRONICS ("Confidential Information"). You agree and acknowledge that this + * software is owned by Samsung and you shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the license + * agreement you entered into with SAMSUNG ELECTRONICS. SAMSUNG make no + * representations or warranties about the suitability of the software, either + * express or implied, including but not limited to the implied warranties of + * merchantability, fitness for a particular purpose, or non-infringement. + * SAMSUNG shall not be liable for any damages suffered by licensee arising out + * of or releated to this software. + * + */ + +#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC 4 50 +#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_MAX_SIZE_INC 4 99999 +#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC 50 4 +#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_MAX_SIZE_INC 99999 4 +#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE 4 +#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 4 + +collections { +group { name: "elm/scroller/base/w-launcher-app/scrollbar"; + alias: "elm/carousel/base/default"; + alias: "elm/scroller/base/map_bubble"; + alias: "elm/gengrid/base/no_effect"; + alias: "elm/genlist/base/no_effect"; + + data { + item: "focus_highlight" "on"; + } + + script { + public sbvis_v, sbvis_h, sbalways_v, sbalways_h, sbvis_timer; + public sh_v, sh_h, edge_timer; + public timer0(val) { + new v; + v = get_int(sbvis_v); + if (v) { + v = get_int(sbalways_v); + if (!v) { + emit("do-hide-vbar", ""); + set_int(sbvis_v, 0); + } + } + v = get_int(sbvis_h); + if (v) { + v = get_int(sbalways_h); + if (!v) { + emit("do-hide-hbar", ""); + set_int(sbvis_h, 0); + } + } + set_int(sbvis_timer, 0); + return 0; + } + public timer2(val) { + emit("do-hide-vshadow", ""); + emit("do-hide-hshadow", ""); + set_int(edge_timer, 0); + return 0; + } + } +#if 0 + images { + image: "b_home_screen_scrollbar.9.png" COMP; + } +#endif + parts { + part { name: "bg"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + rel1.offset: 0 0; + rel2.offset: -1 -1; + color: 255 255 255 0; + } + } + part { name: "clipper"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + rel1.to: "bg"; + rel2.to: "bg"; + rel1.offset: 0 0; + rel2.offset: -1 -1; + } + } + part { name: "elm.swallow.content"; + clip_to: "clipper"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + rel1.to: "bg"; + rel2.to: "bg"; + rel1.offset: 0 0; + rel2.offset: -1 -1; + } + } + part { name: "sb_vbar_clip_master"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_vbar_clip"; + clip_to: "sb_vbar_clip_master"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_vbar_top_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE; + max: 0 SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE; + rel1.relative: 1.0 0.0; + rel2.relative: 1.0 0.0; + rel1.to: "elm.swallow.content"; + rel2.to: "elm.swallow.content"; + fixed: 1 1; + align: 1.0 0.0; + } + } + part { name: "sb_vbar_bottom_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE; + max: 0 SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE; + rel1.relative: 1.0 1.0; + rel2.relative: 1.0 1.0; + rel1.to: "elm.swallow.content"; + rel2.to: "elm.swallow.content"; + fixed: 1 1; + align: 1.0 1.0; + } + } + part { name: "sb_vbar"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + visible: 0; + min: SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC; + align: 1.0 0.0; + rel1 { + relative: 1.0 1.0; + offset: 0 0; + to_y: "sb_vbar_top_padding"; + to_x: "bg"; + } + rel2 { + relative: 1.0 0.0; + offset: -1 1; + to_y: "sb_vbar_bottom_padding"; + to_x: "bg"; + } + } + } + part { name: "elm.dragable.vbar"; + clip_to: "sb_vbar_clip"; + mouse_events: 0; + scale: 1; + type: RECT; + dragable { + x: 0 0 0; + y: 1 1 0; + confine: "sb_vbar"; + } + description { state: "default" 0.0; + fixed: 1 1; + min: SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC; + max: SCROLLER_DEFAULT_SCROLLBAR_VBAR_MAX_SIZE_INC; + color: 240 240 240 255; + rel1 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_vbar"; + } + rel2 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_vbar"; + } +#if 0 + image { + normal: "b_home_screen_scrollbar.9.png"; + border: 2 2 2 2; + border_scale: 1; + middle: DEFAULT; + } +#endif + } + } + part { name: "sb_hbar_clip_master"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_hbar_clip"; + clip_to: "sb_hbar_clip_master"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_hbar_left_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 0; + max: SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 0; + rel1.relative: 0.0 1.0; + rel2.relative: 0.0 1.0; + rel1.to: "elm.swallow.content"; + rel2.to: "elm.swallow.content"; + fixed: 1 1; + align: 0.0 1.0; + } + } + part { name: "sb_hbar_right_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 0; + max: SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 0; + rel1.relative: 1.0 1.0; + rel2.relative: 1.0 1.0; + rel1.to: "elm.swallow.content"; + rel2.to: "elm.swallow.content"; + fixed: 1 1; + align: 1.0 1.0; + } + } + part { name: "sb_hbar"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + visible: 0; + min: SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC; + align: 0.0 1.0; + rel1 { + relative: 1.0 1.0; + offset: 0 0; + to_x: "sb_hbar_left_padding"; + to_y: "bg"; + } + rel2 { + relative: 0.0 1.0; + offset: -1 -1; + to_x: "sb_hbar_right_padding"; + to_y: "bg"; + } + } + } + part { name: "elm.dragable.hbar"; + clip_to: "sb_hbar_clip"; + mouse_events: 0; + scale: 1; + type: RECT; + dragable { + x: 1 1 0; + y: 0 0 0; + confine: "sb_hbar"; + } + description { state: "default" 0.0; + fixed: 1 1; + min: SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC; + max: SCROLLER_DEFAULT_SCROLLBAR_HBAR_MAX_SIZE_INC; + color: 240 240 240 255; + rel1 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_hbar"; + } + rel2 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_hbar"; + } +#if 0 + image { + normal: "b_home_screen_scrollbar.9.png"; + border: 2 2 2 2; + border_scale: 1; + middle: DEFAULT; + } +#endif + } + } + part { name: "disabler"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + rel1.to: "clipper"; + rel2.to: "clipper"; + color: 0 0 0 0; + visible: 0; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 128 128 128 128; + } + } + } + programs { + program { name: "load"; + signal: "load"; + source: ""; + script { + set_state(PART:"sb_hbar_clip", "hidden", 0.0); + set_state(PART:"sb_vbar_clip", "hidden", 0.0); + set_int(sbvis_h, 0); + set_int(sbvis_v, 0); + set_int(sbalways_v, 0); + set_int(sbalways_h, 0); + set_int(sbvis_timer, 0); + emit("reload", "elm"); + } + } + + program { name: "vbar_show"; + signal: "elm,action,show,vbar"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "sb_vbar_clip_master"; + } + program { name: "vbar_hide"; + signal: "elm,action,hide,vbar"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "sb_vbar_clip_master"; + } + program { name: "vbar_show_always"; + signal: "elm,action,show_always,vbar"; + source: "elm"; + script { + new v; + v = get_int(sbvis_v); + v |= get_int(sbalways_v); + if (!v) { + set_int(sbalways_v, 1); + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + } + } + } + program { name: "vbar_show_notalways"; + signal: "elm,action,show_notalways,vbar"; + source: "elm"; + script { + new v; + v = get_int(sbalways_v); + if (v) { + set_int(sbalways_v, 0); + v = get_int(sbvis_v); + if (!v) { + emit("do-hide-vbar", ""); + set_int(sbvis_v, 0); + } + } + } + } + program { name: "sb_vbar_show"; + signal: "do-show-vbar"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.5; + target: "sb_vbar_clip"; + } + program { name: "sb_vbar_hide"; + signal: "do-hide-vbar"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 0.5; + target: "sb_vbar_clip"; + } + + program { name: "hbar_show"; + signal: "elm,action,show,hbar"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "sb_hbar_clip_master"; + } + program { name: "hbar_hide"; + signal: "elm,action,hide,hbar"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "sb_hbar_clip_master"; + } + program { name: "hbar_show_always"; + signal: "elm,action,show_always,hbar"; + source: "elm"; + script { + new v; + v = get_int(sbvis_h); + v |= get_int(sbalways_h); + if (!v) { + set_int(sbalways_h, 1); + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + } + } + } + program { name: "hbar_show_notalways"; + signal: "elm,action,show_notalways,hbar"; + source: "elm"; + script { + new v; + v = get_int(sbalways_h); + if (v) { + set_int(sbalways_h, 0); + v = get_int(sbvis_h); + if (!v) { + emit("do-hide-hbar", ""); + set_int(sbvis_h, 0); + } + } + } + } + program { name: "sb_hbar_show"; + signal: "do-show-hbar"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.5; + target: "sb_hbar_clip"; + } + program { name: "sb_hbar_hide"; + signal: "do-hide-hbar"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 0.5; + target: "sb_hbar_clip"; + } + + program { name: "scroll"; + signal: "elm,action,scroll"; + source: "elm"; + script { + new v; + v = get_int(sbvis_v); + v |= get_int(sbalways_v); + if (!v) { + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + } + v = get_int(sbvis_h); + v |= get_int(sbalways_h); + if (!v) { + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + } + v = get_int(sbvis_timer); + if (v > 0) cancel_timer(v); + v = timer(1.0, "timer0", 0); + set_int(sbvis_timer, v); + } + } + program { name: "disable"; + signal: "elm,state,disabled"; + source: "elm"; + action: STATE_SET "disabled" 0.0; + target: "disabler"; + } + program { name: "enable"; + signal: "elm,state,enabled"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "disabler"; + } + program { name: "show"; + signal: "show"; + source: ""; + script { + new v; + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + v = get_int(sbalways_v); + if (!v) { + v = get_int(sbvis_timer); + if (v > 0) cancel_timer(v); + v = timer(1.0, "timer0", 0); + set_int(sbvis_timer, v); + } + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + v = get_int(sbalways_h); + if (!v) { + v = get_int(sbvis_timer); + if (v > 0) cancel_timer(v); + v = timer(1.0, "timer0", 0); + set_int(sbvis_timer, v); + } + } + } + } +} +} diff --git a/data/scroller_box.edc b/data/scroller_box.edc new file mode 100755 index 0000000..95f28a6 --- /dev/null +++ b/data/scroller_box.edc @@ -0,0 +1,282 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define BOX_WIDTH 320 +#define BOX_HEIGHT 320 + +#define SAMSUNG_SANS "Samsung Sans" +#define TIZEN "Tizen" + + group { + name : "scroller_box"; + images { + image: "b_home_screen_badge.9.png" COMP; + } + parts{ + part { + name : "bg"; + type : RECT; + description { + state : "default" 0.0; + color : 0 0 0 0; + } + } + part { + name : "sw.icon"; + type : SWALLOW; + mouse_events : 0; + scale : 1; + description { + state : "default" 0.0; + fixed: 1 1; + rel1 { + to : "rect.icon"; + } + rel2 { + to : "rect.icon"; + } + } + } + part { + name : "rect.icon"; + type : RECT; + mouse_events : 1; + scale : 1; + description { + state : "default" 0.0; + color : 0 0 0 0; + rel1 { + relative : 61/BOX_WIDTH 22/BOX_HEIGHT ; + to : "bg"; + } + rel2 { + relative : (61 + 198)/BOX_WIDTH (22 + 198)/BOX_HEIGHT; + to : "bg"; + } + } + } + part { + name : "img.badge"; + type : IMAGE; + mouse_events : 0; + description { + state : "default" 0.0; + rel1 { + relative : 202/BOX_WIDTH 28/BOX_HEIGHT ; + to : "bg"; + } + rel2 { + relative : (202 + 68)/BOX_WIDTH (28 + 80)/BOX_HEIGHT; + to : "bg"; + } + image { + normal: "b_home_screen_badge.9.png"; + border: 33 33 39 39; + } + visible: 0; + } + description { + state : "1digit" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state : "2digit" 0.0; + inherit: "default" 0.0; + rel1 { + relative : (202- 9)/BOX_WIDTH 28/BOX_HEIGHT ; + to : "bg"; + } + rel2 { + relative : (202 - 9 + 86)/BOX_WIDTH (28 + 80)/BOX_HEIGHT; + to : "bg"; + } + visible: 1; + } + description { + state : "3digit" 0.0; + inherit: "default" 0.0; + rel1 { + relative : (202- 15)/BOX_WIDTH 28/BOX_HEIGHT ; + to : "bg"; + } + rel2 { + relative : (202 - 15 + 98)/BOX_WIDTH (28 + 80)/BOX_HEIGHT; + to : "bg"; + } + visible: 1; + } + } + part { + name : "txt.badge"; + type : TEXT; + effect: SHADOW BOTTOM; + scale: 1; + mouse_events: 0; + description { + state : "default" 0.0; + color : 255 255 255 255; + rel1 { + to : "img.badge"; + } + rel2 { + to : "img.badge"; + } + text { + text: ""; + font: TIZEN":style=Bold"; + text_class: "tizen"; + size : 40; + align : 0.5 0.5; + } + visible: 0; + } + description { + state : "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name : "rect.text"; + type : RECT; + scale : 1; + description { + state : "default" 0.0; + color : 0 0 0 0; + rel1 { + relative : 10/BOX_WIDTH (22 + 198)/BOX_HEIGHT ; + to : "bg"; + } + rel2 { + relative : (10 + 300)/BOX_WIDTH (22 + 198 + 88)/BOX_HEIGHT; + to : "bg"; + } + } + } + part { + name : "txt.app.name"; + type : TEXT; + effect: SHADOW BOTTOM; + scale: 1; + mouse_events: 0; + description { + state : "default" 0.0; + color : 255 255 255 255; + fixed : 1 1; + rel1 { + to : "rect.text"; + } + rel2 { + to : "rect.text"; + } + text { + text: "App_Name"; + font: TIZEN":style=Regular"; + text_class: "tizen"; + size : 38; + align : 0.5 0.5; + } + } + } + } //parts end + programs{ + program{ + name: "clicked,rect,icon"; + signal: "mouse,clicked,*"; + source: "rect.icon"; + action: SIGNAL_EMIT "clicked,rect,icon" "*"; + } + program{ + name: "clicked,rect,text"; + signal: "mouse,clicked,*"; + source: "rect.text"; + action: SIGNAL_EMIT "clicked,rect,text" "*"; + } + program{ + name: "change,badge,hidden"; + signal: "change,badge,hidden"; + source: "img.badge"; + action: STATE_SET "default" 0.0; + target: "img.badge"; + } + program{ + name: "change,badge,1digit"; + signal: "change,badge,1digit"; + source: "img.badge"; + action: STATE_SET "1digit" 0.0; + target: "img.badge"; + } + program{ + name: "change,badge,2digit"; + signal: "change,badge,2digit"; + source: "img.badge"; + action: STATE_SET "2digit" 0.0; + target: "img.badge"; + } + program{ + name: "change,badge,3digit"; + signal: "change,badge,3digit"; + source: "img.badge"; + action: STATE_SET "3digit" 0.0; + target: "img.badge"; + } + program{ + name: "show,txt,badge"; + signal: "show,txt,badge"; + source: "txt.badge"; + action: STATE_SET "show" 0.0; + target: "txt.badge"; + } + program{ + name: "hide,txt,badge"; + signal: "hide,txt,badge"; + source: "txt.badge"; + action: STATE_SET "default" 0.0; + target: "txt.badge"; + } + } //programs end + } //group end + + group { + name : "idle_clock"; + parts{ + part { + name : "bg"; + type : RECT; + description { + state : "default" 0.0; + color : 0 0 0 0; + } + } + part { + name : "sw.clock"; + type : SWALLOW; + mouse_events : 1; + scale : 1; + description { + state : "default" 0.0; + fixed: 1 1; + rel1 { + to : "bg"; + } + rel2 { + to : "bg"; + } + } + } + } //parts end + } //group end diff --git a/data/w_launcher_app.edc b/data/w_launcher_app.edc new file mode 100755 index 0000000..b9e6f3a --- /dev/null +++ b/data/w_launcher_app.edc @@ -0,0 +1,115 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +collections { + +#define WIN_HEIGHT 320 +#define WIN_WIDTH 320 + +#include "scroller_box.edc" +#include "more_apps.edc" + + group { + name : "layout_main"; + parts{ + part { + name : "bg"; + type : RECT; + description { + state : "default" 0.0; + color : 0 0 0 255; + } + } + part { + name : "bg.color"; + type : RECT; + description { + state : "default" 0.0; + color : 0 0 0 255; + rel1 { + to : "bg"; + } + rel2 { + to : "bg"; + } + } + description { + state : "bg2" 0.0; + inherit: "default" 0.0; + color : 92 209 229 255; + } + description { + state : "bg3" 0.0; + inherit: "default" 0.0; + color : 255 102 0 255; + } + description { + state : "bg4" 0.0; + inherit: "default" 0.0; + color : 153 56 0 255; + } + } + part { + name : "sw.scroller"; + type : SWALLOW; + mouse_events : 1; + scale : 1; + description { + state : "default" 0.0; + fixed: 1 1; + rel1 { + relative : 0.0 0.0; + to : "bg"; + } + rel2 { + relative : 1.0 1.0; + to : "bg"; + } + } + } + } //parts end + programs{ + program{ + name: "change,bg,color,1"; + signal: "change,bg,color,1"; + source: "bg.color"; + action: STATE_SET "default" 0.0; + target: "bg.color"; + } + program{ + name: "change,bg,color,2"; + signal: "change,bg,color,2"; + source: "bg.color"; + action: STATE_SET "bg2" 0.0; + target: "bg.color"; + } + program{ + name: "change,bg,color,3"; + signal: "change,bg,color,3"; + source: "bg.color"; + action: STATE_SET "bg3" 0.0; + target: "bg.color"; + } + program{ + name: "change,bg,color,4"; + signal: "change,bg,color,4"; + source: "bg.color"; + action: STATE_SET "bg4" 0.0; + target: "bg.color"; + } + } //programs end + } //group end +} diff --git a/data/watchlauncher_settings.xml b/data/watchlauncher_settings.xml new file mode 100755 index 0000000..8b3359f --- /dev/null +++ b/data/watchlauncher_settings.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<data> + <favorite> + <packageName>org.tizen.clocksetting</packageName> + <className>org.tizen.clocksetting</className> + <screen>0</screen> + </favorite> +</data> diff --git a/data/watchlauncher_settings_emulator.xml b/data/watchlauncher_settings_emulator.xml new file mode 100755 index 0000000..052c723 --- /dev/null +++ b/data/watchlauncher_settings_emulator.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<data> +</data> diff --git a/debian/changelog b/debian/changelog new file mode 100755 index 0000000..2c88239 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,7 @@ +w-launcher-app (0.1.1-1) unstable; urgency=low + + * Initial Release. + * Git: /tizenw/w-launcher-app + * Tag: w-launcher-app_0.1.1-1 + + -- GeunSun Lee<gs86.lee@samsung.com> Tue, 08 Oct 2013 19:29:45 +0900 diff --git a/debian/com.samsung.w-launcher.install.in b/debian/com.samsung.w-launcher.install.in new file mode 100644 index 0000000..675d464 --- /dev/null +++ b/debian/com.samsung.w-launcher.install.in @@ -0,0 +1,2 @@ +@PREFIX@/* +/opt/share/applications/org.tizen.w-launcher-app.desktop diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +5 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..a022b8e --- /dev/null +++ b/debian/control @@ -0,0 +1,17 @@ +Source: w-launcher-app +Section: devel +Priority: extra +Maintainer: GeunSun Lee<gs86.lee@samsung.com> +Build-Depends: debhelper (>= 5), libappcore-efl-dev, libelm-dev, libmm-sound-dev, dlog-dev, libsvi-dev, libvconf-dev, libslp-utilx-dev, syspopup-dev, libbundle-dev, libglib2.0-dev, libui-gadget-dev +Standards-Version: 3.7.2 + +Package: org.tizen.w-launcher-app +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: w-launcher-app + +Package: org.tizen.w-launcher-app-dbg +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: w-launcher-app Debug Symbols + Debug symbols for w-launcher-app diff --git a/debian/dirs b/debian/dirs new file mode 100644 index 0000000..ca882bb --- /dev/null +++ b/debian/dirs @@ -0,0 +1,2 @@ +usr/bin +usr/sbin diff --git a/debian/docs b/debian/docs new file mode 100644 index 0000000..a0f0008 --- /dev/null +++ b/debian/docs @@ -0,0 +1 @@ +CMakeLists.txt diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..4f5cbcd --- /dev/null +++ b/debian/rules @@ -0,0 +1,119 @@ +#!/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 ?= /usr/apps/org.tizen.w-launcher-app +RESDIR ?= /usr/apps/org.tizen.w-launcher-app/res +DATADIR ?= /opt/usr/apps/org.tizen.w-launcher-app/data + +#ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) +# CFLAGS += -O0 +#else +# CFLAGS += -O2 +#endif +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + BUILD_TYPE=Debug +else + BUILD_TYPE=Release +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)" -DCMAKE_BUILD_TYPE="$(BUILD_TYPE)" + + 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.w-launcher-app-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/app_tray.h b/include/app_tray.h new file mode 100755 index 0000000..61002eb --- /dev/null +++ b/include/app_tray.h @@ -0,0 +1,28 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#ifndef __APP_TRAY_H__ +#define __APP_TRAY_H__ + +#include <Elementary.h> + +void moreapps_click_cb(void *data, Evas_Object *o, const char *emission, const char *source); +Evas_Object *create_apps_scroller(Evas_Object *parent, void *data); +void destroy_apps_scroller(void *data); + +#endif +/* __APP_TRAY_H__ */ diff --git a/include/clock.h b/include/clock.h new file mode 100755 index 0000000..f996a14 --- /dev/null +++ b/include/clock.h @@ -0,0 +1,30 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#ifndef __CLOCK_H__ +#define __CLOCK_H__ + +#include <Elementary.h> + +void update_time(void *data); +void pause_time(void *data); +void set_info(void *data); + +int get_formatted_date_from_utc_time(time_t intime, char *buf, int buf_len, const char *timezone, void *data, const char *format); + +#endif +/* __CLOCK_H__ */ diff --git a/include/dbus.h b/include/dbus.h new file mode 100755 index 0000000..9ad4474 --- /dev/null +++ b/include/dbus.h @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2000 - 2012 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 __DBUS_H__ +#define __DBUS_H__ + +#include <Evas.h> + +#include "logic.h" + +DBusHandlerResult on_dbus_message_received(DBusConnection *connection, DBusMessage *message, void *user_data); +int send_lcd_off_signal(int input); + +w_launcher_error_e dbus_gesture_handler_attach(void); +w_launcher_error_e dbus_low_battery_handler_attach(void); +w_launcher_error_e dbus_web_runtime_handler_attach(void); + +#endif //__DBUS_H__ diff --git a/include/log.h b/include/log.h new file mode 100755 index 0000000..f954c39 --- /dev/null +++ b/include/log.h @@ -0,0 +1,77 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#ifndef __LOG_H__ +#define __LOG_H__ + +#include <unistd.h> +#include <dlog.h> + +#undef LOG_TAG +#define LOG_TAG "W-LAUNCHER" +#define _E(fmt, arg...) LOGE("[%s:%d] "fmt,__FUNCTION__,__LINE__,##arg) +#define _D(fmt, arg...) LOGD("[%s:%d] "fmt,__FUNCTION__,__LINE__,##arg) +#define _SECURE_E(fmt, arg...) SECURE_LOGE("[%s:%d] "fmt,__FUNCTION__,__LINE__,##arg) +#define _SECURE_D(fmt, arg...) SECURE_LOGD("[%s:%d] "fmt,__FUNCTION__,__LINE__,##arg) + +#define retvm_if_timer(timer, expr, val, fmt, arg...) do { \ + if(expr) { \ + _E(fmt, ##arg); \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + timer = NULL; \ + return (val); \ + } \ +} while (0) + +#define retvm_if(expr, val, fmt, arg...) do { \ + if(expr) { \ + _E(fmt, ##arg); \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return (val); \ + } \ +} while (0) + +#define retv_if(expr, val) do { \ + if(expr) { \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return (val); \ + } \ +} while (0) + +#define retm_if(expr, fmt, arg...) do { \ + if(expr) { \ + _E(fmt, ##arg); \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return; \ + } \ +} while (0) + +#define ret_if(expr) do { \ + if(expr) { \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return; \ + } \ +} while (0) + +#define goto_if(expr, val) do { \ + if(expr) { \ + _E("(%s) -> goto", #expr); \ + goto val; \ + } \ +} while (0) + +#endif /* __LOG_H__ */ diff --git a/include/logic.h b/include/logic.h new file mode 100755 index 0000000..5542be7 --- /dev/null +++ b/include/logic.h @@ -0,0 +1,31 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#ifndef __LOGIC_H__ +#define __LOGIC_H__ + +int _app_create(struct appdata *ad); +Evas_Object *make_icon(struct appdata *ad, Evas_Object *parent, const char *path); +Eina_Bool display_lcd_on_cb(void *data); +void unregister_vconf(void); +int grab_key_new(struct appdata *ad, Ecore_X_Window _xwin, int grab_mode); +int ungrab_key_new(struct appdata *ad); +void launcher_focus_in_cb(void *data, Evas_Object *obj, void *ei); +void launcher_focus_out_cb(void *data, Evas_Object *obj, void *ei); + +#endif +/* __LOGIC_H__ */ diff --git a/include/main.h b/include/main.h new file mode 100755 index 0000000..988ec04 --- /dev/null +++ b/include/main.h @@ -0,0 +1,193 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#ifndef __MAIN_H__ +#define __MAIN_H__ + +#include <Elementary.h> +#include <appcore-efl.h> +#include <Ecore_X.h> +#include <glib.h> +#include <glib/gstdio.h> +#include <glib-object.h> +#include <glib/gprintf.h> + +#if !defined(PACKAGE) +# define PACKAGE "w-launcher-app" +#endif + +#if !defined(RESDIR) +# define RESDIR "/usr/apps/org.tizen.w-launcher-app/res" +#endif + +#if !defined(LOCALEDIR) +# define LOCALEDIR RESDIR"/locale" +#endif + +#if !defined(EDJDIR) +# define EDJDIR RESDIR"/edje" +#endif + +#if !defined(PKGNAME) +# define PKGNAME "org.tizen.w-launcher-app" +#endif + +#define EDJ_APP EDJDIR"/w_launcher_app.edj" + +#define S_(str) dgettext("sys_string", str) +#define T_(str) dgettext(PACKAGE, str) +#undef N_ +#define N_(str) (str) +#undef _ +#define _(str) gettext(str) + +#define _EDJ(x) elm_layout_edje_get(x) +#define _X(x) (x*elm_config_scale_get()) + +#define WIN_SIZE 320 +#define MAX_APP_NUM 128 + +#define SERVICE_OPERATION_MAIN "http://tizen.org/appcontrol/operation/main" + +#define USE_SETTING_IDLE_CLOCK 1 +#define USE_AUL_LAUNCH 0 + +#define WAKEUP_GESTURE_DBUS_PATH "/org/tizen/sensor/context/gesture/wakeup" +#define WAKEUP_GESTURE_DBUS_INTERFACE "org.tizen.sensor.context.gesture.wakeup" +#define WAKEUP_GESTURE_DBUS_MEMBER_CLOCK "Clock" + +#define APP_NAME_BT_POPUP "org.tizen.bt-connection-popup" + +#define APP_TYPE_WIDGET "wgt" +#define APP_TYPE_RPM "rpm" +#define APP_TYPE_TPK "tpk" + +enum { + POS_DOWN = 0, + POS_MOVE, + POS_UP, + POS_REC,//to record the pre positionbf + STEP, + POS_MAX +}; + +enum { + APP_STATE_PAUSE = 1, + APP_STATE_SERVICE, + APP_STATE_RESUME, + APP_STATE_TERMINATE, +}; + +typedef enum { + W_LAUNCHER_ERROR_OK = 0, + W_LAUNCHER_ERROR_FAIL = -1, + W_LAUNCHER_ERROR_DB_FAILED = -2, + W_LAUNCHER_ERROR_OUT_OF_MEMORY = -3, + W_LAUNCHER_ERROR_INVALID_PARAMETER = -4, + W_LAUNCHER_ERROR_NO_DATA = -5, +} w_launcher_error_e; + +typedef struct favorite_apps_info { + char *pkgname; + char *classname; + int order; +} favorite_apps_info; + +typedef struct menu_apps_info { + char *app_id; + char *app_name; + char *icon_path; + char *type; +} more_apps_info; + +struct appdata +{ + Evas_Object *win; + Evas_Object *ly_main; + int id_launch_effect; + + Evas_Object *win_apps; + Evas_Object *ly_apps; + + Ecore_X_Window input_win; + + int win_w; + int win_h; + + int app_state; + int count_grabed; + int powerkey_count; + Eina_Bool need_to_lcdon; + + Evas_Object *scroller; + Evas_Object *main_box; + Evas_Object *mapbuf[14]; + Evas_Object *page_layout[14]; + + int current_page; + int total_page; + int idle_clock_page; + + Evas_Object *scroller_apps; + Evas_Object *menuapps_box; + Evas_Object *mapbuf_apps[10]; + Evas_Object *page_layout_apps[10]; + + int current_page_apps; + int total_page_apps; + + Eina_Bool flag_mouse_down; + Eina_Bool flag_long_press; + Eina_Bool powerkey_lcd_state; + Evas_Coord posx[POS_MAX]; + Evas_Coord posy[POS_MAX]; + + Elm_Theme *theme; + + Ecore_Timer *timer; + Ecore_Timer *powerkey_timer; + Ecore_Timer *long_press_timer; + Ecore_Event_Handler *key_down_handler; + Ecore_Event_Handler *key_up_handler; + + Eina_Bool flag_wakeup_setting_clock; + Eina_Bool flag_launching_more_apps; + Ecore_Timer *moreapps_timer; + + /* relaunch flag */ + Eina_Bool flag_need_to_relaunch; + + /* more apps */ + GArray *more_apps_list; + + /* minicontrol */ + Evas_Object *minictl_idle_clock; + char *pkgname_idle_clock; + int pid_idle_clock; + char *appid_idle_clock; + + /* favorite apps */ + GArray *favorite_apps_list; + + /* DBUS */ + DBusConnection *connection; +}; + +struct appdata *w_launcher_app_data_get(void); + +#endif /* __MAIN_H__ */ + diff --git a/include/pkgmgr.h b/include/pkgmgr.h new file mode 100755 index 0000000..38c9d04 --- /dev/null +++ b/include/pkgmgr.h @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2000 - 2012 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 __PKGMGR_H__ +#define __PKGMGR_H__ + +#include <Evas.h> + +#include "logic.h" + +enum package_install_status { + UNKNOWN = 0x00, + DOWNLOAD_BEGIN, + DOWNLOADING, + DOWNLOAD_END, + INSTALL_BEGIN, + INSTALLING, + INSTALL_END, + UNINSTALL_BEGIN, + UNINSTALLING, + UNINSTALL_END, + UPDATE_BEGIN, + UPDATING, + UPDATE_END, + MAX_STATUS, +}; + +char *get_app_pkgname(const char *appid); +char *get_app_type(const char *pkgid); +char *get_app_id(const char *pkgid); +char *get_app_label(const char *appid); +char *get_app_icon(const char *appid); +bool w_launcher_load_app_list(void *data); + +#endif //__PKGMGR_H__ diff --git a/include/scroller.h b/include/scroller.h new file mode 100755 index 0000000..f522e74 --- /dev/null +++ b/include/scroller.h @@ -0,0 +1,26 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#ifndef __SCROLLER_H__ +#define __SCROLLER_H__ + +#include <Elementary.h> + +Evas_Object *create_main_scroller(Evas_Object *parent, void *data); + +#endif +/* __SCROLLER_H__ */ diff --git a/include/util_efl.h b/include/util_efl.h new file mode 100755 index 0000000..463e3e9 --- /dev/null +++ b/include/util_efl.h @@ -0,0 +1,29 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#ifndef __UTIL_EFL_H__ +#define __UTIL_EFL_H__ + +#include <Elementary.h> + +Ecore_X_Window _add_input_window(void); +Evas_Object *_add_window(const char *name, Eina_Bool _is_main); +Evas_Object *_add_layout(Evas_Object *parent, const char *file, const char *group); +Evas_Object* _create_bg(Evas_Object *parent); + +#endif +/* __UTIL_EFL_H__ */ diff --git a/include/xml_parse.h b/include/xml_parse.h new file mode 100755 index 0000000..d176827 --- /dev/null +++ b/include/xml_parse.h @@ -0,0 +1,24 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#ifndef __XML_PARSE_H__ +#define __XML_PARSE_H__ + +w_launcher_error_e xml_parse(void *data); + +#endif +/* __XML_PARSE_H__ */ diff --git a/org.tizen.w-launcher-app.desktop.in b/org.tizen.w-launcher-app.desktop.in new file mode 100644 index 0000000..f6062b4 --- /dev/null +++ b/org.tizen.w-launcher-app.desktop.in @@ -0,0 +1,8 @@ +Name=@PROJECT_NAME@ +Exec=@BINDIR@/@PROJECT_NAME@ +Icon=@PKGNAME@.png +Type=Application +Version=0.1.0-0 +NoDisplay=true +X-TIZEN-TaskManage=false +X-TIZEN-Removable=false diff --git a/org.tizen.w-launcher-app.manifest b/org.tizen.w-launcher-app.manifest new file mode 100755 index 0000000..d37fa72 --- /dev/null +++ b/org.tizen.w-launcher-app.manifest @@ -0,0 +1,8 @@ +<manifest> + <define> + <domain name="org.tizen.w-launcher-app"/> + </define> + <request> + <domain name="org.tizen.w-launcher-app"/> + </request> +</manifest> diff --git a/org.tizen.w-launcher-app.rule b/org.tizen.w-launcher-app.rule new file mode 100644 index 0000000..d553b4f --- /dev/null +++ b/org.tizen.w-launcher-app.rule @@ -0,0 +1,37 @@ +#subject +org.tizen.w-launcher-app device::app_logging w +org.tizen.w-launcher-app system::use_internet r +org.tizen.w-launcher-app net-config r +org.tizen.w-launcher-app xorg rw +org.tizen.w-launcher-app isf rwx +org.tizen.w-launcher-app sound_server rw +org.tizen.w-launcher-app syspopup::db rw +org.tizen.w-launcher-app dbus rwx +org.tizen.w-launcher-app pulseaudio rwxat +org.tizen.w-launcher-app ail::db rwx +org.tizen.w-launcher-app connman r +org.tizen.w-launcher-app system rwx +org.tizen.w-launcher-app immvibed rw +org.tizen.w-launcher-app svi-data rx +org.tizen.w-launcher-app org.tizen.setting rwx +org.tizen.w-launcher-app org.tizen.setting::default-resources rx +org.tizen.w-launcher-app org.tizen.add-viewer rx +org.tizen.w-launcher-app org.tizen.message rw +org.tizen.w-launcher-app e17 rx +org.tizen.w-launcher-app system::vconf_setting rw +org.tizen.w-launcher-app system::vconf_inhouse rw +org.tizen.w-launcher-app system::vconf_multimedia rw +org.tizen.w-launcher-app deviced rwx +org.tizen.w-launcher-app deviced::display rw +org.tizen.w-launcher-app aul::launch x +org.tizen.w-launcher-app aul::terminate x +org.tizen.w-launcher-app device::app_logging rwx +org.tizen.w-launcher-app wrt-installer r + +#object +aul org.tizen.w-launcher-app rx +dbus org.tizen.w-launcher-app rwx +system org.tizen.w-launcher-app w + +#ug include +org.tizen.w-launcher-app app.default include diff --git a/org.tizen.w-launcher-app.xml b/org.tizen.w-launcher-app.xml new file mode 100755 index 0000000..7bf4b91 --- /dev/null +++ b/org.tizen.w-launcher-app.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.w-launcher-app" version="0.1.18" install-location="internal-only"> + <label>w-launcher-app</label> + <author email="gs86.lee@samsung.com" href="www.samsung.com">GeunSun Lee</author> + <description>w-launcher-app Application</description> + <ui-application appid="org.tizen.w-launcher-app" exec="/usr/apps/org.tizen.w-launcher-app/bin/w-launcher-app" nodisplay="true" multiple="false" type="capp" taskmanage="false"> + <category name="http://tizen.org/category/homeapp"></category> + <label>w-launcher-app</label> + </ui-application> +</manifest> diff --git a/packaging/org.tizen.w-launcher-app.spec b/packaging/org.tizen.w-launcher-app.spec new file mode 100755 index 0000000..55f4719 --- /dev/null +++ b/packaging/org.tizen.w-launcher-app.spec @@ -0,0 +1,90 @@ +#sbs-git:slp/pkgs/v/w-launcher-app w-launcher-app 0.1.2 226202351de9fefb43756c36d215ca74f52431d0 +Name: org.tizen.w-launcher-app +Summary: w-launcher-app application (EFL) +Version: 0.1.18 +Release: 1 +Group: TO_BE/FILLED_IN +License: Flora Software License +Source0: %{name}-%{version}.tar.gz +BuildRequires: pkgconfig(appcore-efl) +BuildRequires: pkgconfig(ecore-x) +BuildRequires: pkgconfig(elementary) +BuildRequires: pkgconfig(utilX) +BuildRequires: pkgconfig(dlog) +BuildRequires: pkgconfig(pkgmgr) +BuildRequires: pkgconfig(pkgmgr-info) +BuildRequires: pkgconfig(deviced) +BuildRequires: pkgconfig(capi-appfw-application) +BuildRequires: pkgconfig(minicontrol-viewer) +BuildRequires: pkgconfig(minicontrol-monitor) +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(syspopup-caller) + +%ifarch %{arm} +%define ARCH arm +BuildRequires: pkgconfig(capi-context-manager) +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(dbus-glib-1) +BuildRequires: pkgconfig(json) +%else +%define ARCH emulator +%endif + +BuildRequires: cmake +BuildRequires: edje-bin +BuildRequires: embryo-bin +BuildRequires: gettext-devel +BuildRequires: hash-signer + +%description +w-launcher-app. + +%prep +%setup -q + +%define PREFIX /usr/apps/org.tizen.w-launcher-app + +%build +%if 0%{?tizen_build_binary_release_type_eng} +export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE" +export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE" +export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE" +%endif +RPM_OPT=`echo $CFLAGS|sed 's/-Wp,-D_FORTIFY_SOURCE=2//'` +export CFLAGS=$RPM_OPT +cmake -DCMAKE_INSTALL_PREFIX="%{PREFIX}" -DARCH=%{ARCH} +make %{?jobs:-j%jobs} + +%install +rm -rf %{buildroot} +%make_install +mkdir -p %{buildroot}/usr/share/license +mkdir -p %{buildroot}/opt/usr/share/w-launcher +cp LICENSE %{buildroot}/usr/share/license/%{name} +%define tizen_sign 1 +%define tizen_sign_base /usr/apps/org.tizen.w-launcher-app +%define tizen_sign_level public +%define tizen_author_sign 1 +%define tizen_dist_sign 1 + +%post +GOPTION="-g 5000 -f" +SOPTION="-s litewhome" + +#setting notification badge count in home screen +vconftool set -t int file/private/home/noti_count 0 $GOPTION $SOPTION + +%files +%manifest org.tizen.w-launcher-app.manifest +%defattr(-,root,root,-) +%{PREFIX}/* +#%{PREFIX}/bin/* +#%{PREFIX}/res/* +#%{PREFIX}/data/* +/etc/smack/accesses2.d/org.tizen.w-launcher-app.rule +/usr/share/packages/org.tizen.w-launcher-app.xml +/opt/usr/share/w-launcher/watchlauncher_settings.xml +/usr/apps/org.tizen.w-launcher-app/data/watchlauncher_settings.xml +#/usr/share/icons/default/small/org.tizen.w-launcher-app.png +/usr/share/license/%{name} diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt new file mode 100644 index 0000000..74161ec --- /dev/null +++ b/po/CMakeLists.txt @@ -0,0 +1,35 @@ +# for i18n + +SET(POFILES + ar.po as.po az.po bg.po bn.po ca.po cs.po + da.po de.po el_GR.po en.po en_PH.po en_US.po es_ES.po + es_US.po et.po eu.po fa.po fi.po fr.po fr_CA.po + ga.po gl.po gu.po he.po hi.po hr.po hu.po hy.po + id.po is.po it_IT.po ja_JP.po ka.po kk.po km.po + kn.po ko_KR.po lo.po lt.po lv.po mk.po ml.po + mr.po ms.po my.po nb.po ne.po nl.po or.po pa.po + pl.po pt_BR.po pt_PT.po ro.po ru_RU.po si.po + sk.po sl.po sq.po sr.po sv.po ta.po te.po th.po tl.po tr_TR.po + uk.po ur.po uz.po vi.po zh_CN.po zh_HK.po zh_TW.po +) + +SET(MSGFMT "/usr/bin/msgfmt") + +FOREACH(pofile ${POFILES}) + SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile}) + MESSAGE("PO: ${pofile}") + GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE) + GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE) + SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo) + ADD_CUSTOM_COMMAND( + OUTPUT ${moFile} + COMMAND ${MSGFMT} -o ${moFile} ${absPofile} + DEPENDS ${absPofile} + ) + INSTALL(FILES ${moFile} + DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo) + SET(moFiles ${moFiles} ${moFile}) +ENDFOREACH(pofile) + +MESSAGE(".mo files: ${moFiles}") +ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles}) diff --git a/po/ar.po b/po/ar.po new file mode 100644 index 0000000..6634e1d --- /dev/null +++ b/po/ar.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "تطبيقات" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "تتعذر الإزالة." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "انقر مع الاستمرار فوق عنصر واجهة المستخدم لنقله." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "تم تغيير الشاشة الرئيسية." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "جاري التحميل ..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "يتعذر تحميل البيانات. انقر لإعادة المحاولة." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "تتعذر إضافة التطبيق. لا تتوفّر مساحة إضافية على الشاشة الرئيسية." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "تتعذر إضافة التطبيق المصغر. لا تتوفّر مساحة إضافية على الشاشة الرئيسية." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "التطبيقات موجودة بالفعل." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "التطبيق المصغر موجود بالفعل." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "تم تغيير تخطيط الشاشة الرئيسية." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "سيُزال هذا التطبيق من الشاشة الرئيسية. لن يُحذف من الجهاز." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "إزالة التطبيق" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "إزالة التطبيق المصغر" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "ستتم إزالة هذا التطبيق المصغر من الشاشة الرئيسية. لن يُحذف من الجهاز." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "تتعذر إضافة التطبيق المصغر. تم الوصول إلى الحد الأقصى للتطبيقات المصغرة (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "تتعذر إضافة تطبيق. تم الوصول إلى أقصى عدد من التطبيقات (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "تتعذر إضافة صفحة." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "الوضع العادي" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "تم إلغاء تفعيل وضع توفير الطاقة." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "تم تفعيل وضع توفير الطاقة." + diff --git a/po/as.po b/po/as.po new file mode 100644 index 0000000..3a6c2ef --- /dev/null +++ b/po/as.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "এপ্প্চ" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "ৱিজেট" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "আঁতৰাবলৈ অক্ষম৷" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "ইয়াক লৈ যাবৰ বাবে এটা ৱিজেট টিপক আৰু ধৰি থাকক৷" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "গৃহ স্ক্ৰীণ সলনি কৰা হৈছে৷" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "লোড হৈ আছে..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "ডাটা লোড কৰিবলৈ অক্ষম৷ পুনঃচেষ্টা কৰিবৰ বাবে টিপক।" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "এপ্লিকেশ্বন যোগ কৰিবলৈ অক্ষম৷ গৃহ স্ক্ৰীণত কোনো কোঠা নাই৷" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "ৱিজেট যোগ কৰিবলৈ অক্ষম৷ গৃহ স্ক্ৰীণত কোনো কোঠা নাই৷" + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "এপ্লিকেশ্বন ইতিমধ্যে মজুত আছে৷" + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "ৱিজেট ইতিমধ্যে মজুত আছে৷" + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "গৃহ স্ক্ৰীণ লেআউট পৰিৱৰ্তন হৈছে৷" + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "গৃহ স্ক্রীণৰ পৰা এই এপ্লিকেশ্বন আঁতৰোৱা হ'ব৷ ইয়াক ডিভাইচৰ পৰা বিলোপ কৰিব নোৱাৰিব৷" + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "এপ্লিকেশ্বন আঁতৰাওক" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "ৱিজেট আঁতৰাওক" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "গৃহ স্ক্রীণৰ পৰা এই ৱিজেট আঁতৰোৱা হ'ব৷ ইয়াক ডিভাইচৰ পৰা বিলোপ কৰিব নোৱাৰিব৷" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "ৱিজেট যোগ কৰিবলৈ অক্ষম৷ সৰ্বাধিক সংখ্যক ৱিজেট (%d) উপনীত হৈছে৷" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "এপ্লিকেশ্বন যোগ কৰাত অক্ষম৷ সৰ্বাধিক সংখ্যক এপ্লিকেশ্বনত (%d) উপনীত হৈছে৷" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "পৃষ্ঠা যোগ কৰিবলৈ অক্ষম৷" + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "সাধাৰণ ম'ড" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "পাৱাৰ সংৰক্ষণ ম'ড অক্ষম কৰা হৈছে৷" + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "পাৱাৰ সংৰক্ষণ ম'ড সক্ষম৷" + diff --git a/po/az.po b/po/az.po new file mode 100644 index 0000000..87a058a --- /dev/null +++ b/po/az.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Proqramlar" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Qurğu" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Silmək mümkün deyil." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Yerini dəyişmək üçün piktoqrama vurub saxlayın." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Əsas ekran dəyişib." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Yüklənir..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Məlumatları yükləmək mümkün deyil. Yenidən cəhd etmək üçün vurun" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Proqram əlavə etmək mümkün olmadı. Əsas ekranda artıq yer yoxdur." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Piktoqram əlavə etmək mümkün olmadı. Əsas ekranda artıq yer yoxdur." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Proqram artıq mövcuddur." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Piktoqram artıq mövcuddur." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Əsas ekranın tərtibatı dəyişdirildi." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Bu proqram əsas ekrandan silinəcəkdir. O, cihazdan silinməyəcək." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Proqramı sil" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Piktoqramı sil" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Bu piktoqram əsas ekrandan silinəcəkdir. O, cihazdan silinməyəcək." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Piktoqram əlavə etmək mümkün deyil. Piktoqramların sayı maksimuma (%d) çatmışdır." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Proqram əlavə etmək mümkün olmadı. Proqramların sayı maksimuma (%d) çatmışdır." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Səhifə əlavə etmək mümkün deyil." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normal rejim" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Enerjiyə qənaət rejimi qeyri-aktiv edildi." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Enerjiyə qənaət rejimi aktivləşdirilmişdir." + diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 0000000..ceb5c54 --- /dev/null +++ b/po/bg.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Приложения" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Визуален елемент" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Не може да се премахне." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Чукнете и задръжте виз. ел., за да го преместите." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Началният екран е променен." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Зареждане" + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Данните не могат да се заредят. Чукнете, за да опитате отново." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Приложението не може да се добави. Няма повече място в началния екран." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Визуалният елемент не може да се добави. Няма повече място в началния екран." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Приложението вече съществува." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Визуалният елемент вече съществува." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Оформлението на началния екран е променено." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Това приложение ще бъде премахнато от началния екран. То няма да бъде изтрито от устройството." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Прем. на приложение" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Прем. на виз. елем." + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Този визуален елемент ще бъде премахнат от началния екран. Той няма да бъде изтрит от устройството." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Визуалният елемент не може да се добави. Достигнат е максималният брой визуални елементи (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Приложението не може да се добави. Достигнат е максималният брой приложения (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Страницата не може да се добави." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Нормален режим" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Режимът на пестене на енергия е деактивиран." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Режимът на пестене енергия е активиран." + diff --git a/po/bn.po b/po/bn.po new file mode 100644 index 0000000..37499c5 --- /dev/null +++ b/po/bn.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "অ্যাপস" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "উইজেট" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "অপসারণ করতে অক্ষম।" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "উইজেট সরাতে সেটি ট্যাপ করে ধরে থাকুন।" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "হোম স্ক্রিন পরিবর্তিত।" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "লোড হচ্ছে..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "তথ্য লোড করতে অক্ষম৷ পুনরায় চেষ্টা করতে ট্যাপ করুন৷" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "অ্যাপ্লিকেশন যোগ করতে অক্ষম। হোম স্ক্রিনে আর রুম নেই।" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "উইজেট যোগ করতে অক্ষম। হোম স্ক্রিনে আর রুম নেই।" + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "অ্যাপ্লিকেশন ইতিমধ্যে বিদ্যমান।" + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "উইজেট ইতিমধ্যে বিদ্যমান।" + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "হোম স্ক্রিনের বিন্যাস পরিবর্তন হয়েছে।" + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "হোম স্ক্রিন থেকে এই অ্যাপ্লিকেশনটি অপসারণ করা হবে। এটি ডিভাইস থেকে মোছা হবে না।" + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "অ্যাপ্লিকেশন সরান" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "উইজেট অপসারণ করুন" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "হোম স্ক্রিন থেকে এই উইজেটটি অপসারণ করা হবে। এটি ডিভাইস থেকে মোছা হবে না।" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "উইজেট যোগ করতে অক্ষম। উইজেটগুলির সর্বাধিক সংখ্যায় (%d) পৌঁছেছে।" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "অ্যাপ্লিকেশন যোগ করতে অক্ষম৷ অ্যাপ্লিকেশনের সর্বাধিক সংখ্যায় (%d) পৌঁছেছে৷" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "পৃষ্ঠা যোগ করতে অক্ষম।" + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "স্বাভাবিক মোড" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "পাওয়ার সাশ্রয় মোড অক্ষম হয়েছে।" + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "পাওয়ার সাশ্রয় মোড সক্ষম করা হয়েছে।" + diff --git a/po/ca.po b/po/ca.po new file mode 100644 index 0000000..60ee192 --- /dev/null +++ b/po/ca.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplicacions" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "No es pot eliminar" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Mantenir tocat un widget per moure'l" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Ha canviat la pantalla d'inici" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Carregant..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "No es poden carregar les dades. Toqui per tornar-ho a intentar." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "No es pot afegir l'aplicació. No hi ha més lloc a la pantalla d'inici." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "No es pot afegir el widget. No hi ha més lloc a la pantalla d'inici." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "L'aplicació ja existeix." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "El widget ja existeix." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "S'ha canviat el disseny de la pantalla d'inici." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "S'eliminarà aquesta aplicació de la pantalla d'inici. No s'esborrarà del dispositiu." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Eliminar aplicació" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Eliminar widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "S'eliminarà aquest widget de la pantalla d'inici. No s'esborrarà del dispositiu." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "No es pot afegir el widget. S'ha assolit el nombre màxim de widgets (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "No es pot afegir l'aplicació. S'ha assolit el nombre màxim d'aplicacions (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "No es pot afegir pàgina." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Mode normal" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Mode d'estalvi d'energia deshabilitat." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Mode d'estalvi d'energia habilitat." + diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 0000000..895570b --- /dev/null +++ b/po/cs.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplikace" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Nelze odstranit." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Klepnutím a podržením nástroje ho přesunete." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Domovská obrazovka byla změněna." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Nahrávám..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Data nelze načíst. Klepnutím opakujte akci." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Aplikaci nelze přidat. Na domovské obrazovce již není místo." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Nástroj nelze přidat. Na domovské obrazovce již není místo." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Aplikace již existuje." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Nástroj již existuje." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Rozložení domovské obrazovky bylo změněno." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Aplikace bude odebrána z domovské obrazovky, ale nebude odstraněna ze zařízení." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Odebrat aplikaci" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Odebrat nástroj" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Nástroj bude odebrán z domovské obrazovky, ale nebude odstraněn ze zařízení." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Nástroj nelze přidat. Bylo dosaženo maximálního počtu nástrojů (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Aplikaci nelze přidat. Bylo dosaženo maximálního počtu aplikací (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Nelze přidat stránku." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normální režim" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Úsporný režim byl vypnut." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Byl zapnut úsporný režim." + diff --git a/po/da.po b/po/da.po new file mode 100644 index 0000000..870eb93 --- /dev/null +++ b/po/da.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Programmer" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Kan ikke fjerne." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Tryk og hold en widget nede for at flytte den." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Startskærm ændret." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Indlæser data ..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Kan ikke indlæse data. Tap for at prøve igen." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Kunne ikke tilføje program. Ikke mere plads på startskærmen." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Kunne ikke tilføje widget. Ikke mere plads på startskærmen." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Programmet findes allerede." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widget findes allerede." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Layout for startskærm ændret." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Dette program vil blive fjernet fra startskærmen. Det vil ikke blive slettet fra enheden." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Fjern program" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Fjern widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Denne widget vil blive fjernet fra startskærmen. Det vil ikke blive slettet fra enheden." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Kan ikke tilføje widget. Det maksimale antal widgets (%d) er nået." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Kunne ikke tilføje program. Det maksimale antal programmer (%d) er nået." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Kunne ikke tilføje side." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normal tilstand" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Strømsparetilstand deaktiveret." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Strømbesparende tilstand er aktiveret." + diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..3161fc3 --- /dev/null +++ b/po/de.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Menü" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Entfernen nicht möglich" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Zum Verschieben des Widgets tippen und halten." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Startbildschirm geändert" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Lädt..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Daten konnten nicht geladen werden. Für erneuten Versuch tippen" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Anwendung kann nicht hinzugefügt werden. Kein Platz mehr auf dem Startbildschirm." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Widget kann nicht hinzugefügt werden. Kein Platz mehr auf dem Startbildschirm." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Anwendung ist bereits vorhanden." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widget bereits vorhanden." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Layout des Startbildschirms geändert." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Diese Anwendung wird vom Startbildschirm entfernt. Sie wird nicht vom Gerät gelöscht." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Anwendung entfernen" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Widget entfernen" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Dieses Widget wird vom Startbildschirm entfernt. Es wird nicht vom Gerät gelöscht." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Widget konnte nicht hinzugefügt werden. Maximale Anzahl von Widgets (%d) erreicht." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Anwendung konnte nicht hinzugefügt werden. Maximale Anzahl an Anwendungen (%d) erreicht." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Seite kann nicht hinzugefügt werden." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normalmodus" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Energiesparmodus deaktiviert." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Energiesparmodus aktiviert." + diff --git a/po/de_DE.po b/po/de_DE.po new file mode 100644 index 0000000..3bc0bb3 --- /dev/null +++ b/po/de_DE.po @@ -0,0 +1,3 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Menü" + diff --git a/po/el_GR.po b/po/el_GR.po new file mode 100644 index 0000000..45c6c4c --- /dev/null +++ b/po/el_GR.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Εφαρμογές" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Δεν είναι δυνατή η αφαίρεση." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Πατ. παρατετ. ένα widget για να το μετακινήσετε." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Η αρχική οθόνη άλλαξε." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Φόρτωση..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Δεν είναι δυνατή η φόρτωση δεδομένων. Πατήστε για να δοκιμάσετε ξανά." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Δεν είναι δυνατή η προσθήκη της εφαρμογής. Δεν υπάρχει χώρος στην αρχική οθόνη." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Δεν είναι δυνατή η προσθήκη του widget. Δεν υπάρχει χώρος στην αρχική οθόνη." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Η εφαρμογή υπάρχει ήδη." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Το widget υπάρχει ήδη." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Η διάταξη της αρχικής οθόνης άλλαξε." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Αυτή η εφαρμογή θα καταργηθεί από την αρχική οθόνη. Δεν πρόκειται να διαγραφεί από τη συσκευή." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Κατάργηση εφαρμογής" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Κατάργηση widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Αυτό το widget θα καταργηθεί από την αρχική οθόνη. Δεν πρόκειται να διαγραφεί από τη συσκευή." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Δεν είναι δυνατή η προσθήκη widget. Συμπληρώθηκε ο μέγιστος αριθμός widget (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Δεν είναι δυνατή η προσθήκη εφαρμογής. Συμπληρώθηκε ο μέγιστος αριθμός εφαρμογών (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Δεν είναι δυνατή η προσθήκη σελίδας." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Κανονική λειτουργία" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Η λειτουργία εξοικονόμησης ενέργειας απενεργοποιήθηκε." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Η λειτουργία εξοικονόμησης ενέργειας ενεργοποιήθηκε." + diff --git a/po/en.po b/po/en.po new file mode 100644 index 0000000..2713cbb --- /dev/null +++ b/po/en.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Apps" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Unable to remove." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Tap and hold a widget to move it." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Home screen changed." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Loading..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Unable to load data. Tap to retry." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Unable to add application. No more room on home screen." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Unable to add widget. No more room on home screen." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Application already exists." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widget already exists." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Home screen layout changed." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "This application will be removed from the home screen. It will not be deleted from the device." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Remove application" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Remove widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "This widget will be removed from the home screen. It will not be deleted from the device." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Unable to add widget. Maximum number of widgets (%d) reached." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Unable to add application. Maximum number of applications (%d) reached." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Unable to add page." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normal mode" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Power saving mode disabled." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Power saving mode enabled." + diff --git a/po/en_PH.po b/po/en_PH.po new file mode 100644 index 0000000..2713cbb --- /dev/null +++ b/po/en_PH.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Apps" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Unable to remove." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Tap and hold a widget to move it." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Home screen changed." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Loading..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Unable to load data. Tap to retry." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Unable to add application. No more room on home screen." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Unable to add widget. No more room on home screen." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Application already exists." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widget already exists." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Home screen layout changed." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "This application will be removed from the home screen. It will not be deleted from the device." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Remove application" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Remove widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "This widget will be removed from the home screen. It will not be deleted from the device." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Unable to add widget. Maximum number of widgets (%d) reached." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Unable to add application. Maximum number of applications (%d) reached." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Unable to add page." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normal mode" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Power saving mode disabled." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Power saving mode enabled." + diff --git a/po/en_US.po b/po/en_US.po new file mode 100644 index 0000000..52b9898 --- /dev/null +++ b/po/en_US.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Apps" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Unable to remove." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Press and hold a widget to move it." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Home screen changed." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Loading..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Unable to load data. Tap to retry." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Unable to add application. No more room on home screen." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Unable to add widget. No more room on home screen." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Application already exists." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widget already exists." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Home screen layout changed." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "This application will be removed from the home screen. It will not be deleted from the device." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Remove application" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Remove widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "This widget will be removed from the home screen. It will not be deleted from the device." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Unable to add widget. Maximum number of widgets (%d) reached." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Unable to add application. Maximum number of applications (%d) reached." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Unable to add page." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normal mode" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Power saving mode disabled." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Power saving mode turned on." + diff --git a/po/es_ES.po b/po/es_ES.po new file mode 100644 index 0000000..fb05411 --- /dev/null +++ b/po/es_ES.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplicaciones" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "No se puede eliminar" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Mantenga pulsado un widget para moverlo" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Se ha cambiado la pantalla de inicio" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Cargando..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "No se pueden cargar datos. Pulse para volver a intentarlo." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "No se puede añadir la aplicación. No hay espacio disponible en la pantalla de inicio." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "No se puede añadir el widget. No hay espacio disponible en la pantalla de inicio." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "La aplicación ya existe." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "El widget ya existe." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Se ha cambiado el diseño de la pantalla de inicio." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Se eliminará esta aplicación de la pantalla de inicio. No obstante, no se eliminará del dispositivo." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Eliminar aplicación" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Eliminar widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Se eliminará este widget de la pantalla de inicio. No obstante, no se eliminará del dispositivo." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "No se puede añadir widget. Se ha alcanzado el número máximo de widgets (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "No se puede añadir aplicación. Número máximo de aplicaciones (%d) alcanzado." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "No se puede añadir la página." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Modo normal" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Modo Ahorro de energía desactivado." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Modo de ahorro de energía activado." + diff --git a/po/es_MX.po b/po/es_MX.po new file mode 100644 index 0000000..837f141 --- /dev/null +++ b/po/es_MX.po @@ -0,0 +1,3 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplicaciones" + diff --git a/po/es_US.po b/po/es_US.po new file mode 100644 index 0000000..677c374 --- /dev/null +++ b/po/es_US.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplicaciones" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "No se puede eliminar." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Mantenga pulsado el Widget para moverlo." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Se cambió la pantalla de inicio." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Cargando..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "No es posible cargar los datos. Pulse para intentarlo de nuevo." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "No se puede añadir la aplicación. No hay espacio disponible en la pantalla de inicio." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "No se puede añadir el widget. No hay espacio disponible en la pantalla de inicio." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "La aplicación ya existe." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "El widget ya existe." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Se ha cambiado el diseño de la pantalla de inicio." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Se eliminará esta aplicación de la pantalla de inicio. No obstante, no se eliminará del dispositivo." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Eliminar aplicación" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Eliminar widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Se eliminará este widget de la pantalla de inicio. No obstante, no se eliminará del dispositivo." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "No se puede añadir widget. Se alcanzó el número máximo de widget (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "No se puede añadir la aplicación. Se alcanzó el número máximo de aplicaciones (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "No se puede añadir la página." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Modo normal" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Modo de ahorro de energía desactivado." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Modo de ahorro de energía activado." + diff --git a/po/et.po b/po/et.po new file mode 100644 index 0000000..a3d6353 --- /dev/null +++ b/po/et.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Rakendused" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Vidin" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Ei saa eemaldada." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Vidina teisaldamiseks toksake ja hoidke seda." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Avaekraani on muudetud." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Laadimine..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Andmeid ei saa laadida. Toksake, et proovida uuesti." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Rakendust ei saa lisada. Avaekraanil pole rohkem ruumi." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Vidinat ei saa lisada. Avaekraanil pole rohkem ruumi." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Rakendus on juba olemas." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Vidin on juba olemas." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Avaekraani paigutust on muudetud." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "See rakendus eemaldatakse avaekraanilt. Seda ei kustutata seadmest." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Eemalda rakendus" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Eemalda vidin" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "See vidin eemaldatakse avaekraanilt. Seda ei kustutata seadmest." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Vidinat ei saa lisada. Vidinate maksimaalne arv (%d) on saavutatud." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Rakendust ei saa lisada. Rakenduste maksimaalne arv (%d) on saavutatud." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Lehte ei saa lisada." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Tavarežiim" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Energiasäästurežiim on desaktiveeritud." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Energiasäästurežiim on aktiveeritud." + diff --git a/po/eu.po b/po/eu.po new file mode 100644 index 0000000..5f49712 --- /dev/null +++ b/po/eu.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplikazioak" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "ElMezularitza tua" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Ezin da kendu" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Ukitu eta eutsi widget bat mugitzeko" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Pantaila nagusia aldatuta" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Kargatzen..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Ezin dira datuak kargatu. Ukitu berriz saiatzeko." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Ezin da aplikazioa gehitu. Ez dago lekurik pantaila nagusian." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Ezin da widgeta gehitu. Ez dago lekurik pantaila nagusian." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Aplikazioa badago lehendik." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widgeta badago lehendik." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Pantaila nagusiaren diseinua aldatu da." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Aplikazio hau pantaila nagusitik kenduko da. Ez da gailutik ezabatuko." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Kendu aplikazioa" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Kendu widgeta" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Widget hau pantaila nagusitik kenduko da. Ez da gailutik ezabatuko." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Ezin da widget aplikazioa gehitu. Gehienezko widget kopurura (%d) iritsi zara." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Ezin da aplikazioa gehitu. Gehieneko aplikazio kopurura (%d) iritsi zara." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Ezin da orria gehitu." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Modu normala" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Bateria aurrezteko modua ezgaitu da." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Bateria aurrezteko modua gaitu da." + diff --git a/po/fa.po b/po/fa.po new file mode 100644 index 0000000..892a244 --- /dev/null +++ b/po/fa.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "برنامه" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "نوار ابزار" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "حذف ممکن نیست." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "برای جابجا کردن ابزارک روی آن ضربه زده و نگه دارید." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "صفحه اصلی تغییر کرد." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "در حال دانلود..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "بارگیری داده ممکن نیست. برای امتحان مجدد ضربه بزنید." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "افزودن برنامه ممکن نیست. فضای بیشتری در صفحه اصلی وجود ندارد." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "افزودن ویجت ممکن نیست. فضای بیشتری در صفحه اصلی وجود ندارد." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "برنامه از قبل وجود دارد." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "ویجت از قبل وجود دارد." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "چیدمان صفحه اصلی تغییر کرد." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "این برنامه از صفحه اصلی حذف میشود.ولی از دستگاه حذف نخواهد شد." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "حذف برنامه" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "حذف ویجت" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "این ویجت از صفحه اصلی حذف میشود. ولی از دستگاه حذف نخواهد شد." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "افزودن ویجت ممکن نیست. تعداد ویجتها به حداکثر مجاز (%d) رسیده است." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "افزودن برنامه ممکن نیست. تعداد شرکتکنندگان به حداکثر مجاز (%d) رسید." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "افزودن صفحه ممکن نیست." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "حالت عادی" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "حالت ذخیره نیرو غیرفعال شد." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "حالت ذخیره نیرو فعال شد." + diff --git a/po/fi.po b/po/fi.po new file mode 100644 index 0000000..71f8088 --- /dev/null +++ b/po/fi.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Sovellukset" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Pienoisohjelma" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Ei voi poistaa." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Siirrä pienoisohjelmaa painamalla jonkin aikaa." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Alkunäyttö vaihdettu." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Ladataan..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Tietoja ei voi ladata. Yritä napauttamalla uudelleen." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Sovellusta ei voi lisätä. Alkunäytössä ei ole enää tilaa." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Pienoisohjelmaa ei voi lisätä. Alkunäytössä ei ole enää tilaa." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Sovellus on jo olemassa." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Pienoisohjelma on jo olemassa." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Alkunäytön asettelu muutettu." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Tämä sovellus poistetaan alkunäytöstä. Sitä ei poisteta laitteesta." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Poista sovellus" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Poista pienoisohj." + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Tämä pienoisohjelma poistetaan alkunäytöstä. Sitä ei poisteta laitteesta." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Pienoisohjelmaa ei voi lisätä. Pienoisohjelmien enimmäismäärä (%d) saavutettu." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Sovellusta ei voi lisätä. Sovellusten enimmäismäärä (%d) on saavutettu." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Sivua ei voi lisätä." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normaali tila" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Virransäästötila on poistettu käytöstä." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Virransäästötila käytössä." + diff --git a/po/fil.po b/po/fil.po new file mode 100755 index 0000000..741d656 --- /dev/null +++ b/po/fil.po @@ -0,0 +1,33 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Apps" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Hindi maalis." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Tap and hold a widget to move it." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Pinalitan ang home screen." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Naglo-load..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Hindi ma-load ang data. I-tap upang subukang muli." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Hindi maidagdag ang application. Wala nang espasyo sa home screen." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Hindi maidagdag ang widget. Wala nang espasyo sa home screen." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Umiiral na ang application." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Umiiral na ang widget." + diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..daf96f5 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Applications" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widgets" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Suppression impossible" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "App. de façon prolongée sur widget pour déplacer." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Ecran d'accueil modifié" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Chargement en cours." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Impossible de charger les données. Appuyez pour réessayer." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Impossible d'ajouter l'application. Espace saturé sur l'écran d'accueil." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Impossible d'ajouter le widget. Espace saturé sur l'écran d'accueil." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "L'application existe déjà." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Le widget existe déjà." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Disposition de l'écran d'accueil modifiée." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Cette application sera supprimée de l'écran d'accueil. Elle sera cependant conservée sur l'appareil." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Supprimer l'appli" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Supprimer le widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Ce widget sera supprimé de l'écran d'accueil. Il sera cependant conservé sur l'appareil." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Impossible d'ajouter le widget. Nombre maximal de widgets (%d) atteint." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Impossible d'ajouter l'application. Nombre maximal d'applications (%d) atteint." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Impossible d'ajouter une page." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Mode normal" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Mode économie d'énergie désactivé." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Mode Économie d'énergie activé." + diff --git a/po/fr_CA.po b/po/fr_CA.po new file mode 100644 index 0000000..0f664c2 --- /dev/null +++ b/po/fr_CA.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Applications" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widgets" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Suppression impossible." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Touchez longuement le widget pour le déplacer." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Écran d'accueil modifié" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Chargement..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Impossible de charger les données. Appuyez pour réessayer." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Impossible d'ajouter l'application. Espace saturé sur l'écran d'accueil." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Impossible d'ajouter le widget. Espace saturé sur l'écran d'accueil." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "L'application existe déjà." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Le widget existe déjà." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Disposition de l'écran d'accueil modifiée." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Cette application sera supprimée de l'écran d'accueil. Elle sera cependant conservée sur l'appareil." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Supprimer l'appli" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Supprimer le widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Ce widget sera supprimé de l'écran d'accueil. Il sera cependant conservé sur l'appareil." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Impossible d'ajouter le widget. Nombre maximal de widgets (%d) atteint." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Impossible d'ajouter l'application. Nombre maximal d'applications (%d) atteint." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Impossible d'ajouter une page." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Mode normal" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Mode économie d'énergie désactivé." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Mode Économie d'énergie activé." + diff --git a/po/fr_FR.po b/po/fr_FR.po new file mode 100644 index 0000000..4522468 --- /dev/null +++ b/po/fr_FR.po @@ -0,0 +1,3 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Applications" + diff --git a/po/ga.po b/po/ga.po new file mode 100644 index 0000000..5fa342b --- /dev/null +++ b/po/ga.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Feidhmchláir" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Giuirléid" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Ní féidir é a bhaint." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Tapáil agus coinnigh giuirléid lena bogadh" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Scáileán baile athraithe." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Ag lódáil..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Ní féidir sonraí a choinneáil. Tapáil le triail arís." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Ní féidir an feidhmchlár a chur leis. Níl aon spás eile fágtha ar an scáileán baile." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Ní féidir giuirléid a chur leis. Níl aon spás eile fágtha ar an scáileán baile." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Tá an feidhmchlár ann cheana." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Tá giuirléid ann cheana." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Leagan amach an scáileáin bhaile athraithe." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Bainfear an feidhmchlár seo ón scáileán baile. Ní scriosfar ón ngléas é." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Bain an feidhmchlár" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Bain giuirléid" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Bainfear an ghiuirléid seo ón scáileán baile. Ní scriosfar ón ngléas í." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Ní féidir giuirléid a chur leis. Uaslíon na ngiuirléidí (%d) bainte amach." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Ní féidir feidhmchlár a chur leis. Uaslíon na bhfeidhmchlár (%d) bainte amach." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Ní féidir leathanach a chur leis." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Mód normálta" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Mód coigilte cumhachta díchumasaithe." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Mód coigilte cumhachta cumasaithe." + diff --git a/po/gl.po b/po/gl.po new file mode 100644 index 0000000..2168595 --- /dev/null +++ b/po/gl.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplicacións" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Non se pode eliminar" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Mantén tocado un widget para movelo" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Pantalla de inicio cambiada" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Cargando..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Non se poden cargar datos. Toca para tentalo de novo." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Non se pode engadir a aplicación. Non hai máis espazo na pantalla de inicio." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Non se pode engadir o widget. Non hai máis espazo na pantalla de inicio." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "A aplicación xa existe." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "O widget xa existe." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Cambiouse o deseño da pantalla de inicio." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Esta aplicación eliminarase da pantalla de inicio. Non se eliminará do dispositivo." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Eliminar aplicación" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Eliminar widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Este widget eliminarase da pantalla de inicio. Non se eliminará do dispositivo." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Non se pode engadir o widget. Alcanzouse o número máximo de widgets (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Non se pode engadir a aplicación. Alcanzouse o número máximo de aplicacións (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Non se pode engadir a páxina." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Modo normal" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Modo de aforro de enerxía desactivado." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Modo de aforro de enerxía activado." + diff --git a/po/gu.po b/po/gu.po new file mode 100644 index 0000000..22e8532 --- /dev/null +++ b/po/gu.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "ઍપ્સ" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "વિજેટ" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "કાઢવામાં અસમર્થ." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "વિજેટ ખસેડવા માટે તેને ટૅપ કરો અને હોલ્ડ કરો" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "હોમ સ્ક્રીન બદલાઇ ગઈ છે." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "લોડિંગ..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "ડેટા લોડ કરવામાં અસમર્થ. ફરીથી પ્રયાસ કરવા માટે ટૅપ કરો." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "અનુપ્રયોગ ઉમેરવા માટે અસમર્થ. હોમ સ્ક્રીન પર હવે વધુ અવકાશ નથી." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "વિજેટ ઉમેરવામાં અસમર્થ. હોમ સ્ક્રીન પર હવે વધુ અવકાશ નથી." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "અનુપ્રયોગ પહેલાંથી હયાત છે." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "વિજેટ પહેલાંથી હયાત છે." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "હોમ સ્ક્રીન લૅઆઉટ બદલાયું છે." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "હોમ સ્ક્રીનમાંથી આ અનુપ્રયોગને દૂર કરવામાં આવશે. ઉપકરણમાંથી તે દૂર થશે નહીં." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "અરજી દૂર કરો" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "વિજેટ દૂર કરો" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "હોમ સ્ક્રીનમાંથી આ વિજેટને દૂર કરવામાં આવશે. ઉપકરણમાંથી તે દૂર થશે નહીં." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "વિજેટ ઉમેરવામાં અક્ષમ. વિજેટ્સની મહત્તમ સંખ્યા (%d) પર પહોંચી ગયા." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "અનુપ્રયોગને ઉમેરવામાં અસમર્થ. અનુપ્રયોગ્સની મહત્તમ સંખ્યા (%d) પર પહોંચી ગયા." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "પૃષ્ઠ ઉમેરવા માટે અસમર્થ." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "સામાન્ય મોડ" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "પાવર બચત મોડ નિષ્ક્રીય થયો." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "પાવર સેવિંગ મોડ સક્રિય થયો." + diff --git a/po/he.po b/po/he.po new file mode 100644 index 0000000..282b846 --- /dev/null +++ b/po/he.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "יישומים" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "לא ניתן להסיר." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "הקש באריכות על ווידג'ט כדי להזיז אותו." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "מסך הבית השתנה." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "טוען..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "לא ניתן לטעון נתונים. הקש כדי לנסות שנית." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "לא ניתן להוסיף יישום. אין עוד מקום במסך הבית." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "לא ניתן להוסיף יישומון. אין עוד מקום במסך הבית." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "יישום זה כבר קיים." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "היישומון כבר קיים." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "פריסת מסך הבית שונתה." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "יישום זה יוסר ממסך הבית. הוא לא יימחק מההתקן." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "הסר יישום" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "הסר יישומון" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "יישומון זה יוסר ממסך הבית. הוא לא יימחק מההתקן." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "לא ניתן להוסיף יישומון. הגעת למספר היישומונים המרבי המותר (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "לא ניתן להוסיף יישום. הגעת למספר היישומים המרבי (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "לא ניתן להוסיף דף." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "מצב רגיל" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "מצב ‘חיסכון באנרגיה’ מושבת." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "מצב חיסכון בחשמל מופעל." + diff --git a/po/hi.po b/po/hi.po new file mode 100644 index 0000000..e592b1a --- /dev/null +++ b/po/hi.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "एप्स" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "विजेट" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "हटाने में असमर्थ।" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "विजेट ले जाने के लिए उसे टैप करे रखें" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "होम स्क्रीन बदली गई।" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "लोड हो रहा है..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "डाटा लोड करने में अक्षम। फिर से प्रयास करने हेतु टैप करें।" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "एप्लीकेशन जोड़ने में अक्षम। होम स्क्रीन पर कोई और रूम नहीं है।" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "विजेट जोड़ने में अक्षम। होम स्क्रीन पर कोई और रूम नहीं है।" + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "एप्लिकेशन पहले से मौजूद है।" + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "विजेट पहले से मौजूद है।" + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "होम स्क्रीन लेआउट परिवर्तित किया गया।" + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "यह एप्लीकेशन होम स्क्रीन से निकाल दिया जाएगा। इसे डिवाइस से नहीं निकाला जाएगा।" + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "एप्लीकेशन निकालें" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "विजेट निकालें" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "यह विजेट होम स्क्रीन से निकाल दिया जाएगा। इसे डिवाइस से नहीं निकाला जाएगा।" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "विजेट को जोड़ने में असमर्थ। विजेट्स की संख्या अधिकतम (%d) तक पहुँच गयी है।" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "एप्लीकेशन जोड़ने में असमर्थ। एप्लीकेशंस की अधिकतम संख्या (%d) तक पहुँच गई।" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "पेज जोड़ने में अक्षम।" + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "सामान्य मोड" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "पॉवर बचत मोड अक्षम किया गया।" + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "पॉवर बचत मोड सक्षम किया गया।" + diff --git a/po/hr.po b/po/hr.po new file mode 100644 index 0000000..554d886 --- /dev/null +++ b/po/hr.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplikacije" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Nemoguće ukloniti." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Dodirnite i držite widget da biste ga premjestili." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Početni zaslon je promijenjen." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Učitavanje..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Nije moguće učitati podatke. Dodirnite radi ponavljanja." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Dodavanje aplikacije nije moguće. Nema više mjesta na početnom zaslonu." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Dodavanje widgeta nije moguće. Nema više mjesta na početnom zaslonu." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Aplikacija već postoji." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widget već postoji." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Izgled početnog zaslona je promijenjen." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Ova će aplikacija biti uklonjena s početnog zaslona. Neće biti obrisana s uređaja." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Ukloni aplikaciju" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Ukloni widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Ovaj će widget biti uklonjen s početnog zaslona. Neće biti obrisan s uređaja." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Nemoguće dodati widget. Dostignut maksimalan broj widgeta (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Nemoguće dodati aplikaciju. Dosegnut maksimalan broj aplikacija (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Nemoguće dodati stranicu." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normalan način rada" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Isključena je Štednja baterije." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Štednja energije uključena." + diff --git a/po/hu.po b/po/hu.po new file mode 100644 index 0000000..8abca59 --- /dev/null +++ b/po/hu.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Alkalmazások" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Nem lehet eltávolítani." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Tartsa ujját a widgeten, amelyet át kíván helyezni." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "A kezdőképernyő módosult." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Betöltés..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Nem lehet betölteni az adatokat. Érintse meg az újabb próbálkozáshoz." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Nem adható hozzá alkalmazás. Nincs több hely a kezdőképernyőn." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Nem adható hozzá widget. Nincs több hely a kezdőképernyőn." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Ez az alkalmazás már megvan." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Ez a widget már megvan." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "A kezdőképernyő elrendezése módosult." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Ezzel eltávolítja az alkalmazást a kezdőképernyőről. Az eszközről nem törlődik." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Alkalm. eltávolítása" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Widget eltávolítása" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Ezzel eltávolítja a widgetet a kezdőképernyőről. Az eszközről nem törlődik." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Nem lehet hozzáadni a widgetet. Elérte a widgetek maximális számát (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Nem lehet alkalmazást hozzáadni. Elérte az alkalmazások maximális számát (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Nem adható hozzá oldal." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normál mód" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Energiatakarékos mód letiltva." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Energiatakarékos mód engedélyezve." + diff --git a/po/hy.po b/po/hy.po new file mode 100644 index 0000000..b7585dd --- /dev/null +++ b/po/hy.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Ծրագրեր" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Վիդջետ" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Անհնար է հեռացնել:" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Տեղափոխելու համար թակեք և պահեք պատկերագիրը:" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Հիմնական էկրանը փոխվել է:" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Բեռնում է..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Անհնար է տվյալներ բեռնել: Թակեք՝ նորից փորձելու համար" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Անհնար է ծրագիր ավելացնել. այլևս տեղ չկա հիմնական էկրանում:" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Անհնար է պատկերագիր ավելացնել. այլևս տեղ չկա հիմնական էկրանում:" + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Ծրագիրն արդեն գոյություն ունի:" + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Պատկերագիրն արդեն գոյություն ունի:" + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Հիմնական էկրանի դասավորվածքը փոխվել է:" + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Այս ծրագիրը կհեռացվի հիմնական էկրանից: Այն չի վերացվի սարքից:" + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Հեռացնել ծրագիրը" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Հեռացնել պատկերագիրը" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Այս պատկերագիրը կհեռացվի հիմնական էկրանից: Այն չի վերացվի սարքից:" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Անհնար է ավելացնել հարմարանք: Հասել է հարմարանքների առավել. քանակին (%d):" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Անհնար է ծրագիր ավելացնել. հասել է ծրագրերի առավելագույն քանակին (%d):" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Անհնար է էջ ավելացնել:" + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Սովորական ռեժիմ" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Էներգիայի խնայման ռեժիմը կասեցված է:" + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Էներգիայի խնայման ռեժիմն ընձեռվեց:" + diff --git a/po/id.po b/po/id.po new file mode 100644 index 0000000..ad8a79f --- /dev/null +++ b/po/id.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplikasi" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Tidak dapat menghapus." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Ketuk dan tahan widget untuk memindahkannya." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Layar depan diubah." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Meloading…" + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Tidak dapat memuat data. Ketuk untuk mencoba lagi." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Tidak dapat menambah aplikasi. Tidak ada ruang lagi di layar depan." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Tidak dapat menambah widget. Tidak ada ruang lagi di layar depan." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Aplikasi sudah ada." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widget sudah ada." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Tata letak layar depan diubah." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Aplikasi ini akan dihapus dari layar depan. Aplikasi tidak akan dihapus dari perangkat." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Hapus aplikasi" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Hapus widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Widget ini akan dihapus dari layar depan. Aplikasi tidak akan dihapus dari perangkat." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Tidak dapat menambah widget. Jumlah maksimum widget (%d) tercapai." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Tidak dapat menambahkan aplikasi. Jumlah maksimum aplikasi (%d) tercapai." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Tidak dapat menambah halaman." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Mode normal" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Mode hemat daya diaktifkan." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Mode hemat daya diaktifkan." + diff --git a/po/is.po b/po/is.po new file mode 100644 index 0000000..0d82fca --- /dev/null +++ b/po/is.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Forrit" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Græja" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Mistókst að fjarlægja." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Pikkaðu og haltu inni á græju til að færa hana." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Heimaskjá var breytt." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Hleð..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Ekki tókst að hlaða gögn. Pikkaðu til að reyna aftur." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Ekki er hægt að bæta við forriti. Ekki er pláss á heimaskjánum." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Ekki er hægt að bæta við græju. Ekki er pláss á heimaskjánum." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Forritið er þegar til." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Græjan er þegar til." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Útliti heimaskjás var breytt." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Forritið verður fjarlægt af heimaskjánum. Því verður ekki eytt úr tækinu." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Fjarlægja forrit" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Fjarlægja græju" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Græjan verður fjarlægð af heimaskjánum. Henni verður ekki eytt úr tækinu." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Ekki er hægt að bæta græju við. Hámarksfjölda græja (%d) hefur verið náð." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Ekki er hægt að bæta forritinu við. Hámarksfjölda forrita (%d) hefur verið náð." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Ekki er hægt að bæta við síðu." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Venjuleg stilling" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Slökkt á orkusparnaðarstillingu." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Kveikt á orkusparnaðarstillingu." + diff --git a/po/it_IT.po b/po/it_IT.po new file mode 100644 index 0000000..0bb3717 --- /dev/null +++ b/po/it_IT.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Applicazioni" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Impossibile rimuovere." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Toccate e tenete premuto un widget per spostarlo." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Schermata Home modificata." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Caricamento..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Impossibile caricare i dati. Toccate per riprovare." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Impossibile aggiungere applicazione. Spazio insufficiente nella schermata Home." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Impossibile aggiungere widget. Spazio insufficiente nella schermata Home." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Applicazione già esistente." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widget già esistente." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Layout della schermata Home modificato." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Quest'applicazione verrà rimossa dalla schermata Home. Non verrà eliminata dal dispositivo." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Rimuovi applicazione" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Rimuovi widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Questo widget verrà rimosso dalla schermata Home. Non verrà eliminato dal dispositivo." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Impossibile aggiungere il widget. Il numero massimo di widget (%d) è stato raggiunto." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Impossibile aggiungere l'applicazione. Il numero massimo di applicazioni (%d) è stato raggiunto." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Impossibile aggiungere la pagina." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Modalità normale" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Modalità di risparmio energetico disattivata." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Modalità di risparmio energetico attivata." + diff --git a/po/ja_JP.po b/po/ja_JP.po new file mode 100644 index 0000000..906a77f --- /dev/null +++ b/po/ja_JP.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "アプリ" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "ウィジェット" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "移動することができません。" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "移動するには、ウィジェットを長押しします。" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "ホーム画面が変更されました。" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "読み込み中..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "データをロードできません。タップして再度実行してください。" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "アプリケーションを追加できません。ホーム画面に空きがありません。" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "ウィジェットを追加できません。ホーム画面に空きがありません。" + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "アプリケーションは既に存在します。" + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "ウィジェットは既に存在します。" + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "ホーム画面のレイアウトを変更しました。" + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "このアプリケーションをホーム画面から削除します。端末からは削除されません。" + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "アプリを削除" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "ウィジェットを削除" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "このウィジェットをホーム画面から削除します。端末からは削除されません。" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "ウィジェットを追加できません。ウィジェットの最大数(%d)に達しました。" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "アプリケーションを追加できません。アプリケーションの最大数(%d件)に達しました。" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "ページを追加できません。" + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "標準モード" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "[省電力モード]を無効にしました。" + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "省電力モードを有効にしました。" + diff --git a/po/ka.po b/po/ka.po new file mode 100644 index 0000000..02176a2 --- /dev/null +++ b/po/ka.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "პროგრამები" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "გრაფიკული კლიპი" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "ვერ მოცილდება." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "ვიჯეტის გადასატანად დაარტყით მას და არ აიღოთ ხელი." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "საწყისი ეკრანი შეიცვალა." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "იტვირთება..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "მონაცემთა ჩატვირთვა შეუძლებელია. შეეხეთ და გაიმეორეთ მცდელობა" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "პროგრამა ვერ ემატება. საწყის ეკრანზე აღარ არის ადგილი." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "ვიჯეტის დამატება შეუძლებელია. საწყის ეკრანზე აღარ არის ადგილი." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "პროგრამა უკვე არსებობს." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "ვიჯეტი უკვე არის." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "საწყისი ეკრანის განლაგება შეიცვალა." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "ეს პროგრამა წაიშლება საწყის ეკრანზე. იგი არ წაიშლება აპარატში." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "პროგრამის წაშლა" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "ვიჯეტის წაშლა" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "ეს ვიჯეტი წაიშლება საწყის ეკრანზე. იგი არ წაიშლება აპარატში." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "ვიჯეტის დამატება შეუძლებელია. მიღწეულია ვიჯეტების მაქსიმალური რაოდენობა (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "პროგრამის დამატება შეუძლებელია. მიღწეულია პროგრამების მაქსიმალური რაოდენობა (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "გვერდს ვერ დაამატებთ." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "ნორმალური რეჟიმი" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "ენერგიის დაზოგვის რეჟიმი გამორთულია." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "ენერგიის დაზოგვის რეჟიმი ჩართულია." + diff --git a/po/khmer.po b/po/khmer.po new file mode 100644 index 0000000..5939e81 --- /dev/null +++ b/po/khmer.po @@ -0,0 +1,33 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "កម្មវិធី" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "វីដជីត" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "មិនអាចលុប។" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "ប៉ះវីដជីតមួយឲ្យជាប់ដើម្បីផ្លាស់ទីវា។" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "បានប្តូរគេហអេក្រង់។" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "កំពុងផ្ទុក..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "មិនអាចផ្ទុកទិន្នន័យ។ ប៉ះដើម្បីសាកល្បងម្ដងទៀត។" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "មិនអាចថែមកម្មវិធី។ គ្មានកន្លែងទៀតលើគេហអេក្រង់។" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "មិនអាចថែមវីដជីត។ គ្មានកន្លែងទៀតលើគេហអេក្រង់។" + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "កម្មវិធីមានហើយ។" + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "វីដជីតមានហើយ។" + diff --git a/po/kk.po b/po/kk.po new file mode 100644 index 0000000..1c2748f --- /dev/null +++ b/po/kk.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Бағдарламалар" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Виджет" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Алып тастау мүмкін емес." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Виджетті жылжыту үшін оны басып тұрыңыз." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Бастапқы экран өзгертілді." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Жазылуда..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Деректерді жүктеу мүмкін емес. Қайталау үшін түртіңіз" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Бағдарламаны қосу мүмкін емес. Бұл бастапқы экранда басқа орын жоқ." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Виджетті қосу мүмкін емес. Бұл бастапқы экранда басқа орын жоқ." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Бағдарлама бұрыннан бар." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Виджет бұрыннан бар." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Бастапқы экран құрылымы өзгертілді." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Осы бағдарлама бастапқы экраннан жойылады. Ол құрылғыдан жойылмайды." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Бағдарламаны жою" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Виджетті жою" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Осы виджет бастапқы экраннан жойылады. Ол құрылғыдан жойылмайды." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Виджетті қосу мүмкін емес. Виджеттердің ең көп санына (%d) жетті." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Қолданбаны қосу мүмкін болмады. Ең көп қолданбалар санына (%d) жеттіңіз." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Бет қосу мүмкін емес." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Қалыпты режим" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Қуат үнемдеу режимі өшірілді." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Қуат үнемдеу режимі қосылды." + diff --git a/po/km.po b/po/km.po new file mode 100644 index 0000000..6a4af77 --- /dev/null +++ b/po/km.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "កម្មវិធី" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "វីដជីត" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "មិនអាចលុប។" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "ប៉ះវីដជីតមួយឲ្យជាប់ដើម្បីផ្លាស់ទីវា។" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "បានប្តូរគេហអេក្រង់។" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "កំពុងផ្ទុក..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "មិនអាចផ្ទុកទិន្នន័យ។ ប៉ះដើម្បីសាកល្បងម្ដងទៀត។" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "មិនអាចថែមកម្មវិធី។ គ្មានកន្លែងទៀតលើគេហអេក្រង់។" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "មិនអាចថែមវីដជីត។ គ្មានកន្លែងទៀតលើគេហអេក្រង់។" + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "កម្មវិធីមានហើយ។" + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "វីដជីតមានហើយ។" + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "បានប្តូរប្លង់គេហអេក្រង់។" + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "នឹងលុបកម្មវិធីនេះពីគេហអេក្រង់។ វានឹងមិនលុបពីឧបករណ៍នេះទេ។" + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "លុបកម្មវិធី" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "លុបវីដជីត" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "នឹងលុបវីដជីតនេះពីគេហអេក្រង់។ វានឹងមិនលុបពីឧបករណ៍នេះទេ។" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "មិនអាចថែមវីដជីត។ បានដល់ចំនួនអតិបរមានៃវីដជីត (%d)។" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "មិនអាចថែមកម្មវិធី។ បានដល់ចំនួនអតិបរមានៃកម្មវិធី (%d)។" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "មិនអាចថែមទំព័រ។" + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "ទម្រង់ធម្មតា" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "បានបិទទម្រង់សំចៃថាមពល។" + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "បានបើកប្រើទម្រង់សំចៃថាមពល។" + diff --git a/po/kn.po b/po/kn.po new file mode 100644 index 0000000..228c7d4 --- /dev/null +++ b/po/kn.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "ಅನ್ವಹಿಸುವಿಕೆಗಳು" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "ವಿಜೆಟ್" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "ಕದಲಿಸಲು ಅಸಮರ್ಥ." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "ಅದನ್ನು ಕದಲಿಸಲು ಒಂದು ವಿಜೆಟ್ನ್ನು ತಟ್ಟಿ ಮತ್ತು ಹಿಡಿಯಿರಿ." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "ಹೋಮ್ ಸ್ಕ್ರೀನ್ ಬದಲಾಯಿಸಲಾಗಿದೆ." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "ಲೋಡಿಂಗ್..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "ಡೇಟಾ ಲೋಡ್ ಮಾಡಲು ಅಸಮರ್ಥ. ಮರುಪ್ರಯತ್ನಿಸಲು ಒತ್ತಿ." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "ಅನ್ವಹಿಸುವಿಕೆ ಸೇರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ಹೋಮ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿ ಇನ್ನು ಕೊಠಡಿಗಳು ಇಲ್ಲ." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "ವಿಜೆಟ್ ಸೇರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ಹೋಮ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿ ಇನ್ನು ಕೊಠಡಿಗಳು ಇಲ್ಲ." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "ಅನ್ವಹಿಸುವಿಕೆ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "ವಿಜೆಟ್ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "ಹೋಮ್ ಸ್ಕ್ರೀನ್ ವಿನ್ಯಾಸ ಬದಲಾಗಿದೆ." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "ಈ ಅನ್ವಹಿಸುವಿಕೆ ಅನ್ನು ಹೋಮ್ ಸ್ಕ್ರೀನ್ನಿಂದ ತೆಗೆಯಲಾಗುವುದು. ಇದನ್ನು ಸಾಧನದಿಂದ ಅಳಿಸಲಾಗುವುದಿಲ್ಲ." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "ಅನ್ವಹಿಸುವಿಕೆ ತೆಗೆಯಿರಿ" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "ವಿಜೆಟ್ ತೆಗೆಯಿರಿ" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "ಈ ವಿಜೆಟ್ ಅನ್ನು ಹೋಮ್ ಸ್ಕ್ರೀನ್ನಿಂದ ತೆಗೆಯಲಾಗುವುದು. ಇದನ್ನು ಸಾಧನದಿಂದ ಅಳಿಸಲಾಗುವುದಿಲ್ಲ." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "ವಿಡ್ಜೆಟ್ ಸೇರಿಸಲಾಗಲಿಲ್ಲ. ವಿಜೆಟ್ಗಳ ಗರಿಷ್ಠ ಸಂಖ್ಯೆಯು (%d) ತಲುಪಿದೆ." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "ಅನ್ವಹಿಸುವಿಕೆ ಸೇರಿಸಲು ಅಸಮರ್ಥ. ಅನ್ವಹಿಸುವಿಕೆಗಳ ಗರಿಷ್ಠ ಸಂಖ್ಯೆಯು (%d) ತಲುಪಿದೆ." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "ಪುಟ ಸೇರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "ಸಾಮಾನ್ಯ ಮೋಡ್" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "ಪವರ್ ಉಳಿತಾಯ ಮೋಡ್ ನಿಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "ಶಕ್ತಿ ಉಳಿಸುವ ಮೋಡ್ ಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ." + diff --git a/po/ko_KR.po b/po/ko_KR.po new file mode 100644 index 0000000..47facc4 --- /dev/null +++ b/po/ko_KR.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "앱스" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "위젯" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "제거할 수 없습니다." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "위젯을 이동하려면 길게 누르세요." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "홈 화면이 변경되었습니다." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "로딩 중..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "데이터를 불러올 수 없습니다. 다시 시도하려면 누르세요." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "홈 화면에 공간이 없어 애플리케이션을 추가할 수 없습니다." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "홈 화면에 공간이 없어 위젯을 추가할 수 없습니다." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "같은 애플리케이션이 있습니다." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "같은 위젯이 있습니다." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "홈 화면 레이아웃을 변경하였습니다." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "선택한 애플리케이션을 홈 화면에서 제거합니다. 디바이스에서는 삭제되지 않습니다." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "애플리케이션 제거" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "위젯 제거" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "선택한 위젯을 홈 화면에서 제거합니다. 디바이스에서는 삭제되지 않습니다." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "최대 위젯 수(%d개)를 초과하여 추가할 수 없습니다." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "최대 애플리케이션 수(%d개)를 초과하여 추가할 수 없습니다" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "페이지를 추가할 수 없습니다." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "일반 모드" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "절전 모드를 해제하였습니다." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "절전 모드가 실행되었습니다." + diff --git a/po/lo.po b/po/lo.po new file mode 100644 index 0000000..7e48832 --- /dev/null +++ b/po/lo.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "ແອັບ" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "ວິດເຈັທ" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "ບໍ່ສາມາດເອົາອອກໄປໄດ້." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "ແຕະວິດເຈັດຄ້າງໄວ້ເພື່ອຍ້າຍມັນ." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "ໜ້າຈໍຫຼັກໄດ້ປ່ຽນ." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "ກຳລັງໂຫຼດ..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "ບໍ່ສາມາດໂຫຼດຂໍ້ມູນໄດ້. ເຄາະເພື່ອລອງໃໝ່." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "ບໍ່ສາມາດເພີ່ມແອພພລິເຄຊັນໄດ້. ບໍ່ມີຫ້ອງຢູ່ໃນໜ້າຈໍຫຼັກອີກ." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "ບໍ່ສາມາດເພີ່ມວິດເຈັດໄດ້. ບໍ່ມີຫ້ອງຢູ່ໃນໜ້າຈໍຫຼັກອີກ." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "ມີແອພພລິເຄຊັນຢູ່ແລ້ວ." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "ມີວິດເຈັດຢູ່ແລ້ວ." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "ແຜນຜັງໜ້າຈໍຫຼັກປ່ຽນແປງແລ້ວ." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "ແອພພລິເຄຊັນນີ້ຈະຖືກເອົາອອກໄປຈາກໜ້າຈໍຫຼັກ. ມັນຈະບໍ່ຖືກລຶບໄປຈາກເຄື່ອງ." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "ເອົາແອພພລິເຄຊັນອອກໄປ" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "ເອົາວິດເຈັດອອກໄປ" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "ວິດເຈັດນີ້ຈະຖືກເອົາອອກໄປຈາກໜ້າຈໍຫຼັກ. ມັນຈະບໍ່ຖືກລຶບໄປຈາກເຄື່ອງ." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "ບໍ່ສາມາດເພີ່ມວິດເຈັດໄດ້. ຮອດຈໍານວນວິດເຈັດສູງສຸດ (%d) ແລ້ວ." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "ບໍ່ສາມາດເພີ່ມແອພພລິເຄຊັນໄດ້. ຮອດຈໍານວນແອພພລິເຄຊັນສູງສຸດ (%d) ແລ້ວ." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "ບໍ່ສາມາດເພີ່ມໜ້າໄດ້." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "ໂໝດປົກກະຕິ" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "ໂໝດປະຢັດໄຟປິດໃຊ້ງານແລ້ວ." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "ເປີດໃຊ້ງານໂໝດປະຢັດໄຟແລ້ວ." + diff --git a/po/lt.po b/po/lt.po new file mode 100644 index 0000000..9d822e3 --- /dev/null +++ b/po/lt.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Programos" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Valdiklis" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Negalima pašalinti." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Norėdami perkelti vald., bakstelėkite ir laikykite." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Pradžios ekranas pakeistas." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Įkeliama..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Neįmanoma įkelti duomenų. Bakstelėkite ir bandykite dar kartą." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Neįmanoma pridėti programos. Pradžios ekrane nebėra vietos." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Neįmanoma pridėti valdiklio. Pradžios ekrane nebėra vietos." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Programa jau yra." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Valdiklis jau yra." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Pradžios ekrano išdėstymas pakeistas." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Ši programa bus pašalinta iš pradžios ekrano. Ji nebus ištrinta iš įrenginio." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Pašalinti programą" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Pašalinti valdiklį" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Šis valdiklis bus pašalintas iš pradžios ekrano. Jis nebus ištrintas iš įrenginio." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Neįmanoma pridėti valdiklio. Pasiektas didžiausias leistinas valdiklių skaičius (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Neįmanoma pridėti programos. Pasiektas didžiausias programų skaičius (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Neįmanoma pridėti puslapio." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Įprastinis režimas" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Energijos taupymo režimas išjungtas." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Įjungtas energijos taupymo režimas." + diff --git a/po/lv.po b/po/lv.po new file mode 100644 index 0000000..effad81 --- /dev/null +++ b/po/lv.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Programmas" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Logrīks" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Nevar noņemt." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Pieskarieties un turiet logrīku, lai to pārvietotu." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Sākuma ekrāns ir nomainīts." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Ielādē..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Nevar ielādēt datus. Pieskarieties, lai mēģinātu vēlreiz." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Nevar pievienot programmu. Sākuma ekrānā vairs nav vietas." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Nevar pievienot logrīku. Sākuma ekrānā vairs nav vietas." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Programma jau pastāv." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Logrīks jau pastāv." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Sākuma ekrāna izkārtojums ir mainīts." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Šī programma tiks noņemta no sākuma ekrāna. Tā netiks izdzēsta no ierīces." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Noņemt programmu" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Noņemt logrīku" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Šis logrīks tiks noņemts no sākuma ekrāna. Tas netiks izdzēsts no ierīces." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Nevar pievienot logrīku. Sasniegts maksimālais logrīku skaits (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Nevar pievienot programmu. Sasniegts maksimālais programmu skaits (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Nevar pievienot lapu." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Parastais režīms" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Enerģijas taupīšanas režīms ir deaktivizēts." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Aktivizēts enerģijas taupīšanas režīms." + diff --git a/po/mk.po b/po/mk.po new file mode 100644 index 0000000..c8b5452 --- /dev/null +++ b/po/mk.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Апликации" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Виџет" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Не може да се отстрани." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Допрете и држете виџет за да го поместите." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Почетниот екран е сменет." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Активирање..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Не можат да се вчитаат податоци. Допрете за повторен обид." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Не може да се додаде апликација. Нема веќе место на почетниот екран." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Не може да се додаде виџет. Нема веќе место на почетниот екран." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Апликацијата веќе постои." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Виџетот веќе постои." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Распоредот на почетниот екран е сменет." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Апликацијата ќе се отстрани од почетниот екран. Нема да се избрише од уредот." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Отстрани апликација" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Отстрани виџет" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Виџетот ќе се отстрани од почетниот екран. Нема да се избрише од уредот." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Не може да се додаде виџетот. Достигнат е максималниот број виџети (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Не може да се додаде апликација. Достигнат е максималниот број апликации (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Не може да се додаде страница." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Нормален режим" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Режимот за штедење енергија е исклучен." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Вклучен е режимот за штедење енергија." + diff --git a/po/ml.po b/po/ml.po new file mode 100644 index 0000000..15e1c87 --- /dev/null +++ b/po/ml.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "ആപ്ലിക്കേഷനുകൾ" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "വിഡ്ജെറ്റ്" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "നീക്കം ചെയ്യാന് ആവുന്നില്ല." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "വിജിറ്റ് നീക്കുന്നതിന് അതില് തട്ടി ഹോള്ഡ് ചെയ്യുക." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "ഹോം സ്ക്രീന് മാറ്റി." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "ലോഡ് ചെയ്യുന്നു..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "ഡാറ്റ ലോഡുചെയ്യാന് കഴിയുന്നില്ല. വീണ്ടും ശ്രമിക്കുന്നതിന് ടാപ്പുചെയ്യുക" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "ആപ്ലിക്കേഷൻ ചേർക്കാനാവില്ല. ഹോം സ്ക്രീനിൽ ഇനിയും സ്ഥലമില്ല." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "വിജിറ്റ് ചേർക്കാനാവില്ല. ഹോം സ്ക്രീനിൽ ഇനിയും സ്ഥലമില്ല." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "ആപ്ലിക്കേഷൻ നേരത്തേതന്നെ നിലവിലുണ്ട്." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "വിജിറ്റ് നേരത്തേതന്നെ നിലവിലുണ്ട്." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "ഹോം സ്ക്രീൻ ലേഔട്ട് മാറ്റി." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "ഈ ആപ്ലിക്കേഷൻ ഹോം സ്ക്രീനിൽ നിന്ന് നീക്കം ചെയ്യപ്പെടും. ഉപകരണത്തിൽ നിന്ന് അത് നീക്കംചെയ്യപ്പെടുകയില്ല." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "ആപ്ലിക്കേഷൻ നീക്കംചെയ്യുക" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "വിജിറ്റ് നീക്കംചെയ്യുക" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "ഈ വിജിറ്റ് ഹോം സ്ക്രീനിൽ നിന്ന് നീക്കം ചെയ്യപ്പെടും. ഉപകരണത്തിൽ നിന്ന് അത് നീക്കംചെയ്യപ്പെടുകയില്ല." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "വിജിറ്റ് ചേർക്കാനാവില്ല. വിജിറ്റുകളുടെ എണ്ണം പരമാവധിയിൽ (%d) എത്തി." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "ആപ്ലിക്കേഷൻ ചേർക്കാനാകില്ല. ആപ്ലിക്കേഷനുകളുടെ പരമാവധി എണ്ണം (%d) എത്തി." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "പേജ് ചേർക്കാനാവില്ല." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "സാധാരണ മോഡ്" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "പവർ ലാഭിക്കൽ മോഡ് അപ്രാപ്തമാക്കി." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "പവർ സേവിംഗ് മോഡ് പ്രാപ്തമാക്കി." + diff --git a/po/mr.po b/po/mr.po new file mode 100644 index 0000000..5ee0045 --- /dev/null +++ b/po/mr.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "ऍप्स" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "विजेट" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "काढण्यास अक्षम." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "ते हलवण्या साठी विजेट टॅप आणि होल्ड करा." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "होम स्क्रीन बदलली." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "लोड होत आहे..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "डेटा लोड करण्यामध्ये अक्षम. पुनर्प्रयत्न करण्यासाठी टॅप करा." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "अनुप्रयोग जोडण्यात अक्षम. मुख्य स्क्रीनवर कोणतेही अधिक कक्ष नाहीत." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "विजेट जोडण्यात अक्षम. मुख्य स्क्रीनवर कोणतेही अधिक कक्ष नाहीत." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "अनुप्रयोग आधीपासूनच अस्तित्वात आहे." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "विजेट आधीपासूनच अस्तित्वात आहे." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "मुख्य स्क्रीन लेआउट बदलले." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "हा अनुप्रयोग मुख्य स्क्रीनवरून काढण्यात येईल. हे उपकरणा मधून हटवण्यात येणार नाही." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "अनुप्रयोग काढून टाका" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "विजेट काढून टाका" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "हा विजेट मुख्य स्क्रीनवरून काढून टाकण्यात येईल. हे उपकरणा मधून हटवण्यात येणार नाही." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "विजेट जोडण्यात अक्षम. विजेटची कमाल संख्या (%d) गाठली." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "अनुप्रयोग जोडण्यामध्ये अक्षम. अनुप्रयोगांची कमाल संख्या (%d) गाठली." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "पृष्ठ जोडण्यात अक्षम." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "सामान्य मोड" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "ऊर्जा बचत मोड अक्षम केला." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "पॉवर जतन करत आहे मोड सक्षम केला." + diff --git a/po/ms.po b/po/ms.po new file mode 100644 index 0000000..ab4600e --- /dev/null +++ b/po/ms.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplikasi" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Tidak dapat mengalih keluar." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Ketik dan tahan widget untuk mengalihkannya." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Skrin utama ditukar." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Memuat…" + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Tidak dapat memuatkan data. Ketik untuk mencuba semula." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Tidak dapat menambah aplikasi. Tiada ruang pada skrin utama." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Tidak dapat menambah widget. Tiada ruang pada skrin utama." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Aplikasi telah wujud." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widget telah wujud." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Reka letak skrin utama berubah." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Aplikasi ini akan dialih keluar dari skrin utama. Aplikasi ini tidak akan dipadamkan daripada peranti." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Alih keluar aplikasi" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Alih keluar widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Widget ini akan dialih keluar dari skrin utama. Widget ini tidak akan dipadamkan daripada peranti." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Tidak dapat menambah widget. Bilangan maksimum widget (%d) dicapai." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Tidak dapat menambah aplikasi. Bilangan maksimum aplikasi (%d) dicapai." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Tidak dapat menambah halaman." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Mod biasa" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Mod penjimatan kuasa dinyahaktifkan." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Mod penjimatan kuasa diaktifkan." + diff --git a/po/my.po b/po/my.po new file mode 100644 index 0000000..640307b --- /dev/null +++ b/po/my.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "အက္ပ္မ်ား" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "၀စ္ဂ်စ္တ္" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "ျဖဳတ္ရန္ မရႏိုင္ပါ။" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "ဝစ္ဂတ္အား ေရႊ႕ရန္ ဤအား ႏွိပ္ျပီး ကိုင္ထားပါ။" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "မူလ ဖန္သားျပင္ ေျပာင္းထားသည္။" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "အခ်က္အလက္ျဖည့္သြင္းေနပါသည္…" + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "ေဒတာ တင္ရန္ မရႏိုင္ပါ။ ျပန္ၾကိဳးစားရန္ ႏွိပ္ပါ။" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "အပလီေကးရွင္းကို ေပါင္းထည့္လို႔ မရႏိုင္ပါ။ မူလ ဖန္သားျပင္ေပၚ၌ အခန္းလြတ္ေနရာ ေနာက္ထပ္ မရွိေတာ့ပါ။" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "ဝစ္ဂက္စ္ကို ေပါင္းထည့္လို႔ မရႏိုင္ပါ။ မူလ ဖန္သားျပင္ေပၚ၌ အခန္းလြတ္ေနရာ ေနာက္ထပ္ မရွိေတာ့ပါ။" + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "အပလီေကးရွင္းက ရွိႏွင့္ေနၿပီးသား ျဖစ္သည္။" + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "ဝစ္ဂက္စ္က ရွိႏွင့္ေနၿပီးသား ျဖစ္သည္။" + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "မူလ ဖန္သားျပင္ပုံစံကို ေျပာင္းထားၿပီးပါၿပီ။" + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "ဤအပလီေကးရွင္းကို မူလ ဖန္သားျပင္မွ ဖယ္ထုတ္ပါလိမ့္မည္။ ၎ကို ကိရိယာမွ ဖ်က္ထုတ္လိမ့္မည္ မဟုတ္ပါ။" + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "အပလီေကးရွင္းကို ဖယ္ထုတ္ပါ" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "ဝစ္ဂတ္ ျဖဳတ္ပါ" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "ဤျဖတ္လမ္းကို မူလ ဖန္သားျပင္မွ ျဖဳတ္ထုတ္လိမ့္မည္။ ၎ကို ကိရိယာမွ ဖ်က္ထုတ္လိမ့္မည္ မဟုတ္ပါ။" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "ဝစ္ဂက္ ထည့္မရႏိုင္ပါ။ ဝစ္ဂက္ အမ်ားဆံုး အေရအတြက္ (%d) ေရာက္ပါၿပီ။" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "အပလီေကးရွင္းကို ထည့္လို႔ မရႏိုင္ပါ။ အမ်ားဆံုး အပလီေကးရွင္း အေရအတြက္ (%d) သို႔ ေရာက္ေနပါၿပီ။" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "စာမ်က္ႏွာကုိ ေပါင္းထည့္လို႔ မရႏိုင္ပါ။" + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "ရိုးရိုး အေနအထား" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "ပါဝါ ေခၽြတာ အေနအထား ပိတ္ထားသည္။" + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "ပါဝါ ေခၽြတာျခင္း အေနအထား ရထားသည္။" + diff --git a/po/nb.po b/po/nb.po new file mode 100644 index 0000000..fee0035 --- /dev/null +++ b/po/nb.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Apper" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Kan ikke fjerne." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Trykk på og hold en widget for å flytte den." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Startskjerm endret." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Åpner..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Kan ikke laste data. Trykk for å prøve på nytt." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Kan ikke legge appen. Ikke mer plass på startskjermbildet." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Kan ikke legge widgeten. Ikke mer plass på startskjermbildet." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Appen finnes allerede." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widgeten finnes allerede." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Startskjermoppsett er endret." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Denne appen vil bli fjernet fra startskjermbildet. Den vil ikke bli slettet fra enheten." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Fjern app" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Fjern widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Denne widgeten vil bli fjernet fra startskjermbildet. Den vil ikke bli slettet fra enheten." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Kan ikke legge til widget. Maksimalt antall widgeter (%d) er nådd." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Kan ikke legge til app. Maksimalt antall apper (%d) er nådd." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Kan ikke legge til side." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normal modus" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Strømsparingsmodus er deaktivert." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Strømsparingsmodus er aktivert." + diff --git a/po/ne.po b/po/ne.po new file mode 100644 index 0000000..8acdd78 --- /dev/null +++ b/po/ne.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "एप्स" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "विजिट" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "हटाउन असमर्थ छ।" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "विजिटलाई सार्न ट्याप गरि समात्नुहोस्।" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "गृह स्क्रीन परिवर्तित भयो।" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "लोड हुँदै छ..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "डाटा लोड गर्न सकेन। पुन: प्रयास गर्नुहोस् मा ट्याप गर्नुहोस्।" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "अनुप्रयोग थप्न असक्षम। गृह स्क्रीनमा थप स्थान छैन।" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "विजिट थप्न असक्षम। गृह स्क्रीनमा थप स्थान छैन।" + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "अनुप्रयोगहरू पहिलेनै अवस्थित छ।" + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "विजिट पहिलेनै अवस्थित छ।" + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "गृह स्क्रीन लेआउट परिवर्तन गरिएको छ।" + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "यो अनुप्रयोग गृह स्क्रीनबाट हटाइने छ। यसलाई यन्त्रबाट मेटाइने छैन।" + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "अनुप्रयोग हटाउनुहोस्" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "विजिट हटाउनुहोस्" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "यो विजिट गृह स्क्रीनबाट हटाइने छ। यसलाई यन्त्रबाट मेटाइने छैन।" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "विजिट थप्न असक्षम। विजिटहरूको अधिकतम संख्या (%d) पुग्यो।" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "अनुप्रयोग थप्न असक्षम। अनुप्रयोगहरूको अधिकतम संख्या (%d) पुग्यो।" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "पृष्ठ थप्न असमर्थ।" + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "सामान्य मोड" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "पवर सेभिङ मोड असक्षम भयो।" + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "पवर बचत गर्ने मोड सक्षम बनाइयो।" + diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000..08b7043 --- /dev/null +++ b/po/nl.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Apps" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Kan niet verwijderen." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Tik op widget en houd vast om deze te verplaatsen." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Startscherm gewijzigd." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Laden..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Kan gegevens niet laden. Tik om opnieuw te proberen." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Kan applicatie niet toevoegen. Geen ruimte meer op startscherm." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Kan widget niet toevoegen. Geen ruimte meer op startscherm." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Applicatie bestaat al." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widget bestaat al." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Lay-out startscherm gewijzigd." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "De applicatie wordt uit het startscherm verwijderd. Deze wordt niet van het apparaat verwijderd." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Applic. verwijderen" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Widget verwijderen" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "De widget wordt uit het startscherm verwijderd. Deze wordt niet van het apparaat verwijderd." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Kan widget niet toevoegen. Maximumaantal widgets (%d) bereikt." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Kan applicatie niet toevoegen. Maximumaantal applicaties (%d) bereikt." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Kan pagina niet toevoegen." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normale stand" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Spaarstand uitgeschakeld." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Spaarstand ingeschakeld." + diff --git a/po/nl_NL.po b/po/nl_NL.po new file mode 100644 index 0000000..725fc5f --- /dev/null +++ b/po/nl_NL.po @@ -0,0 +1,3 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Apps" + diff --git a/po/or.po b/po/or.po new file mode 100644 index 0000000..7d34261 --- /dev/null +++ b/po/or.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "ଆପ୍ଲିକେସନଗୁଡିକ" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "ୱିଜେଟ୍" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "ଅପସାରଣ କରିବାକୁ ଅସମର୍ଥ।" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "ଏହା ଘୁଞ୍ଚାଇବାକୁ ଏକ ୱିଜେଟ୍ ଟ୍ୟାପ୍ କରି ଧରି ରଖନ୍ତୁ।" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "ହୋମ୍ ସ୍କ୍ରିନ୍ ପରିବର୍ତ୍ତନ ହେଲା।" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "ଲୋଡ୍ କରୁଛି..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "ଡାଟା ଲୋଡ୍ କରିବାକୁ ଅସମର୍ଥ। ପୁନଃଚେଷ୍ଟା କରିବାକୁ ଟ୍ୟାପ୍ କରନ୍ତୁ।" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "ଆପ୍ଲିକେସନ୍ ଯୋଡିବାକୁ ଅସମର୍ଥ। ହୋମ୍ ସ୍କ୍ରିନରେ ଆଉ ଅଧିକ ପ୍ରକୋଷ୍ଟ ନାହିଁ।" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "ୱିଜେଟ୍ ଯୋଡିବାକୁ ଅସମର୍ଥ। ହୋମ୍ ସ୍କ୍ରିନରେ ଆଉ ଅଧିକ ପ୍ରକୋଷ୍ଟ ନାହିଁ।" + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "ଆପ୍ଲିକେସନ୍ ପୂର୍ବରୁ ବିଦ୍ୟମାନ ଅଛି।" + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "ୱିଜେଟ୍ ପୂର୍ବରୁ ବିଦ୍ୟମାନ ଅଛି।" + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "ହୋମ୍ ସ୍କ୍ରିନ୍ ଲେଆଉଟ୍ ବଦଳିଛି।" + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "ଏହି ଆପ୍ଲିକେସନ୍ ହୋମ୍ ସ୍କ୍ରିନ୍ରୁ ଅପସାରିତ ହେବ। ଏହା ଡିଭାଇସ୍ ଠାରୁ ବିଲୋପିତ ହେବନାହିଁ।" + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "ଆପ୍ଲିକେସନ୍ ଅପସାରଣ" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "ୱିଜେଟ୍ ଅପସାରଣ କରନ୍ତୁ" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "ଏହି ୱିଜେଟ୍ ହୋମ୍ ସ୍କ୍ରିନ୍ରୁ ଅପସାରିତ ହେବ। ଏହା ଡିଭାଇସ୍ ଠାରୁ ବିଲୋପିତ ହେବନାହିଁ।" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "ୱିଡଜେଟ୍ ଯୋଡିବାକୁ ଅସମର୍ଥ। ସର୍ବାଧିକ ସଂଖ୍ୟାର ୱିଡଜେଟ୍ରେ (%d) ରେ ପହଞ୍ଚିଛି।" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "ଆପ୍ଲିକେସନ୍ ଯୋଡିବାକୁ ଅସମର୍ଥ। ସର୍ବାଧିକ ସଂଖ୍ୟକର ଆପ୍ଲିକେସନ୍ଗୁଡିକ (%d)ରେ ପହଞ୍ଚିଛି।" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "ପୃଷ୍ଠା ଯୋଡିବାକୁ ଅସମର୍ଥ।" + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "ସାଧାରଣ ମୋଡ୍" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "ପାୱାର୍ ସଞ୍ଚୟ ମୋଡ୍ ଅକ୍ଷମ ହୋଇଛି।" + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "ପାୱାର୍ ସଞ୍ଚୟ ମୋଡ୍ ସକ୍ଷମ ହୋଇଛି।" + diff --git a/po/pa.po b/po/pa.po new file mode 100644 index 0000000..59d2a58 --- /dev/null +++ b/po/pa.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "ਐਪਸ" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "ਵਿੱਜੇਟ" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "ਹਟਾਉਣ ਵਿੱਚ ਅਸਮਰੱਥ।" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "ਵਿੱਜੇਟ ਮੂਵ ਕਰਨ ਲਈ ਇਸਨੂੰ ਟੈਪ ਅਤੇ ਹੋਲਡ ਕਰੋ।" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "ਹੋਮ ਸਕ੍ਰੀਨ ਬਦਲੀ।" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "ਲੋਡ ਹੋ ਰਿਹਾ ਹੈ..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "ਡੈਟਾ ਨੂੰ ਲੋਡ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "ਅਨੁਪ੍ਰਯੋਗ ਜੋੜਨ ਵਿੱਚ ਅਸਮਰੱਥ। ਹੋਮ ਸਕ੍ਰੀਨ ਵਿੱਚ ਹੋਰ ਰੂਮ ਨਹੀਂ।" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "ਵਿੱਜੇਟ ਜੋੜਨ ਵਿੱਚ ਅਸਮਰੱਥ। ਹੋਮ ਸਕ੍ਰੀਨ ਵਿੱਚ ਹੋਰ ਰੂਮ ਨਹੀਂ।" + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "ਅਨੁਪ੍ਰਯੋਗ ਪਹਿਲਾਂ ਤੋਂ ਹੀ ਮੌਜੂਦ ਹੈ।" + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "ਵਿੱਜੇਟ ਪਹਿਲਾਂ ਤੋਂ ਹੀ ਮੌਜੂਦ ਹੈ।" + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "ਹੋਮ ਸਕ੍ਰੀਨ ਲੇਆਉਟ ਬਦਲਿਆ।" + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "ਇਸ ਅਨੁਪ੍ਰਯੋਗ ਨੂੰ ਹੋਮ ਸਕ੍ਰੀਨ ਤੋਂ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ। ਇਹ ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਤੋਂ ਮਿਟਾਇਆ ਨਹੀਂ ਜਾਵੇਗਾ।" + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "ਅਨੁਪ੍ਰਯੋਗ ਹਟਾਓ" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "ਵਿੱਜੇਟ ਹਟਾਉ" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "ਇਸ ਵਿੱਜੇਟ ਨੂੰ ਹੋਮ ਸਕ੍ਰੀਨ ਤੋਂ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ। ਇਹ ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਤੋਂ ਮਿਟਾਇਆ ਨਹੀਂ ਜਾਵੇਗਾ।" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "ਵਿੱਜੇਟ ਜੋੜਨ ਵਿੱਚ ਅਸਮਰੱਥ। ਵਿੱਜੇਟਸ ਅਧਿਕਤਮ ਸੰਖਿਆ (%d) ਤੇ ਪਹੁੰਚੇ।" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "ਅਨੁਪ੍ਰਯੋਗ ਜੋੜਨ ਵਿੱਚ ਅਸਮਰੱਥ। ਅਨੁਪ੍ਰਯੋਗਾਂ ਦੀ ਸੰਖਿਆ (%d) ਅਧਿਕਤਮ ਤੇ ਪਹੁੰਚ ਗਈ ਹੈ।" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "ਪੇਜ ਜੋੜਨ ਵਿੱਚ ਅਸਮਰੱਥ।" + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "ਸਧਾਰਨ ਮੋਡ" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "ਪਾਵਰ ਸੇਵਿੰਗ ਮੋਡ ਅਸਮਰੱਥ ਹੋਇਆ।" + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "ਪਾਵਰ ਸੇਵਿੰਗ ਮੋਡ ਸਮਰੱਥ ਹੋਇਆ।" + diff --git a/po/pl.po b/po/pl.po new file mode 100644 index 0000000..fe0bf5c --- /dev/null +++ b/po/pl.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplikacje" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Nie można usunąć." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Dotknij widget, przytrzymaj go, aby przesunąć." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Zmieniono ekran startowy." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Ładuję..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Nie można załadować danych. Dotknij, aby spróbować ponownie." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Nie można dodać aplikacji. Na ekranie startowym nie ma już miejsca." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Nie można dodać widgetu. Na ekranie startowym nie ma już miejsca." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Aplikacja już istnieje." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widget już istnieje." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Zmieniono układ ekranu startowego." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Ta aplikacja zostanie usunięta z ekranu startowego. Nie zostanie ona usunięta z urządzenia." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Usuwanie aplikacji" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Usuwanie widgetów" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Ten widget zostanie usunięty z ekranu startowego. Nie zostanie on usunięty z urządzenia." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Nie można dodać widgetu. Osiągnięto maksymalną liczbę widgetów (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Nie można dodać aplikacji. Osiągnięto maksymalną liczbę aplikacji (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Nie można dodać strony." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Tryb normalny" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Wyłączono Tryb oszczędzania energii." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Włączono tryb oszczędzania energii." + diff --git a/po/pt_BR.po b/po/pt_BR.po new file mode 100644 index 0000000..25f77b3 --- /dev/null +++ b/po/pt_BR.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplicativos" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Impossível remover." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Toque e mantenha pressionada um widget para movê-lo." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Tela de início alterada." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Carregando..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Não é possível carregar os dados. Toque para tentar novamente." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Não é possível adicionar o aplicativo. Nenhum local na tela de início." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Não é possível adicionar o widget. Nenhum local na tela de início." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "O aplicativo já existe." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "O widget já existe." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Layout da tela de início alterado." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Este aplicativo será removido da tela de início. Ele não será excluído do dispositivo." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Remover aplicativo" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Remover widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Este widget será removido da tela de início. Ele não será excluído do dispositivo." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Não é possível adicionar o widget. Número máximo de widgets (%d) atingido." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Não é possível adicionar aplicativo. Número máximo de aplicativos (%d) atingido." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Não é possível adicionar a página." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Modo normal" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Modo de Economia desativado." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Modo de economia de energia ativado." + diff --git a/po/pt_PT.po b/po/pt_PT.po new file mode 100644 index 0000000..1a31b0c --- /dev/null +++ b/po/pt_PT.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplicações" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Impossível remover." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Toque, sem soltar, um widget para o mover." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Ecrã principal alterado." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "A carregar..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Impossível carregar dados. Toque para tentar novamente." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Impossível adicionar aplicação. Já não há espaço no ecrã principal." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Impossível adicionar widget. Já não há espaço no ecrã principal." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Aplicação já existe." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widget já existe." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "A disposição do ecrã principal foi alterada." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Esta aplicação será removida do ecrã principal. Não será eliminada do dispositivo." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Remover aplicação" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Remover widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Este widget será removido do ecrã principal. Não será eliminada do dispositivo." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Impossível adicionar widget. Número máximo de widgets (%d) atingido." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Impossível adicionar aplicação. Número máximo de aplicações (%d) atingido." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Impossível adicionar página." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Modo normal" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Modo de economia de energia desactivado." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Modo de economia de energia activado." + diff --git a/po/ro.po b/po/ro.po new file mode 100644 index 0000000..49bd631 --- /dev/null +++ b/po/ro.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplicaţii" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Imposibil de eliminat" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Ţineţi apăsat pe un widget pentru a-l muta." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Ecranul de pornire s-a modificat." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Încărcare..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Datele nu pot fi încărcate. Atingeţi pentru a reîncerca." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Aplicaţia nu poate fi adăugată. Ecranul de pornire este plin." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Widgetul nu poate fi adăugat. Ecranul de pornire este plin." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Aplicaţia există deja." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widgetul există deja." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Aspectul ecranului de pornire s-a schimbat." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Aplicaţia va fi eliminată din ecranul de pornire. Aceasta nu va fi ştearsă de pe dispozitiv." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Eliminare aplicaţie" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Eliminare widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Widgetul va fi eliminat din ecranul de pornire. Acesta nu va fi şters de pe dispozitiv." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Widgetul nu poate fi adăugat. A fost atins numărul maxim de widgeturi (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Aplicaţia nu poate fi adăugată. A fost atins numărul maxim de aplicaţii (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Pagina nu poate fi adăugată." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Mod normal" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Modul de economisire a energiei a fost dezactivat." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Modul de economisire a energiei a fost activat." + diff --git a/po/ru_RU.po b/po/ru_RU.po new file mode 100644 index 0000000..f6d5591 --- /dev/null +++ b/po/ru_RU.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Приложения" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Виджеты" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Невозможно удалить." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Для перемещения виджета нажмите и удерживайте его." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Главный экран изменен." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Загрузка..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Не удалось загрузить данные. Коснитесь для повтора" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Не удалось добавить приложение. Нет места на этом главном экране." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Не удалось добавить виджет. Нет места на этом главном экране." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Приложение уже существует." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Виджет уже существует." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Макет главного экрана изменен." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Это приложение будет удалено с главного экрана. Оно не будет удалено с устройства." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Удалить приложение" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Удалить виджет" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Этот виджет будет удален с главного экрана. Он не будет удален с устройства." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Не удалось добавить виджет. Достигнуто максимальное количество виджетов (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Не удалось добавить приложение. Достигнуто максимальное количество приложений (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Невозможно добавить страницу." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Обычный режим" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Режим энергосбережения выключен." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Режим энергосбережения включен." + diff --git a/po/si.po b/po/si.po new file mode 100644 index 0000000..c445182 --- /dev/null +++ b/po/si.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "යෙදුම්" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "විජෙට්ටුව" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "ඉවත් කළ නොහැක." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "විජෙට්ටුව චලනය කිරීමට ඊට තට්ටු කර තබා ගන්න." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "මුල් පිටු තිරය වෙනස් කෙරිණි." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "පූරණය කරමින්..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "දත්ත ප්රවේශනය කිරීමට නොහැකිය. යළි උත්සාහ කිරීමට තට්ටු කරන්න" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "යෙදුම එක් කිරීමට නොහැකි විය. මුල්පිටු තිරය මත තවත් ඉඩ නැත." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "විජෙට්ටුවක් එක් කළ නොහැක. මුල්පිටු තිරය මත තවත් ඉඩ නැත." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "යෙදුම දැනටමත් තිබේ." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "විජට්ටුව දැනටමත් පවතී." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "නිවාස පිටුවේ සැකැස්ම වෙනස් කරන ලදි." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "මෙම යෙදුම මුල්තිරයෙන් ඉවත්වනු ඇත. එය උපාංගයෙන් නොමැකෙනු ඇත." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "යෙදුම ඉවත් කරන්න" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "විජෙට්ටුව ඉවත් කරන්න" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "මෙම කෙටිමඟ මුල්තිරයෙන් ඉවත්වනු ඇත. එය උපාංගයෙන් නොමැකෙනු ඇත." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "විජෙට්ටුවක් එක් කළ නොහැක. උපරිම විජෙට්ටු ගණනට (%d) ළඟා විය." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "යෙදුම එක් කළ නොහැක. උපරිම යෙදුම් ගණනට (%d) ළඟා විය." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "පිටුව එක් කළ නොහැක." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "සාමාන්ය ප්රකාරය" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "බල සුරැකුම් ප්රකාරය අක්රියයි." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "බල සුරැකුම් ප්රකාරය සක්රියයි." + diff --git a/po/sinhala.po b/po/sinhala.po new file mode 100755 index 0000000..d061177 --- /dev/null +++ b/po/sinhala.po @@ -0,0 +1,33 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "යෙදුම්" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "විජෙට්ටුව" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "ඉවත් කළ නොහැක." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "විජෙට්ටුව චලනය කිරීමට ඊට තට්ටු කර තබා ගන්න." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "මුල් පිටු තිරය වෙනස් කෙරිණි." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "පූරණය කරමින්..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "දත්ත ප්රවේශනය කිරීමට නොහැකිය. යළි උත්සාහ කිරීමට තට්ටු කරන්න" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "යෙදුම එක් කිරීමට නොහැකි විය. මුල්පිටු තිරය මත තවත් ඉඩ නැත." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "විජෙට්ටුවක් එක් කළ නොහැක. මුල්පිටු තිරය මත තවත් ඉඩ නැත." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "යෙදුම දැනටමත් තිබේ." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "විජට්ටුව දැනටමත් පවතී." + diff --git a/po/sk.po b/po/sk.po new file mode 100644 index 0000000..4ceb7f8 --- /dev/null +++ b/po/sk.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplikácie" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Nedá sa odstrániť." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Ťukn. na miniaplikáciu a podržaním ju premiestnite." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Domovská obrazovka sa zmenila." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Načítava sa..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Nemožno načítať údaje. Ťuknutím to môžete skúsiť znova." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Aplikáciu nemožno pridať. Na domovskej obrazovke už nie je voľné miesto." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Miniaplikáciu nemožno pridať. Na domovskej obrazovke už nie je voľné miesto." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Aplikácia už existuje." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Miniaplikácia už existuje." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Rozloženie domovskej obrazovky sa zmenilo." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Táto aplikácia sa odstráni z domovskej obrazovky. Neodstráni sa zo zariadenia." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Odstrániť aplikáciu" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Odstrániť miniaplik." + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Táto miniaplikácia sa odstráni z domovskej obrazovky. Neodstráni sa zo zariadenia." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Miniaplikácia sa nedá pridať. Dosiahol sa maximálny počet miniaplikácií (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Aplikáciu nemožno pridať. Dosiahol sa maximálny počet aplikácií (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Stránku nemožno pridať." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normálny režim" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Režim šetrenia energie je vypnutý." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Režim šetrenia energie je zapnutý." + diff --git a/po/sl.po b/po/sl.po new file mode 100644 index 0000000..6421096 --- /dev/null +++ b/po/sl.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplikacije" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Pripomoček" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Ni mogoče odstraniti." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Pritisnite in držite pripomoček, da ga premaknete." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Domači zaslon je spremenjen." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Nalaganje..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Podatkov ni mogoče naložiti. Pritisnite, da poskusite znova." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Aplikacije ni mogoče dodati. Na domačem zaslonu ni več prostora." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Pripomočka ni mogoče dodati. Na domačem zaslonu ni več prostora." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Aplikacija že obstaja." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Pripomoček že obstaja." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Postavitev domačega zaslona je spremenjena." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Ta aplikacija bo odstranjena z domačega zaslona. Aplikacija ne bo izbrisana iz naprave." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Odstran. aplikacijo" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Odstran. pripomoček" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Ta pripomoček bo odstranjen z domačega zaslona. Pripomoček ne bo izbrisan iz naprave." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Pripomočka ni mogoče dodati. Doseženo je največje dovoljeno število pripomočkov (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Aplikacije ni mogoče dodati. Doseženo je največje dovoljeno število aplikacij (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Strani ni mogoče dodati." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Običajen način" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Način varčevanja z energijo je onemogočen." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Način varčevanja z energijo je omogočen." + diff --git a/po/sq.po b/po/sq.po new file mode 100644 index 0000000..142fe5b --- /dev/null +++ b/po/sq.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplikacionet" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Mini-aplikacion" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Nuk mund të heqë." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Prek dhe mbaj miniaplikacionin për ta lëvizur." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Ekrani bazë u ndryshua." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Duke ngarkuar..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Nuk mund të ngarkoj të dhëna. Trokit për të riprovuar." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Nuk mund të shtoj aplikacionin. Nuk ka më vend në ekranin bazë." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Nuk mund të shtoj widget-in. Nuk ka më vend në ekranin bazë." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Aplikacioni ekziston tashmë." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widget-i ekziston tashmë." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Struktura e ekranit bazë u ndryshua." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Ky aplikacion do të largohet nga ekrani bazë. Nuk do të hiqet nga pajisja." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Largo aplikacionin" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Largo widget-in" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Ky widget do të largohet nga ekrani bazë. Nuk do të hiqet nga pajisja." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Nuk mund ta shtoj widget-in. Është arritur numri maksimal i widget-eve (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Nuk mund të shtoj aplikacion. U arrit numri maksimal (%d) i aplikacioneve." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Nuk mund të shtoj faqe." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Regjim normal" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Regjimi kursim energjie u paaftësua." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Regjimi kursim energjie u aftësua." + diff --git a/po/sr.po b/po/sr.po new file mode 100644 index 0000000..e015a28 --- /dev/null +++ b/po/sr.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Aplikacije" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Nemoguće ukloniti." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Kucni i zadrži widget radi njegovog premeštanja." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Početni ekran je promenjen." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Učitavanje..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Učitavanje podataka nije moguće. Kucni za ponovni pokušaj." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Nije moguće dodati aplikaciju. Nema više mesta na početnom ekranu." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Nije moguće dodati widget. Nema više mesta na početnom ekranu." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Aplikacija već postoji." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widget već postoji." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Izgled početnog ekrana je promenjen." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Ova aplikacija će biti uklonjena sa početnog ekrana. Ona neće biti izbrisana iz uređaja." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Ukloni aplikaciju" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Ukloni widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Ovaj widget će biti uklonjen sa početnog ekrana. On neće biti izbrisan iz uređaja." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Nije moguće dodati widget. Dostignut je maksimalan broj widget-a (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Nije moguće dodati aplikaciju. Dostignut je maksimalan broj aplikacija (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Nije moguće dodati stranicu." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normalni režim" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Režim štednje energije je onemogućen." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Režim uštede energije je omogućen." + diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 0000000..c24f631 --- /dev/null +++ b/po/sv.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Program" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Det går inte att ta bort." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Tryck på och håll ned en widget för att flytta den." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Startsidan har ändrats." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Laddar..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Det går inte att läsa in data. Tryck om du vill försöka igen." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Kan inte lägga till program. Det finns ingen mer plats på hemskärmen." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Kan inte lägga till widget. Det finns ingen mer plats på hemskärmen." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Programmet finns redan." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widgeten finns redan." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Layouten för hemskärmen har ändrats." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Detta program kommer att tas bort från hemskärmen. Det kommer inte att tas bort från enheten." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Ta bort program" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Ta bort widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Denna widget kommer att tas bort från hemskärmen. Den kommer inte att tas bort från enheten." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Det går inte att lägga till widget. Högsta antalet widgetar (%d) har uppnåtts." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Det går inte att lägga till program. Högsta antal tillåtna program (%d) har uppnåtts." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Det går inte att lägga till sida." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normalt läge" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Energisparläget har inaktiverats." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Energisparläge aktiverat." + diff --git a/po/ta.po b/po/ta.po new file mode 100644 index 0000000..f6fe405 --- /dev/null +++ b/po/ta.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "ப.பாடுகள்" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "விட்ஜெட்" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "அகற்ற முடியவில்லை." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "ஒரு விட்ஜெட்டை இதற்கு நகர்த்த டேப் செய்து வைத்திருக்கவும்." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "முகப்புத் திரை மாற்றப்பட்டது." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "லோடிங்..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "தரவை ஏற்ற இயலவில்லை. மீண்டும் முயலவென டேப் செய்க." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "பயன்பாட்டை சேர்க்க இயலவில்லை. முகப்புத் திரையில் இடமில்லை." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "விட்ஜெட்டைச் சேர்க்க இயலவில்லை. முகப்புத் திரையில் இடமில்லை." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "பயன்பாடு முன்பே உள்ளது." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "விட்ஜெட் முன்பே உள்ளது." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "முகப்புத் திரை தளவமைப்பு மாற்றப்பட்டது." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "இந்த பயன்பாடு முகப்புத் திரையிலிருந்து நீக்கப்படும். அது சாதனத்திலிருந்து நீக்கப்படாது." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "பயன்பாட்டை நீக்குக" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "விட்ஜெட்டை நீக்குக" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "இந்த விட்ஜெட் முகப்புத் திரையிலிருந்து நீக்கப்படும். அது சாதனத்திலிருந்து நீக்கப்படாது." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "விட்ஜெட்டைச் சேர்க்க இயலவில்லை. விட்ஜெட்களின் அதிகபட்ச எண்ணிக்கையை (%d) அடைந்தது." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "பயன்பாட்டைச் சேர்க்க இயலவில்லை. பயன்பாடுகளின் அதிகபட்ச எண்ணிக்கையை (%d) அடைந்தது." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "பக்கத்தை சேர்க்க இயலவில்லை." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "இயல்பான முறை" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "பவர் சேமிப்பு முறை செயல்நீக்கப்பட்டது." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "பவர் சேவிங் பயன்முறை செயல்படுத்தப்பட்டது." + diff --git a/po/te.po b/po/te.po new file mode 100644 index 0000000..419786d --- /dev/null +++ b/po/te.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "ఆప్స్" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "విడ్జెట్" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "తీసివేయడం సాధ్యం కాదు." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "దీన్ని తరలించేందుకు ఒక విడ్జెట్ను నొక్కి పట్టి ఉంచండి." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "హోమ్ స్క్రీన్ మారింది." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "లోడ్ అవుతోంది..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "డేటాను లోడ్ చేయడం సాధ్యం కాదు. మళ్లీ ప్రయత్నించడానికి ట్యాప్ చేయండి." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "అప్లికేషన్ని జోడించడం సాధ్యం కాదు. హోమ్ స్క్రీన్లో గది లేదు." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "విడ్జెట్ను జోడించడం సాధ్యం కాదు. హోమ్ స్క్రీన్లో గది లేదు." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "అప్లికేషన్ ఇప్పటికే ఉంది." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "విడ్జెట్ ఇప్పటికే ఉంది." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "హోమ్ స్క్రీన్ లేఅవుట్ మార్చబడింది." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "ఈ అప్లికేషన్ హోమ్ స్క్రీన్ నుండి తీసివేయబడుతుంది. ఇది పరికరం నుండి తొలగించబడదు." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "అప్లికేషన్ని తీసివేయి" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "విడ్జెట్ని తీసివేయి" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "ఈ విడ్జెట్ హోమ్ స్క్రీన్ నుండి తీసివేయబడుతుంది. ఇది పరికరం నుండి తొలగించబడదు." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "విడ్జెట్ను జోడించడం సాధ్యం కాదు. విడ్జెట్ల గరిష్ట సంఖ్యను (%d) చేరుకున్నారు." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "అప్లికేషన్ని జోడించడం సాధ్యం కాదు. అప్లికేషన్ల గరిష్ట సంఖ్యను (%d) చేరుకున్నారు." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "పేజీని జోడించడం సాధ్యం కాదు." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "సాధారణ మోడ్" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "శక్తి ఆదా మోడ్ నిలిపివేయబడింది." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "శక్తి ఆదా మోడ్ ప్రారంభించబడింది." + diff --git a/po/th.po b/po/th.po new file mode 100644 index 0000000..842dc7c --- /dev/null +++ b/po/th.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "แอพ" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "ลบไม่ได้" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "สัมผัส Widget ค้างไว้เพื่อเลื่อน" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "เปลี่ยนหน้าจอหลักแล้ว" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "โหลด..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "ไม่สามารถโหลดข้อมูลได้ สัมผัสเพื่อลองอีกครั้ง" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "ไม่สามารถเพิ่มแอพพลิเคชั่นได้ ไม่มีที่ว่างเพิ่มในหน้าจอหลัก" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "ไม่สามารถเพิ่มวิดเจ็ท ไม่มีที่ว่างเพิ่มในหน้าจอหลัก" + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "มีแอพพลิเคชั่นอยู่แล้ว" + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "มีวิดเจ็ทอยู่แล้ว" + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "เปลี่ยนรูปแบบหน้าจอหลักแล้ว" + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "แอพพลิเคชั่นนี้ จะถูกลบออกจากหน้าจอหลัก แต่จะไม่ถูกลบออกจากอุปกรณ์" + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "ลบแอพพลิเคชั่นออก" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "ลบวิดเจ็ท" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "วิดเจ็ทนี้จะถูกลบออกจากหน้าจอหลัก แต่จะไม่ถูกลบออกจากอุปกรณ์" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "ไม่สามารถเพิ่ม Widget ถึงจำนวนวิดเจ็ทสูงสุด (%d) แล้ว" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "ไม่สามารถเพิ่มแอพพลิเคชั่นได้ ถึงจำนวนแอพพลิเคชั่นสูงสุด (%d) แล้ว" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "ไม่สามารถเพิ่มหน้าได้" + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "โหมดปกติ" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "ปิดใช้งานโหมดประหยัดพลังงานแล้ว" + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "เปิดใช้งานโหมดประหยัดพลังงานแล้ว" + diff --git a/po/tl.po b/po/tl.po new file mode 100644 index 0000000..6659eeb --- /dev/null +++ b/po/tl.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Apps" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Hindi maalis." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Tap and hold a widget to move it." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Pinalitan ang home screen." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Naglo-load..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Hindi ma-load ang data. I-tap upang subukang muli." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Hindi maidagdag ang application. Wala nang espasyo sa home screen." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Hindi maidagdag ang widget. Wala nang espasyo sa home screen." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Umiiral na ang application." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Umiiral na ang widget." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Binago ang layout ng home screen." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Aalisin ang application na ito sa home screen. Hindi ito ide-delete sa device." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Alisin application" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Alisin ang widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Aalisin ang widget na ito sa home screen. Hindi ito ide-delete sa device." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Hindi makapagdagdag ng widget. Naabot na ang maximum na bilang ng mga widget (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Hindi makapagdagdag ng application. Naabot na ang maximum na bilang ng mga application (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Hindi maidagdag ang pahina." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normal mode" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Hindi pinagana ang Power saving mode." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Pinagana ang Power saving mode." + diff --git a/po/tr_TR.po b/po/tr_TR.po new file mode 100644 index 0000000..1b988d0 --- /dev/null +++ b/po/tr_TR.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Uygulamalar" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Kaldırılamıyor." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Bir widget'ı taşımak için dokunun ve bırakmayın." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Ana ekran değişti." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Yükleniyor..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Veri yüklenemiyor. Tekrar denemek için dokunun." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Uygulama eklenemiyor. Ana sayfa ekranında yer yok." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Widget eklenemiyor. Ana sayfa ekranında yer yok." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Uygulama zaten mevcut." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widget zaten mevcut." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Ana ekran düzeni değiştirildi." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Bu uygulama ana ekrandan kaldırılacak. Uygulama cihazdan silinmeyecektir." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Uygulamayı kaldır" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Widget'ı kaldır" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Bu widget ana ekrandan kaldırılacak. Widget cihazdan silinmeyecektir." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Widget eklenemiyor. Maksimum widget sayısına (%d) ulaşıldı." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Uygulama eklenemiyor. Maksimum uygulama sayısına (%d) ulaşıldı." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Sayfa eklenemiyor." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normal mod" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Güç tasarrufu modu devre dışı." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Güç tasarrufu modu etkin." + diff --git a/po/uk.po b/po/uk.po new file mode 100644 index 0000000..e6a65bc --- /dev/null +++ b/po/uk.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Програми" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Віджет" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Неможливо видалити." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Натисніть і утримуйте віджет, щоб перемістити його." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Головний екран змінено." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Завантаження..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Неможливо завантажити дані. Натисніть, щоб спробувати ще раз" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Неможливо додати програму. На цьому екрані оформлення більше немає місця." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Неможливо додати віджет. На цьому екрані оформлення більше немає місця." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Така програма вже існує." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Такий віджет уже існує." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Фон екрана оформлення змінено." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Цю програму буде видалено з екрана оформлення. Вона не видалятиметься із пристрою." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Видалити програму" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Видалити віджет" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Цей віджет буде видалено з екрана оформлення. Він не видалятиметься із пристрою." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Неможливо додати віджет. Досягнуто максимальної кількості віджетів: %d." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Неможливо додати програму. Досягнуто максимальної кількості програм (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Неможливо додати сторінку." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Звичайний режим" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Режим енергозбереження вимкнено." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Режим енергозбереження ввімкнено." + diff --git a/po/update-po.sh b/po/update-po.sh new file mode 100644 index 0000000..c84f1a7 --- /dev/null +++ b/po/update-po.sh @@ -0,0 +1,60 @@ +#!/bin/sh + +PACKAGE=volume +SRCROOT=../src +POTFILES=POTFILES.in + +#ALL_LINGUAS= ar bg ca cs da de_DE el_GR en en_GB en_US es_ES fi fr_FR he hi hr hu id it_IT ja_JP ko_KR lt lv ms nl_NL no pl pt_PT ro ru_RU sk sl sr sv th tr_TR uk vi zh_CN zh_HK zh_TW +ALL_LINGUAS="ar bg ca cs da de_DE el_GR en en_GB en_US es_ES fi fr_FR he hi hr hu id it_IT ja_JP ko_KR lt lv ms nl_NL no pl pt_PT ro ru_RU sk sl sr sv th tr_TR uk vi zh_CN zh_HK zh_TW" + +XGETTEXT=/usr/bin/xgettext +MSGMERGE=/usr/bin/msgmerge + +echo -n "Make ${PACKAGE}.pot " +if [ ! -e $POTFILES ] ; then + echo "$POTFILES not found" + exit 1 +fi + +$XGETTEXT --default-domain=${PACKAGE} --directory=${SRCROOT} \ + --add-comments --keyword=_ --keyword=N_ --files-from=$POTFILES +if [ $? -ne 0 ]; then + echo "xgettext error" + exit 1 +fi + +if [ ! -f ${PACKAGE}.po ]; then + echo "No such file: ${PACKAGE}.po" + exit 1 +fi + +rm -f ${PACKAGE}.pot && mv ${PACKAGE}.po ${PACKAGE}.pot +echo "done" + +for LANG in $ALL_LINGUAS; do + echo "$LANG : " + + if [ ! -e $LANG.po ] ; then + sed 's/CHARSET/UTF-8/g' ${PACKAGE}.pot > ${LANG}.po + echo "${LANG}.po created" + else + if $MSGMERGE ${LANG}.po ${PACKAGE}.pot -o ${LANG}.new.po ; then + if cmp ${LANG}.po ${LANG}.new.po > /dev/null 2>&1; then + rm -f ${LANG}.new.po + else + if mv -f ${LANG}.new.po ${LANG}.po; then + echo "" + else + echo "msgmerge for $LANG.po failed: cannot move $LANG.new.po to $LANG.po" 1>&2 + rm -f ${LANG}.new.po + exit 1 + fi + fi + else + echo "msgmerge for $LANG failed!" + rm -f ${LANG}.new.po + fi + fi + echo "" +done + diff --git a/po/ur.po b/po/ur.po new file mode 100644 index 0000000..3c6d51e --- /dev/null +++ b/po/ur.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "ایپلیکیشنز" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "وڈجیٹ" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "ہٹانے سے قاصر۔" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "اسے منتقل کرنے کے لیے کسی وجٹ کو دبائیں یا دبا کر رکھیں" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "ہوم اسکرین تبدیل ہوگئی۔" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "لوڈنگ..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "ڈیٹا لوڈ کرنے سے قاصر۔ پھرکوشش کرنے کے لئے تھپتھپائیں۔" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "اپلیکیشن شامل کرنے سے قاصر۔ ہوم اسکرین پر مزید جگہ نہیں ہے۔" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "ویجٹ لوڈ کرنے سے قاصر۔ ہوم اسکرین پر مزید جگہ نہیں ہے۔" + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "اپلیکیشن پہلے سے ہی موجود ہے۔" + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "ویجٹ پہلے سے ہی موجود ہے۔" + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "ہوم اسکرین کا خاکہ تبدیل ہوگیا۔" + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "یہ اپلیکیشن ہوم اسکرین سے ہٹا دیاجائے گا۔ یہ آلے سے حذف نہیں ہوگا۔" + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "اپلیکیشن ہٹائیں" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "ویجٹ ہٹائیں" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "یہ ویجٹ ہوم اسکرین سے ہٹا دیاجائے گا۔ یہ آلے سے حذف نہیں ہوگا۔" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "ویجیٹ شامل کرنے سے قاصر۔ ویجیٹس کی زیادہ سے زیادہ تعداد (%d) کو پہنچ گیا۔" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "ایپلی کیشن شامل کرنے سے قاصر۔ ایپلی کیشنز کی زیادہ سے زیادہ تعداد (%d) تک پہنچ گئے ہیں۔" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "صفحہ شامل کرنے سے قاصر۔" + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "نارمل موڈ" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "پاور بچت وضع غیر فعال ہے۔" + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "بچلی کی بچت کی وضع فعال ہے۔" + diff --git a/po/uz.po b/po/uz.po new file mode 100644 index 0000000..bc2064c --- /dev/null +++ b/po/uz.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Ilovalar" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Vidjet" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Olib tashlab bo‘lmaydi." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Vidjetni ko‘chirish uchun uni bosib turing." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Asosiy ekran o‘zgartirildi." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Yuklanmoqda..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Ma’lumotni yuklab bo‘lmaydi. Qayta urinib ko‘rish uchun cherting" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Ilovani qo‘shib bo‘lmaydi. Asosiy ekranda boshqa joy yo‘q." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Vidjetni qo‘shib bo‘lmaydi. Asosiy ekranda boshqa joy yo‘q." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Ilova avvaldan mavjud." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Vidjet oldindan mavjud." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Asosiy ekran tuzilishi o‘zgardi." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Ushbu ilova asosiy ekrandan olib tashlanadi. U qurilmadan yo‘q qilinmaydi." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Ilovani olib tashla" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Vidjetni olib tashla" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Ushbu vidjet asosiy ekrandan olib tashlanadi. U qurilmadan yo‘q qilinmaydi." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Vidjetni qo‘shib bo‘lmaydi. Vidjetlar soni maksimal miqdorga (%d) yetdi." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Ilovani qo‘shib bo‘lmaydi. Ilovalar soni ruxsat etilgan maksimal miqdorga (%d) yetdi." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Sahifa qo‘shib bo‘lmaydi." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Normal rejim" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Quvvat tejash rejimi o‘chirildi." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Quvvat tejash rejimi yoqildi." + diff --git a/po/vi.po b/po/vi.po new file mode 100644 index 0000000..e97ae08 --- /dev/null +++ b/po/vi.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Ứng dụng" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "Không thể xóa." + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "Chạm và giữ để di chuyển widget." + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "Màn hình chờ đã thay đổi." + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "Đang tải…" + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "Không thể tải dữ liệu. Hãy chạm để thử lại." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Không thể thêm ứng dụng. Không còn chỗ trên màn hình chờ." + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "Không thể thêm widget. Không còn chỗ trên màn hình chờ." + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "Ứng dụng đã tồn tại." + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widget đã tồn tại." + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "Bố cục màn hình chờ đã thay đổi." + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Sẽ xóa ứng dụng này khỏi màn hình chờ. Nó sẽ không bị xóa khỏi thiết bị." + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "Xóa ứng dụng" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "Xóa widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "Sẽ xóa widget này khỏi màn hình chờ. Nó sẽ không bị xóa khỏi thiết bị." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "Không thể thêm widget. Đã đạt đến số widget tối đa (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "Không thể thêm ứng dụng. Đã đạt số ứng dụng tối đa (%d)." + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "Không thể thêm trang." + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "Chế độ Bình thường" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "Đã tắt chế độ tiết kiệm pin." + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "Đã bật chế độ tiết kiệm pin." + diff --git a/po/zh_CN.po b/po/zh_CN.po new file mode 100644 index 0000000..696c1d2 --- /dev/null +++ b/po/zh_CN.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "应用程序" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "桌面小组件" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "无法移除。" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "点击并按住小组件以进行移动。" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "主屏已更改。" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "载入中…" + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "无法载入数据。轻敲以重试。" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "无法添加应用程序。主屏幕无更多空间。" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "无法添加小组件。主屏幕无更多空间。" + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "应用程序已存在。" + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "小组件已存在。" + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "主屏幕布局已更改。" + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "该应用程序将从主屏幕移除。它不会从设备删除。" + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "移除应用程序" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "移除小组件" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "该小组件将从主屏幕移除。它不会从设备删除。" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "无法添加小组件。已达到最大小组件数 (%d)。" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "无法添加应用程序。已达到最大应用程序数 (%d)。" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "无法添加页面。" + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "普通模式" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "省电模式已禁用" + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "已启动省电模式。" + diff --git a/po/zh_HK.po b/po/zh_HK.po new file mode 100644 index 0000000..830e5a8 --- /dev/null +++ b/po/zh_HK.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "應用程式" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "無法移除。" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "輕觸並按住 Widget 以移動。" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "主螢幕已變更。" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "正在載入..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "無法載入數據。輕觸以重試。" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "無法加入應用程式。主螢幕空間不足。" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "無法加入 Widget。主螢幕空間不足。" + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "應用程式已存在。" + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "Widget 已存在。" + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "主螢幕配置已變更。" + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "此應用程式將從主螢幕移除。它不會從裝置刪除。" + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "移除應用程式" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "移除 Widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "此 Widget 將從主螢幕移除。它不會從裝置刪除。" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "無法加入 Widget。已達 Widget 數量上限 (%d)。" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "無法加入應用程式。已達應用程式數量上限 (%d)。" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "無法加入頁面。" + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "正常模式" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "省電模式已停用。" + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "省電模式已啟用。" + diff --git a/po/zh_TW.po b/po/zh_TW.po new file mode 100644 index 0000000..138430d --- /dev/null +++ b/po/zh_TW.po @@ -0,0 +1,66 @@ +msgid "IDS_IDLE_BODY_APPS" +msgstr "Apps" + +msgid "IDS_IDLE_HEADER_WIDGET" +msgstr "Widget" + +msgid "IDS_IM_POP_UNABLE_TO_REMOVE" +msgstr "無法刪除。" + +msgid "IDS_COM_BODY_TAP_AND_HOLD_A_WIDGET_TO_MOVE_IT_ABB" +msgstr "輕觸並按住 Widget 以移動。" + +msgid "IDS_ST_BODY_HOME_SCREEN_CHANGED_ABB" +msgstr "主螢幕已變更。" + +msgid "IDS_IDLE_POP_LOADING_ING" +msgstr "正在載入..." + +msgid "IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY" +msgstr "無法載入資料。輕觸以重試。" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_APPLICATION_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "無法新增應用程式。主螢幕空間不足。" + +msgid "IDS_HS_POP_UNABLE_TO_ADD_WIDGET_NO_MORE_ROOM_ON_HOME_SCREEN" +msgstr "無法新增 widget。主螢幕空間不足。" + +msgid "IDS_HS_TPOP_APPLICATION_ALREADY_EXISTS" +msgstr "應用程式已存在。" + +msgid "IDS_HS_TPOP_WIDGET_ALREADY_EXISTS" +msgstr "widget 已存在。" + +msgid "IDS_HS_TPOP_HOME_SCREEN_LAYOUT_CHANGED" +msgstr "主螢幕版面配置已變更。" + +msgid "IDS_HS_POP_THIS_APPLICATION_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "此應用程式將自主螢幕移除。將不會自裝置刪除。" + +msgid "IDS_HS_HEADER_REMOVE_APPLICATION_ABB" +msgstr "移除應用程式" + +msgid "IDS_HS_HEADER_REMOVE_WIDGET_ABB" +msgstr "移除 widget" + +msgid "IDS_HS_POP_THIS_WIDGET_WILL_BE_REMOVED_FROM_THE_HOME_SCREEN_IT_WILL_NOT_BE_DELETED_FROM_THE_DEVICE" +msgstr "此 widget 將自主螢幕移除。將不會自裝置刪除。" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_WIDGET_MAXIMUM_NUMBER_OF_WIDGETS_HPD_REACHED" +msgstr "無法新增 widget。已達 widget 數量上限 (%d)。" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_APPLICATION_MAXIMUM_NUMBER_OF_APPLICATIONS_HPD_REACHED" +msgstr "無法新增應用程式。已達應用程式數量上限 (%d)。" + +msgid "IDS_HS_TPOP_UNABLE_TO_ADD_PAGE" +msgstr "無法新增頁面。" + +msgid "IDS_ST_BODY_NORMAL_MODE" +msgstr "基本模式" + +msgid "IDS_SMR_TPOP_POWER_SAVING_MODE_DISABLED" +msgstr "已停用省電模式。" + +msgid "IDS_ST_TPOP_POWER_SAVING_MODE_ENABLED" +msgstr "省電模式已啟動。" + diff --git a/src/app_tray.c b/src/app_tray.c new file mode 100755 index 0000000..1afe54f --- /dev/null +++ b/src/app_tray.c @@ -0,0 +1,458 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <Ecore.h> +#include <Ecore_X.h> +#include <utilX.h> +#include <vconf.h> +#include <vconf-keys.h> +#include <aul.h> + +#include "main.h" +#include "log.h" +#include "scroller.h" +#include "logic.h" +#include "util_efl.h" +#include "clock.h" +#include "pkgmgr.h" + +#define PAGE_MOVE 1 +#define PAGE_APP_NUM 4 +#define PAGE_MAX_NUM 10 + +#define USE_MAPBUF 0 + +static struct { + int menu_pid; + Eina_Bool is_multi_touched; + Ecore_Timer *select_item_timer; + Ecore_Event_Handler *mouse_down_event_handler; +} item_event_info = { + .menu_pid = 0, + .is_multi_touched = EINA_FALSE, + .select_item_timer = NULL, + .mouse_down_event_handler = NULL, +}; + +Evas_Object *create_apps_scroller(Evas_Object *parent, void *data); + +static void _menu_apps_selected_timer_cb(void *data) +{ + _D("%s : %s", __func__, data); + + item_event_info.menu_pid = 0; + _D("set item_event_info.menu_pid : 0"); + + if(item_event_info.select_item_timer) { + ecore_timer_del(item_event_info.select_item_timer); + item_event_info.select_item_timer = NULL; + _D("delete item_event_info.select_item_timer"); + } +} + +static void _more_apps_selected_timer_cb(void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + ret_if(ad == NULL); + + ad->flag_launching_more_apps = EINA_FALSE; + if(ad->moreapps_timer){ + ecore_timer_del(ad->moreapps_timer); + ad->moreapps_timer = NULL; + } +} + +void moreapps_click_cb(void *data, Evas_Object *o, const char *emission, const char *source) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + ret_if(ad == NULL); + + Evas_Object *win_apps = NULL; + Evas_Object *bg_win_apps = NULL; + + if(ad->flag_launching_more_apps){ + _D("now more apps is launching..."); + return; + } + + /* create main window */ + if(ad->win_apps != NULL) { + evas_object_del(ad->win_apps); + ad->win_apps = NULL; + _D("More Apps window is aleady exist."); + } + ad->flag_launching_more_apps = EINA_TRUE; + + win_apps = _add_window("MORE_APPS", EINA_FALSE); + retm_if(win_apps == NULL, "Failed add window\n"); + evas_object_resize(win_apps, WIN_SIZE, WIN_SIZE); + evas_object_move(win_apps, 0, 0); + ad->win_apps = win_apps; + _D("create more apps window\n"); + + bg_win_apps = _create_bg(win_apps); + if(bg_win_apps == NULL){ + _E("failed to get parent window"); + return; + } + + evas_object_smart_callback_add(ad->win_apps, "focus,in", launcher_focus_in_cb, ad); + evas_object_smart_callback_add(ad->win_apps, "focus,out", launcher_focus_out_cb, ad); + + /* create main layout */ + Evas_Object *ly_apps = NULL; + ly_apps = _add_layout(ad->win_apps, EDJ_APP, "layout_more_apps"); + retm_if(ly_apps == NULL, "Failed to add more apps layout\n"); + evas_object_size_hint_weight_set(ly_apps, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(ad->win_apps, ly_apps); + ad->ly_apps = ly_apps; + evas_object_show(ad->win_apps); + + /* make scroller */ + Evas_Object *scroller_apps = create_apps_scroller(ad->ly_apps, ad); + if(scroller_apps == NULL) { + _D("create_apps_scroller() failed"); + evas_object_del(ad->ly_apps); + ad->flag_launching_more_apps = EINA_FALSE; + return; + } + elm_object_part_content_set(ad->ly_apps, "sw.scroller.apps", scroller_apps); + ad->scroller_apps = scroller_apps; + ad->moreapps_timer = ecore_timer_add(0.5, _more_apps_selected_timer_cb, ad); +} + +static void _menuapps_item_click_cb(void *data, Evas_Object *o, const char *emission, const char *source) +{ + _D("%s : %s", __func__, data); + + if(item_event_info.is_multi_touched) { + item_event_info.is_multi_touched = EINA_FALSE; + _D("multi touched : ignore"); + return; + } + + item_event_info.is_multi_touched = EINA_FALSE; + + /* check App launching */ + if(item_event_info.menu_pid != 0) { + _D("App is launching"); + return; + } + +#if USE_AUL_LAUNCH + bundle *b = NULL; + //int pid = 0; + b = bundle_create(); + if(!b) { + _D("bundle_create() faild"); + return; + } + + bundle_add(b, "__APP_SVC_OP_TYPE__", SERVICE_OPERATION_MAIN); + + item_event_info.menu_pid = aul_launch_app(data, b); + if(item_event_info.menu_pid < AUL_R_OK) { + _D("Launching app ret : [%d]", item_event_info.menu_pid); + item_event_info.menu_pid = 0; + return; + } else { + _D("add item selected timer"); + item_event_info.select_item_timer = ecore_timer_add(1.0, _menu_apps_selected_timer_cb, data); + } + + if(b) { + bundle_free(b); + _D("bundle free"); + } +#else + int ret_aul = -1; + + ret_aul = aul_open_app(data); + if(ret_aul < AUL_R_OK) { + _D("Launching app ret : [%d]", ret_aul); + return; + } + if(item_event_info.menu_pid < AUL_R_OK) { + _D("Launching app ret : [%d]", item_event_info.menu_pid); + item_event_info.menu_pid = 0; + return; + } else { + _D("add item selected timer"); + item_event_info.select_item_timer = ecore_timer_add(1.0, _menu_apps_selected_timer_cb, data); + } +#endif +} + +static void _box_layout_cb(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + ret_if(ad == NULL); + + Evas_Coord x=0, y=0, w=0, h=0; + int size_w = 0; + int n_children = 0; + Evas_Object_Box_Option *opt = NULL; + Evas_Coord child_w=0, child_h=0; + Eina_List *l = NULL; + Eina_List *l_next = NULL; + + evas_object_geometry_get(o, &x, &y, &w, &h); + + n_children = eina_list_count(priv->children); + if(n_children == 0) + return; + + opt = eina_list_data_get(priv->children); + if(opt == NULL) + return; + if(opt->obj == NULL) + return; + evas_object_size_hint_min_get(opt->obj, &child_w, &child_h); + + int order_children = 0; + EINA_LIST_FOREACH_SAFE(priv->children, l, l_next, opt) + { + evas_object_move(opt->obj, x + WIN_SIZE * order_children, y); + order_children++; + } + + size_w = WIN_SIZE * order_children; + evas_object_size_hint_min_set(o, size_w, -1); + ad->total_page = order_children; + _D("box total size : %d * %d = %d", WIN_SIZE, order_children, size_w); +} + +static int _get_total_scroller_page(void *data) +{ + _D("%s", __func__); + int page = 0; + struct appdata *ad = (struct appdata *)data; + retv_if(ad == NULL, -1); + + //int page = (ad->app_count - 1)/PAGE_APP_NUM; + if (ad->more_apps_list->len > 0) { + page = (ad->more_apps_list->len- 1)/PAGE_APP_NUM; + + if(page > PAGE_MAX_NUM) { + return PAGE_MAX_NUM; + } + } + + return page; +} + +Eina_Bool _mouse_up_cb(void *data, int type, void *event_info) +{ + _D("DBG"); + Ecore_Event_Mouse_Button *button = event_info; + retv_if(button == NULL, ECORE_CALLBACK_PASS_ON); + + if(button->multi.device != 0) { + _D("DBG multi touched"); + item_event_info.is_multi_touched = EINA_TRUE; + return ECORE_CALLBACK_PASS_ON; + } + item_event_info.is_multi_touched = EINA_FALSE; + return ECORE_CALLBACK_PASS_ON; +} + +static void _create_apps_contents(Evas_Object *box, void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + ret_if(ad == NULL); + ret_if(box == NULL); + + Evas_Object *layout = NULL; + Evas_Object *icon[PAGE_APP_NUM]; +#if USE_MAPBUF + Evas_Object *mapbuf = NULL; +#endif + + int page = 0; + int total_page = 0; + int num = 0; + char buf_sw[128] = { 0, }; + char buf_emission[128] = { 0, }; + char buf_txt[128] = { 0, }; + + total_page = _get_total_scroller_page(ad); + more_apps_info *info = NULL; + + item_event_info.mouse_down_event_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP, _mouse_up_cb, ad); + if(item_event_info.mouse_down_event_handler == NULL) { + _E("ecore_event_handler_add() failed"); + } + + for(page = 0; page <= total_page; page++) { + layout = elm_layout_add(box); + elm_layout_file_set(layout, EDJ_APP, "app_tray"); + + for(num = 0; num < PAGE_APP_NUM; num++) { + if((num+(PAGE_APP_NUM*page)) > ad->more_apps_list->len - 1) { + _D("This page(%d) has %d icons", page, num); + break; + } + +#ifdef EMULATOR_TYPE + if ((num+(PAGE_APP_NUM*page)) < ad->more_apps_list->len) { + info = g_array_index(ad->more_apps_list, more_apps_info*, (num+(PAGE_APP_NUM*page))); + } +#else + info = g_array_index(ad->more_apps_list, more_apps_info*, (num+(PAGE_APP_NUM*page))); +#endif + if(info == NULL) { + _D("This page(%d) has %d icons", page, num); + break; + } + + snprintf(buf_sw, sizeof(buf_sw), "sw.icon.%d", num); + snprintf(buf_emission, sizeof(buf_emission), "clicked,rect,icon,%d", num); + snprintf(buf_txt, sizeof(buf_txt), "txt.app.name.%d", num); + + if(info->icon_path) { + icon[num] = make_icon(ad, ad->ly_apps, info->icon_path); + elm_object_part_content_set(layout, buf_sw, icon[num]); + elm_object_part_text_set(layout, buf_txt, info->app_name); + elm_object_signal_callback_add(layout, buf_emission, "*", _menuapps_item_click_cb, info->app_id); + snprintf(buf_emission, sizeof(buf_emission), "clicked,txtrect,icon,%d", num); + elm_object_signal_callback_add(layout, buf_emission, "*", _menuapps_item_click_cb, info->app_id); + } else { + _D("This page(%d) has %d icons", page, num); + break; + } + + memset(buf_sw, 0x0, sizeof(buf_sw)); + memset(buf_emission, 0x0, sizeof(buf_emission)); + memset(buf_txt, 0x0, sizeof(buf_txt)); + } + + evas_object_resize(layout, WIN_SIZE, WIN_SIZE); + evas_object_show(layout); + ad->page_layout_apps[page] = layout; + +#if USE_MAPBUF + // mapbuf for menu_apps + mapbuf = elm_mapbuf_add(box); + elm_mapbuf_enabled_set(mapbuf, EINA_TRUE); + elm_mapbuf_smooth_set(mapbuf, EINA_TRUE); + elm_mapbuf_alpha_set(mapbuf, EINA_TRUE); + evas_object_size_hint_weight_set(mapbuf, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(mapbuf, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_object_content_set(mapbuf, layout); + evas_object_show(mapbuf); + ad->mapbuf_apps[page] = mapbuf; + elm_box_pack_end(box, mapbuf); +#else + elm_box_pack_end(box, layout); +#endif + } +} + +Evas_Object *create_apps_scroller(Evas_Object *parent, void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + retv_if(ad == NULL, NULL); + retv_if(parent == NULL, NULL); + + Evas_Object *scroller = NULL; + Evas_Object *box = NULL; + + scroller = elm_scroller_add(parent); + if(scroller == NULL) { + _E("elm_scroller_add() failed"); + return NULL; + } + elm_scroller_loop_set(scroller, EINA_TRUE, EINA_FALSE); + elm_object_theme_set(scroller, ad->theme); + elm_object_style_set(scroller, "w-launcher-app/scrollbar"); + + evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL); + //@TODO: need to check + //elm_scroller_page_relative_set(scroller, 1.0, 0.0); + + elm_scroller_bounce_set(scroller, EINA_TRUE, EINA_FALSE); + elm_scroller_policy_set(scroller,ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_AUTO); + elm_scroller_page_scroll_limit_set(scroller, PAGE_MOVE, PAGE_MOVE); + elm_scroller_content_min_limit(scroller, EINA_FALSE, EINA_TRUE); + + elm_object_scroll_lock_y_set(scroller, EINA_TRUE); + elm_object_tree_focus_allow_set(scroller, EINA_FALSE); + evas_object_show(scroller); + + elm_scroller_page_size_set(scroller, WIN_SIZE, WIN_SIZE); + + box = elm_box_add(scroller); + if(box == NULL) { + _E("elm_box_add() failed"); + evas_object_del(scroller); + return 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); + evas_object_show(box); + elm_box_layout_set(box, _box_layout_cb, ad, NULL); + evas_object_data_set(box, "SCROLLER", scroller); + _create_apps_contents(box, ad); + elm_object_content_set(scroller, box); + + ad->menuapps_box = box; + + Eina_List *list = elm_box_children_get(box); + if(eina_list_count(list) <= 1) + elm_scroller_loop_set(scroller, EINA_FALSE, EINA_FALSE); + + return scroller; +} + +void destroy_apps_scroller(void *data) +{ + struct appdata *ad = data; + ret_if(ad == NULL); + + if(item_event_info.mouse_down_event_handler) { + ecore_event_handler_del(item_event_info.mouse_down_event_handler); + item_event_info.mouse_down_event_handler = NULL; + _D(" >>> remove ecore event handler"); + } + + if(ad->scroller_apps) { + evas_object_del(ad->scroller_apps); + ad->scroller_apps = NULL; + _D(" >>> remove ad->scroller_apps"); + } + if(ad->menuapps_box) { + evas_object_del(ad->menuapps_box); + ad->menuapps_box = NULL; + _D(" >>> remove ad->menuapps_box"); + } + if(ad->ly_apps) { + evas_object_del(ad->ly_apps); + ad->ly_apps = NULL; + _D(" >>> remove ad->ly_apps"); + } + if(ad->win_apps) { + evas_object_del(ad->win_apps); + ad->win_apps = NULL; + _D(" >>> remove ad->win_apps"); + } +} diff --git a/src/clock.c b/src/clock.c new file mode 100755 index 0000000..36ccee0 --- /dev/null +++ b/src/clock.c @@ -0,0 +1,363 @@ +/* + * Copyright (c) 2010 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * PROPRIETARY/CONFIDENTIAL + * + * This software is the confidential and proprietary information of + * SAMSUNG ELECTRONICS ("Confidential Information"). You agree and acknowledge + * that this software is owned by Samsung and you shall not disclose + * such Confidential Information and shall use it only in accordance with the + * terms of the license agreement you entered into with SAMSUNG ELECTRONICS. + * SAMSUNG make no representations or warranties about the suitability + * of the software, either express or implied, including but not limited + * to the implied warranties of merchantability, fitness for a particular purpose, + * or non-infringement. SAMSUNG shall not be liable for any damages suffered + * by licensee arising out of or releated to this software. + * + */ + +#include <appcore-common.h> +#include <vconf.h> +#include <vconf-keys.h> +#include <dlog.h> +#include <ctype.h> + +#include <unicode/utypes.h> +#include <unicode/putil.h> +#include <unicode/uiter.h> +#include <unicode/udat.h> +#include <unicode/udatpg.h> +#include <unicode/ustring.h> + +#include "main.h" +#include "log.h" +#include "logic.h" + +#define BUFFER_LENGTH 256 + +static bool get_formatted_ampm_from_utc_time(UDate date, char* date_str, int date_size, int* str_length, Eina_Bool* is_pre, const char *timezone) +{ + 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) { + _E("[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; + } + + UChar timezoneID[64] = {0,}; + if(timezone != NULL) { + u_uastrncpy(timezoneID, timezone, 64); + formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, locale, timezoneID, -1, bestPattern, -1, &status); + } else { + 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); + + _D("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); + } + + if(locale) { + free(locale); + } + + return true; +} + +static char *_get_locale(void) +{ + char *locale = vconf_get_str(VCONFKEY_REGIONFORMAT); + if(locale == NULL) { + _E("vconf_get_str() failed : region format"); + return strdup("en_US.UTF-8"); + } + return locale; +} + +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; + int u_best_pattern_len = 0; + + struct appdata *ad = data; + retv_if(ad == NULL, NULL); + +#ifdef HAVE___SECURE_GETENV + uloc_setDefault(__secure_getenv("LC_TIME"), &status);/* for thread saftey */ +#else + uloc_setDefault(getenv("LC_TIME"), &status);/* for thread saftey */ +#endif + if (U_FAILURE(status)) { + _E("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)) { + _E("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])); + + u_best_pattern_len = udatpg_getBestPattern(generator, u_skeleton, skeleton_len, u_best_pattern, u_best_pattern_capacity, &status); + if(U_FAILURE(status)) { + _E("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)) { + _E("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_date_from_utc_time(time_t intime, char *buf, int buf_len, const char *timezone, void *data, const char *format) +{ + struct appdata *ad = data; + retv_if(ad == NULL, -1); + + int formatted_str_len = -1; + 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(ad, timezone, EINA_TRUE, format); + } else { + formatter = _get_formatter_date(ad, timezone, EINA_TRUE, "MMMEd"); + } + if(formatter == NULL) { + _E("_get_formatter_time() failed"); + return -1; + } + + u_formatted_str_capacity = (int32_t)(sizeof(u_formatted_str) / sizeof((u_formatted_str)[0])); + + formatted_str_len = udat_format(formatter, u_time, u_formatted_str, u_formatted_str_capacity, NULL, &status); + if(U_FAILURE(status)) { + _E("udat_format() failed"); + if(formatter) { + udat_close(formatter); + formatter = NULL; + } + return -1; + } + + buf = u_austrncpy(buf, u_formatted_str, buf_len); + _SECURE_D("time : %s %d", buf, intime); + if(formatter) { + udat_close(formatter); + formatter = NULL; + } + return 0; +} + +static Eina_Bool _set_info_time(void *data) +{ + struct appdata *ad = data; + if (ad == NULL) { + _D("appdata is 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 (ad->timer != NULL) { + ecore_timer_del(ad->timer); + ad->timer = NULL; + } + + char utc_date[256] = { 0, }; //txt.date + + /* txt.date */ + get_formatted_date_from_utc_time(tt, utc_date, sizeof(utc_date), NULL, ad, UDAT_ABBR_MONTH_WEEKDAY_DAY); + elm_object_part_text_set(ad->page_layout[ad->idle_clock_page], "txt.date", utc_date); + + int val; + vconf_get_int(VCONFKEY_PM_STATE, &val); + if(val != VCONFKEY_PM_STATE_LCDOFF) { + ad->timer = ecore_timer_add(60 - st.tm_sec, _set_info_time, ad); + } + + r = appcore_get_timeformat(&timeformat); + + /* if %l is 1 ~9, it has blank space in front. Trim it using atoi function */ + strftime(bf1, sizeof(bf1), "%H", &st); + hour = atoi(bf1); + strftime(bf1, sizeof(bf1), ":%M", &st); + snprintf(buf, sizeof(buf), "%d%s", hour, bf1); + //snprintf(buf, sizeof(buf), "%02d%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(ucal_getNow(), utc_ampm, sizeof(utc_ampm), &m_length, &is_pre, NULL); + 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"); + } + } + elm_object_part_text_set(ad->page_layout[ad->idle_clock_page], "txt.clock", buf); + + return ECORE_CALLBACK_RENEW; +} + +static void _time_changed_cb(keynode_t *node, void *data) +{ + _D("%s", __func__); + struct appdata *ad = data; + ret_if(ad == NULL); + + _set_info_time(ad); +} + +void set_info(void *data) +{ + _D("%s", __func__); + struct appdata *ad = data; + ret_if(ad == NULL); + + int ret = -1; + + /* register vconf changed cb */ + ret = vconf_notify_key_changed(VCONFKEY_SYSTEM_TIME_CHANGED, _time_changed_cb, ad); + if(ret > 0) { + _D("Failed to register vconfkey changed cb."); + } + + _set_info_time(ad); +} + +void update_time(void *data) +{ + _D("%s", __func__); + struct appdata *ad = data; + ret_if(ad == NULL); + + _set_info_time(ad); +} + +void pause_time(void *data) +{ + _D("%s", __func__); + struct appdata *ad = data; + ret_if(ad == NULL); + + if(ad->timer) { + ecore_timer_del(ad->timer); + ad->timer = NULL; + _D("Delete ad->timer"); + } +} diff --git a/src/dbus.c b/src/dbus.c new file mode 100755 index 0000000..317b305 --- /dev/null +++ b/src/dbus.c @@ -0,0 +1,451 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <Ecore.h> +#include <utilX.h> +#include <dd-display.h> +#include <aul.h> + +#include <dbus/dbus-glib.h> +#include <dbus/dbus-glib-lowlevel.h> + +#include "main.h" +#include "log.h" +#include "logic.h" + +#define BUS_NAME "org.tizen.system.deviced" +#define OBJECT_PATH "/Org/Tizen/System/DeviceD" +#define INTERFACE_NAME BUS_NAME + +#define DEVICED_PATH_DISPLAY OBJECT_PATH"/Display" +#define DEVICED_INTERFACE_DISPLAY INTERFACE_NAME".display" + +#define METHOD_DISPLAY_NAME "PowerKeyIgnore" +#define DBUS_REPLY_TIMEOUT 25000 + +#define LOW_BATTERY_DBUS_PATH "/Org/Tizen/System/Popup/Lowbat" +#define LOW_BATTERY_DBUS_INTERFACE "org.tizen.system.popup.Lowbat" +#define LOW_BATTERY_DBUS_MEMBER_BATTERY "Extreme" + +#define WEB_RUNTIME_STATUS_PATH "/Org/Tizen/Runtime/WRT" +#define WEB_RUNTIME_STATUS_INTERFACE "org.tizen.runtime.wrt.status" +#define WEB_RUNTIME_STATUS_READYDONE "READYDONE" + +static int iterfunc(const aul_app_info* info, void* data) +{ + _D("appid : %s, pid %d", info->appid, info->pid); + if(strcmp(info->appid, APP_NAME_BT_POPUP) == 0) { + aul_terminate_pid(info->pid); + } + return 0; +} + +Eina_Bool changed_cb(void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + retv_if(ad == NULL, EINA_FALSE); + + ad->flag_wakeup_setting_clock = EINA_TRUE; + + /* Show Idle-Clock */ + if(ad->app_state == APP_STATE_PAUSE) { + if (ad->win) { + _D("activate ad->win"); + aul_app_get_running_app_info(iterfunc, NULL); + elm_win_activate(ad->win); + + if(ad->count_grabed == 0) { + /* LCD on */ + _D("need_to_lcdon : FALSE"); + ecore_idler_add(display_lcd_on_cb, ad); + } else { + _D("need_to_lcdon : TRUE"); + ad->need_to_lcdon = EINA_TRUE; + } + } + } else if(ad->app_state == APP_STATE_RESUME || ad->app_state == APP_STATE_SERVICE) { + /* LCD on */ + if(ad->count_grabed == 0) { + /* LCD on */ + _D("need_to_lcdon : FALSE"); + ecore_idler_add(display_lcd_on_cb, ad); + } else { + _D("need_to_lcdon : TRUE"); + ad->need_to_lcdon = EINA_TRUE; + } + } + + return ECORE_CALLBACK_CANCEL; +} + +/* DBus message handler callback */ +DBusHandlerResult on_dbus_message_received(DBusConnection *connection, DBusMessage *message, void *data) +{ + _D("%s", __func__); + struct appdata *ad = data; + retv_if(ad == NULL, DBUS_HANDLER_RESULT_HANDLED); + + int idx = -1; + Evas_Coord x, y, w, h; + int ret_aul; + + if (dbus_message_is_signal(message, WAKEUP_GESTURE_DBUS_INTERFACE, WAKEUP_GESTURE_DBUS_MEMBER_CLOCK)) + { + // TODO: do the necessary task here!! + _D("Clock signal received : %p", message); + if(ad->scroller_apps) { + evas_object_del(ad->scroller_apps); + ad->scroller_apps = NULL; + _D(" >>> remove ad->scroller_apps"); + } + if(ad->menuapps_box) { + evas_object_del(ad->menuapps_box); + ad->menuapps_box = NULL; + _D(" >>> remove ad->menuapps_box"); + } + if(ad->ly_apps) { + evas_object_del(ad->ly_apps); + ad->ly_apps = NULL; + _D(" >>> remove ad->ly_apps"); + } + if(ad->win_apps) { + evas_object_del(ad->win_apps); + ad->win_apps = NULL; + _D(" >>> remove ad->win_apps"); + } + + elm_scroller_region_get(ad->scroller, &x, &y, &w, &h); + + if(w != 0) { + idx = x / w; + + if(idx != ad->idle_clock_page) { + _D("move idle clock page"); + elm_scroller_page_show(ad->scroller, ad->idle_clock_page, 0); + } + } + + ecore_idler_add(changed_cb, ad); + } + if (dbus_message_is_signal(message, LOW_BATTERY_DBUS_INTERFACE, LOW_BATTERY_DBUS_MEMBER_BATTERY)) + { + // TODO: do the necessary task here!! + _D("Low Battery signal received : %p", message); + if (ad->win) { + elm_win_activate(ad->win); + } + + _D("Clock signal received : %p", message); + if(ad->scroller_apps) { + evas_object_del(ad->scroller_apps); + ad->scroller_apps = NULL; + _D(" >>> remove ad->scroller_apps"); + } + if(ad->menuapps_box) { + evas_object_del(ad->menuapps_box); + ad->menuapps_box = NULL; + _D(" >>> remove ad->menuapps_box"); + } + if(ad->ly_apps) { + evas_object_del(ad->ly_apps); + ad->ly_apps = NULL; + _D(" >>> remove ad->ly_apps"); + } + if(ad->win_apps) { + evas_object_del(ad->win_apps); + ad->win_apps = NULL; + _D(" >>> remove ad->win_apps"); + } + + elm_scroller_region_get(ad->scroller, &x, &y, &w, &h); + + if(w != 0) { + idx = x / w; + + if(idx != ad->idle_clock_page) { + _D("move idle clock page"); + elm_scroller_page_show(ad->scroller, ad->idle_clock_page, 0); + } + } + } + if (dbus_message_is_signal(message, WEB_RUNTIME_STATUS_INTERFACE, WEB_RUNTIME_STATUS_READYDONE)) + { + _D("receive READYDONE signal from the WRT"); + if(ad->flag_need_to_relaunch){ + _D("need to relaunch web idle clock."); + ret_aul = aul_open_app(get_app_id(ad->pkgname_idle_clock)); + ad->flag_need_to_relaunch = EINA_FALSE; + if(ret_aul < AUL_R_OK) { + _E("Launching app ret : [%d]", ret_aul); + } + } + } + + return DBUS_HANDLER_RESULT_HANDLED; +} + +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; +} + +DBusMessage *invoke_dbus_method_sync(const char *dest, const char *path, + const char *interface, const char *method, + const char *sig, char *param[]) +{ + DBusConnection *conn; + DBusMessage *msg; + DBusMessageIter iter; + DBusMessage *reply; + DBusError err; + int r; + + conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL); + if (!conn) { + _E("dbus_bus_get error"); + return NULL; + } + + msg = dbus_message_new_method_call(dest, path, interface, method); + if (!msg) { + _D("dbus_message_new_method_call(%s:%s-%s)", path, interface, method); + return NULL; + } + + dbus_message_iter_init_append(msg, &iter); + r = append_variant(&iter, sig, param); + if (r < 0) { + _D("append_variant error(%d)", r); + return NULL; + } + + dbus_error_init(&err); + + reply = dbus_connection_send_with_reply_and_block(conn, msg, DBUS_REPLY_TIMEOUT, &err); + if (!reply) { + _E("dbus_connection_send error(No reply)"); + } + + if (dbus_error_is_set(&err)) { + _E("dbus_connection_send error(%s:%s)", err.name, err.message); + reply = NULL; + } + + dbus_message_unref(msg); + dbus_error_free(&err); + + return reply; +} + +int send_lcd_off_signal(int input) +{ + _D("%s : %d", __func__, input); + DBusError err; + DBusMessage *msg; + int ret, ret_val; + char *arr[1]; + char val[32]; + + snprintf(val, sizeof(val), "%d", input); + arr[0] = val; + + msg = invoke_dbus_method_sync(BUS_NAME, DEVICED_PATH_DISPLAY, DEVICED_INTERFACE_DISPLAY, + METHOD_DISPLAY_NAME, "i", arr); + + if (!msg) + return -EBADMSG; + + dbus_error_init(&err); + + ret = dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &ret_val, DBUS_TYPE_INVALID); + if (!ret) { + _E("no message : [%s:%s]", err.name, err.message); + ret_val = -EBADMSG; + } + + dbus_message_unref(msg); + dbus_error_free(&err); + + _D("%s : %d", DEVICED_INTERFACE_DISPLAY, ret_val); + return ret_val; +} + +static w_launcher_error_e _dbus_sig_attach(char *path, char *interface, char *member) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)w_launcher_app_data_get(); + retv_if(ad == NULL, W_LAUNCHER_ERROR_FAIL); + retv_if(path == NULL, W_LAUNCHER_ERROR_FAIL); + retv_if(interface == NULL, W_LAUNCHER_ERROR_FAIL); + + /* DBUS */ + DBusError derror; + DBusConnection *connection = NULL; + + dbus_error_init(&derror); + + connection = dbus_bus_get_private(DBUS_BUS_SYSTEM, &derror); + if(!connection) { + _E("Failed to get dbus : %s", derror.message); + return W_LAUNCHER_ERROR_FAIL; + } + ad->connection = connection; + + dbus_connection_setup_with_g_main(connection, NULL); + + /* Set the DBus rule for the wakeup gesture signal */ + char rules[512]; + 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)) { + _E("D-BUS rule adding error: %s", derror.message); + dbus_error_free(&derror); + return W_LAUNCHER_ERROR_FAIL; + } + + /* Set the callback function */ + if(dbus_connection_add_filter(connection, on_dbus_message_received, ad, NULL) == FALSE) { + _E("Failed to add dbus filter : %s", derror.message); + dbus_error_free(&derror); + return W_LAUNCHER_ERROR_FAIL; + } + + return W_LAUNCHER_ERROR_OK; +} + +w_launcher_error_e dbus_gesture_handler_attach(void) +{ + _D("%s", __func__); + if(W_LAUNCHER_ERROR_OK != _dbus_sig_attach(WAKEUP_GESTURE_DBUS_PATH, WAKEUP_GESTURE_DBUS_INTERFACE, WAKEUP_GESTURE_DBUS_MEMBER_CLOCK)) + { + _E("Failed to attach gesture dbus"); + return W_LAUNCHER_ERROR_FAIL; + } + + return W_LAUNCHER_ERROR_OK; +} + +w_launcher_error_e dbus_low_battery_handler_attach(void) +{ + _D("%s", __func__); + if(W_LAUNCHER_ERROR_OK != _dbus_sig_attach(LOW_BATTERY_DBUS_PATH, LOW_BATTERY_DBUS_INTERFACE, LOW_BATTERY_DBUS_MEMBER_BATTERY)) { + _E("Failed to attach low battery dbus"); + return W_LAUNCHER_ERROR_FAIL; + } + + return W_LAUNCHER_ERROR_OK; +} + +w_launcher_error_e dbus_web_runtime_handler_attach(void) +{ + _D("%s", __func__); + if(W_LAUNCHER_ERROR_OK != _dbus_sig_attach(WEB_RUNTIME_STATUS_PATH, WEB_RUNTIME_STATUS_INTERFACE, WEB_RUNTIME_STATUS_READYDONE)) { + _E("Failed to attach low battery dbus"); + return W_LAUNCHER_ERROR_FAIL; + } + + return W_LAUNCHER_ERROR_OK; +} + +static void _dbus_sig_dettach(const char *path, const char *interface, const char *member) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)w_launcher_app_data_get(); + ret_if(ad == NULL); + ret_if(path == NULL); + ret_if(interface == NULL); + + DBusError err; + + dbus_error_init(&err); + + /*Disconnecting DBus */ + if(ad->connection) { + dbus_connection_unref(ad->connection); + _D("Disconnecting DBUS"); + } + + dbus_connection_remove_filter(ad->connection, on_dbus_message_received, ad); + + char rules[512]; + snprintf(rules, sizeof(rules), "path='%s',type='signal',interface='%s',member='%s'", path, interface, member); + + dbus_bus_remove_match(ad->connection, rules, &err); + if(dbus_error_is_set(&err)) { + _E("Failed to dbus_bus_remove_match : %s", err.message); + dbus_error_free(&err); + } + + dbus_connection_close(ad->connection); + + return; +} + +w_launcher_error_e dbus_gesture_handler_dettach(void) +{ + _D("%s", __func__); + _dbus_sig_dettach(WAKEUP_GESTURE_DBUS_PATH, WAKEUP_GESTURE_DBUS_INTERFACE, WAKEUP_GESTURE_DBUS_MEMBER_CLOCK); + + return W_LAUNCHER_ERROR_OK; +} + +w_launcher_error_e dbus_low_batter_handler_dettach(void) +{ + _D("%s", __func__); + _dbus_sig_dettach(LOW_BATTERY_DBUS_PATH, LOW_BATTERY_DBUS_INTERFACE, LOW_BATTERY_DBUS_MEMBER_BATTERY); + + return W_LAUNCHER_ERROR_OK; +} + +w_launcher_error_e dbus_web_runtime_handler_dettach(void) +{ + _D("%s", __func__); + _dbus_sig_dettach(WEB_RUNTIME_STATUS_PATH, WEB_RUNTIME_STATUS_INTERFACE, WEB_RUNTIME_STATUS_READYDONE); + + return W_LAUNCHER_ERROR_OK; +} diff --git a/src/logic.c b/src/logic.c new file mode 100755 index 0000000..5dbc302 --- /dev/null +++ b/src/logic.c @@ -0,0 +1,1300 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <Ecore.h> +#include <utilX.h> +#include <Ecore_X.h> +#include <vconf.h> +#include <vconf-keys.h> +#include <aul.h> +#include <dd-display.h> +#include <syspopup_caller.h> + +#include "main.h" +#include "log.h" +#include "logic.h" +#include "util_efl.h" +#include "scroller.h" +#include "app_tray.h" +#include "clock.h" +#include "pkgmgr.h" +#include "xml_parse.h" +#include "dbus.h" + +#define APP_NAME_CAMERA "org.tizen.camera-app" +#define APP_NAME_DIALER "org.tizen.call" +#define APP_NAME_CALL "org.tizen.call" + +#define BOOTING_STATE_DONE 3 +#define BUFSIZE 1024 + +#define USE_ROTATION 0 +#define APP_NAME_EMULATOR_DEFAULT_CLOCK "org.tizen.idle-clock-digital" +#define SDK_TARGET_BIARY 1 + +#ifndef EMULATOR_TYPE +#include <context-manager/context_manager.h> +#endif + +#define IMGDIR "/usr/apps/org.tizen."PACKAGE"/res/images/w-launcher-app" +#define DEFAULT_ICON_PATH IMGDIR"/b_home_screen_default_icon.png" + +int _cache_flush(void *data) +{ + struct appdata *ad = (struct appdata *)data; + retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n"); + + Evas *evas = NULL; + + int file_cache = -1; + int collection_cache = -1; + int image_cache = -1; + int font_cache = -1; + + evas = evas_object_evas_get(ad->win); + retvm_if(evas == NULL, -1, "Evas is NULL\n"); + + file_cache = edje_file_cache_get(); + collection_cache = edje_collection_cache_get(); + image_cache = evas_image_cache_get(evas); + font_cache = evas_font_cache_get(evas); + + edje_file_cache_set(file_cache); + edje_collection_cache_set(collection_cache); + evas_image_cache_set(evas, 0); + evas_font_cache_set(evas, 0); + + evas_image_cache_flush(evas); + evas_render_idle_flush(evas); + evas_font_cache_flush(evas); + + edje_file_cache_flush(); + edje_collection_cache_flush(); + + edje_file_cache_set(file_cache); + edje_collection_cache_set(collection_cache); + evas_image_cache_set(evas, image_cache); + evas_font_cache_set(evas, font_cache); + + //appcore_flush_memory(); + + return 0; +} + +Evas_Object *make_icon(struct appdata *ad, Evas_Object *parent, const char *path) +{ + retvm_if(ad == NULL, NULL, "Invalid argument: appdata is NULL\n"); + _D("icon path : %s", path); + if(path == NULL) { + _D("More Apps : set default icon image"); + path = strdup(DEFAULT_ICON_PATH); + } + else if(ecore_file_exists(path) != EINA_TRUE) { + _E("(%s) file is not exist.", path); + path = strdup(DEFAULT_ICON_PATH); + } +#if 0 + Evas_Object *icon = elm_image_add(parent); + if(!elm_image_file_set(icon, path, NULL)) { + _E("Failed to add icon object"); + } + elm_image_resizable_set(icon, EINA_TRUE, EINA_TRUE); + elm_image_orient_set(icon, ELM_IMAGE_ORIENT_NONE); + //elm_image_aspect_fixed_set(icon, EINA_TRUE); + elm_image_fill_outside_set(icon, EINA_TRUE); + evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + + evas_object_show(icon); +#endif + Evas_Object *img = evas_object_image_add(evas_object_evas_get(parent)); + evas_object_image_filled_set(img, EINA_TRUE); + evas_object_image_load_size_set(img, 96, 96); + evas_object_image_file_set(img, path, NULL); + evas_object_size_hint_weight_set(img, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_resize(img, 128, 128); + evas_object_show(img); + + return img; +} + +static int _launch_app_by_home(void *data) +{ + retv_if(data == NULL, EINA_FALSE); + + _D("%s, data[%s]", __func__, data); + + bundle *b = NULL; + int pid = 0; + b = bundle_create(); + if(!b) { + _E("Failed to create bundle"); + return -1; + } + + bundle_add(b, "__APP_SVC_OP_TYPE__", SERVICE_OPERATION_MAIN); + + pid = aul_launch_app(data, b); + + if(b) { + bundle_free(b); + _D("bundle free"); + } + + return pid; +} + +static Eina_Bool _launch_by_power_key(void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + retv_if(ad == NULL, EINA_FALSE); + + char *appid = NULL; + int ret_aul = -1; + + /* set LCD on - 1 : disable lcd off by power key */ + //send_lcd_off_signal(1); + + appid = vconf_get_str(VCONFKEY_WMS_POWERKEY_DOUBLE_PRESSING); + if(appid == NULL) { + _D("Failed to get vconfkey : %s", VCONFKEY_WMS_POWERKEY_DOUBLE_PRESSING); + appid = strdup(APP_NAME_CAMERA); + } else { + appid = strrchr(appid, '/'); + appid++; + } + _D("appid : %s", appid); +#if 0 + appid = vconf_get_str(VCONFKEY_SETAPPL_DEFAULT_APP_STR); + if(appid == NULL) { + appid = strdup(APP_NAME_CAMERA); + } +#endif + +#if USE_AUL_LAUNCH + ret_aul = _launch_app_by_home(appid); +#else + ret_aul = aul_open_app(appid); +#endif + if(ret_aul < AUL_R_OK) { + _D("Launching app ret : [%d]", ret_aul); + free(appid); + return EINA_FALSE; + } + free(appid); + return EINA_TRUE; +} + +static int iterfunc(const aul_app_info* info, void* data) +{ + _D("appid : %s, pid %d", info->appid, info->pid); + if(strcmp(info->appid, APP_NAME_BT_POPUP) == 0) { + aul_terminate_pid(info->pid); + } + return 0; +} + +static Eina_Bool _idler_clock_page_move_cb(void *data) +{ + struct appdata *ad = data; + + if (ad->win) { + elm_win_activate(ad->win); + aul_app_get_running_app_info(iterfunc, NULL); + } + return EINA_FALSE; +} + +static Eina_Bool _powerkey_timer_cb(void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + retv_if(ad == NULL, EINA_FALSE); + + Evas_Coord x, y, w, h; + int idx = -1; + + if(ad->long_press_timer) { + ecore_timer_del(ad->long_press_timer); + ad->long_press_timer = NULL; + _D("delete ad->long_press_timer"); + } + + if(ad->powerkey_timer) { + ecore_timer_del(ad->powerkey_timer); + ad->powerkey_timer = NULL; + _D("delete ad->powerkey_timer"); + } + + if(ad->flag_long_press) { + _D("power key long poress"); + ad->flag_long_press = EINA_FALSE; + return ECORE_CALLBACK_CANCEL; + } + + if(ad->powerkey_count == 2) { + /* double press */ + _D("powerkey double press"); + ad->powerkey_count = 0; + if(!_launch_by_power_key(ad)) { + _E("Failed to launch by double press"); + } + return ECORE_CALLBACK_CANCEL; + } else if(ad->powerkey_count == 3) { + /* triple press */ + _D("powerkey triple press"); + ad->powerkey_count = 0; + return ECORE_CALLBACK_CANCEL; + } + ad->powerkey_count = 0; //initialize powerkey count + + if(!ad->powerkey_lcd_state) { + _D("just turn LCD on : should not move to idle clock page"); + return ECORE_CALLBACK_CANCEL; + } + + if (aul_app_is_running(APP_NAME_CALL)) { + _D("call is running"); + return ECORE_CALLBACK_CANCEL; + } + + if(ad->scroller_apps) { + evas_object_del(ad->scroller_apps); + ad->scroller_apps = NULL; + _D(" >>> remove ad->scroller_apps"); + } + if(ad->menuapps_box) { + evas_object_del(ad->menuapps_box); + ad->menuapps_box = NULL; + _D(" >>> remove ad->menuapps_box"); + } + if(ad->ly_apps) { + evas_object_del(ad->ly_apps); + ad->ly_apps = NULL; + _D(" >>> remove ad->ly_apps"); + } + if(ad->win_apps) { + evas_object_del(ad->win_apps); + ad->win_apps = NULL; + _D(" >>> remove ad->win_apps"); + } + + elm_scroller_region_get(ad->scroller, &x, &y, &w, &h); + + if(w != 0) { + idx = x / w; + + if(idx != ad->idle_clock_page) { + elm_scroller_page_show(ad->scroller, ad->idle_clock_page, 0); + /* set LCD off - 0 : enable lcd off by power key */ + //send_lcd_off_signal(0); + //update_time(ad); + _D("move idle clock page"); + + ecore_idler_add(_idler_clock_page_move_cb, ad); + } else if(idx == ad->idle_clock_page) { + if(ad->app_state == APP_STATE_PAUSE){ + _D("APP was launched by IDE."); + } + else{ + _D("LCD OFF"); + display_change_state(LCD_OFF); + } + + /* Show Idle-Clock */ + if (ad->win) { + elm_win_activate(ad->win); + aul_app_get_running_app_info(iterfunc, NULL); + } + } + } + + return ECORE_CALLBACK_CANCEL; +} + +static Eina_Bool _long_press_timer_cb(void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + int pid; + bundle *b; + retv_if(ad == NULL, EINA_FALSE); + + ad->flag_long_press = EINA_TRUE; + ad->powerkey_count = 0; + + if(ad->long_press_timer) { + _D("delete long press timer"); + ecore_timer_del(ad->long_press_timer); + ad->long_press_timer = NULL; + } + + b = bundle_create(); + + if (!b) return -1; + + pid = syspopup_launch("poweroff-syspopup", b); + + bundle_free(b); + + return ECORE_CALLBACK_CANCEL; +} + +static Eina_Bool _key_down_event_cb(void *data, int type, void *event_info) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + int val = -1; + retv_if(ad == NULL, EINA_FALSE); + + Ecore_Event_Key *ev = event_info; +#if 0 + if(!strcmp(ev->keyname, KEY_POWER)) { + _D("press POWER Key"); + + if(vconf_get_int(VCONFKEY_PM_STATE, &val) < 0) { + _D("Cannot get VCONFKEY_PM_STATE"); + } + + if(val == VCONFKEY_PM_STATE_NORMAL) { + _D("LCD state : LCD on"); + ad->powerkey_lcd_state = EINA_TRUE; + } else if(val == VCONFKEY_PM_STATE_LCDOFF) { + _D("LCD state : LCD off"); + ad->powerkey_lcd_state = EINA_FALSE; + } + + ad->powerkey_count++; + if(ad->powerkey_count > 3) { + ad->powerkey_count = 1; + } + + /* long press */ + ad->flag_long_press = EINA_FALSE; + + if(ad->long_press_timer) { + _D("delete long press timer"); + ecore_timer_del(ad->long_press_timer); + ad->long_press_timer = NULL; + } + + _D("create long press timer"); + ad->long_press_timer = ecore_timer_add(0.5, _long_press_timer_cb, ad); + } +#endif + return ECORE_CALLBACK_CANCEL; +} + +static Eina_Bool _key_up_event_cb(void *data, int type, void *event_info) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + retv_if(ad == NULL, EINA_FALSE); + + Ecore_Event_Key *ev = event_info; + Evas_Coord x, y, w, h; + int idx = -1; + int val = -1; + + if(!strcmp(ev->keyname, KEY_BACK)) { + if(ad->win_apps) { + _D("release MENU_APPS BACK Key"); + destroy_apps_scroller(ad); + } else { + _D("release MAIN BACK Key"); + elm_scroller_region_get(ad->scroller, &x, &y, &w, &h); + + if(w != 0) { + idx = x / w; + + if(idx != ad->idle_clock_page) { + elm_scroller_page_show(ad->scroller, ad->idle_clock_page, 0); + /* set LCD off - 0 : enable lcd off by power key */ + //send_lcd_off_signal(0); + //update_time(ad); + _D("show idle clock"); + } else { + _D("aul_launch_app : %s", APP_NAME_CAMERA); + int ret_aul = -1; + +#if USE_AUL_LAUNCH + //ret_aul = _launch_app_by_home(APP_NAME_CAMERA); + + bundle *b = NULL; + b = bundle_create(); + if(!b) { + _D("bundle_create() faild"); + } + + bundle_add(b, "launch.effect", "slidedown"); + ret_aul = aul_launch_app(APP_NAME_CAMERA, b); + if(b) { + bundle_free(b); + _D("bundle free"); + } +#else + ret_aul = aul_open_app(APP_NAME_CAMERA); +#endif + if(ret_aul < AUL_R_OK) { + _D("Launching app ret : [%d]", ret_aul); + return ECORE_CALLBACK_CANCEL; + } + } + } + } + } else if(!strcmp(ev->keyname, KEY_MENU)) { + _D("release MAIN MENU Key"); + elm_scroller_region_get(ad->scroller, &x, &y, &w, &h); + + if(w != 0) { + idx = x / w; + + if(idx == ad->idle_clock_page) { + _D("aul_launch_app : %s", APP_NAME_DIALER); + int ret_aul = -1; +#if USE_AUL_LAUNCH + ret_aul = _launch_app_by_home(APP_NAME_DIALER); +#else + ret_aul = aul_open_app(APP_NAME_DIALER); +#endif + if(ret_aul < AUL_R_OK) { + _D("Launching app ret : [%d]", ret_aul); + return ECORE_CALLBACK_CANCEL; + } + } + } + } +#if 0 + else if(!strcmp(ev->keyname, KEY_POWER)) { + _D("release POWER Key -"); + + if (aul_app_is_running(APP_NAME_CALL)) { + _D("call is running"); + /* set LCD off - 0 : enable lcd off by power key */ + //send_lcd_off_signal(0); + display_change_state(LCD_OFF); + } + + if(ad->long_press_timer) { + ecore_timer_del(ad->long_press_timer); + ad->long_press_timer = NULL; + _D("delete long press timer"); + } + + if(ad->powerkey_timer) { + _D("delete powerkey timer"); + ecore_timer_del(ad->powerkey_timer); + ad->powerkey_timer = NULL; + } + + _D("create powerkey timer"); + ad->powerkey_timer = ecore_timer_add(0.15, _powerkey_timer_cb, ad); + //_powerkey_timer_cb(ad); + } +#endif + return ECORE_CALLBACK_CANCEL; +} + +static void _pm_state_changed_cb(keynode_t * node, void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + ret_if(ad == NULL); + + int val = -1; + int idx = -1; + Evas_Coord x, y, w, h; + + if(vconf_get_int(VCONFKEY_PM_STATE, &val) < 0) { + _E("Failed to get VCONFKEY_PM_STATE"); + return; + } + + if(val == VCONFKEY_PM_STATE_NORMAL) { + _D("LCD on"); + elm_scroller_region_get(ad->scroller, &x, &y, &w, &h); + if(w != 0) { + idx = x / w; + if(idx == ad->idle_clock_page) { + /* set LCD off - 0 : enable lcd off by power key */ + //send_lcd_off_signal(0); + } + } + } + +#if 0 + if(val == VCONFKEY_PM_STATE_LCDOFF) { + _D("LCD off"); + if(ad->timer) { + pause_time(ad); + } + } +#endif +} + +static void free_more_apps_list(GArray *list) +{ + _D("%s", __func__); + int total = list->len; + int index = 0; + + if (total <= 0) { + return; + } + + more_apps_info* info = NULL; + + for (index = 0; index < total; index++) { + info = g_array_index(list, more_apps_info*, 0); + + if (info->app_id != NULL) { + free(info->app_id); + } + if (info->app_name != NULL) { + free(info->app_name); + } + if (info->icon_path != NULL) { + free(info->icon_path); + } + free(info); + + g_array_remove_index(list, 0); + } +} + +#define DELETE_CMD "delete" +static void _desktop_cb(keynode_t *node, void *data) +{ + struct appdata *ad = (struct appdata *)data; + ret_if(ad == NULL); + + char *event; + char type[10]; + char package[BUFSIZE]; + + char *pkgname = NULL; + int ret_aul = 0; + + event = vconf_get_str(vconf_keynode_get_name(node)); + ret_if(NULL == event); + + if (sscanf(event, "%10[^:]:%1023s", type, package) != 2) { + _E("Failed to parse the event format : [%s], [%s]", type, package); + } + + _D("command[%s], package[%s]", type, package); + + if(!strncmp(type, DELETE_CMD, strlen(DELETE_CMD))){ + if(!strcmp(package, ad->appid_idle_clock)){ + _D("idle clock is deleted. need to launch default idle clock."); + vconf_set_str(VCONFKEY_WMS_CLOCKS_SET_IDLE, APP_NAME_EMULATOR_DEFAULT_CLOCK); + } + } + + /* initialize more_apps_list */ + if (ad->more_apps_list != NULL) { + int total = ad->more_apps_list->len; + _D("more_apps_list length : %d", ad->more_apps_list->len); + + if (total > 0) { + free_more_apps_list(ad->more_apps_list); + } + } + + w_launcher_load_app_list(ad); + + if(ad->win_apps) { + _D("menu_apps is alive"); + /* make scroller */ + elm_object_part_content_unset(ad->ly_apps, "sw.scroller.apps"); + if(ad->menuapps_box) { + evas_object_del(ad->menuapps_box); + ad->menuapps_box = NULL; + _D(" >>> remove ad->menuapps_box"); + } + if(ad->scroller_apps) { + evas_object_del(ad->scroller_apps); + ad->scroller_apps = NULL; + _D(" >>> remove ad->scroller_apps"); + } + + ad->scroller_apps = (Evas_Object *)create_apps_scroller(ad->ly_apps, ad); + if(ad->scroller_apps == NULL) { + _D("Failed to create menu_apps_scroller"); + evas_object_del(ad->ly_apps); + ad->ly_apps = NULL; + return; + } + elm_object_part_content_set(ad->ly_apps, "sw.scroller.apps", ad->scroller_apps); + return; + } + + free(event); +} + +static void _bg_color_changed_cb(keynode_t *node, void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + ret_if(ad == NULL); + + int val = -1; + + if(vconf_get_int(VCONFKEY_SETAPPL_HOME_BG_COLOR_TYPE_INT, &val) < 0) { + _D("Failed to get vconfkey : %s", VCONFKEY_SETAPPL_HOME_BG_COLOR_TYPE_INT); + return; + } + + switch(val) { + case 1: + _D("RGB : 0, 0, 0"); + elm_object_signal_emit(ad->ly_main, "change,bg,color,1", "bg.color"); + break; + case 2: + _D("RGB : 92, 209, 229"); + elm_object_signal_emit(ad->ly_main, "change,bg,color,2", "bg.color"); + break; + case 3: + _D("RGB : 255, 102, 0"); + elm_object_signal_emit(ad->ly_main, "change,bg,color,3", "bg.color"); + break; + case 4: + _D("RGB : 153, 56, 0"); + elm_object_signal_emit(ad->ly_main, "change,bg,color,4", "bg.color"); + break; + default: + _D("default"); + elm_object_signal_emit(ad->ly_main, "change,bg,color,1", "bg.color"); + break; + } +} + +static void _page_show(void *data, Evas * e, Evas_Object * obj, void *event_info) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + + elm_scroller_page_show(obj, ad->idle_clock_page, 0); +} + +static void _favorite_changed_cb(keynode_t *node, void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + ret_if(ad == NULL); + + int ret = -1; + +#if 0 + char *xml_data = NULL; + + xml_data = vconf_get_str(VCONFKEY_WMS_FAVORITES_REORDER); + if(xml_data == NULL) { + _D("Failed to get VCONFKEY_WMS_FAVORITES_REORDER"); + return; + } +#endif + + /* parse XML File */ + //@TODO: need to check + ret = xml_parse(ad); + if(ret == W_LAUNCHER_ERROR_FAIL) { + _E("Failed to parse XML file"); + system("cp /usr/apps/org.tizen.w-launcher-app/data/watchlauncher_settings.xml /opt/usr/share/w-launcher/watchlauncher_settings.xml"); + _favorite_changed_cb(NULL, ad); + return; + } + + /* re-make main scroller */ + if(ad->scroller) { + evas_object_del(ad->scroller); + ad->scroller = NULL; + } + Evas_Object *scroller = create_main_scroller(ad->ly_main, ad); + if(scroller == NULL) { + _D("create_main_scroller() failed"); + evas_object_del(ad->ly_main); + } + elm_object_part_content_set(ad->ly_main, "sw.scroller", scroller); + ad->scroller = scroller; + + /* set first page : idle clock */ + evas_object_event_callback_add(ad->scroller, EVAS_CALLBACK_RESIZE, _page_show, ad); +} + +#if USE_SETTING_IDLE_CLOCK +static Eina_Bool _terminate_idle_clock_cb(void *data) +{ + _D("%s : %d", __func__, data); + int pid = (int)data; + aul_terminate_pid(pid); + return ECORE_CALLBACK_CANCEL; +} + +static void _idle_clock_changed_cb(keynode_t *node, void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + ret_if(ad == NULL); + + char *appid = NULL; + char *pkgname = NULL; + char *pkgtype = NULL; + int ret_aul = -1; +#if SDK_TARGET_BIARY + pkgname = vconf_get_str(VCONFKEY_WMS_CLOCKS_SET_IDLE); + if(pkgname == NULL) { + _E("Failed to get VCONFKEY_WMS_CLOCKS_SET_IDLE and set basic idle clock"); + pkgname = strdup(APP_NAME_EMULATOR_DEFAULT_CLOCK); + if(pkgname == NULL) { + _E("Failed to duplicate string"); + return; + } + } + _D("appid : %s / ad->pkgname_idle_clock : %s", pkgname, ad->pkgname_idle_clock); + if(strcmp(pkgname, ad->pkgname_idle_clock)) { + appid = get_app_id(pkgname); + if(appid == NULL) { + _E("Failed to get appid. appid is NULL"); + free(pkgname); + pkgname == NULL; + + pkgname = strdup(APP_NAME_EMULATOR_DEFAULT_CLOCK); + if(pkgname == NULL) { + _E("Failed to duplicate string"); + return; + } + + ad->pkgname_idle_clock = strdup(pkgname); + if(ad->pkgname_idle_clock == NULL) { + _E("Failed to duplicate string"); + free(pkgname); + pkgname = NULL; + return; + } + + appid = get_app_id(ad->pkgname_idle_clock); + if(appid == NULL) { + _E("Failed to get appid"); + free(pkgname); + pkgname = NULL; + return; + } + } + + pkgtype = get_app_type(pkgname); + if(pkgtype == NULL) { + _E("Failed to get app_type. app_type is NULL"); + free(appid); + free(pkgname); + return; + } + + _D("pkgtype : %s", pkgtype); + if(!strcmp(pkgtype, APP_TYPE_WIDGET)){ + ret_aul = aul_open_app(appid); + } + else{ + ret_aul = _launch_app_by_home(appid); + } + + if(ret_aul < AUL_R_OK) { + _D("Launching app ret : [%d]", ret_aul); + free(appid); + free(pkgname); + free(pkgtype); + return; + } + + _D("ret_aul : %d", ret_aul); + _D("ad->pid_idle_clock will be terminate : %d", ad->pid_idle_clock); + //ecore_idler_add(_terminate_idle_clock_cb, ad->pid_idle_clock); + _terminate_idle_clock_cb(ad->pid_idle_clock); + + ad->pkgname_idle_clock = strdup(pkgname); + ad->pid_idle_clock = ret_aul; + ad->appid_idle_clock = strdup(appid); + free(pkgtype); + free(pkgname); + } + free(appid); +#endif +} +#endif + +Eina_Bool display_lcd_on_cb(void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + retv_if(ad == NULL, EINA_FALSE); + + display_change_state(LCD_NORMAL); + + return ECORE_CALLBACK_CANCEL; +} + +static w_launcher_error_e _register_vconf(void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + retv_if(ad == NULL, W_LAUNCHER_ERROR_OK); + + if(vconf_notify_key_changed(VCONFKEY_PM_STATE, _pm_state_changed_cb, ad) < 0) { + _E("Failed to register the pm status callback"); + } + + if(vconf_notify_key_changed(VCONFKEY_AIL_INFO_STATE, _desktop_cb, ad) < 0) { + _E("Failed to register the desktop callback"); + } + + if(vconf_notify_key_changed(VCONFKEY_SETAPPL_HOME_BG_COLOR_TYPE_INT, _bg_color_changed_cb, ad) < 0) { + _E("Failed to register the bg color callback"); + } + _bg_color_changed_cb(NULL, ad); + + if(vconf_notify_key_changed(VCONFKEY_WMS_SYNC_LOGS, _favorite_changed_cb, ad) < 0) { + _E("Failed to register the WMS_SYNC_LOGS callback"); + } + + if(vconf_notify_key_changed(VCONFKEY_WMS_SYNC_CONTACTS, _favorite_changed_cb, ad) < 0) { + _E("Failed to register the WMS_SYNC_CONTACTS callback"); + } + + if(vconf_notify_key_changed(VCONFKEY_WMS_FAVORITES_REORDER, _favorite_changed_cb, ad) < 0) { + _E("Failed to register the WMS_FAVORITE_REORDER callback"); + } + +#if USE_SETTING_IDLE_CLOCK + if(vconf_notify_key_changed(VCONFKEY_WMS_CLOCKS_SET_IDLE, _idle_clock_changed_cb, ad) < 0) { + _E("Failed to register the WMS_CLOCKS_SET_IDLE callback"); + //return W_LAUNCHER_ERROR_FAIL; + } + _idle_clock_changed_cb(NULL, ad); +#endif + + return W_LAUNCHER_ERROR_OK; +} + +void unregister_vconf(void) +{ + _D("%s", __func__); + if(vconf_ignore_key_changed(VCONFKEY_PM_STATE, _pm_state_changed_cb) < 0) { + _E("Failed to ignore the pm status callback"); + } + + if(vconf_ignore_key_changed(VCONFKEY_AIL_INFO_STATE, _desktop_cb) < 0) { + _E("Failed to ignore the desktop callback"); + } + + if(vconf_ignore_key_changed(VCONFKEY_SETAPPL_HOME_BG_COLOR_TYPE_INT, _bg_color_changed_cb) < 0) { + _E("Failed to ignore the bg color callback"); + } + + if(vconf_ignore_key_changed(VCONFKEY_WMS_SYNC_LOGS, _favorite_changed_cb) < 0) { + _E("Failed to ignore the WMS_SYNC_LOGS callback"); + } + + if(vconf_ignore_key_changed(VCONFKEY_WMS_SYNC_CONTACTS, _favorite_changed_cb) < 0) { + _E("Failed to ignore the WMS_SYNC_CONTACTS callback"); + } + + if(vconf_ignore_key_changed(VCONFKEY_WMS_FAVORITES_REORDER, _favorite_changed_cb) < 0) { + _E("Failed to ignore the favorite reorder callback"); + } + +#if USE_SETTING_IDLE_CLOCK + if(vconf_ignore_key_changed(VCONFKEY_WMS_CLOCKS_SET_IDLE, _idle_clock_changed_cb) < 0) { + _E("Failed to ignore the WMS_CLOCKS_SET_IDLE callback"); + } +#endif +} + +int grab_key_new(struct appdata *ad, Ecore_X_Window _xwin, int grab_mode) +{ + _D("%s", __func__); + retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n"); + + Ecore_X_Display *disp = NULL; + Ecore_X_Window xwin = 0; + int ret = -1; + ad->count_grabed++; + _D("ad->count_grabed : %d", ad->count_grabed); + + disp = ecore_x_display_get(); + retvm_if(disp == NULL, -1, "Failed to get display\n"); + + if(_xwin == -1) + { + /* TOP_POSITION_GRAB */ + xwin = elm_win_xwindow_get(ad->win); + retvm_if(xwin == 0, -1, "elm_win_xwindow_get() failed\n"); + } + else + xwin = _xwin; + + ret = utilx_grab_key(disp, xwin, KEY_POWER, grab_mode); + retvm_if(ret < 0, -1, "Failed to grab key down\n"); + retvm_if(ret == 1, -1, "Already grab\n"); + + return 0; +} + +int ungrab_key_new(struct appdata *ad) +{ + Ecore_X_Window xwin = 0; + Ecore_X_Display *disp = NULL; + + retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n"); + retvm_if(ad->input_win == 0, -1, "Invalid argument: ad->win is NULL\n"); + + xwin = elm_win_xwindow_get(ad->win); + retvm_if(xwin == 0, -1, "Failed to get xwindow\n"); + + disp = ecore_x_display_get(); + retvm_if(disp == NULL, -1, "Failed to get display\n"); + + utilx_ungrab_key(disp, ad->input_win, KEY_POWER); + _D("key ungrabed\n"); + + return 0; +} + +#if USE_ROTATION +void context_update_cb(int error, context_item_e context, char *context_data, void *user_data, int req_id) +{ + //@TODO: need to check + if(error == CONTEXT_ERROR_NONE) { + if(context == CONTEXT_ITEM_AUTO_ROTATION) { + int angle = 0; //rotate angle + context_context_data_get_int(context_data, CONTEXT_MOTION_ANGLE, &angle); + + if(angle == CONTEXT_AUTO_ROTATION_0) { + _D("0 degree"); + } else if(angle == CONTEXT_AUTO_ROTATION_90) { + _D("90 degree"); + } else if(angle == CONTEXT_AUTO_ROTATION_180) { + _D("180 degree"); + } else if(angle == CONTEXT_AUTO_ROTATION_270) { + _D("270 degree"); + } else if(angle == CONTEXT_AUTO_ROTATION_NONE) { + _D("invalid degree"); + } + } + } +} +#endif + +static int _lang_change_cb(void *data) +{ + _D("%s : Language is changed", __func__); + struct appdata *ad = (struct appdata *)data; + retv_if(ad == NULL, -1); + + int ret = -1; + + /* parse XML File */ + //@TODO: need to check + ret = xml_parse(ad); + if(ret == W_LAUNCHER_ERROR_FAIL) { + _E("Failed to parse XML file"); + system("cp /usr/apps/org.tizen.w-launcher-app/data/watchlauncher_settings.xml /opt/usr/share/w-launcher/watchlauncher_settings.xml"); + _favorite_changed_cb(NULL, ad); + return -1; + } + + /* initialize more_apps_list */ + if (ad->more_apps_list != NULL) { + int total = ad->more_apps_list->len; + _D("more_apps_list length : %d", ad->more_apps_list->len); + + if (total > 0) { + free_more_apps_list(ad->more_apps_list); + } + } + + w_launcher_load_app_list(ad); + + if(ad->win_apps) { + _D("menu_apps is alive"); + /* make scroller */ + elm_object_part_content_unset(ad->ly_apps, "sw.scroller.apps"); + if(ad->menuapps_box) { + evas_object_del(ad->menuapps_box); + ad->menuapps_box = NULL; + _D(" >>> remove ad->menuapps_box"); + } + if(ad->scroller_apps) { + evas_object_del(ad->scroller_apps); + ad->scroller_apps = NULL; + _D(" >>> remove ad->scroller_apps"); + } + + ad->scroller_apps = (Evas_Object *)create_apps_scroller(ad->ly_apps, ad); + if(ad->scroller_apps == NULL) { + _E("Failed to create menu_apps_scroller"); + evas_object_del(ad->ly_apps); + ad->ly_apps = NULL; + } else { + elm_object_part_content_set(ad->ly_apps, "sw.scroller.apps", ad->scroller_apps); + } + } + + /* re-make main scroller */ + if(ad->scroller) { + evas_object_del(ad->scroller); + ad->scroller = NULL; + } + Evas_Object *scroller = create_main_scroller(ad->ly_main, ad); + if(scroller == NULL) { + _E("Failed to create favorite scroller"); + evas_object_del(ad->ly_main); + } + elm_object_part_content_set(ad->ly_main, "sw.scroller", scroller); + ad->scroller = scroller; + + /* set first page : idle clock */ + evas_object_event_callback_add(ad->scroller, EVAS_CALLBACK_RESIZE, _page_show, ad); + + return EXIT_SUCCESS; +} + +void launcher_focus_in_cb(void *data, Evas_Object *obj, void *ei) +{ + _D("%s", __func__); + + struct appdata *ad = data; + ret_if(ad == NULL); + + int i, ret = -1; + + /* ungrab POWER key */ + for(i = 0; i < ad->count_grabed; i++) { + ret = ungrab_key_new(ad); + if(ret != 0) { + _E("Failed to ungrab POWER key(ad->win)"); + } + } + ad->count_grabed = 0; + + if(ad->need_to_lcdon) { + _D("need_to_lcdon : TRUE"); + //ecore_idler_add(display_lcd_on_cb, ad); + ecore_timer_add(0.2, display_lcd_on_cb, ad); + ad->need_to_lcdon = EINA_FALSE; + } +} + +void launcher_focus_out_cb(void *data, Evas_Object *obj, void *ei) +{ + _D("%s", __func__); + + struct appdata *ad = data; + ret_if(ad == NULL); + + int ret = -1; + + /* grab POWER key */ + if(ad->count_grabed == 0) { + ret = grab_key_new(ad, ad->input_win, SHARED_GRAB); + if(ret != 0) { + _E("Failed to grab POWER key(ad->win)"); + } + } +} + +void _check_aux(Evas_Object *win, void *data) +{ + const Eina_List *l, *ll; + + int id = -1; + char *hint = NULL; + + struct appdata *ad = data; + ret_if(ad == NULL); + + l = elm_win_aux_hints_supported_get(win); + EINA_LIST_FOREACH(l, ll, hint) { + if (!strncmp(hint, "wm.comp.win.effect.enable", strlen("wm.comp.win.effect.enable"))) { + id = elm_win_aux_hint_add(win, "wm.comp.win.effect.enable", "0"); + if (id != -1) { + ad->id_launch_effect = id; + _D("set no effect : %d", id); + } + } + } +} + +int _app_create(struct appdata *ad) +{ + _D("%s", __func__); + int ret = -1; + int ret_aul = -1; + Evas_Object *win = NULL; + Evas_Object *bg = NULL; + char *pkgtype = NULL; + char *appid = NULL; + char *pkgname = NULL; + + /* create main window */ + if(ad->win == NULL) { + win = _add_window(PACKAGE, EINA_TRUE); + retvm_if(win == NULL, -1, "Failed add window\n"); + _check_aux(win, ad); + evas_object_resize(win, WIN_SIZE, WIN_SIZE); + evas_object_move(win, 0, 0); + ad->win = win; + _D("create window\n"); + } + + /* create BG */ + + bg = _create_bg(win); + if(bg == NULL){ + _E("failed to get parent window"); + return -1; + } + + /* create input_window */ + ad->input_win = _add_input_window(); + retvm_if(ad->input_win == 0, -1, "Failed to create input window\n"); + + /* load favorite apps list */ + ret = xml_parse(ad); + if(ret != 0) { + _D("Failed to get XML content"); + } + + evas_object_smart_callback_add(ad->win, "focus,in", launcher_focus_in_cb, ad); + evas_object_smart_callback_add(ad->win, "focus,out", launcher_focus_out_cb, ad); + + /* create main layout */ + Evas_Object *ly_main = NULL; + ly_main = _add_layout(ad->win, EDJ_APP, "layout_main"); + retvm_if(ly_main == NULL, -1, "Failed to add main layout\n"); + evas_object_size_hint_weight_set(ly_main, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(ad->win, ly_main); + ad->ly_main = ly_main; + evas_object_show(ad->win); + + Elm_Theme *theme = NULL; + theme = elm_theme_new(); + elm_theme_ref_set(theme, NULL); + elm_theme_extension_add(theme, EDJDIR"/scrollbar.edj"); + ad->theme = theme; + + /* load more apps list */ + w_launcher_load_app_list(ad); + + pkgname = vconf_get_str(VCONFKEY_WMS_CLOCKS_SET_IDLE); + if(pkgname == NULL) { + _E("Failed to get VCONFKEY_WMS_CLOCKS_SET_IDLE and set basic idle clock"); + pkgname = strdup(APP_NAME_EMULATOR_DEFAULT_CLOCK); + if(pkgname == NULL) { + _E("Failed to duplicate string"); + return -1; + } + } + else{ + ad->pkgname_idle_clock = strdup(pkgname); + } + _D("pkgname : %s / ad->pkgname_idle_clock : %s", pkgname, ad->pkgname_idle_clock); + appid = get_app_id(ad->pkgname_idle_clock); + pkgtype = get_app_type(ad->pkgname_idle_clock); + _D("pkgtype : %s", pkgtype); + if(pkgtype == NULL) { + _E("Failed to get app_type. app_type is NULL"); + free(appid); + free(pkgname); + appid = NULL; + pkgname = NULL; + + pkgname = strdup(APP_NAME_EMULATOR_DEFAULT_CLOCK); + if(pkgname == NULL) { + _E("Failed to duplicate string"); + return -1; + } + + ad->pkgname_idle_clock = strdup(pkgname); + if(ad->pkgname_idle_clock == NULL) { + _E("Failed to duplicate string"); + free(pkgname); + return -1; + } + + appid = get_app_id(ad->pkgname_idle_clock); + pkgtype = get_app_type(ad->pkgname_idle_clock); + _D("pkgtype: %s", pkgtype); + if(pkgtype == NULL) { + _E("Failed to get default clock"); + free(appid); + free(pkgtype); + free(pkgname); + return -1; + } + } + if(!strcmp(pkgtype, APP_TYPE_WIDGET)){ + ret_aul = aul_open_app(appid); + } + else{ + ret_aul = _launch_app_by_home(appid); + } + if(ret_aul < AUL_R_OK) { + _E("Launching app ret : [%d]", ret_aul); + if(ret_aul == AUL_R_ETIMEOUT){ + _D("web launchpad is not ready."); + ad->flag_need_to_relaunch = EINA_TRUE; + } + } else { + ad->pid_idle_clock = ret_aul; + ad->appid_idle_clock = strdup(appid); + _D("idle clock pid : %d", ret_aul); + } + + /* make scroller */ + Evas_Object *scroller = create_main_scroller(ad->ly_main, ad); + if(scroller == NULL) { + _D("create_main_scroller() failed"); + evas_object_del(ad->ly_main); + free(appid); + free(pkgname); + return -1; + } + elm_object_part_content_set(ad->ly_main, "sw.scroller", scroller); + ad->scroller = scroller; + + /* add key event */ + ad->key_down_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, (Ecore_Event_Handler_Cb)_key_down_event_cb, ad); + ad->key_up_handler = ecore_event_handler_add(ECORE_EVENT_KEY_UP, (Ecore_Event_Handler_Cb)_key_up_event_cb, ad); + +#if USE_ROTATION + /* register rotation callback */ + context_item_e context = CONTEXT_ITEM_AUTO_ROTATION; + context_set_changed_callback(context, NULL, context_update_cb, NULL, &req_id); +#endif + + /* register vconf */ + ret = _register_vconf(ad); + if(ret != 0) { + _D("Failed to register vconf"); + } + + /* language change callback */ + if (appcore_set_event_callback(APPCORE_EVENT_LANG_CHANGE, _lang_change_cb, ad) < 0) { + _E("Cannot register the language change callback."); + } + + return ret; +} diff --git a/src/main.c b/src/main.c new file mode 100755 index 0000000..42ab688 --- /dev/null +++ b/src/main.c @@ -0,0 +1,337 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <app.h> +#include <aul.h> +#include <Ecore.h> +#include <utilX.h> +#include <unistd.h> +#include <errno.h> +#include <dd-display.h> +#include <dbus/dbus-glib.h> +#include <dbus/dbus-glib-lowlevel.h> + +#ifndef EMULATOR_TYPE +#include <context-manager/context_manager.h> +#define USE_ROTATION 0 //USE_ROTATIONS 1 +#endif + +#include "main.h" +#include "log.h" +#include "util_efl.h" +#include "logic.h" +#include "dbus.h" + +#define HOME_SERVICE_KEY "home_op" +#define HOME_SERVICE_VALUE_POWERKEY "powerkey" + +struct appdata *g_app_data = NULL; + +struct appdata *w_launcher_app_data_get(void) +{ + return g_app_data; +} + +static int iterfunc(const aul_app_info* info, void* data) +{ + _D("appid : %s, pid %d", info->appid, info->pid); + if(strcmp(info->appid, APP_NAME_BT_POPUP) == 0) { + aul_terminate_pid(info->pid); + } + return 0; +} + +static bool app_create(void *data) +{ + struct appdata *ad = data; + retvm_if(ad == NULL, false, "Invalid argument: appdata is NULL\n"); + + /* initialize variables */ + ad->id_launch_effect = -1; + ad->need_to_lcdon = EINA_FALSE; + ad->win_apps = NULL; + ad->ly_apps = NULL; + ad->win_w = 0; + ad->win_h = 0; + ad->count_grabed = 0; + ad->scroller = NULL; + ad->scroller_apps = NULL; + ad->main_box = NULL; + ad->menuapps_box = NULL; + ad->total_page = 0; + ad->idle_clock_page = 0; + ad->timer = NULL; + ad->powerkey_lcd_state = EINA_FALSE; + ad->powerkey_timer = NULL; + ad->long_press_timer = NULL; + ad->key_down_handler = NULL; + ad->key_up_handler = NULL; + ad->flag_long_press = EINA_FALSE; + ad->flag_mouse_down = EINA_FALSE; + ad->flag_wakeup_setting_clock = EINA_FALSE; + ad->powerkey_count = 0; + ad->flag_launching_more_apps = EINA_FALSE; + ad->moreapps_timer = NULL; + ad->flag_need_to_relaunch = EINA_FALSE; + + /* Idle Clock */ + ad->pkgname_idle_clock = NULL; + ad->pid_idle_clock = 0; + ad->appid_idle_clock = NULL; + + /* DBUS - Gesture */ + if(W_LAUNCHER_ERROR_OK != dbus_gesture_handler_attach()) { + _E("Failed to attach gesture dbus callback"); + } + + /* DBUS - Low Battery */ + if(W_LAUNCHER_ERROR_OK != dbus_low_battery_handler_attach()) { + _E("Failed to attach low battery dbus callback"); + } + + /* DBUS - WRT status */ + if(W_LAUNCHER_ERROR_OK != dbus_web_runtime_handler_attach()) { + _E("Failed to attach web runtime dbus callback"); + } + + if(_app_create(ad) != 0){ + _E("_app_create() if failed\n"); + return false; + } + + return true; +} + +static void app_terminate(void *data) +{ + struct appdata *ad = data; + + ad->app_state = APP_STATE_TERMINATE; + +#if USE_ROTATION + /* unregister rotation callback */ + context_item_e context = CONTEXT_ITEM_AUTO_ROTATION; + context_unset_changed_callback(context); +#endif + + /*Disconnecting DBus */ + if(ad->connection) { + dbus_connection_close(ad->connection); + dbus_connection_unref(ad->connection); + ad->connection = NULL; + _D("Disconnecting DBUS"); + } + + if (ad->win) { + evas_object_del(ad->win); + ad->win = NULL; + _D("delete ad->win"); + } + + unregister_vconf(); + ungrab_key_new(ad); +} + +static void app_pause(void *data) +{ + _D("%s", __func__); + struct appdata *ad = data; + retm_if(ad == NULL, "Invalid argument: appdata is NULL\n"); + + ad->app_state = APP_STATE_PAUSE; + int ret = -1; + Eina_Bool check_focus = EINA_FALSE; + + /* set LCD on - 1 : disable lcd off by power key */ + //send_lcd_off_signal(1); + check_focus = elm_object_focus_get(ad->win); + + _D("focus state : %d", check_focus); + + /* grab POWER key */ + if(check_focus == EINA_FALSE){ + if(ad->count_grabed == 0) { + ret = grab_key_new(ad, ad->input_win, SHARED_GRAB); + if(ret != 0) { + _E("Failed to grab POWER key(ad->win)"); + } + } + } +#if 0 + if(ad->timer) { + pause_time(ad); + } +#endif +} + +static void app_resume(void *data) +{ + _D("%s", __func__); + struct appdata *ad = data; + retm_if(ad == NULL, "Invalid argument: appdata is NULL\n"); + + int idx = -1; + int ret = -1; + int i = 0; + Evas_Coord x, y, w, h; + + if(ad->id_launch_effect != -1) { + elm_win_aux_hint_val_set(ad->win, ad->id_launch_effect, "0"); + } + + ad->app_state = APP_STATE_RESUME; + + /* ungrab POWER key */ + for(i = 0; i < ad->count_grabed; i++) { + ret = ungrab_key_new(ad); + if(ret != 0) { + _E("Failed to ungrab POWER key(ad->win)"); + } + } + ad->count_grabed = 0; + + if(ad->flag_wakeup_setting_clock) { //wake_up gesture setting : clock + /* LCD on */ + //ecore_idler_add(display_lcd_on_cb, ad); + ad->flag_wakeup_setting_clock = EINA_FALSE; + return; + } + + elm_scroller_region_get(ad->scroller, &x, &y, &w, &h); + + if(w != 0) { + idx = x / w; + if(idx == ad->idle_clock_page) { + /* set LCD off - 0 : enable lcd off by power key */ + //send_lcd_off_signal(0); + +#if 0 + _D("update time : %d", idx); + update_time(ad); +#endif + } + } +} + +static void app_service(service_h service, void *data) +{ + _D("%s", __func__); + struct appdata *ad = data; + retm_if(ad == NULL, "Invalid argument: appdata is NULL\n"); + + /* powerkey bundle */ + char *service_val = NULL; + int idx = -1; + Evas_Coord x, y, w, h; + + service_get_extra_data(service, HOME_SERVICE_KEY, &service_val); + _D("service value : %s", service_val); + + if(service_val != NULL) { + if(!strncmp(service_val, HOME_SERVICE_VALUE_POWERKEY, strlen(HOME_SERVICE_VALUE_POWERKEY))) { + _D("powerkey operation"); + if(ad->scroller_apps) { + evas_object_del(ad->scroller_apps); + ad->scroller_apps = NULL; + _D(" >>> remove ad->scroller_apps"); + } + if(ad->menuapps_box) { + evas_object_del(ad->menuapps_box); + ad->menuapps_box = NULL; + _D(" >>> remove ad->menuapps_box"); + } + if(ad->ly_apps) { + evas_object_del(ad->ly_apps); + ad->ly_apps = NULL; + _D(" >>> remove ad->ly_apps"); + } + if(ad->win_apps) { + evas_object_del(ad->win_apps); + ad->win_apps = NULL; + _D(" >>> remove ad->win_apps"); + } + elm_scroller_region_get(ad->scroller, &x, &y, &w, &h); + + if(w != 0) { + idx = x / w; + if(idx == ad->idle_clock_page) { + /* set LCD off - 0 : enable lcd off by power key */ + if(ad->app_state == APP_STATE_PAUSE){ + _D("other app was launched by SDK"); + } + else{ + display_change_state(LCD_OFF); + } + } + else{ + elm_scroller_page_show(ad->scroller, ad->idle_clock_page, 0); + _D("move idle clock page"); + if (ad->win) { + elm_win_activate(ad->win); + aul_app_get_running_app_info(iterfunc, NULL); + } + } + } + } + } + ad->app_state = APP_STATE_SERVICE; + if (ad->win) { + elm_win_activate(ad->win); + } + +} + +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 = NULL; + event_callback.language_changed = NULL; + event_callback.region_format_changed = NULL; + + memset(&ad, 0x0, sizeof(struct appdata)); + + g_app_data = &ad; + _D("app_data:%p", g_app_data); + +#if 0 + /* @TODO: need to check */ + if(setenv("ELM_THEME", "tizen", 0) < 0) { + _D("setenv is failed: %s", strerror(errno)); + } +#endif + + if(setenv("BUFMGR_LOCK_TYPE", "none", 0) < 0) { + _D("setenv is failed: %s", strerror(errno)); + } + +#if 0 + if(setenv("ELM_ENGINE", "gl", 1) < 0) { + _D("setenv is failed: %s", strerror(errno)); + } +#endif + + return app_efl_main(&argc, &argv, &event_callback, &ad); +} diff --git a/src/pkgmgr.c b/src/pkgmgr.c new file mode 100755 index 0000000..acc9147 --- /dev/null +++ b/src/pkgmgr.c @@ -0,0 +1,352 @@ +/* + * + * Copyright (c) 2000 - 2012 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 <Elementary.h> +#include <package-manager.h> +#include <pkgmgr-info.h> + +#include "main.h" +#include "log.h" +#include "logic.h" + +#define BUFSIZE 512 +#define APP_NAME_CALL "Call" +#define PKG_NAME_SETTING "org.tizen.clocksetting" + +char *get_app_pkgname(const char *appid) +{ + int ret = 0; + char *pkgname = NULL; + char *re_pkgname = NULL; + pkgmgrinfo_appinfo_h handle; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return NULL; + ret = pkgmgrinfo_appinfo_get_pkgname(handle, &pkgname); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return NULL; + } + + /*after call pkgmgrinfo_appinfo_destroy_appinfo, mainappid is destroyed with handle, so must copy it*/ + re_pkgname = strdup(pkgname); + _D("pkg name: %s - %s", pkgname, re_pkgname); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + + return re_pkgname; +} + +char *get_app_id(const char *pkgid) +{ + int ret = 0; + char *mainappid = NULL; + char *re_mainappid = NULL; + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + if (ret != PMINFO_R_OK) + return NULL; + ret = pkgmgrinfo_pkginfo_get_mainappid(handle, &mainappid); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return NULL; + } + + /*after call pkgmgrinfo_appinfo_destroy_appinfo, mainappid is destroyed with handle, so must copy it*/ + re_mainappid = strdup(mainappid); + _D("label : %s - %s", mainappid, re_mainappid); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + + return re_mainappid; +} + +char *get_app_type(const char *pkgid) +{ + int ret = 0; + char *apptype = NULL; + char *re_apptype = NULL; + pkgmgrinfo_pkginfo_h handle; + ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle); + if (ret != PMINFO_R_OK) + return NULL; + ret = pkgmgrinfo_pkginfo_get_type(handle, &apptype); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return NULL; + } + + /*after call pkgmgrinfo_appinfo_destroy_appinfo, mainappid is destroyed with handle, so must copy it*/ + re_apptype = strdup(apptype); + _D("apptype : %s - %s", apptype, re_apptype); + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + + return re_apptype; +} + +char *get_app_label(const char *appid) +{ + int ret = 0; + char *label = NULL; + char *re_label = NULL; + pkgmgrinfo_appinfo_h handle; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return NULL; + ret = pkgmgrinfo_appinfo_get_label(handle, &label); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return NULL; + } + + if (label == NULL || strstr(label, "null") || strstr(label, "NULL")) { + label = strdup(" "); + } + + /*after call pkgmgrinfo_appinfo_destroy_appinfo, label is destroyed with handle, so must copy it*/ + re_label = strdup(label); + _D("label : %s - %s", label, re_label); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + + return re_label; +} + +char *get_app_icon(const char *appid) +{ + int ret = 0; + char *icon = NULL; + char *re_icon = NULL; + pkgmgrinfo_appinfo_h handle; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return NULL; + ret = pkgmgrinfo_appinfo_get_icon(handle, &icon); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return NULL; + } + + if (icon == NULL) { + icon = strdup("NULL"); + } + + /*after call pkgmgrinfo_appinfo_destroy_appinfo, icon is destroyed with handle, so must copy it*/ + re_icon = strdup(icon); + _D("icon name: %s - %s", icon, re_icon); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + + return re_icon; +} + +static int _get_app_enabled(const char *appid) +{ + int ret = 0; + bool enabled; + pkgmgrinfo_appinfo_h handle; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_is_enabled(handle, &enabled); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + _D("appid : %s, app enabled: %d", appid, enabled); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return 0; +} + +//#ifdef EMULATOR_TYPE +static int _is_preload_pkg(const char *pkgid) +{ + int ret = 0; + bool preload = 0; + pkgmgrinfo_appinfo_h handle; + + if (pkgid == NULL) { + return preload; + } + else if (!strcmp(pkgid, PKG_NAME_SETTING)){ + _D("pkgid : %s enable setting pkg.", pkgid); + return 0; + } + + ret = pkgmgrinfo_appinfo_get_appinfo(pkgid, &handle); + if (ret != PMINFO_R_OK) + return -1; + ret = pkgmgrinfo_appinfo_is_preload(handle, &preload); + if (ret != PMINFO_R_OK) { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + _D("pkg preload: %d\n", preload); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return preload; +} +//#endif + +static int _app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data) +{ + struct appdata *ad = user_data; + retv_if(ad == NULL, -1); + + char *appid = NULL; + char *icon_path = NULL; + char *app_name = NULL; + int enabled = 0; + more_apps_info *info = NULL; + + info = (more_apps_info *)calloc(1, sizeof(*info)); + if(info == NULL) { + _E("Failed to allocate memory"); + return -1; + } + + pkgmgrinfo_appinfo_get_appid(handle, &appid); + //enabled = _get_app_enabled(appid); +//#ifdef EMULATOR_TYPE + enabled = _is_preload_pkg(appid); +//#endif + + if(!enabled) { + app_name = get_app_label(appid); + if(app_name == NULL) { + _E("Failed to get app label"); + app_name = strdup(" "); + if(app_name == NULL) { + _E("Failed to duplicate string : app_name"); + return -1; + } + } + + if(strcmp(app_name, APP_NAME_CALL)) { + icon_path = get_app_icon(appid); + if(icon_path == NULL) { + _E("Failed to get app icon"); + icon_path = strdup("NULL"); + if(icon_path == NULL) { + _E("Failed to duplicate string : icon_path"); + free(app_name); + return -1; + } + } + + info->app_id = strdup(appid); + if(info->app_id == NULL) { + _E("Failed to duplicate string : info->app_id"); + free(app_name); + free(icon_path); + return -1; + } + info->app_name = strdup(app_name); + if(info->app_name == NULL) { + _E("Failed to duplicate string : info->app_name"); + free(app_name); + free(icon_path); + return -1; + } + info->icon_path = strdup(icon_path); + if(info->icon_path == NULL) { + _E("Failed to duplicate string : info->icon_path"); + free(app_name); + free(icon_path); + return -1; + } + g_array_append_val(ad->more_apps_list, info); + + free(icon_path); + } else { + _D("Call does not have menu icon"); + } + + free(app_name); + } + + return 0; +} + +gint sort_more_apps_list(gconstpointer _a, gconstpointer _b) +{ + more_apps_info **info_1 = (more_apps_info **)_a; + more_apps_info **info_2 = (more_apps_info **)_b; + + /* returns less than zero for first arg is less than second arg, * + * zero for equal, * + * greater zero if first arg is greater than second arg */ + return strcmp((*info_1)->app_name, (*info_2)->app_name); +} + +static int _add_filter(void *data) +{ + struct appdata *ad = data; + retv_if(ad == NULL, -1); + + int ret = 0; + pkgmgrinfo_appinfo_filter_h handle = NULL; + retv_if(PMINFO_R_OK != pkgmgrinfo_appinfo_filter_create(&handle), -1); + + static GArray *more_apps_list = NULL; + + more_apps_list = g_array_new(FALSE, FALSE, sizeof(more_apps_info*)); + ad->more_apps_list = more_apps_list; + _D("create more_apps_list"); + +#if 1 + ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_NODISPLAY, 0); + if(ret != PMINFO_R_OK) { + _E("Failed to add fileter"); + pkgmgrinfo_appinfo_filter_destroy(handle); + return ret; + } +#else + ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_CATEGORY, "http://tizen.org/category/idle-clock"); + if(ret != PMINFO_R_OK) { + _E("Failed to add fileter"); + pkgmgrinfo_appinfo_filter_destroy(handle); + return ret; + } +#endif + + ret = pkgmgrinfo_appinfo_filter_foreach_appinfo(handle, _app_list_cb, ad); + if(ret != PMINFO_R_OK) { + _E("Failed to add fileter"); + pkgmgrinfo_appinfo_filter_destroy(handle); + return ret; + } + + pkgmgrinfo_appinfo_filter_destroy(handle); + + /* sorting */ + if(more_apps_list->len > 0) { + g_array_sort(ad->more_apps_list, sort_more_apps_list); + } + + return 0; +} + +bool w_launcher_load_app_list(void *data) +{ + _D("%s", __func__); + struct appdata *ad = data; + retv_if(ad == NULL, EINA_FALSE); + + int ret; + ret = _add_filter(ad); + _D("load app list done."); + + return ret; +} diff --git a/src/scroller.c b/src/scroller.c new file mode 100755 index 0000000..9e81b2e --- /dev/null +++ b/src/scroller.c @@ -0,0 +1,1115 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <Ecore.h> +#include <Ecore_X.h> +#include <utilX.h> +#include <vconf.h> +#include <vconf-keys.h> +#include <aul.h> +#include <minicontrol-viewer.h> +#include <minicontrol-monitor.h> + +#include "main.h" +#include "log.h" +#include "scroller.h" +#include "logic.h" +#include "util_efl.h" +#include "clock.h" +#include "pkgmgr.h" +#include "app_tray.h" +#include "dbus.h" + +/* App Icon */ +#define IMGDIR "/usr/apps/org.tizen."PACKAGE"/res/images/w-launcher-app" +#define ICON_PATH_NOTIFICATION IMGDIR"/b_home_screen_notification.png" +#define ICON_PATH_LOGS IMGDIR"/b_home_screen_call_log.png" +#define ICON_PATH_CONTACTS IMGDIR"/b_home_screen_contact.png" +#define ICON_PATH_MORE_APPS IMGDIR"/b_home_screen_dialer_more_apps.png" + +/* packages */ +#define PKG_NAME_NOTIFICATION "org.tizen.wnotification" +#define PKG_NAME_LOGS "org.tizen.logs" +#define PKG_NAME_CONTACTS "org.tizen.contacts" + +/* DATA KEY */ +#define DATA_KEY_ANIM_START "anim_start" +#define DATA_KEY_ANIM_START_X "anim_start_x" +#define DATA_KEY_DRAG_START "drag_start" +#define DATA_KEY_SCROLL_BY_USER "scroll_by_user" +#define DATA_KEY_SCROLLING_PAGE "scrolling_page" +#define DATA_KEY_PREVIOUS_X "previous_x" +#define DATA_KEY_CURRENT_IDX "current_idx" + +#define PAGE_MOVE 1 +#define PAGE_APP_NUM 4 +#define PAGE_MAX_NUM 10 + +#define WNOTI_COUNT "file/private/home/noti_count" + +#define USE_MAPBUF 0 + +#ifndef USE_SETTING_IDLE_CLOCK +/* Weather Icon */ +#define WEATHER_ICON_CLEAR IMGDIR"/weather/clear.png" +#define WEATHER_ICON_COLD IMGDIR"/weather/cold.png" +#define WEATHER_ICON_FLURRIES IMGDIR"/weather/flurries.png" +#define WEATHER_ICON_FOG IMGDIR"/weather/fog.png" +#define WEATHER_ICON_HAIL IMGDIR"/weather/hail.png" +#define WEATHER_ICON_HEAVY_RAIN IMGDIR"/weather/heavy_rain.png" +#define WEATHER_ICON_HOT IMGDIR"/weather/hot.png" +#define WEATHER_ICON_ICE IMGDIR"/weather/ice.png" +#define WEATHER_ICON_MOSTLY_CLEAR IMGDIR"/weather/mostly_clear.png" +#define WEATHER_ICON_MOSTLY_CLOUD IMGDIR"/weather/mostly_cloud.png" +#define WEATHER_ICON_MOSTLY_CLOUDY_FLURRIES IMGDIR"/weather/mostly_cloudy_flurries.png" +#define WEATHER_ICON_MOSTLY_CLOUDY_THUNDER_SHOWERS IMGDIR"/weather/mostly_cloudy_thunder_showers.png" +#define WEATHER_ICON_PARTLY_SUNNY IMGDIR"/weather/partly_sunny.png" +#define WEATHER_ICON_PARTLY_SUNNY_SHOWERS IMGDIR"/weather/partly_sunny_showers.png" +#define WEATHER_ICON_RAIN IMGDIR"/weather/rain.png" +#define WEATHER_ICON_RAIN_SNOW IMGDIR"/weather/rain_snow.png" +#define WEATHER_ICON_SANDSTORM IMGDIR"/weather/sandstorm.png" +#define WEATHER_ICON_SHOWERS IMGDIR"/weather/showers.png" +#define WEATHER_ICON_SNOW IMGDIR"/weather/snow.png" +#define WEATHER_ICON_SUNNY IMGDIR"/weather/sunny.png" +#define WEATHER_ICON_THUNDERSTORMS IMGDIR"/weather/thunderstorms.png" +#define WEATHER_ICON_WINDY IMGDIR"/weather/windy.png" + +#define TEMP_UNIT_C "c" +#define TEMP_UNIT_F "f" + +const char *weather_icon_path[] = { + WEATHER_ICON_SUNNY, /* undefined : 0 */ + WEATHER_ICON_SUNNY, /* weather id : 1 */ + WEATHER_ICON_PARTLY_SUNNY, /* 2 */ + WEATHER_ICON_MOSTLY_CLOUD, /* 3 */ + WEATHER_ICON_SHOWERS, /* 4 */ + WEATHER_ICON_FOG, /* 5 */ + WEATHER_ICON_PARTLY_SUNNY_SHOWERS, /* 6 */ + WEATHER_ICON_THUNDERSTORMS, /* 7 */ + WEATHER_ICON_MOSTLY_CLOUDY_THUNDER_SHOWERS, /* 8 */ + WEATHER_ICON_RAIN, /* 9 */ + WEATHER_ICON_FLURRIES, /* 10 */ + WEATHER_ICON_MOSTLY_CLOUDY_FLURRIES, /* 11 */ + WEATHER_ICON_SNOW, /* 12 */ + WEATHER_ICON_RAIN_SNOW, /* 13 */ + WEATHER_ICON_WINDY, /* 14 */ + WEATHER_ICON_ICE, /* 15 */ + WEATHER_ICON_HOT, /* 16 */ + WEATHER_ICON_COLD, /* 17 */ + WEATHER_ICON_CLEAR, /* 18 */ + WEATHER_ICON_MOSTLY_CLEAR /* 19 */ +}; +#endif + +#define E_DATA_MINICONTROL_TAG "tag" + +#if 0 +inline void index_bring_in(Evas_Object *index, int idx) +{ + ret_if(NULL == index); + _D(" >>>>> idx : %d", idx); + + /* If index is updated, then it is not selected basically. */ + /* So, do not try this : if (cur_idx == idx) return; */ + + int cur_idx = (int) evas_object_data_get(index, DATA_KEY_CURRENT_IDX); + if (idx == cur_idx) return; + evas_object_data_set(index, DATA_KEY_CURRENT_IDX, (void *) idx); + + Elm_Object_Item *idx_it = elm_index_item_find(index, (void *) idx); + if (NULL == idx_it) return; + elm_index_item_selected_set(idx_it, EINA_TRUE); + + return; +} +#endif + +static struct { + int favorite_pid; + + Ecore_Timer *select_item_timer; +} home_event_info = { + .favorite_pid = 0, + + .select_item_timer = NULL, +}; + +static void _favorite_apps_selected_timer_cb(void *data) +{ + _D("%s : %s", __func__, data); + + home_event_info.favorite_pid = 0; + _D("set home_event_info.favorite_pid : 0"); + + if(home_event_info.select_item_timer) { + ecore_timer_del(home_event_info.select_item_timer); + home_event_info.select_item_timer = NULL; + _D("delete home_event_info.select_item_timer"); + } +} + +static void _launch_app_cb(void *data, Evas_Object *o, const char *emission, const char *source) +{ + _D("%s : %s", __func__, data); + + /* check App launching */ + if(home_event_info.favorite_pid != 0) { + _D("App is launching"); + return; + } + +#if USE_AUL_LAUNCH + bundle *b = NULL; + //int pid = 0; + b = bundle_create(); + + if(!b) { + _E("Failed to create bundle"); + return; + } + + bundle_add(b, "__APP_SVC_OP_TYPE__", SERVICE_OPERATION_MAIN); + + home_event_info.favorite_pid = aul_launch_app(data, b); + if(home_event_info.favorite_pid < AUL_R_OK) { + _E("Launching app ret : [%d]", home_event_info.favorite_pid); + home_event_info.favorite_pid = 0; + if(b) { + bundle_free(b); + _D("bundle free"); + } + return; + } else { + _D("add item selected timer"); + ecore_timer_add(1.0, _favorite_apps_selected_timer_cb, data); + } + + if(b) { + bundle_free(b); + _D("bundle free"); + } + +#else + int ret_aul = -1; + + ret_aul = aul_open_app(data); + if(ret_aul < AUL_R_OK) { + _E("Launching app ret : [%d]", ret_aul); + return; + } + if(home_event_info.favorite_pid < AUL_R_OK) { + _E("Launching app ret : [%d]", home_event_info.favorite_pid); + home_event_info.favorite_pid = 0; + return; + } else { + _D("add item selected timer"); + ecore_timer_add(1.0, _favorite_apps_selected_timer_cb, data); + } +#endif +} + +#if 0 +static void _ly_apps_mouse_down_cb(void *data, Evas * evas, Evas_Object * obj, void *event_info) +{ + struct appdata *ad = data; + ret_if(ad == NULL); + + Evas_Event_Mouse_Down *ev = event_info; + + ad->flag_mouse_down = EINA_TRUE; + + ad->posx[POS_DOWN] = ev->output.x; + ad->posy[POS_DOWN] = ev->output.y; +} + +static void _ly_apps_mouse_move_cb(void *data, Evas * evas, Evas_Object * obj, void *event_info) +{ + struct appdata *ad = data; + ret_if(ad == NULL); + + Ecore_Event_Mouse_Move *ev = event_info; + _D(" >>>> down(%d) - move(%d) = %d ", ad->posy[POS_DOWN], ev->y, ad->posy[POS_DOWN] - ev->y); + + if(ad->flag_mouse_down) { + if(ad->posy[POS_DOWN] - ev->y < -100) { + _D("BACK!!"); +#if 0 + evas_object_del(ad->win_apps); + ad->win_apps = NULL; + return; +#endif + } + } +} + +static void _ly_apps_mouse_up_cb(void *data, Evas * evas, Evas_Object * obj, void *event_info) +{ + struct appdata *ad = data; + ret_if(ad == NULL); + + //Evas_Event_Mouse_Up *ev = event_info; + + ad->flag_mouse_down = EINA_FALSE; +} +#endif + +int page_scroller_get_current_page_no(Evas_Object *scroller) +{ + _D("%s", __func__); + return (int) evas_object_data_get(scroller, DATA_KEY_CURRENT_IDX); +} + +#if 0 +void page_scroller_bring_in(Evas_Object *scroller, int idx) +{ + _D("Scroller(%p) brings into the (%d) page", scroller, idx); + + //int count = page_scroller_count_page(scroller); + int count = 5; + if (idx < 0) return; + + int origin_idx = (int) evas_object_data_get(scroller, DATA_KEY_CURRENT_IDX); + if (idx == count) { + _D("Looping"); + evas_object_data_set(scroller, DATA_KEY_CURRENT_IDX, (void *) 0); + return; + } + evas_object_data_set(scroller, DATA_KEY_CURRENT_IDX, (void *) idx); + + int x, y, w, h; + evas_object_geometry_get(scroller, &x, &y, &w, &h); + if (w && (0 == x % w) && (idx == origin_idx)) { + _D("No need to bring in the scroller : (x:%d, w:%d) (idx:%d, origin_idx:%d)", x, w, idx, origin_idx); + return; + } + + //elm_scroller_region_bring_in(scroller, idx * w, 0, w, h); + elm_scroller_page_bring_in(scroller, idx, 0); +} +#endif + +#if 0 +static void _scroller_anim_start_cb(void *data, Evas_Object *scroller, void *event_info) +{ + _D("%s", __func__); + + Evas_Coord x, y, w, h; + elm_scroller_region_get(scroller, &x, &y, &w, &h); + + evas_object_data_set(scroller, DATA_KEY_ANIM_START, (void *) 1); + evas_object_data_set(scroller, DATA_KEY_ANIM_START_X, (void *) x); + + int drag_start = (int) evas_object_data_get(scroller, DATA_KEY_DRAG_START); + if (drag_start == 0) return; + evas_object_data_set(scroller, DATA_KEY_DRAG_START, (void *) 0); +} +#endif + +static void _scroller_anim_stop_cb(void *data, Evas_Object *scroller, void *event_info) +{ + _D("%s", __func__); + + struct appdata *ad = (struct appdata *)data; + ret_if(ad == NULL); + + int idx = -1; + + Evas_Coord x, y, w, h; + elm_scroller_region_get(ad->scroller, &x, &y, &w, &h); + + idx = x / w; + + if(idx == ad->idle_clock_page) { + /* set LCD off - 0 : enable lcd off by power key */ + //send_lcd_off_signal(0); + + } else { + /* set LCD on - 1 : disable lcd off by power key */ + //send_lcd_off_signal(1); + + } +} + +#if 0 +static void _scroller_drag_start_cb(void *data, Evas_Object *scroller, void *event_info) +{ + _D("%s", __func__); + + int previous_x; + + elm_scroller_region_get(scroller, &previous_x, NULL, NULL, NULL); + evas_object_data_set(scroller, DATA_KEY_PREVIOUS_X, (void *) previous_x); + evas_object_data_set(scroller, DATA_KEY_DRAG_START, (void *) 1); + evas_object_data_set(scroller, DATA_KEY_SCROLL_BY_USER, (void *) 1); +} +#endif + +#if 0 +static void _scroller_drag_stop_cb(void *data, Evas_Object *scroller, void *event_info) +{ + _D("%s", __func__); + + Evas_Coord x; + Evas_Coord w; + Evas_Coord y; + Evas_Coord h; + int previous_x; + + elm_scroller_region_get(scroller, &x, &y, &w, &h); + previous_x = (int) evas_object_data_get(scroller, DATA_KEY_PREVIOUS_X); + if (x == previous_x) { + _D("Hold scroller, previous_x(%d) current(%d)", previous_x, x); + } + + /* _anim_stop_cb */ + do { + if (x % w) return; + evas_object_data_set(scroller, DATA_KEY_SCROLLING_PAGE, (void *) 0); + + int idx = 0; + if (w) idx = x / w; + + page_scroller_bring_in(scroller, idx); + } while (0); +} +#endif + +static void _box_layout_cb(Evas_Object *o, Evas_Object_Box_Data *priv, void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + ret_if(ad == NULL); + + Evas_Coord x=0, y=0, w=0, h=0; + int size_w = 0; + int n_children = 0; + Evas_Object_Box_Option *opt = NULL; + Evas_Coord child_w=0, child_h=0; + Eina_List *l = NULL; + Eina_List *l_next = NULL; + + evas_object_geometry_get(o, &x, &y, &w, &h); + + n_children = eina_list_count(priv->children); + if(n_children == 0) + return; + + opt = eina_list_data_get(priv->children); + if(opt == NULL) + return; + if(opt->obj == NULL) + return; + evas_object_size_hint_min_get(opt->obj, &child_w, &child_h); + + int order_children = 0; + EINA_LIST_FOREACH_SAFE(priv->children, l, l_next, opt) + { + evas_object_move(opt->obj, x + WIN_SIZE * order_children, y); + order_children++; + } + + size_w = WIN_SIZE * order_children; + evas_object_size_hint_min_set(o, size_w, -1); + ad->total_page = order_children; + _D("box total size : %d * %d = %d", WIN_SIZE, order_children, size_w); +} + +#ifndef USE_SETTING_IDLE_CLOCK +static void _temp_changed_cb(keynode_t * node, void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + ret_if(ad == NULL); + + int ret = -1; + int temp = -1; + char buf[128] = { 0, }; + + /* weather - temp */ + ret = vconf_get_int(VCONFKEY_DAILYBRIEFING_WEATHER_TEMP, &temp); + if(ret < 0) { + _D("Failed to get temp"); + return; + } + _D("temperature = %d", temp); + snprintf(buf, sizeof(buf), "%d", temp); + elm_object_part_text_set(ad->page_layout[ad->idle_clock_page], "txt.temp", buf); +} + +static void _temp_unit_changed_cb(keynode_t * node, void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + ret_if(ad == NULL); + + char *temp_unit = NULL; + + /* weather - celsius/fahrenheit */ + temp_unit = vconf_get_str(VCONFKEY_DAILYBRIEFING_WEATHER_TEMP_UNIT); + if(temp_unit == NULL || strlen(temp_unit) < 1){ + _D("temp unit is NULL : use celsius"); + elm_object_signal_emit(ad->page_layout[ad->idle_clock_page], "change.weather.temp.celsius", "img.temp.unit"); + return; + }else { + _D("unit = %s", temp_unit); + if(!strncmp(temp_unit, TEMP_UNIT_C, sizeof(TEMP_UNIT_C))) { + elm_object_signal_emit(ad->page_layout[ad->idle_clock_page], "change.weather.temp.celsius", "img.temp.unit"); + } else if(!strncmp(temp_unit, TEMP_UNIT_F, sizeof(TEMP_UNIT_F))) { + elm_object_signal_emit(ad->page_layout[ad->idle_clock_page], "change.weather.temp.fahrenheit", "img.temp.unit"); + } + free(temp_unit); + temp_unit = NULL; + } +} + +static void _temp_icon_changed_cb(keynode_t * node, void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + ret_if(ad == NULL); + + int ret = -1; + int weather_id = -1; + Evas_Object *icon = NULL; + + /* weather - icon */ + ret = vconf_get_int(VCONFKEY_DAILYBRIEFING_WEATHER_ICON_ID, &weather_id); + _D("weather icon id = %d", weather_id); + if(ret < 0) { + _D("weather icon id is NULL"); + icon = make_icon(ad, ad->ly_main, WEATHER_ICON_SUNNY); + elm_object_part_content_set(ad->page_layout[ad->idle_clock_page], "sw.weather.icon", icon); + return; + } else { + icon = make_icon(ad, ad->ly_main, weather_icon_path[weather_id]); + elm_object_part_content_set(ad->page_layout[ad->idle_clock_page], "sw.weather.icon", icon); + } +} +#endif + +static int _get_length_of_count(int data) +{ + _D("%s", __func__); + int len = 1, i; + + if (data < 0) data *= (-1); + + for (i = 0; ; i++, len++) + { + if ((data /= 10) <= 0) + break; + } + return(len); +} + +static void _wnoti_changed_cb(keynode_t * node, void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + ret_if(ad == NULL); + + int ret = -1; + int count = -1; + char buf[16] = { 0, }; + + ret = vconf_get_int(WNOTI_COUNT, &count); + if(ret < 0) { + _E("Failed to get vconf value"); + return; + } + + if(count == 0) { + _D("count is zero"); + elm_object_signal_emit(ad->page_layout[ad->idle_clock_page + 1], "change,badge,hidden", "img.badge"); + elm_object_signal_emit(ad->page_layout[ad->idle_clock_page + 1], "hide,txt,badge", "txt.badge"); + } else { + _D("count is %d", count); + if(_get_length_of_count(count) == 1) { + elm_object_signal_emit(ad->page_layout[ad->idle_clock_page + 1], "change,badge,1digit", "img.badge"); + } else if(_get_length_of_count(count) == 2) { + elm_object_signal_emit(ad->page_layout[ad->idle_clock_page + 1], "change,badge,2digit", "img.badge"); + } else if(_get_length_of_count(count) == 3) { + elm_object_signal_emit(ad->page_layout[ad->idle_clock_page + 1], "change,badge,3digit", "img.badge"); + } + elm_object_signal_emit(ad->page_layout[ad->idle_clock_page + 1], "show,txt,badge", "txt.badge"); + snprintf(buf, sizeof(buf), "%d", count); + elm_object_part_text_set(ad->page_layout[ad->idle_clock_page + 1], "txt.badge", buf); + } +} + +static char *_minictrl_tag_get(Evas_Object *obj) +{ + char *tag = NULL; + + if (obj != NULL) { + tag = evas_object_data_get(obj, E_DATA_MINICONTROL_TAG); + } + + return tag; +} + +static void _minictrl_tag_del(Evas_Object *obj) +{ + char *tag = NULL; + + if (obj != NULL) { + tag = evas_object_data_get(obj, E_DATA_MINICONTROL_TAG); + if (tag != NULL) { + free(tag); + } + evas_object_data_set(obj, E_DATA_MINICONTROL_TAG, NULL); + } +} + +static void _minictrl_tag_add(Evas_Object *obj, const char *tag) +{ + char *tag_new = NULL; + + if (obj != NULL && tag != NULL) { + + _minictrl_tag_del(obj); + + tag_new = strdup(tag); + if (tag_new != NULL) { + evas_object_data_set(obj, E_DATA_MINICONTROL_TAG, tag_new); + } else { + evas_object_data_set(obj, E_DATA_MINICONTROL_TAG, NULL); + } + } +} + +static void _minictrl_viewer_deleted_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + char *tag = NULL; + + if (obj != NULL) { + tag = _minictrl_tag_get(obj); + if (tag != NULL) { + _E("tag_old:%s", tag); + } + + _minictrl_tag_del(obj); + } +} + +void destroy_minictrl(void *data, const char *name) +{ + struct appdata *ad = data; + ret_if(ad == NULL); + ret_if(name == NULL); + + char *tag_old = NULL; + Evas_Object *viewer = NULL; + + if (ad->minictl_idle_clock != NULL) { + viewer = elm_object_part_content_get(ad->minictl_idle_clock, "sw.clock"); + tag_old = _minictrl_tag_get(viewer); + + _E("tag_old:%s deleted:%s", tag_old, name); + + if (tag_old != NULL && name != NULL) { + if (strcmp(tag_old, name) == 0) { + _D("minictrl delete:%s", name); + _minictrl_tag_del(viewer); + elm_object_part_content_unset(ad->minictl_idle_clock, "sw.clock"); + if(viewer) { + evas_object_del(viewer); + } + } + } + } else { + _E("failed to get idle clock container"); + } + +#if 0 + if(ad->minictl_idle_clock) { + evas_object_del(ad->minictl_idle_clock); + ad->minictl_idle_clock = NULL; + } +#endif +} + +static void _minictrl_update(const char *name, unsigned int width, unsigned int height, void *data) +{ + struct appdata *ad = data; + + ret_if(name == NULL); + ret_if(ad == NULL); + + _D("resized : w(%d) h(%d)", width, height); + evas_object_resize(ad->minictl_idle_clock, width, height); +} + +#define DEFAULT_MINICONTROL_NAME "idle-clock-digital" +#define APP_NAME_EMULATOR_DEFAULT_CLOCK "org.tizen.idle-clock-digital" + +static void _minictrl_add(const char *name, unsigned int width, unsigned int height, minicontrol_priority_e priority, void *data) +{ + struct appdata *ad = data; + Evas_Object *viewer = NULL; + Evas_Object *viewer_old = NULL; + char minictrl_name[255] = {0}; + char pkgname[255] = {0}; + int pid = 0; + int i = 0; + int ret_aul = 0; + char *pkg_name = NULL; + + ret_if(name == NULL); + ret_if(ad == NULL); + + _D("_minictrl_add() name=%s", name); + + viewer = minicontrol_viewer_add(ad->minictl_idle_clock, name); + if(viewer == NULL) { + _E("fail to add viewer - %s", name); + return; + } + + viewer_old = elm_object_part_content_get(ad->minictl_idle_clock, "sw.clock"); + if (viewer_old != NULL) { + _minictrl_tag_del(viewer_old); + } + _minictrl_tag_add(viewer, name); + evas_object_event_callback_add(viewer, EVAS_CALLBACK_DEL, _minictrl_viewer_deleted_cb, NULL); + + elm_object_part_content_set(ad->minictl_idle_clock, "sw.clock", viewer); + _D("resized : w(%d) h(%d)", width, height); + + name++; + while(*name != ']'){ + minictrl_name[i++] = *(name++); + } + minictrl_name[i] = NULL; + _D("pkgname : %s", minictrl_name); + + if(strcmp(minictrl_name, DEFAULT_MINICONTROL_NAME)){ + _D("Web minictrl is added"); + pid = atoi(minictrl_name); + ret_aul = aul_app_get_pkgname_bypid(pid, pkgname, sizeof(pkgname)); + if(ret_aul == AUL_R_ERROR){ + _E("no such pkgname"); + return; + } + _D("pkgname : %s", pkgname); + pkg_name = get_app_pkgname(pkgname); + _D("pkg_name : %s", pkg_name); + vconf_set_str(VCONFKEY_WMS_CLOCKS_SET_IDLE, pkg_name); + /* + ad->appid_idle_clock_on_top = strdup(pkgname); + _D("ad->appid_idle_clock_on_top : %s", ad->appid_idle_clock_on_top); + } + else{ + ad->appid_idle_clock_on_top = strdup(APP_NAME_EMULATOR_DEFAULT_CLOCK); + _D("ad->appid_idle_clock_on_top : %s", ad->appid_idle_clock_on_top); + */ + } +} + +static void _mctrl_monitor_cb(minicontrol_action_e action, const char *name, unsigned int width, unsigned int height, minicontrol_priority_e priority, void *data) +{ + if(data == NULL || name == NULL) { + _D("data is NULL or name is NULL"); + return; + } + + switch (action) { + case MINICONTROL_ACTION_START: + _D(" >>>> Start minictl"); + _minictrl_add(name, width, height, priority, data); + break; + case MINICONTROL_ACTION_RESIZE: + _D(" >>>> Resize minictl"); + _minictrl_update(name, width, height, data); + break; + case MINICONTROL_ACTION_STOP: + _D(" >>>> Destroy minictl"); + destroy_minictrl(data, name); + break; + case MINICONTROL_ACTION_REQUEST: + _D("MINICONTROL_ACTION_REQUEST"); + break; + default: + break; + } +} + +#if USE_MAPBUF +static Evas_Object *_set_page_map_buf(Evas_Object *box, Evas_Object *layout) +{ + _D("%s", __func__); + Evas_Object *mapbuf = NULL; + + mapbuf = elm_mapbuf_add(box); +#if 0 + elm_mapbuf_enabled_set(mapbuf, EINA_TRUE); + elm_mapbuf_smooth_set(mapbuf, EINA_TRUE); + elm_mapbuf_alpha_set(mapbuf, EINA_TRUE); +#endif + //evas_object_size_hint_weight_set(mapbuf, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_weight_set(mapbuf, 0, 0); + //evas_object_size_hint_align_set(mapbuf, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_align_set(mapbuf, 0, EVAS_HINT_FILL); + elm_object_content_set(mapbuf, layout); + evas_object_show(mapbuf); + //elm_box_pack_end(box, mapbuf); + + return mapbuf; +} +#endif + +static void _create_box_contents(Evas_Object *box, void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + ret_if(ad == NULL); + ret_if(box == NULL); + + Evas_Object *layout = NULL; + Evas_Object *icon = NULL; + + int ret = -1; + int temp = 0; + int i = 0; + int page_count = 0; + +#ifndef EMULATOR_TYPE + /* Favorite apps related of Call(1 ~ 2) */ + if(get_app_label(get_app_id(PKG_NAME_LOGS)) == NULL) { + _D("Failed to get favorite data : %s", PKG_NAME_LOGS); + } else { + ret = vconf_get_bool(VCONFKEY_WMS_SYNC_LOGS, &temp); + if(ret < 0) { + _D("Failed to get VCONFKEY_WMS_SYNC_LOGS"); + } + if(temp == 1) { + layout = elm_layout_add(box); + elm_layout_file_set(layout, EDJ_APP, "scroller_box"); + icon = make_icon(ad, ad->ly_main, ICON_PATH_LOGS); + elm_object_part_content_set(layout, "sw.icon", icon); + + elm_object_part_text_set(layout, "txt.app.name", get_app_label(get_app_id(PKG_NAME_LOGS))); + evas_object_resize(layout, WIN_SIZE, WIN_SIZE); + evas_object_show(layout); + ad->page_layout[page_count] = layout; + elm_object_signal_callback_add(layout, "clicked,rect,icon", "*", _launch_app_cb, PKG_NAME_LOGS); + elm_object_signal_callback_add(layout, "clicked,rect,text", "*", _launch_app_cb, PKG_NAME_LOGS); +#if USE_MAPBUF + // mapbuf for LOGS + ad->mapbuf[page_count] = _set_page_map_buf(box, layout); + elm_box_pack_end(box, ad->mapbuf[page_count]); + +#else + elm_box_pack_end(box, layout); +#endif + page_count++; + } + } + + if(get_app_label(get_app_id(PKG_NAME_CONTACTS)) == NULL) { + _D("Failed to get favorite data : %s", PKG_NAME_CONTACTS); + } else { + ret = vconf_get_bool(VCONFKEY_WMS_SYNC_CONTACTS, &temp); + if(ret < 0) { + _D("Failed to get VCONFKEY_WMS_SYNC_CONTACTS"); + } + if(temp == 1) { + layout = elm_layout_add(box); + elm_layout_file_set(layout, EDJ_APP, "scroller_box"); + icon = make_icon(ad, ad->ly_main, ICON_PATH_CONTACTS); + elm_object_part_content_set(layout, "sw.icon", icon); + + elm_object_part_text_set(layout, "txt.app.name", get_app_label(get_app_id(PKG_NAME_CONTACTS))); + evas_object_resize(layout, WIN_SIZE, WIN_SIZE); + evas_object_show(layout); + ad->page_layout[page_count] = layout; + elm_object_signal_callback_add(layout, "clicked,rect,icon", "*", _launch_app_cb, PKG_NAME_CONTACTS); + +#if USE_MAPBUF + // mapbuf for CONTACTS + ad->mapbuf[page_count] = _set_page_map_buf(box, layout); + elm_box_pack_end(box, ad->mapbuf[page_count]); +#else + elm_box_pack_end(box, layout); +#endif + page_count++; + } + } +#endif + + /* PAGE - clock */ + ad->idle_clock_page = page_count; +#if USE_SETTING_IDLE_CLOCK + layout = elm_layout_add(box); + elm_layout_file_set(layout, EDJ_APP, "idle_clock"); + evas_object_resize(layout, WIN_SIZE, WIN_SIZE); + evas_object_show(layout); + ad->page_layout[page_count] = layout; + ad->minictl_idle_clock = layout; + + minicontrol_error_e m_ret = MINICONTROL_ERROR_NONE; + m_ret = minicontrol_monitor_start(_mctrl_monitor_cb, ad); + if (m_ret != MINICONTROL_ERROR_NONE) { + _E("fail to minicontrol_monitor_start()- %d", m_ret); + } + _D(" >>>>>>> pack end minictl"); + elm_box_pack_end(box, layout); +#else + int weather_id = -1; + char *temp_unit = NULL; + char buf[128] = { 0, }; + + layout = elm_layout_add(box); + //elm_layout_file_set(layout, EDJ_APP, "layout_clock_date"); + elm_layout_file_set(layout, EDJ_APP, "layout_clock_weather"); + + /* weather - temp */ + ret = vconf_get_int(VCONFKEY_DAILYBRIEFING_WEATHER_TEMP, &temp); + if(ret < 0) { + _D("Failed to get temp"); + } else { + _D("temperature = %d", temp); + snprintf(buf, sizeof(buf), "%d", temp); + elm_object_part_text_set(layout, "txt.temp", buf); + } + + /* weather - celsius/fahrenheit */ + temp_unit = vconf_get_str(VCONFKEY_DAILYBRIEFING_WEATHER_TEMP_UNIT); + if(temp_unit == NULL || strlen(temp_unit) < 1){ + _D("temp unit is NULL : use celsius"); + elm_object_signal_emit(layout, "change.weather.temp.celsius", "img.temp.unit"); + }else { + _D("unit = %s", temp_unit); + if(!strncmp(temp_unit, TEMP_UNIT_C, sizeof(TEMP_UNIT_C))) { + elm_object_signal_emit(layout, "change.weather.temp.celsius", "img.temp.unit"); + } else if(!strncmp(temp_unit, TEMP_UNIT_F, sizeof(TEMP_UNIT_F))) { + elm_object_signal_emit(layout, "change.weather.temp.fahrenheit", "img.temp.unit"); + } + free(temp_unit); + temp_unit = NULL; + } + + /* weather - icon */ + ret = vconf_get_int(VCONFKEY_DAILYBRIEFING_WEATHER_ICON_ID, &weather_id); + _D("weather icon id = %d", weather_id); + if(ret < 0) { + _D("weather icon id is NULL"); + icon = make_icon(ad, ad->ly_main, WEATHER_ICON_SUNNY); + elm_object_part_content_set(layout, "sw.weather.icon", icon); + } else { + icon = make_icon(ad, ad->ly_main, weather_icon_path[weather_id]); + elm_object_part_content_set(layout, "sw.weather.icon", icon); + } + + /* register vconf changed cb */ + ret = vconf_notify_key_changed(VCONFKEY_DAILYBRIEFING_WEATHER_TEMP, _temp_changed_cb, ad); + if(ret < 0) { + _D("Failed to register vconf changed cb : VCONFKEY_DAILYBRIEFING_WEATHER_TEMP"); + } + ret = vconf_notify_key_changed(VCONFKEY_DAILYBRIEFING_WEATHER_TEMP_UNIT, _temp_unit_changed_cb, ad); + if(ret < 0) { + _D("Failed to register vconf changed cb : VCONFKEY_DAILYBRIEFING_WEATHER_TEMP_UNIT"); + } + ret = vconf_notify_key_changed(VCONFKEY_DAILYBRIEFING_WEATHER_ICON_ID, _temp_icon_changed_cb, ad); + if(ret < 0) { + _D("Failed to register vconf changed cb : VCONFKEY_DAILYBRIEFING_WEATHER_ICON_ID"); + } + + evas_object_resize(layout, WIN_SIZE, WIN_SIZE); + evas_object_show(layout); + ad->page_layout[page_count] = layout; + set_info(ad); +#if USE_MAPBUF + // mapbuf for clock + ad->mapbuf[page_count] = _set_page_map_buf(box, layout); +#else + elm_box_pack_end(box, layout); +#endif + +#endif + + page_count++; + +#ifndef EMULATOR_TYPE + /* PAGE - notification */ + if(get_app_label(get_app_id(PKG_NAME_NOTIFICATION)) == NULL) { + _D("Failed to get favorite data : %s", PKG_NAME_NOTIFICATION); + } else { + layout = elm_layout_add(box); + elm_layout_file_set(layout, EDJ_APP, "scroller_box"); + icon = make_icon(ad, ad->ly_main, ICON_PATH_NOTIFICATION); + elm_object_part_content_set(layout, "sw.icon", icon); + + elm_object_part_text_set(layout, "txt.app.name", get_app_label(get_app_id(PKG_NAME_NOTIFICATION))); + evas_object_resize(layout, WIN_SIZE, WIN_SIZE); + evas_object_show(layout); + ad->page_layout[page_count] = layout; + elm_object_signal_callback_add(layout, "clicked,rect,icon", "*", _launch_app_cb, PKG_NAME_NOTIFICATION); + + /* register vconf changed cb */ + ret = vconf_notify_key_changed(WNOTI_COUNT, _wnoti_changed_cb, ad); + if(ret < 0) { + _D("Failed to register vconf changed cb : VCONFKEY_DAILYBRIEFING_WEATHER_TEMP"); + } + _wnoti_changed_cb(NULL, ad); + +#if USE_MAPBUF + // mapbuf for notification + ad->mapbuf[page_count] = _set_page_map_buf(box, layout); + elm_box_pack_end(box, ad->mapbuf[page_count]); +#else + elm_box_pack_end(box, layout); +#endif + page_count++; + } + + /* favorite apps */ + favorite_apps_info *info = NULL; + if(ad->favorite_apps_list->len == 0) { + _D("The number of favorite apps is zero : %d", ad->favorite_apps_list->len); + } else { + for(i = 0; i < ad->favorite_apps_list->len; i++) { + info = g_array_index(ad->favorite_apps_list, favorite_apps_info*, i); + + _D("pkgname : %s / order : %d", info->pkgname, info->order); + if(info->pkgname == NULL || get_app_label(get_app_id(info->pkgname)) == NULL) { + _D("[%d]Failed to get favorite data : pkgname", i); + continue; + } + + layout = elm_layout_add(box); + elm_layout_file_set(layout, EDJ_APP, "scroller_box"); + icon = make_icon(ad, ad->ly_main, get_app_icon(get_app_id(info->pkgname))); + elm_object_part_content_set(layout, "sw.icon", icon); + + elm_object_part_text_set(layout, "txt.app.name", get_app_label(get_app_id(info->pkgname))); + evas_object_resize(layout, WIN_SIZE, WIN_SIZE); + evas_object_show(layout); + ad->page_layout[i+page_count] = layout; + elm_object_signal_callback_add(layout, "clicked,rect,icon", "*", _launch_app_cb, get_app_id(info->pkgname)); + elm_object_signal_callback_add(layout, "clicked,rect,text", "*", _launch_app_cb, get_app_id(info->pkgname)); +#if USE_MAPBUF + // mapbuf for favorite apps + ad->mapbuf[i+page_count] = _set_page_map_buf(box, layout); + elm_box_pack_end(box, ad->mapbuf[i+page_count]); +#else + elm_box_pack_end(box, layout); +#endif + } + page_count += i; + memset(info, '\0', sizeof(favorite_apps_info)); + } +#endif + + /* PAGE - more apps */ + layout = elm_layout_add(box); + elm_layout_file_set(layout, EDJ_APP, "scroller_box"); + icon = make_icon(ad, ad->ly_main, ICON_PATH_MORE_APPS); + elm_object_part_content_set(layout, "sw.icon", icon); + elm_object_signal_callback_add(layout, "clicked,rect,icon", "*", moreapps_click_cb, ad); + + elm_object_part_text_set(layout, "txt.app.name", _("IDS_IDLE_BODY_APPS")); + elm_object_signal_callback_add(layout, "clicked,rect,text", "*", moreapps_click_cb, ad); + evas_object_resize(layout, WIN_SIZE, WIN_SIZE); + evas_object_show(layout); + //ad->page_layout[(ad->favorite_apps_count/3 + 1)] = layout; + ad->page_layout[page_count] = layout; + +#if USE_MAPBUF + // mapbuf for more apps + ad->mapbuf[page_count] = _set_page_map_buf(box, layout); + elm_box_pack_end(box, ad->mapbuf[page_count]); +#else + elm_box_pack_end(box, layout); +#endif +} + +static void _page_show(void *data, Evas * e, Evas_Object * obj, void *event_info) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + + elm_scroller_page_show(obj, ad->idle_clock_page, 0); +} + +Evas_Object *create_main_scroller(Evas_Object *parent, void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + retv_if(ad == NULL, NULL); + retv_if(parent == NULL, NULL); + + Evas_Object *scroller = NULL; + Evas_Object *box = NULL; + + scroller = elm_scroller_add(parent); + if(scroller == NULL) { + _E("elm_scroller_add() failed"); + return NULL; + } + elm_scroller_loop_set(scroller, EINA_TRUE, EINA_FALSE); + elm_object_theme_set(scroller, ad->theme); + elm_object_style_set(scroller, "w-launcher-app/scrollbar"); + + evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL); + //@TODO: need to check + //elm_scroller_page_relative_set(scroller, 1.0, 0.0); + + elm_scroller_bounce_set(scroller, EINA_TRUE, EINA_FALSE); + elm_scroller_policy_set(scroller,ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_AUTO); + elm_scroller_page_scroll_limit_set(scroller, PAGE_MOVE, PAGE_MOVE); + elm_scroller_content_min_limit(scroller, EINA_FALSE, EINA_TRUE); + + elm_object_scroll_lock_y_set(scroller, EINA_TRUE); + elm_object_tree_focus_allow_set(scroller, EINA_FALSE); + evas_object_show(scroller); + + elm_scroller_page_size_set(scroller, WIN_SIZE, WIN_SIZE); + + box = elm_box_add(scroller); + if(box == NULL) { + _E("Failed to add elm box"); + evas_object_del(scroller); + return 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); + evas_object_show(box); + elm_box_layout_set(box, _box_layout_cb, ad, NULL); + evas_object_data_set(box, "SCROLLER", scroller); + _create_box_contents(box, ad); + elm_object_content_set(scroller, box); + + ad->main_box = box; + + Eina_List *list = elm_box_children_get(box); + if(eina_list_count(list) <= 1) + elm_scroller_loop_set(scroller, EINA_FALSE, EINA_FALSE); + +#if 0 + evas_object_smart_callback_add(scroller, "scroll,anim,start", _scroller_anim_start_cb, ad); + evas_object_smart_callback_add(scroller, "scroll,drag,start", _scroller_drag_start_cb, NULL); + evas_object_smart_callback_add(scroller, "scroll,drag,stop", _scroller_drag_stop_cb, NULL); +#endif + evas_object_smart_callback_add(scroller, "scroll,anim,stop", _scroller_anim_stop_cb, ad); + + /* set first page : idle clock */ + evas_object_event_callback_add(scroller, EVAS_CALLBACK_RESIZE, _page_show, ad); + + return scroller; +} diff --git a/src/util_efl.c b/src/util_efl.c new file mode 100755 index 0000000..d444fc5 --- /dev/null +++ b/src/util_efl.c @@ -0,0 +1,104 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include <Ecore.h> +#include <Ecore_X.h> + +#include "main.h" +#include "log.h" + +Ecore_X_Window _add_input_window(void) +{ + Ecore_X_Window win = 0; + win = ecore_x_window_input_new(0, -10000, -10000, 1, 1); + if(win){ + //ecore_x_event_mask_unset(win, ECORE_X_EVENT_MASK_NONE); + ecore_x_icccm_title_set(win, "w-launcher-app-input-window"); + ecore_x_netwm_name_set(win, "w-launcher-app-input-window"); + ecore_x_netwm_pid_set(win, getpid()); + ecore_x_flush(); + return win; + } + else{ + _E("Failed to add input window"); + return 0; + } +} + +Evas_Object *_add_window(const char *name, Eina_Bool _is_main) +{ + Evas_Object *eo = NULL; + int w = -1, h = -1; + + /* Open GL backedn */ + if(_is_main) + elm_config_preferred_engine_set("opengl_x11"); + + eo = elm_win_add(NULL, name, ELM_WIN_BASIC); + if (eo) { + elm_win_title_set(eo, name); + elm_win_borderless_set(eo, EINA_TRUE); + elm_win_alpha_set(eo, EINA_FALSE); + ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h); + if(w == -1 || h == -1){ + _E("Failed to get x_window size"); + return NULL; + } + evas_object_resize(eo, w, h); + } + return eo; +} + +//BG create function + +Evas_Object* _create_bg(Evas_Object *parent) +{ + Evas_Object *bg; + if (parent == NULL) return NULL; + bg = elm_bg_add(parent); + evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(parent, bg); + evas_object_show(bg); + return bg; +} + + +Evas_Object *_add_layout(Evas_Object *parent, const char *file, + const char *group) +{ + _D("%s", __func__); + Evas_Object *eo = NULL; + int r = -1; + + retvm_if(parent == NULL, NULL, "Invalid argument: parent is NULL\n"); + retvm_if(file == NULL, NULL, "Invalid argument: file is NULL\n"); + retvm_if(group == NULL, NULL, "Invalid argument: group is NULL\n"); + + eo = elm_layout_add(parent); + retvm_if(eo == NULL, NULL, "Failed to add layout\n"); + + r = elm_layout_file_set(eo, file, group); + if (!r) { + _E("Failed to set file[%s]\n", file); + evas_object_del(eo); + return NULL; + } + + evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(eo); + return eo; +} diff --git a/src/xml_parse.c b/src/xml_parse.c new file mode 100755 index 0000000..7c141b9 --- /dev/null +++ b/src/xml_parse.c @@ -0,0 +1,191 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include <Ecore.h> +#include <utilX.h> +#include <vconf.h> +#include <vconf-keys.h> +#include <aul.h> +#include <errno.h> + +#include <libintl.h> +#include <libxml/encoding.h> +#include <libxml/xmlwriter.h> +#include <libxml/xmlreader.h> +#include <libxml/parser.h> +#include <libxml/tree.h> + +#include "main.h" +#include "log.h" +#include "logic.h" +#include "util_efl.h" +#include "scroller.h" +#include "clock.h" +#include "pkgmgr.h" + +#define MAX_XML_DATA_NUM 30 +#define MAX_FAVORITE_APPS_NUM 9 +#define PATH_XML "/opt/usr/share/w-launcher/watchlauncher_settings.xml" +#define XML_CONTENTS "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <data> </data>" + +gint sort_favorite_apps_list(gconstpointer _a, gconstpointer _b) +{ + favorite_apps_info **info_1 = (favorite_apps_info **)_a; + favorite_apps_info **info_2 = (favorite_apps_info **)_b; + + /* returns less than zero for first arg is less than second arg, * + * zero for equal, * + * greater zero if first arg is greater than second arg */ + return ((*info_1)->order > (*info_2)->order) ? 1 : -1; +} + +static void free_favorite_apps_list(GArray *list) +{ + _D("%s", __func__); + int total = list->len; + int index = 0; + + if (total <= 0) { + return; + } + + favorite_apps_info* info = NULL; + + for (index = 0; index < total; index++) { + info = g_array_index(list, favorite_apps_info*, 0); + + if (info->pkgname != NULL) { + free(info->pkgname); + } + if (info->classname != NULL) { + free(info->classname); + } + free(info); + + g_array_remove_index(list, 0); + } +} + +w_launcher_error_e xml_parse(void *data) +{ + _D("%s", __func__); + struct appdata *ad = (struct appdata *)data; + retv_if(ad == NULL, W_LAUNCHER_ERROR_OK); + + xmlTextReaderPtr reader; + int ret; + const char *name, *value; + int dep = 0; + int nodeType = 0; + char *element = NULL; + favorite_apps_info *info = NULL; + static GArray *favorite_apps_list = NULL; + + if (favorite_apps_list == NULL) { + favorite_apps_list = g_array_new(FALSE, FALSE, sizeof(favorite_apps_info*)); + _D("create favorite_apps_list"); + } else { + int total = favorite_apps_list->len; + _D("favorite_apps_list length : %d", favorite_apps_list->len); + + if (total > 0) { + free_favorite_apps_list(favorite_apps_list); + } + } + + reader = xmlReaderForFile(PATH_XML, NULL, 0); + if(reader != NULL) { + ret = xmlTextReaderRead(reader); + while(ret == 1) { + name = (const char*)xmlTextReaderConstName(reader); + if (name == NULL) { + name = ""; + } + value = (const char*)xmlTextReaderConstValue(reader); + dep = xmlTextReaderDepth(reader); + nodeType = xmlTextReaderNodeType(reader); + + if((dep == 1) && (nodeType == 1)) { // <favorite> + info = (favorite_apps_info *)malloc(sizeof(favorite_apps_info)); + if(info == NULL){ + _E("malloc failed."); + return W_LAUNCHER_ERROR_FAIL; + } + memset(info, '\0', sizeof(favorite_apps_info)); + _D("<%s>", name); + } else if((dep == 1) && (nodeType == 15)) { // </favorite> + g_array_append_val(favorite_apps_list, info); + _D("</%s>", name); + } else if((dep == 2) && (nodeType == 1)) { + element = strdup(name); + if(element == NULL){ + _D("element is NULL"); + return W_LAUNCHER_ERROR_FAIL; + } + } else if((dep == 3) && (nodeType == 3)) { + if (!strcmp("PackageName", element)) { + info->pkgname = strdup(value); + _D("%s : %s / %s", name, value, info->pkgname); + } else if (!strcmp("ClassName", element)) { + info->classname = strdup(value); + _D("%s : %s / %s", name, value, info->classname); + } else if (!strcmp("packageName", element)) { + info->pkgname = strdup(value); + _D("%s : %s / %s", name, value, info->pkgname); + } else if (!strcmp("className", element)) { + info->classname = strdup(value); + _D("%s : %s / %s", name, value, info->classname); + } else if(!strcmp("screen", element)) { + info->order = atoi(value); + _D("%s : %s / %d", name, value, info->order); + } + } + ret = xmlTextReaderRead(reader); + } + + /* sorting */ + if(favorite_apps_list->len > 0) { + g_array_sort(favorite_apps_list, sort_favorite_apps_list); + } + + ad->favorite_apps_list = favorite_apps_list; + xmlFreeTextReader(reader); + if(ret != 0) { + _D("Failed to parse %s", PATH_XML); + } + } else { + _D("Unable to open %s", PATH_XML); + FILE *xml_file = NULL; + + if ((xml_file = fopen(PATH_XML, "w")) == NULL) { + _D("file is not exist : %s", strerror(errno)); + return W_LAUNCHER_ERROR_FAIL; + } + + int ret = fwrite(XML_CONTENTS, sizeof(char), strlen(XML_CONTENTS), xml_file); + if (ret != strlen(XML_CONTENTS)) { + _D("Fail to write to file"); + fclose(xml_file); + return W_LAUNCHER_ERROR_FAIL; + } + + fclose(xml_file); + xml_parse(ad); + } + + return W_LAUNCHER_ERROR_OK; +} |