tizen 2.3.1 release tizen_2.3.1 submit/tizen_2.3.1/20150915.073203 tizen_2.3.1_release
authorjk7744.park <jk7744.park@samsung.com>
Tue, 8 Sep 2015 12:41:32 +0000 (21:41 +0900)
committerjk7744.park <jk7744.park@samsung.com>
Tue, 8 Sep 2015 12:41:32 +0000 (21:41 +0900)
242 files changed:
AUTHORS [new file with mode: 0644]
CMakeLists.txt [changed mode: 0644->0755]
LICENSE [deleted file]
LICENSE.Flora [new file with mode: 0755]
NOTICE
edc/download-manager-view.edc [new file with mode: 0644]
oma-parser/CMakeLists.txt [new file with mode: 0755]
oma-parser/oma-parser-common.c [new file with mode: 0755]
oma-parser/oma-parser-common.h [new file with mode: 0755]
oma-parser/oma-parser-dd1.c [new file with mode: 0644]
oma-parser/oma-parser-dd1.h [new file with mode: 0755]
oma-parser/oma-parser-interface.c [new file with mode: 0644]
oma-parser/oma-parser-interface.h [new file with mode: 0755]
org.tizen.download-manager.efl [new file with mode: 0644]
org.tizen.download-manager.manifest [new file with mode: 0644]
packaging/org.tizen.download-manager.spec
po/ar.po [deleted file]
po/az.po [deleted file]
po/bg.po [deleted file]
po/ca.po [deleted file]
po/cs.po [deleted file]
po/da.po [deleted file]
po/de_DE.po [deleted file]
po/el_GR.po [deleted file]
po/en.po [deleted file]
po/en_PH.po [deleted file]
po/en_US.po [deleted file]
po/es_ES.po [deleted file]
po/es_US.po [deleted file]
po/et.po [deleted file]
po/eu.po [deleted file]
po/fi.po [deleted file]
po/fr_CA.po [deleted file]
po/fr_FR.po [deleted file]
po/ga.po [deleted file]
po/gl.po [deleted file]
po/hd/CMakeLists.txt [moved from po/CMakeLists.txt with 63% similarity]
po/hd/POTFILES.in.in [moved from po/POTFILES.in.in with 100% similarity]
po/hd/az.po [new file with mode: 0644]
po/hd/bg.po [new file with mode: 0644]
po/hd/ca.po [new file with mode: 0644]
po/hd/cs.po [new file with mode: 0644]
po/hd/da.po [new file with mode: 0644]
po/hd/de.po [new file with mode: 0644]
po/hd/el_GR.po [new file with mode: 0644]
po/hd/en.po [new file with mode: 0644]
po/hd/en_US.po [new file with mode: 0644]
po/hd/es_ES.po [new file with mode: 0644]
po/hd/es_US.po [new file with mode: 0644]
po/hd/et.po [new file with mode: 0644]
po/hd/eu.po [new file with mode: 0644]
po/hd/fi.po [new file with mode: 0644]
po/hd/fr.po [new file with mode: 0644]
po/hd/fr_CA.po [new file with mode: 0644]
po/hd/gl.po [new file with mode: 0644]
po/hd/hr.po [new file with mode: 0644]
po/hd/hu.po [new file with mode: 0644]
po/hd/hy.po [new file with mode: 0644]
po/hd/is.po [new file with mode: 0644]
po/hd/it_IT.po [new file with mode: 0644]
po/hd/ka.po [new file with mode: 0644]
po/hd/kk.po [new file with mode: 0644]
po/hd/ko_KR.po [new file with mode: 0644]
po/hd/lt.po [new file with mode: 0644]
po/hd/lv.po [new file with mode: 0644]
po/hd/mn_MN.po [new file with mode: 0644]
po/hd/nb.po [new file with mode: 0644]
po/hd/nl.po [new file with mode: 0644]
po/hd/pl.po [new file with mode: 0644]
po/hd/pt_BR.po [new file with mode: 0644]
po/hd/pt_PT.po [new file with mode: 0644]
po/hd/ro.po [new file with mode: 0644]
po/hd/ru_RU.po [new file with mode: 0644]
po/hd/sk.po [new file with mode: 0644]
po/hd/sl.po [new file with mode: 0644]
po/hd/sr.po [new file with mode: 0644]
po/hd/sv.po [new file with mode: 0644]
po/hd/tr_TR.po [new file with mode: 0644]
po/hd/uk.po [new file with mode: 0644]
po/hd/uz.po [new file with mode: 0644]
po/hi.po [deleted file]
po/hr.po [deleted file]
po/hu.po [deleted file]
po/hy.po [deleted file]
po/is.po [deleted file]
po/it_IT.po [deleted file]
po/ja_JP.po [deleted file]
po/ka.po [deleted file]
po/kk.po [deleted file]
po/ko_KR.po [deleted file]
po/lt.po [deleted file]
po/lv.po [deleted file]
po/mk.po [deleted file]
po/nb.po [deleted file]
po/nl_NL.po [deleted file]
po/pl.po [deleted file]
po/pt_BR.po [deleted file]
po/pt_PT.po [deleted file]
po/ro.po [deleted file]
po/ru_RU.po [deleted file]
po/sk.po [deleted file]
po/sl.po [deleted file]
po/sr.po [deleted file]
po/sv.po [deleted file]
po/tr_TR.po [deleted file]
po/uk.po [deleted file]
po/uz.po [deleted file]
po/wvga/CMakeLists.txt [new file with mode: 0644]
po/wvga/ar.po [new file with mode: 0644]
po/wvga/az.po [new file with mode: 0644]
po/wvga/bg.po [new file with mode: 0644]
po/wvga/ca.po [new file with mode: 0644]
po/wvga/cs.po [new file with mode: 0644]
po/wvga/da.po [new file with mode: 0644]
po/wvga/de.po [new file with mode: 0644]
po/wvga/el_GR.po [new file with mode: 0644]
po/wvga/en.po [new file with mode: 0644]
po/wvga/en_PH.po [new file with mode: 0644]
po/wvga/en_US.po [new file with mode: 0644]
po/wvga/es_ES.po [new file with mode: 0644]
po/wvga/es_US.po [new file with mode: 0644]
po/wvga/et.po [new file with mode: 0644]
po/wvga/eu.po [new file with mode: 0644]
po/wvga/fi.po [new file with mode: 0644]
po/wvga/fr.po [new file with mode: 0644]
po/wvga/fr_CA.po [new file with mode: 0644]
po/wvga/ga.po [new file with mode: 0644]
po/wvga/gl.po [new file with mode: 0644]
po/wvga/hi.po [new file with mode: 0644]
po/wvga/hr.po [new file with mode: 0644]
po/wvga/hu.po [new file with mode: 0644]
po/wvga/hy.po [new file with mode: 0644]
po/wvga/is.po [new file with mode: 0644]
po/wvga/it_IT.po [new file with mode: 0644]
po/wvga/ja_JP.po [new file with mode: 0644]
po/wvga/ka.po [new file with mode: 0644]
po/wvga/kk.po [new file with mode: 0644]
po/wvga/ko_KR.po [new file with mode: 0644]
po/wvga/lt.po [new file with mode: 0644]
po/wvga/lv.po [new file with mode: 0644]
po/wvga/mk.po [new file with mode: 0644]
po/wvga/nb.po [new file with mode: 0644]
po/wvga/nl.po [new file with mode: 0644]
po/wvga/pl.po [new file with mode: 0644]
po/wvga/pt_BR.po [new file with mode: 0644]
po/wvga/pt_PT.po [new file with mode: 0644]
po/wvga/ro.po [new file with mode: 0644]
po/wvga/ru_RU.po [new file with mode: 0644]
po/wvga/sk.po [new file with mode: 0644]
po/wvga/sl.po [new file with mode: 0644]
po/wvga/sr.po [new file with mode: 0644]
po/wvga/sv.po [new file with mode: 0644]
po/wvga/tr_TR.po [new file with mode: 0644]
po/wvga/uk.po [new file with mode: 0644]
po/wvga/uz.po [new file with mode: 0644]
po/wvga/zh_CN.po [new file with mode: 0644]
po/wvga/zh_HK.po [new file with mode: 0644]
po/wvga/zh_TW.po [new file with mode: 0644]
po/zh_CN.po [deleted file]
po/zh_HK.po [deleted file]
po/zh_SG.po [deleted file]
po/zh_TW.po [deleted file]
res/download-manager.edc [deleted file]
res/images/U06_icon_image.png [deleted file]
res/images/U06_icon_music.png [deleted file]
res/images/U06_icon_ringtone.png [deleted file]
res/images/U06_icon_video.png [deleted file]
res/images/U06_icon_word.png [deleted file]
res/images/hd/00_icon_delete.png [moved from res/images/U06_icon_text.png with 74% similarity]
res/images/hd/00_icon_select_all.png [moved from res/images/U06_icon_pdf.png with 68% similarity]
res/images/hd/00_nocontents_text.png [new file with mode: 0644]
res/images/hd/B03_processing_download_completed.png [new file with mode: 0644]
res/images/hd/B03_processing_download_failed.png [new file with mode: 0644]
res/images/hd/U01_icon_broken.png [moved from res/images/U06_icon_Unknown.png with 65% similarity]
res/images/hd/U01_icon_drm.png [moved from res/images/U06_icon_ppt.png with 62% similarity]
res/images/hd/U01_icon_excel.png [moved from res/images/U06_icon_DRM.png with 59% similarity]
res/images/hd/U01_icon_html.png [moved from res/images/U06_icon_Java.png with 53% similarity]
res/images/hd/U01_icon_pdf.png [new file with mode: 0644]
res/images/hd/U01_icon_ppt.png [new file with mode: 0644]
res/images/hd/U01_icon_swf.png [new file with mode: 0644]
res/images/hd/U01_icon_text.png [new file with mode: 0644]
res/images/hd/U01_icon_tpk.png [moved from res/images/U06_icon_html.png with 50% similarity]
res/images/hd/U01_icon_unkown.png [new file with mode: 0644]
res/images/hd/U01_icon_vcs.png [new file with mode: 0644]
res/images/hd/U01_icon_word.png [moved from res/images/U06_icon_excel.png with 57% similarity]
res/images/hd/U01_list_icon_image.png [new file with mode: 0644]
res/images/hd/U01_list_icon_mp3.png [new file with mode: 0644]
res/images/hd/U01_list_icon_mp4.png [new file with mode: 0644]
res/images/hd/noti_download_complete.png [new file with mode: 0644]
res/images/hd/noti_download_failed.png [new file with mode: 0644]
res/images/wvga/B03_Processing_download_ani_06.png [new file with mode: 0644]
res/images/wvga/B03_Processing_download_failed.png [new file with mode: 0644]
res/images/wvga/download_manager_icon_broken.png [new file with mode: 0644]
res/images/wvga/download_manager_icon_date.png [new file with mode: 0644]
res/images/wvga/download_manager_icon_drm.png [new file with mode: 0644]
res/images/wvga/download_manager_icon_html.png [new file with mode: 0644]
res/images/wvga/download_manager_icon_img.png [new file with mode: 0644]
res/images/wvga/download_manager_icon_movie.png [new file with mode: 0644]
res/images/wvga/download_manager_icon_music.png [new file with mode: 0644]
res/images/wvga/download_manager_icon_pdf.png [new file with mode: 0644]
res/images/wvga/download_manager_icon_ppt.png [new file with mode: 0644]
res/images/wvga/download_manager_icon_swf.png [new file with mode: 0644]
res/images/wvga/download_manager_icon_text.png [new file with mode: 0644]
res/images/wvga/download_manager_icon_tpk.png [new file with mode: 0644]
res/images/wvga/download_manager_icon_unknown.png [new file with mode: 0644]
res/images/wvga/download_manager_icon_word.png [new file with mode: 0644]
res/images/wvga/download_manager_icon_xls.png [new file with mode: 0644]
res/images/wvga/download_manager_list_button_bg.png [new file with mode: 0644]
res/images/wvga/download_manager_list_icon_cancel.png [new file with mode: 0644]
res/images/wvga/noti_download_complete.png [new file with mode: 0644]
res/images/wvga/noti_download_failed.png [new file with mode: 0644]
res/org.tizen.download-manager.png [new file with mode: 0644]
res/org.tizen.download-manager.xml
res/tables/wvga/org.tizen.download-manager_ChangeableColorInfo.xml [new file with mode: 0644]
res/tables/wvga/org.tizen.download-manager_ChangeableFontInfo.xml [new file with mode: 0644]
src/download-manager-dateTime.cpp [changed mode: 0644->0755]
src/download-manager-downloadItem.cpp [changed mode: 0644->0755]
src/download-manager-downloadRequest.cpp [changed mode: 0644->0755]
src/download-manager-event.cpp [changed mode: 0644->0755]
src/download-manager-history-db.cpp [changed mode: 0644->0755]
src/download-manager-item.cpp [changed mode: 0644->0755]
src/download-manager-items.cpp [changed mode: 0644->0755]
src/download-manager-network.cpp [changed mode: 0644->0755]
src/download-manager-notification.cpp [new file with mode: 0755]
src/download-manager-util.cpp [changed mode: 0644->0755]
src/download-manager-view.cpp [changed mode: 0644->0755]
src/download-manager-viewItem.cpp [changed mode: 0644->0755]
src/include/download-manager-common.h [changed mode: 0644->0755]
src/include/download-manager-dateTime.h [changed mode: 0644->0755]
src/include/download-manager-debug.h [changed mode: 0644->0755]
src/include/download-manager-downloadItem.h [changed mode: 0644->0755]
src/include/download-manager-downloadRequest.h [changed mode: 0644->0755]
src/include/download-manager-event.h [changed mode: 0644->0755]
src/include/download-manager-history-db.h [changed mode: 0644->0755]
src/include/download-manager-item.h [changed mode: 0644->0755]
src/include/download-manager-items.h [changed mode: 0644->0755]
src/include/download-manager-network.h [changed mode: 0644->0755]
src/include/download-manager-notification.h [new file with mode: 0755]
src/include/download-manager-util.h [changed mode: 0644->0755]
src/include/download-manager-view.h [changed mode: 0644->0755]
src/include/download-manager-viewItem.h [changed mode: 0644->0755]
src/main.cpp [changed mode: 0644->0755]

diff --git a/AUTHORS b/AUTHORS
new file mode 100644 (file)
index 0000000..f2a0094
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1 @@
+Jungki Kwak <jungki.kwak@samsung.com>\r
old mode 100644 (file)
new mode 100755 (executable)
index c367539..57e0da0
@@ -6,6 +6,31 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 PROJECT(download-manager C CXX)
 
+ADD_SUBDIRECTORY(oma-parser)
+
+SET(PROJ_NAME "download-manager")
+SET(VENDOR "tizen")
+SET(PACKAGE ${PROJ_NAME})
+SET(PKGNAME "org.${VENDOR}.${PACKAGE}")
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(BINDIR "${PREFIX}/bin")
+SET(RESDIR "${PREFIX}/res")
+IF(TIZEN_2_3_UX)
+SET(EDJEDIR "${RESDIR}/edje")
+SET(TABLEDIR "${RESDIR}/tables")
+ENDIF(TIZEN_2_3_UX)
+SET(IMAGEDIR "${RESDIR}/images")
+SET(DATADIR "${PREFIX}/data")
+SET(DBDATADIR "/opt/usr/apps/${PKGNAME}/data/db")
+SET(LOCALEDIR "${RESDIR}/locale")
+SET(ICONDIR "/usr/share/icons/default/small/")
+SET(HISTORYDB ".download-history.db")
+
+FIND_PROGRAM(UNAME NAMES uname)
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+
+INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/src/include" "${CMAKE_SOURCE_DIR}/oma-parser/")
+
 SET(SRCS
        src/main.cpp
        src/download-manager-event.cpp
@@ -16,33 +41,18 @@ SET(SRCS
        src/download-manager-item.cpp
        src/download-manager-downloadItem.cpp
        src/download-manager-downloadRequest.cpp
+       src/download-manager-notification.cpp
        src/download-manager-util.cpp
        src/download-manager-history-db.cpp
        src/download-manager-dateTime.cpp
        src/download-manager-network.cpp
 )
 
-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(IMAGEDIR "${RESDIR}/images")
-SET(DATADIR "${PREFIX}/data")
-SET(DBDATADIR "${PREFIX}/data/db")
-SET(LOCALEDIR "${RESDIR}/locale")
-SET(ICONDIR "/opt/share/icons/default/small/")
-SET(HISTORYDB ".download-history.db")
-SET(EDJE_DIR "${RESDIR}/edje")
-
 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}/src/include)
-
 INCLUDE(FindPkgConfig)
 pkg_check_modules(pkgs REQUIRED
        capi-web-url-download
@@ -50,20 +60,27 @@ pkg_check_modules(pkgs REQUIRED
        capi-appfw-application
        capi-network-connection
        capi-content-media-content
+       capi-content-mime-type
+       capi-base-utils-i18n
        elementary
-       aul
-       bundle
        ecore
+       ecore-x
        edje
-       icu-i18n
        xdgmime
-       edje
- )
-
-FIND_LIBRARY(LIB_DL dl)
+       libcurl
+       notification
+       sqlite3
+       storage
+       vconf
+       utilX
+       xproto
+       x11
+       efl-assist
+       libxml-2.0
+)
 
-FIND_PROGRAM(UNAME NAMES uname)
-EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+SET(LIB_DL dl)
+SET(LIB_OMA_PARSER oma-parser)
 
 FOREACH(flag ${pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
@@ -72,6 +89,23 @@ FOREACH(flag ${pkgs_include_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
 
+IF(SUPPORT_WAITING_RO)
+MESSAGE("SUPPORT_WAITING_RO:On")
+pkg_check_modules(drm_pkgs REQUIRED drm-client)
+FOREACH(flag ${drm_pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+ADD_DEFINITIONS("-D_ENABLE_WAITING_RO")
+#This is request of DRM Team.
+ADD_DEFINITIONS("-D_FILE_OFFSET_BITS=64")
+ELSE (SUPPORT_WAITING_RO)
+MESSAGE("SUPPORT_WAITING_RO:Off")
+ENDIF(SUPPORT_WAITING_RO)
+IF (TIZEN_2_3_UX)
+MESSAGE("TIZEN_2_3_UX:On")
+ADD_DEFINITIONS("-D_TIZEN_2_3_UX")
+ENDIF(TIZEN_2_3_UX)
+
 MESSAGE("ARCH: ${ARCH}")
 MESSAGE("LIB_DL: ${LIB_DL}")
 
@@ -83,43 +117,59 @@ SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2")
 IF("${ARCH}" MATCHES "^arm.*")
        ADD_DEFINITIONS("-DTARGET")
     SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpie")
-    SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -mabi=aapcs-linux -mfpu=vfp -mfloat-abi=softfp")
+    SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -mabi=aapcs-linux")
     SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
 ENDIF("${ARCH}" MATCHES "^arm.*")
 
 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed -Wl,--hash-style=both")
 
-ADD_DEFINITIONS("-DVENDOR=\"${VENDOR}\"")
-ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"")
 ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
-ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
-ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
+ADD_DEFINITIONS("-DPROJ_NAME=\"${PROJ_NAME}\"")
 ADD_DEFINITIONS("-DIMAGEDIR=\"${IMAGEDIR}\"")
 ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"")
 ADD_DEFINITIONS("-DDBDATADIR=\"${DBDATADIR}\"")
-ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
-ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"")
 ADD_DEFINITIONS("-DHISTORYDB=\"${HISTORYDB}\"")
-ADD_DEFINITIONS("-DEDJE_DIR=\"${EDJE_DIR}\"")
-
-ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} ${LIB_DL})
-
-ADD_CUSTOM_TARGET(download-manager.edj
-       COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
-       ${CMAKE_SOURCE_DIR}/res/download-manager.edc
-       ${CMAKE_BINARY_DIR}/res/download-manager.edj
-       DEPENDS ${CMAKE_SOURCE_DIR}/res/download-manager.edc)
-ADD_DEPENDENCIES(${PROJECT_NAME} download-manager.edj)
-
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
+ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
+ADD_DEFINITIONS("-D_ENABLE_OMA_DOWNLOAD")
+#ADD_DEFINITIONS("-D_ENABLE_OMA_UNSUPPROTED_CONTENT")
+#ADD_DEFINITIONS("-D_TEST_SUSPEND")
+IF(TIZEN_2_3_UX)
+ADD_DEFINITIONS("-DEDJEDIR=\"${EDJEDIR}\"")
+ADD_DEFINITIONS("-DTABLEDIR=\"${TABLEDIR}\"")
+ENDIF(TIZEN_2_3_UX)
+
+ADD_EXECUTABLE(${PROJ_NAME} ${SRCS})
+TARGET_LINK_LIBRARIES(${PROJ_NAME} ${pkgs_LDFLAGS} ${drm_pkgs_LDFLAGS} ${LIB_DL} ${LIB_OMA_PARSER})
+
+IF(TIZEN_2_3_UX)
+ADD_CUSTOM_TARGET(download-manager-view.edj
+                        COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/res/images/wvga
+                        ${CMAKE_SOURCE_DIR}/edc/download-manager-view.edc
+                        ${CMAKE_BINARY_DIR}/edc/download-manager-view.edj
+                        DEPENDS ${CMAKE_SOURCE_DIR}/edc/download-manager-view.edc
+                )
+ADD_DEPENDENCIES(${PROJECT_NAME} download-manager-view.edj)
+ENDIF(TIZEN_2_3_UX)
 
 INSTALL(DIRECTORY DESTINATION ${DATADIR})
 INSTALL(DIRECTORY DESTINATION ${DBDATADIR})
-INSTALL(FILES ${CMAKE_BINARY_DIR}/res/${PKGNAME}.xml DESTINATION /opt/share/packages)
-INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res/images DESTINATION ${RESDIR})
-INSTALL(FILES ${CMAKE_BINARY_DIR}/res/download-manager.edj DESTINATION ${EDJE_DIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/${PKGNAME}.xml DESTINATION /usr/share/packages)
+IF(TIZEN_2_3_UX)
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res/images/wvga/ DESTINATION ${IMAGEDIR})
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res/tables/wvga/ DESTINATION ${TABLEDIR})
+INSTALL(FILES ${CMAKE_BINARY_DIR}/edc/download-manager-view.edj DESTINATION ${EDJEDIR})
+ELSE(TIZEN_2_3_UX)
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res/images/hd/ DESTINATION ${IMAGEDIR})
+ENDIF(TIZEN_2_3_UX)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/res/org.tizen.download-manager.png DESTINATION ${ICONDIR})
+INSTALL(TARGETS ${PROJ_NAME} DESTINATION ${BINDIR})
+CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.Flora share/license/${PKGNAME})
+INSTALL(FILES share/license/${PKGNAME} DESTINATION /usr/share/license)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PKGNAME}.efl DESTINATION ${SMACK_DIR})
 
 # i18n
-ADD_SUBDIRECTORY(po)
-
+IF(TIZEN_2_3_UX)
+ADD_SUBDIRECTORY(po/wvga)
+ELSE(TIZEN_2_3_UX)
+ADD_SUBDIRECTORY(po/hd)
+ENDIF(TIZEN_2_3_UX)
diff --git a/LICENSE b/LICENSE
deleted file mode 100644 (file)
index ccbf311..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,75 +0,0 @@
-Flora License\r
-\r
-Version 1.0, May, 2012\r
-\r
-http://www.tizenopensource.org/license\r
-\r
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\r
-\r
-1. Definitions.\r
-\r
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.\r
-\r
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.\r
-\r
-"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.\r
-\r
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.\r
-\r
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.\r
-\r
-"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.\r
-\r
-"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).\r
-\r
-"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.\r
-\r
-"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."\r
-\r
-"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.\r
-\r
-"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.\r
-\r
-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.\r
-\r
-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.\r
-\r
-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:\r
-\r
-  1. You must give any other recipients of the Work or Derivative Works a copy of this License; and\r
-\r
-  2. You must cause any modified files to carry prominent notices stating that You changed the files; and\r
-\r
-  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\r
-\r
-  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.\r
-\r
-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.\r
-\r
-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.\r
-\r
-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.\r
-\r
-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.\r
-\r
-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.\r
-\r
-END OF TERMS AND CONDITIONS\r
-\r
-APPENDIX: How to apply the Flora License to your work\r
-\r
-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.\r
-\r
-   Copyright [yyyy] [name of copyright owner]\r
-\r
-   Licensed under the Flora License, Version 1.0 (the "License");\r
-   you may not use this file except in compliance with the License.\r
-   You may obtain a copy of the License at\r
-\r
-       http://www.tizenopensource.org/license\r
-\r
-   Unless required by applicable law or agreed to in writing, software\r
-   distributed under the License is distributed on an "AS IS" BASIS,\r
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-   See the License for the specific language governing permissions and\r
-   limitations under the License.\r
diff --git a/LICENSE.Flora b/LICENSE.Flora
new file mode 100755 (executable)
index 0000000..4a0af40
--- /dev/null
@@ -0,0 +1,206 @@
+Flora License
+
+Version 1.1, April, 2013
+
+http://floralicense.org/license/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction,
+and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by
+the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and
+all other entities that control, are controlled by, or are
+under common control with that entity. For the purposes of
+this definition, "control" means (i) the power, direct or indirect,
+to cause the direction or management of such entity,
+whether by contract or otherwise, or (ii) ownership of fifty percent (50%)
+or more of the outstanding shares, or (iii) beneficial ownership of
+such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity
+exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications,
+including but not limited to software source code, documentation source,
+and configuration files.
+
+"Object" form shall mean any form resulting from mechanical
+transformation or translation of a Source form, including but
+not limited to compiled object code, generated documentation,
+and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form,
+made available under the License, as indicated by a copyright notice
+that is included in or attached to the work (an example is provided
+in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form,
+that is based on (or derived from) the Work and for which the editorial
+revisions, annotations, elaborations, or other modifications represent,
+as a whole, an original work of authorship. For the purposes of this License,
+Derivative Works shall not include works that remain separable from,
+or merely link (or bind by name) to the interfaces of, the Work and
+Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original
+version of the Work and any modifications or additions to that Work or
+Derivative Works thereof, that is intentionally submitted to Licensor
+for inclusion in the Work by the copyright owner or by an individual or
+Legal Entity authorized to submit on behalf of the copyright owner.
+For the purposes of this definition, "submitted" means any form of
+electronic, verbal, or written communication sent to the Licensor or
+its representatives, including but not limited to communication on
+electronic mailing lists, source code control systems, and issue
+tracking systems that are managed by, or on behalf of, the Licensor
+for the purpose of discussing and improving the Work, but excluding
+communication that is conspicuously marked or otherwise designated
+in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity
+on behalf of whom a Contribution has been received by Licensor and
+subsequently incorporated within the Work.
+
+"Tizen Certified Platform" shall mean a software platform that complies
+with the standards set forth in the Tizen Compliance Specification
+and passes the Tizen Compliance Tests as defined from time to time
+by the Tizen Technical Steering Group and certified by the Tizen
+Association or its designated agent.
+
+2. Grant of Copyright License.  Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+copyright license to reproduce, prepare Derivative Works of,
+publicly display, publicly perform, sublicense, and distribute the
+Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License.  Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+(except as stated in this section) patent license to make, have made,
+use, offer to sell, sell, import, and otherwise transfer the Work
+solely as incorporated into a Tizen Certified Platform, where such
+license applies only to those patent claims licensable by such
+Contributor that are necessarily infringed by their Contribution(s)
+alone or by combination of their Contribution(s) with the Work solely
+as incorporated into a Tizen Certified Platform to which such
+Contribution(s) was submitted. If You institute patent litigation
+against any entity (including a cross-claim or counterclaim
+in a lawsuit) alleging that the Work or a Contribution incorporated
+within the Work constitutes direct or contributory patent infringement,
+then any patent licenses granted to You under this License for that
+Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution.  You may reproduce and distribute copies of the
+Work or Derivative Works thereof pursuant to the copyright license
+above, in any medium, with or without modifications, and in Source or
+Object form, provided that You meet the following conditions:
+
+  1. You must give any other recipients of the Work or Derivative Works
+     a copy of this License; and
+  2. You must cause any modified files to carry prominent notices stating
+     that You changed the files; and
+  3. You must retain, in the Source form of any Derivative Works that
+     You distribute, all copyright, patent, trademark, and attribution
+     notices from the Source form of the Work, excluding those notices
+     that do not pertain to any part of the Derivative Works; and
+  4. If the Work includes a "NOTICE" text file as part of its distribution,
+     then any Derivative Works that You distribute must include a readable
+     copy of the attribution notices contained within such NOTICE file,
+     excluding those notices that do not pertain to any part of
+     the Derivative Works, in at least one of the following places:
+     within a NOTICE text file distributed as part of the Derivative Works;
+     within the Source form or documentation, if provided along with the
+     Derivative Works; or, within a display generated by the Derivative Works,
+     if and wherever such third-party notices normally appear.
+     The contents of the NOTICE file are for informational purposes only
+     and do not modify the License. You may add Your own attribution notices
+     within Derivative Works that You distribute, alongside or as an addendum
+     to the NOTICE text from the Work, provided that such additional attribution
+     notices cannot be construed as modifying the License. You may add Your own
+     copyright statement to Your modifications and may provide additional or
+     different license terms and conditions for use, reproduction, or
+     distribution of Your modifications, or for any such Derivative Works
+     as a whole, provided Your use, reproduction, and distribution of
+     the Work otherwise complies with the conditions stated in this License
+     and your own copyright statement or terms and conditions do not conflict
+     the conditions stated in the License including section 3.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+any Contribution intentionally submitted for inclusion in the Work
+by You to the Licensor shall be under the terms and conditions of
+this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify
+the terms of any separate license agreement you may have executed
+with Licensor regarding such Contributions.
+
+6. Trademarks.  This License does not grant permission to use the trade
+names, trademarks, service marks, or product names of the Licensor,
+except as required for reasonable and customary use in describing the
+origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+agreed to in writing, Licensor provides the Work (and each
+Contributor provides its Contributions) on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+implied, including, without limitation, any warranties or conditions
+of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+PARTICULAR PURPOSE. You are solely responsible for determining the
+appropriateness of using or redistributing the Work and assume any
+risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+whether in tort (including negligence), contract, or otherwise,
+unless required by applicable law (such as deliberate and grossly
+negligent acts) or agreed to in writing, shall any Contributor be
+liable to You for damages, including any direct, indirect, special,
+incidental, or consequential damages of any character arising as a
+result of this License or out of the use or inability to use the
+Work (including but not limited to damages for loss of goodwill,
+work stoppage, computer failure or malfunction, or any and all
+other commercial damages or losses), even if such Contributor
+has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+the Work or Derivative Works thereof, You may choose to offer,
+and charge a fee for, acceptance of support, warranty, indemnity,
+or other liability obligations and/or rights consistent with this
+License. However, in accepting such obligations, You may act only
+on Your own behalf and on Your sole responsibility, not on behalf
+of any other Contributor, and only if You agree to indemnify,
+defend, and hold each Contributor harmless for any liability
+incurred by, or claims asserted against, such Contributor by reason
+of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Flora License to your work
+
+To apply the Flora License to your work, attach the following
+boilerplate notice, with the fields enclosed by brackets "[]"
+replaced with your own identifying information. (Don't include
+the brackets!) The text should be enclosed in the appropriate
+comment syntax for the file format. We also recommend that a
+file or class name and description of purpose be included on the
+same "printed page" as the copyright notice for easier
+identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Flora License, Version 1.1 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://floralicense.org/license/
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
diff --git a/NOTICE b/NOTICE
index b97249e..a5964ea 100644 (file)
--- a/NOTICE
+++ b/NOTICE
@@ -1 +1,3 @@
-Copyright (c) Samsung Electronics Co., Ltd. All rights reserved.
\ No newline at end of file
+Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
+Except as noted, this software is licensed under Flora License, Version 1.1.
+Please, see the LICENSE.Flora file for Flora License, Version 1.1 terms and conditions.
diff --git a/edc/download-manager-view.edc b/edc/download-manager-view.edc
new file mode 100644 (file)
index 0000000..c8b30c8
--- /dev/null
@@ -0,0 +1,388 @@
+/*
+ *  download-manager
+ *
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Amit Dhiman <amit.dhiman@samsung.com>
+ *
+ * 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 DM_LIST_TYPE2_RIGHT_PADDING_WIDTH 15
+#define DM_LIST_TYPE2_ICON_SIZE 46 46
+
+#define DM_CANCEL_BUTTON_CIRCLE_LABEL_SIZE 46 46
+#define DM_CANCEL_BUTTON_CIRCLE_SIZE  46 46
+#define DM_CANCEL_BUTTON_CIRCLE_ICON_SIZE 46 46
+#define DM_CANCEL_BUTTON_BG_IMAGE "download_manager_list_button_bg.png"
+
+//Custom genlist downloading item
+#define DM_LIST_TEXT_MAIN_SIZE 30
+#define DM_LIST_TEXT_PROGRESS_SIZE 24
+#define DM_LIST_ITEM_HEIGHT 106
+#define DM_LIST_PADDING_TOP_BOTTOM_SIZE 10
+#define DM_LIST_PADDING_RIGHT_SIZE 15
+#define DM_LIST_ICON_SIZE 46 46
+#define DM_LIST_MAIN_CONTENT_HEIGHT 86
+
+#define STYLE_TAGS \
+   tag:  "br" "\n";\
+   tag:  "ps" "ps";\
+   tag:  "tab" "\t";\
+   tag:  "b" "+ font_weight=Bold";
+
+collections {
+       base_scale: 1.8;
+       // cancel button style
+       group { name: "elm/button/base/dm_cancel_button";
+               script {
+                       public mouse_down = 0;
+                       public multi_down = 0;
+               }
+               images {
+                       image: DM_CANCEL_BUTTON_BG_IMAGE RAW;
+               }
+               parts {
+                       part { name: "background";
+                               type: SPACER;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: DM_CANCEL_BUTTON_CIRCLE_LABEL_SIZE;
+                               }
+                       }
+                       part { name: "base";
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: DM_CANCEL_BUTTON_CIRCLE_SIZE;
+                                       max: DM_CANCEL_BUTTON_CIRCLE_SIZE;
+                                       color_class: "W015L6E1";
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               to: "background";
+                                       }
+                                       align: 0.5 0.0;
+                                       image.normal: DM_CANCEL_BUTTON_BG_IMAGE;
+                               }
+                               description { state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0 ;
+                               }
+                       }
+                       part { name: "bg";
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       rel1.to: "base";
+                                       rel2.to: "base";
+                                       image.normal: DM_CANCEL_BUTTON_BG_IMAGE;
+                                       color_class: "W015L6";
+                               }
+                               description { state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       color_class: "W015L6P";
+                               }
+                               description { state: "disabled" 0.0;
+                                       inherit: "default" 0.0;
+                                       color_class: "W015L6D";
+                               }
+                       }
+                       part { name: "elm.swallow.icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: DM_CANCEL_BUTTON_CIRCLE_ICON_SIZE;
+                                       max: DM_CANCEL_BUTTON_CIRCLE_ICON_SIZE;
+                                       rel1.to: "bg";
+                                       rel2.to: "bg";
+                                       color_class: "F032L3";
+                               }
+                               description { state: "visible" 0.0;
+                                       inherit: "default" 0.0;
+                                       color_class: "F032L3P";
+                               }
+                               description { state: "disabled" 0.0;
+                                       inherit: "default" 0.0;
+                                       color_class: "F032L3D";
+                               }
+                       }
+                       part { name: "event";
+                               scale: 1;
+                               type: RECT;
+                               description { state: "default" 0.0;
+                                       rel1.to: "background";
+                                       rel2.to: "background";
+                                       color: 0 0 0 0;
+                               }
+                       }
+               }
+               programs {
+                       program { name: "pressed";
+                               signal: "mouse,down,1*";
+                               source: "event";
+                               script {
+                                       if ((get_int(multi_down) == 0) && (get_int(mouse_down) == 0)) {
+                                               set_int(mouse_down, 1);
+                                               run_program(PROGRAM:"button_press1");
+                                       }
+                               }
+                       }
+                       program { name: "button_press1";
+                               script {
+                                       new st[31];
+                                       new Float:vl;
+                                       get_state(PART:"bg", st, 30, vl);
+                                       if (strcmp(st, "disabled")) {
+                                               set_state(PART:"base", "pressed", 0.0);
+                                               set_state(PART:"bg", "pressed", 0.0);
+                                               set_state(PART:"elm.swallow.icon", "pressed", 0.0);
+                                               emit("elm,action,press", "");
+                                       }
+                               }
+                       }
+                       program { name: "unpressed";
+                               signal: "mouse,up,1";
+                               source: "event";
+                               script {
+                                       if (get_int(mouse_down) == 1) {
+                                               set_int(mouse_down, 0);
+                                               run_program(PROGRAM:"button_unpress1");
+                                       }
+                               }
+                       }
+                       program { name: "button_unpress1";
+                               script {
+                                       new st[31];
+                                       new Float:vl;
+                                       get_state(PART:"bg", st, 30, vl);
+                                       if (strcmp(st, "disabled")) {
+                                               set_state(PART:"base", "default", 0.0);
+                                               set_state(PART:"bg", "default", 0.0);
+                                               set_state(PART:"elm.swallow.icon", "default", 0.0);
+                                               emit("elm,action,unpress", "");
+                                       }
+                               }
+                       }
+                       program { name: "touch_snd";
+                               signal: "mouse,clicked,1";
+                               source: "event";
+                               script {
+                                       new st[31];
+                                       new Float:vl;
+                                       if (get_int(multi_down) == 0) {
+                                               get_state(PART:"bg", st, 30, vl);
+                                               if (strcmp(st, "disabled")) {
+                                                       run_program(PROGRAM:"touch_sound");
+                                                       emit("elm,action,click", "");
+                                               }
+                                       }
+                               }
+                       }
+                       program { name: "touch_sound";
+                               action: RUN_PLUGIN "touch_sound";
+                       }
+                       program { name: "disable";
+                               signal: "elm,state,disabled";
+                               source: "elm";
+                               action: STATE_SET "disabled" 0.0;
+                               target: "bg";
+                               target: "elm.swallow.icon";
+                       }
+                       program { name: "enable";
+                               signal: "elm,state,enabled";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg";
+                               target: "elm.swallow.icon";
+                       }
+                       program { name: "multi_down";
+                               signal: "elm,action,multi,down";
+                               source: "elm";
+                               script {
+                                       set_int(multi_down, 1);
+                               }
+                       }
+                       program { name: "multi_up";
+                               signal: "elm,action,multi,up";
+                               source: "elm";
+                               script {
+                                       set_int(multi_down, 0);
+                               }
+                       }
+               }
+       }
+
+       //Custom group to show the downloading item
+       styles {
+               style { name: "list_text_main";
+                       base: "font=Tizen:style=Regular font_size="DM_LIST_TEXT_MAIN_SIZE" color=#000000 color_class=ATO002 text_class=ATO002 ellipsis=1.0";
+               }
+               style { name: "list_text_progress";
+                       base: "font=Tizen:style=Regular font_size="DM_LIST_TEXT_PROGRESS_SIZE" color=#ffffff color_class=T057L1 text_class=T057L1 ellipsis=1.0";
+                       STYLE_TAGS
+               }
+       }
+       group { name: "elm/genlist/item/dm/progress.main/default";
+
+               data.item: "texts" "elm.text.main elm.text.progress";
+               data.item: "contents" "elm.icon.1 elm.icon.2 elm.icon";
+               data.item: "bg_color" "B0211";
+               parts {
+                       part {
+                               name: "bg";
+                               scale : 1;
+                               type : RECT;
+                               description { state: "default" 0.0;
+                                       min: 0 DM_LIST_ITEM_HEIGHT;
+                                       max: -1 DM_LIST_ITEM_HEIGHT;
+                                       color_class: "B0211";
+                               }
+                               description { state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       color_class: "B0211P";
+                               }
+                               description { state: "disabled" 0.0;
+                                       color_class: "B0211";
+                               }
+                       }
+                       part { name: "left_top_padding";
+                               type: SPACER;
+                               scale : 1;
+                               description { state: "default" 0.0;
+                                       min:  0 DM_LIST_PADDING_TOP_BOTTOM_SIZE;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1.to: "bg";
+                                       rel2 { relative: 0.0 0.0; to:"bg"; }
+
+                               }
+                       }
+                       part { name: "right_bottom_padding";
+                               type: SPACER;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 0 DM_LIST_PADDING_TOP_BOTTOM_SIZE;
+                                       fixed: 1 1;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 1.0 1.0; to:"bg"; }
+                                       rel2.to: "bg";
+                               }
+                       }
+                       part {
+                               name: "elm.icon.1";
+                               scale : 1;
+                               mouse_events: 0;
+                               type : SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.5;
+                                       rel2 { relative: 0.0 1.0; to: "bg"; }
+                               }
+                       }
+                       part { name: "icon_content_padding";
+                               scale : 1;
+                               type : SPACER;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       min: DM_LIST_PADDING_RIGHT_SIZE 0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 1.0 0.0; to:"elm.icon.1"; }
+                                       rel2 { relative: 1.0 1.0; to:"elm.icon.1"; }
+                               }
+                       }
+                       part {
+                               name: "elm.icon.2";
+                               scale : 1;
+                               mouse_events: 1;
+                               type : SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       align: 1.0 0.5;
+                                       rel1 { relative: 1.0 0.0; }
+                               }
+                       }
+                       part { name: "content_icon_padding";
+                               scale : 1;
+                               type : SPACER;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 1.0 0.5;
+                                       min: DM_LIST_PADDING_RIGHT_SIZE 0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.0; to_x:"elm.icon.2"; to_y: "bg"; }
+                                       rel2 { relative: 0.0 1.0; to_x:"elm.icon.2"; to_y: "bg"; }
+                               }
+                       }
+                       part {
+                               name: "content_bg";
+                               scale : 1;
+                               type : SPACER;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       min: 0 DM_LIST_MAIN_CONTENT_HEIGHT;
+                                       max: -1 DM_LIST_MAIN_CONTENT_HEIGHT;
+                                       fixed: 1 1;
+                                       rel1 { relative: 1.0 1.0; to_x:"icon_content_padding"; to_y:"left_top_padding"; }
+                                       rel2 { relative: 0.0 1.0; to_x:"content_icon_padding"; to_y:"right_bottom_padding"; }
+                               }
+                       }
+                       part { name: "elm.text.main";
+                               scale : 1;
+                               mouse_events: 1;
+                               type : TEXTBLOCK;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       fixed: 0 1;
+                                       rel1 { relative: 0.0 0.0; to: "content_bg"; }
+                                       rel2 { relative: 1.0 0.3; to: "content_bg"; }
+                                       text.min: 0 1;
+                                       text.style: "list_text_main";
+                               }
+                       }
+                       part {
+                               name: "elm.icon";
+                               scale : 1;
+                               mouse_events: 0;
+                               type : SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.2; to_x: "content_bg"; to_y: "elm.text.main"; }
+                                       rel2 { relative: 1.0 1.0; to: "content_bg"; }
+                               }
+                       }
+                       part { name: "elm.text.progress";
+                               scale : 1;
+                               mouse_events: 1;
+                               type : TEXTBLOCK;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       fixed: 0 1;
+                                       rel1 { relative: 0.0 0.6; to_x: "content_bg"; to_y: "elm.icon"; }
+                                       rel2 { relative: 1.0 1.0; to: "content_bg"; }
+                                       text.min: 0 1;
+                                       text.style: "list_text_progress";
+                               }
+                       }
+               }
+       }
+} //collections ends
+
diff --git a/oma-parser/CMakeLists.txt b/oma-parser/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..743065b
--- /dev/null
@@ -0,0 +1,42 @@
+
+SET(PROJ_NAME "oma-parser")
+SET(VERSION "0.0.1")
+
+FIND_LIBRARY(LIB_EXPAT expat)
+
+SET(OMA-PARSER-SRCS
+       oma-parser-common.c
+       oma-parser-dd1.c
+       oma-parser-interface.c
+)
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+       SET(CMAKE_BUILD_TYPE "Release")
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(op-pkgs REQUIRED
+       dlog
+       libxml-2.0
+)
+
+FOREACH(flag ${op-pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${INC_FLAGS}${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -fPIC")
+SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -g -Wall")
+SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2")
+
+#SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,--as-needed -Wl,--hash-style=both")
+
+ADD_DEFINITIONS("-DDEBUG_USING_DLOG")
+
+ADD_LIBRARY(${PROJ_NAME} ${OMA-PARSER-SRCS})
+#ADD_LIBRARY(${PROJ_NAME} SHARED ${OMA-PARSER-SRCS})
+TARGET_LINK_LIBRARIES(${PROJ_NAME} ${op-pkgs_LDFLAGS} ${LIB_EXPAT})
+#SET_TARGET_PROPERTIES(${PROJ_NAME} PROPERTIES VERSION ${VERSION})
+
+#INSTALL(TARGETS ${PROJ_NAME} DESTINATION lib COMPONENT RuntimeLibraries)
+
+
diff --git a/oma-parser/oma-parser-common.c b/oma-parser/oma-parser-common.c
new file mode 100755 (executable)
index 0000000..7cea707
--- /dev/null
@@ -0,0 +1,209 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file               oma-parser-common.c
+ * @brief              common function for oma dd parser
+ * @author             Jungki Kwak(jungki.kwak@samsung.com)
+ *
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include "oma-parser-common.h"
+
+static amp_character_table amp_table[] = {
+               {"&amp;", '&'},
+               {"&lt;", '<'},
+               {"&gt;", '>'},
+               {"&quot;", '\"'},
+               {"&apos;", '\''},
+               {OP_NULL, ' '}};
+
+int op_com_util_remove_blankspace(char *Source, int srcLen)
+{
+       int ret = OP_RESULT_OK;
+       int i = 0;
+       int j = 0;
+       int spaceFound = OP_FALSE;
+       char *target = Source;
+       char *Stripped = Source;
+
+       OP_SLOG("Stripped String:[%s],len[%d]", Source, srcLen);
+
+       if (OP_NULL == Source && srcLen > i) {
+               ret = OP_ERR_INVALID_ARGUMENT;
+               goto ERR;
+       }
+
+       while ('\0' != target[i] && i < srcLen) {
+               if (OP_CHAR_IS_SPACE(target[i]) || OP_CHAR_IS_CRLT(target[i])) {
+                       spaceFound = OP_TRUE;
+               } else {
+                       if (spaceFound)
+                               Stripped[j] = target[i];
+                       j++;
+               }
+               i++;
+       }
+
+       if (spaceFound)
+               Stripped[j] = '\0';
+
+ERR:
+       OP_SLOG("Stripped String : [%s]", Source);
+       return ret;
+}
+
+int op_com_util_resolve_version(char *source, int *major, int *minor,
+                int *micro)
+{
+       int ret = OP_RESULT_OK;
+       int ma = 0;
+       int mi = 0;
+       int mc = 0;
+       char *Ch = NULL;
+       char *pDotCh = NULL;
+
+       OP_LOGD("");
+
+       /*For major version*/
+       for (Ch = source; *Ch != '.' && *Ch; Ch++) {
+               if (*Ch == ' ')
+                       continue;
+
+               if (*Ch >= '0' && *Ch <= '9') {
+                       ma *= 10;
+                       ma += *Ch - '0';
+               } else {
+                       ret = OP_PARSER_ERR_INVALID_VERSION_STRING;
+                       goto ERR;
+               }
+       }
+
+       if (*Ch != '.') {
+               ret = OP_PARSER_ERR_INVALID_VERSION_STRING;
+               goto ERR;
+       }
+
+       pDotCh = Ch;
+
+       /* For minor version. */
+       for (Ch = pDotCh + 1; *Ch != '.' && *Ch; Ch++) {
+               if (*Ch == ' ')
+                       continue;
+
+               if (*Ch >= '0' && *Ch <= '9') {
+                       mi *= 10;
+                       mi += *Ch - '0';
+               } else {
+                       ret = OP_PARSER_ERR_INVALID_VERSION_STRING;
+                       goto ERR;
+               }
+       }
+
+       /*micro version; if it exists.*/
+       if (*Ch == '.' && micro) {
+               pDotCh = Ch;
+               for (Ch = pDotCh + 1; *Ch; Ch++) {
+                       if (*Ch == ' ')
+                               continue;
+
+                       if (*Ch >= '0' && *Ch <= '9') {
+                               mc *= 10;
+                               mc += *Ch - '0';
+                       } else {
+                               ret = OP_PARSER_ERR_INVALID_VERSION_STRING;
+                               goto ERR;
+                       }
+               }
+       }
+
+       *major = ma;
+       *minor = mi;
+
+       if (micro)
+               *micro = mc;
+
+ERR:
+       return ret;
+}
+
+void op_com_utils_convert_amp_string(char *amp_string)
+{
+       char *matched_str = NULL;
+       int i = 0;
+
+       OP_LOGD("");
+
+       if (amp_string == OP_NULL || strlen(amp_string) <= 0) {
+               OP_LOGE("Invalid Argument");
+               return;
+       }
+
+       for (i = 0; OP_NULL != amp_table[i].amp_str; i++) {
+               int len = strlen(amp_table[i].amp_str);
+               char *trailing_str_ptr = amp_string;
+               char *trailing_end_ptr = NULL;
+
+               while (*trailing_str_ptr &&
+                               (matched_str = strstr(trailing_str_ptr, amp_table[i].amp_str))
+                                       != OP_NULL) {
+                       *matched_str = amp_table[i].actual_ch;
+                       matched_str++;
+                       trailing_str_ptr = matched_str;
+                       trailing_end_ptr = matched_str + len - 1;
+                       while (*trailing_end_ptr) {
+                               *matched_str++ = *trailing_end_ptr++;
+                       }
+                       *matched_str = '\0';
+               }
+       }
+
+       OP_SLOG("amp_string[%s]", amp_string);
+       return;
+}
+
+int op_com_utils_is_number(const char *source)
+{
+       const char *pCh;
+
+       OP_LOGD("");
+
+       pCh = source;
+
+       while (*pCh) {
+               if (*pCh < '0' || *pCh > '9')
+                       return OP_FALSE;
+
+               pCh++;
+       }
+
+       return OP_TRUE;
+}
+
+char *op_com_utils_concat(char *source, char *substring)
+{
+       char *ret_str = NULL;
+
+       ret_str = (char*)calloc(1, strlen(source) + strlen(substring) + 1);
+       if (OP_NULL != ret_str) {
+               strncpy(ret_str, source, strlen(source));
+               strncat(ret_str, substring, strlen(substring));
+       }
+
+       return ret_str;
+}
+
diff --git a/oma-parser/oma-parser-common.h b/oma-parser/oma-parser-common.h
new file mode 100755 (executable)
index 0000000..4711c94
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file               oma-parser-common.h
+ * @brief              common header file for oma dd parser
+ * @author             Jungki Kwak(jungki.kwak@samsung.com)
+ */
+
+#ifndef OMA_PARSER_COMMON_H_
+#define OMA_PARSER_COMMON_H_
+
+#include <stdio.h>
+#include <stdarg.h>
+#include <unistd.h>
+#include <sys/syscall.h>
+#include <asm/unistd.h>
+
+#define OP_CHAR_IS_SPACE(c)    ((c) == ' ' || (c) == '\t')
+#define OP_CHAR_IS_CRLT(c)     ((c) == '\r' || (c) == '\n')
+
+#define OP_NULL                0
+#define OP_TRUE                1
+#define OP_FALSE       0
+#define OP_RESULT_OK   0
+
+#define OP_MAX_URI_LEN                 2048
+#define OP_MAX_FILE_PATH_LEN   256
+#define OP_MAX_STR_LEN                 256
+#define OP_MAX_MIME_STR_LEN            256
+
+#define OP_ERR_INVALID_ARGUMENT     -100
+#define OP_ERR_FAIL_TO_MEMALLOC     -110
+
+#define OP_ERR_PARSE_FAIL       -200
+#define OP_ERR_INVALID_MIME_TYPE    -210
+#define OP_ERR_SERVER_NOTI_CODE_NOT_FOUND -220
+#define OP_ERR_USER_RESPONSE_WAITING_TIME_OUT -230
+#define OP_ERR_INVALID_ATTRIBUTE    -240
+
+#define OP_INVALID_PATH_STRING ";\\\":*?<>|()"
+
+#ifdef DEBUG_USING_DLOG
+#include "dlog.h"
+#ifdef LOG_TAG
+#undef LOG_TAG
+#endif
+#define LOG_TAG "oma-parser"
+#define OP_LOGD(format, ...) ;//LOGD("[%s:%d] "format" \n", __FUNCTION__, __LINE__, ##__VA_ARGS__);
+#define OP_LOGE(format, ...) LOGE("[%s:%d] "format" \n", __FUNCTION__, __LINE__, ##__VA_ARGS__);
+#define OP_SLOG(format, ...) SECURE_LOGD("[%s:%d] "format" \n", __FUNCTION__, __LINE__, ##__VA_ARGS__);
+
+
+#else /* DEBUG_USING_DLOG */
+#define OP_LOGD(format, ...) fprintf(stderr, "[oma-parser:V][%u][%s:%d] "format" \n", \
+       (unsigned int)syscall(__NR_gettid), __FUNCTION__, __LINE__, ##__VA_ARGS__);
+#define OP_LOGE(format, ...) fprintf(stderr, "[oma-parser:E][%u][%s:%d] "format" \n", \
+       (unsigned int)syscall(__NR_gettid), __FUNCTION__, __LINE__, ##__VA_ARGS__);
+#define OP_SLOG(format, ...) fprintf(stderr, "[oma-parser:V][%u][%s:%d] "format" \n", \
+       (unsigned int)syscall(__NR_gettid), __FUNCTION__, __LINE__, ##__VA_ARGS__);
+#endif /* DEBUG_USING_DLOG */
+
+/**
+ * Enumeration of Errors returned by OP-Parser Module
+ */
+typedef enum {
+       OP_PARSER_ERR_NO_ERROR = 200,
+       OP_PARSER_ERR_CREATE,
+       OP_PARSER_ERR_INVALID_ARG,
+       OP_PARSER_ERROR_FILE,
+       OP_PARSER_ERR_INTERNAL_PARSING,
+       OP_PARSER_ERR_MISSING_MANOPTORY_TAG,
+       OP_PARSER_ERR_INVALID_VERSION_STRING,
+       OP_PARSER_ERR_UNKNOWN_ELEMENT,
+       OP_PARSER_ERR_XML_PARSER
+} op_parser_err_t;
+
+/**
+ * User Data to be registered with parser library
+ */
+typedef struct _op_parser_app_data_t op_parser_app_data_t;
+struct _op_parser_app_data_t {
+       void *data;
+       int element_index;
+       int parseError;
+};
+
+/**
+ * ampersand replacement table
+ */
+typedef struct _amp_character_table amp_character_table;
+struct _amp_character_table {
+       char *amp_str;
+       char actual_ch;
+};
+
+int op_com_util_remove_blankspace(char *Source, int srcLen);
+int op_com_util_resolve_version(char *source, int *major, int *minor,
+                int *micro);
+void op_com_utils_convert_amp_string(char *amp_string);
+int op_com_utils_is_number(const char *source);
+char *op_com_utils_concat(char *source, char *substring);
+
+#endif /* OMA_PARSER_COMMON_H_ */
diff --git a/oma-parser/oma-parser-dd1.c b/oma-parser/oma-parser-dd1.c
new file mode 100644 (file)
index 0000000..9f2f55d
--- /dev/null
@@ -0,0 +1,646 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file               oma-parser-dd1.c
+ * @brief              function for oma 1.0 dd parser
+ * @author             Jungki Kwak(jungki.kwak@samsung.com)
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+#include "oma-parser-dd1.h"
+
+static dd1_Element_Info_table dd_element_table[DD_ELEMENT_COUNT_MAX] =
+{
+       {"type",                DD1_ELEMENT_TYPE,       -1},    /*Mandatory */
+       {"size",                DD1_ELEMENT_SIZE,       -1},    /*Mandatory */
+       {"objectURI",           DD1_ELEMENT_URL,        -1},    /*Mandatory */
+       {"media",               DD1_ELEMENT_MEDIA,      -1},
+       {"name",                DD1_ELEMENT_NAME,       -1},
+       {"installNotifyURI",    DD1_ELEMENT_INSTALLNOTIFY,      -1},
+       {"nextURL",             DD1_ELEMENT_NEXTURL,    -1 },
+       {"DDVersion",           DD1_ELEMENT_DDVERSION,  -1},
+       {"description",         DD1_ELEMENT_DESCRIPTION,        -1},
+       {"vendor",              DD1_ELEMENT_VENDOR,     -1},
+       {"infoURL",             DD1_ELEMENT_INFOURL,    -1},
+       {"iconURI",             DD1_ELEMENT_ICONURL,    -1},
+       {"progressiveDownloadFlag",     DD1_ELEMENT_PROGRESS,   -1}
+
+};
+
+#define IS_ELEMENT_OPEN(INDEX)         (dd_element_table[INDEX].element_inst_cnt > -1)
+#define IS_ELEMENT_CONTINUING(INDEX)   (dd_element_table[INDEX].element_inst_cnt > 1)
+#define CLOSE_ELEMENT(INDEX)           (dd_element_table[INDEX].element_inst_cnt = -1)
+#define OPEN_ELEMENT(INDEX)            (dd_element_table[INDEX].element_inst_cnt = 0)
+#define CONTINUE_ELEMENT(INDEX)                (dd_element_table[INDEX].element_inst_cnt++)
+
+/* Warnings / Errors Logging Functions */
+static void op_parse_warning(void *userData, const char *msg, ...)
+{
+    OP_LOGD("Warning : %s", msg);
+}
+
+static void op_parse_error(void *userData, const char *msg, ...)
+{
+    OP_LOGE("Error: %s", msg);
+}
+
+static void op_parse_fatal_error(void *userData, const char *msg, ...)
+{
+    OP_LOGE("Fatal Error : %s", msg);
+}
+
+int op_parse_dd1_file(xmlSAXHandler *sHandlerPtr, op_parser_app_data_t **app_data)
+{
+       int ret = OP_RESULT_OK;
+       dd1_cntx *cntx = OP_NULL;
+       dd_oma1_t *dd1 = OP_NULL;
+       op_parser_app_data_t *app_data_local = OP_NULL;
+
+       OP_LOGD("");
+
+       app_data_local = (op_parser_app_data_t *)calloc(1,
+               sizeof(op_parser_app_data_t));
+       if (OP_NULL == app_data) {
+               OP_LOGE("MEMORY ALLOCATION FAIL");
+               ret = OP_ERR_FAIL_TO_MEMALLOC;
+               goto ERR;
+       }
+
+       cntx = (dd1_cntx *)calloc(1, sizeof(dd1_cntx));
+       if (OP_NULL == cntx) {
+               OP_LOGE("MEMORY ALLOCATION FAIL");
+               ret = OP_ERR_FAIL_TO_MEMALLOC;
+               goto ERR;
+       }
+
+       dd1 = (dd_oma1_t *)calloc(1, sizeof(dd_oma1_t));
+       if (OP_NULL == dd1) {
+               OP_LOGE("MEMORY ALLOCATION FAIL");
+               ret = OP_ERR_FAIL_TO_MEMALLOC;
+               goto ERR;
+       }
+
+       *app_data = app_data_local;
+       cntx->dd1 = dd1;
+       app_data_local->parseError = OP_RESULT_OK;
+       app_data_local->data = (void *)cntx;
+
+       sHandlerPtr->startElement = op_libxml_start_element_dd1;
+       sHandlerPtr->endElement = op_libxml_end_element_dd1;
+       sHandlerPtr->characters = op_libxml_characters_dd1;
+       /* warnings / error logging functions */
+       sHandlerPtr->error = op_parse_error;
+       sHandlerPtr->warning = op_parse_warning;
+       sHandlerPtr->fatalError = op_parse_fatal_error;
+
+ERR:
+       if (OP_RESULT_OK != ret) {
+               free(cntx);
+               free(app_data_local);
+               free(dd1);
+       }
+
+       return ret;
+}
+
+void op_free_dd1_info(dd_oma1_t *dd_info)
+{
+       more_type_info_t *temp_ptr = NULL;
+       more_type_info_t *temp_ptr_next = NULL;
+
+       OP_LOGD("");
+
+       if (dd_info == NULL)
+               return;
+
+       if (dd_info->description) {
+               free(dd_info->description);
+               dd_info->description = OP_NULL;
+       }
+
+       if (dd_info->install_notify_uri) {
+               free(dd_info->install_notify_uri);
+               dd_info->install_notify_uri = OP_NULL;
+       }
+
+       if (dd_info->icon_uri) {
+               free(dd_info->icon_uri);
+               dd_info->icon_uri = OP_NULL;
+       }
+
+       if (dd_info->next_url) {
+               free(dd_info->next_url);
+               dd_info->next_url = OP_NULL;
+       }
+
+       if (dd_info->vendor) {
+               free(dd_info->vendor);
+               dd_info->vendor = OP_NULL;
+       }
+
+       if (dd_info->midlet_info_url) {
+               free(dd_info->midlet_info_url);
+               dd_info->midlet_info_url = OP_NULL;
+       }
+
+       if (dd_info->install_param) {
+               free(dd_info->install_param);
+               dd_info->install_param = OP_NULL;
+       }
+
+       temp_ptr = dd_info->other_type_info;
+       while (temp_ptr) {
+               temp_ptr_next = temp_ptr->next;
+               free(temp_ptr);
+               temp_ptr = temp_ptr_next;
+       }
+
+       free(dd_info);
+       dd_info = NULL;
+       return;
+}
+
+int op_check_dd1_mandatory_tags(op_parser_app_data_t *app_data)
+{
+       int count = 0;
+
+       OP_LOGD("");
+
+       dd1_cntx *cntx = (dd1_cntx*)app_data->data;
+
+       while (count < DD_ELEMENT_MANOPT_COUNT) {
+               if (OP_FALSE == cntx->bMand_element_registrar[count]) {
+                       OP_SLOG("ERR:One ore more Mandatory Elements Missing:[%s]",
+                                       dd_element_table[count].element_str);
+                       return OP_FALSE;
+               }
+               count++;
+       }
+
+       OP_LOGD("DD1 Mandatory Element Check Pass");
+       return OP_TRUE;
+}
+
+void op_libxml_start_element_dd1(
+        void *userData,
+        const xmlChar *name,
+        const xmlChar **atts)
+{
+       op_parser_app_data_t *app_data = OP_NULL;
+       int index = 0;
+
+       OP_LOGD("");
+
+       app_data = (op_parser_app_data_t*)userData;
+
+       OP_SLOG("Start Element [%s]", name);
+       app_data->element_index = DD1_ELEMENT_NONE;
+
+       if (OP_RESULT_OK != app_data->parseError) {
+               OP_LOGE("Error Encountered Already");
+               goto ERR;
+       }
+
+       for (index = 0; index < DD_ELEMENT_COUNT_MAX; index++) {
+               if (0 == xmlStrcmp(name,
+                       (const xmlChar *)(dd_element_table[index].element_str))) {
+                       OP_LOGD("Element matches with listed's. Index[%d]",
+                                       dd_element_table[index].element_index);
+                       app_data->element_index
+                               = dd_element_table[index].element_index;
+                       OPEN_ELEMENT(app_data->element_index);
+                       break;
+               }
+       }
+
+       if (index == DD_ELEMENT_COUNT_MAX) {
+               app_data->parseError = OP_PARSER_ERR_UNKNOWN_ELEMENT;
+               OP_SLOG("ERR:Element [%s] is not listed.", name);
+               goto ERR;
+       }
+
+ERR:
+       return;
+}
+
+void op_libxml_end_element_dd1(void *userData, const xmlChar *name)
+{
+       op_parser_app_data_t *app_data = OP_NULL;
+       int index = 0;
+
+       OP_LOGD("");
+
+       app_data = (op_parser_app_data_t*)userData;
+
+       OP_SLOG("End Element [%s]", name);
+
+       if (OP_RESULT_OK != app_data->parseError) {
+               OP_LOGE("Inetrnal Error Occured");
+               goto ERR;
+       }
+
+       for (index = 0; index < DD_ELEMENT_COUNT_MAX; index++) {
+               if (0 == xmlStrcmp(name,
+                       (const xmlChar *)(dd_element_table[index].element_str))) {
+                       if (!IS_ELEMENT_OPEN(index)) {
+                               app_data->parseError
+                                       = OP_PARSER_ERR_INTERNAL_PARSING;
+                               OP_LOGE("End Element Does not match with the start element");
+                               goto ERR;
+                       }
+
+                       CLOSE_ELEMENT(app_data->element_index);
+                       break;
+               }
+       }
+
+       if (index == DD_ELEMENT_COUNT_MAX) {
+               OP_LOGE("Element is not listed");
+               app_data->parseError = OP_PARSER_ERR_UNKNOWN_ELEMENT;
+               goto ERR;
+       }
+
+ERR:
+       return;
+}
+
+void op_libxml_characters_dd1(void *userData, const xmlChar *s, int len)
+{
+       dd_oma1_t *dd_info = OP_NULL;
+       dd1_cntx *cntxt = OP_NULL;
+       op_parser_app_data_t *app_data = OP_NULL;
+       char *ch_str = OP_NULL;
+
+       OP_LOGD("");
+
+       app_data = (op_parser_app_data_t *)userData;
+       cntxt = (dd1_cntx *)(app_data->data);
+       dd_info = cntxt->dd1;
+
+       if (OP_NULL == dd_info) {
+               OP_LOGE("dd structure is NULL");
+               goto ERR;
+       }
+
+       if (len <= 0) {
+               goto ERR;
+       }
+
+       ch_str = (char *)calloc(1, len + 1);
+       if (OP_NULL == ch_str) {
+               app_data->parseError = OP_ERR_FAIL_TO_MEMALLOC;
+               goto ERR;
+       }
+
+       memcpy(ch_str, (char *)s, len);
+       if (app_data->element_index >= 0) {
+               OP_LOGD("app_data->parseError[%d], app_data->element_index[%d], \
+                               dd_element_table[app_data->element_index].isTagOpen[%d]",
+                               app_data->parseError,app_data->element_index,
+                               IS_ELEMENT_OPEN(app_data->element_index));
+       } else {
+               OP_LOGD("app_data->parseError[%d], app_data->element_index[%d]",
+                               app_data->parseError,app_data->element_index);
+       }
+       if ((OP_RESULT_OK == app_data->parseError) &&
+               (app_data->element_index != DD1_ELEMENT_NONE) &&
+               (IS_ELEMENT_OPEN(app_data->element_index))) {
+
+               CONTINUE_ELEMENT(app_data->element_index);
+
+               switch (app_data->element_index) {
+               case DD1_ELEMENT_TYPE:
+                       op_com_util_remove_blankspace(ch_str, len);
+                       if ((dd_info->type)[0] == 0) {
+                               if ((app_data->element_index)
+                                       < DD_ELEMENT_MANOPT_COUNT) {
+                                       cntxt->bMand_element_registrar[app_data->element_index]
+                                               = OP_TRUE;
+                               } else {
+                                       OP_LOGE("Element Index[%d] is not in Mandatory List",
+                                                       app_data->element_index);
+                                       app_data->parseError
+                                               = OP_PARSER_ERR_INTERNAL_PARSING;
+                                       goto ERR;
+                               }
+
+                               strncpy(dd_info->type, ch_str,
+                                       OP_MAX_MIME_STR_LEN - 1);
+                               dd_info->type[OP_MAX_MIME_STR_LEN - 1] = '\0';
+                               OP_SLOG("dd_info->type:[%s]", dd_info->type);
+                       } else {
+                               more_type_info_t *temp_type = OP_NULL;
+
+                               temp_type = (more_type_info_t *)calloc(1,
+                                       sizeof(more_type_info_t));
+                               if (temp_type == OP_NULL) {
+                                       app_data->parseError
+                                               = OP_ERR_FAIL_TO_MEMALLOC;
+                                       goto ERR;
+                               }
+
+                               temp_type->next = OP_NULL;
+                               strncpy((char*)(temp_type->type), ch_str,
+                                       OP_MAX_MIME_STR_LEN - 1);
+                               temp_type->type[OP_MAX_MIME_STR_LEN - 1] = '\0';
+                               OP_SLOG("dd_infoerror:->type[other]:[%s]", temp_type->type);
+
+                               if (dd_info->other_type_info == OP_NULL) {
+                                       dd_info->other_type_info = temp_type;
+                               } else {
+                                       more_type_info_t *Cur_Type = OP_NULL;
+                                       Cur_Type = dd_info->other_type_info;
+
+                                       while (Cur_Type->next) {
+                                               Cur_Type = Cur_Type->next;
+                                       }
+                                       Cur_Type->next = temp_type;
+                               }
+
+                               dd_info->other_type_count++;
+                       }
+                       break;
+
+               case DD1_ELEMENT_SIZE:
+                       if (app_data->element_index < DD_ELEMENT_MANOPT_COUNT) {
+                               cntxt->bMand_element_registrar[app_data->element_index]
+                                       = OP_TRUE;
+                       } else {
+                               OP_LOGE("Element Index[%d] is not in Mandatory List",
+                                               app_data->element_index);
+                               app_data->parseError
+                                       = OP_PARSER_ERR_INTERNAL_PARSING;
+                               goto ERR;
+                       }
+
+                       op_com_util_remove_blankspace(ch_str, len);
+                       if (op_com_utils_is_number((const char*)ch_str)) {
+                               dd_info->size = atoll(ch_str);
+                               if (dd_info->size <= 0)
+                                       OP_LOGE("size is invalid");
+
+                               OP_SLOG("dd_info->size:[%llu]", dd_info->size);
+                       } else {
+                               OP_LOGE("size is invalid");
+                       }
+
+                       break;
+
+               case DD1_ELEMENT_URL:
+                       if (app_data->element_index < DD_ELEMENT_MANOPT_COUNT) {
+                               cntxt->bMand_element_registrar[app_data->element_index]
+                                       = OP_TRUE;
+                       } else {
+                               OP_LOGE("Element Index [%d] is not in Mandatory List",
+                                               app_data->element_index);
+                               app_data->parseError
+                                       = OP_PARSER_ERR_INTERNAL_PARSING;
+                               goto ERR;
+                       }
+
+                       op_com_util_remove_blankspace(ch_str, len);
+                       op_com_utils_convert_amp_string(ch_str);
+                       if ('\0' == dd_info->object_uri[0]) {
+                               snprintf(dd_info->object_uri, OP_MAX_URI_LEN,
+                                       "%s", ch_str);
+                       } else if (IS_ELEMENT_CONTINUING(app_data->element_index)) {
+                               strncat(dd_info->object_uri, ch_str,
+                                       OP_MAX_URI_LEN - strlen(
+                                               dd_info->object_uri));
+                       }
+
+                       OP_SLOG("dd_info->object_uri:[%s]", dd_info->object_uri);
+
+                       break;
+
+               case DD1_ELEMENT_NAME:
+                       if (IS_ELEMENT_CONTINUING(app_data->element_index)) {
+                               strncat(dd_info->name, ch_str, OP_MAX_URI_LEN
+                                       - strlen(dd_info->name));
+                       } else if (strlen(ch_str) < OP_MAX_STR_LEN) {
+                               strncpy(dd_info->name, ch_str, strlen(ch_str));
+                       }
+
+                       OP_SLOG("dd_info->name:[%s]", dd_info->name);
+
+                       break;
+
+               case DD1_ELEMENT_DDVERSION:
+                       op_com_util_remove_blankspace(ch_str, len);
+                       if (op_com_util_resolve_version(ch_str,
+                               &(dd_info->major_version),
+                               &(dd_info->minor_version), OP_NULL)
+                               != OP_RESULT_OK)
+                                       OP_LOGE("Version Resolution Error");
+
+                       OP_SLOG("major_version:[%d],minor_version:[%d]",
+                                       dd_info->major_version, dd_info->minor_version);
+
+                       break;
+
+               case DD1_ELEMENT_VENDOR:
+                       if (IS_ELEMENT_CONTINUING(app_data->element_index)) {
+                               char *temp = NULL;
+                               temp = op_com_utils_concat(dd_info->vendor,
+                                       ch_str);
+                               if (temp) {
+                                       free(dd_info->vendor);
+                                       dd_info->vendor = temp;
+                               }
+                       } else {
+                               dd_info->vendor = (char*)calloc(1, strlen(
+                                       ch_str) + 1);
+                               if (OP_NULL == dd_info->vendor) {
+                                       app_data->parseError
+                                               = OP_ERR_FAIL_TO_MEMALLOC;
+                                       goto ERR;
+                               }
+                               strncpy(dd_info->vendor, ch_str, strlen(ch_str));
+                       }
+
+                       OP_SLOG("dd_info->vendor:[%s]", dd_info->vendor);
+
+                       break;
+
+               case DD1_ELEMENT_INSTALLNOTIFY:
+                       op_com_util_remove_blankspace(ch_str, len);
+                       op_com_utils_convert_amp_string(ch_str);
+                       if (IS_ELEMENT_CONTINUING(app_data->element_index)) {
+                               char *temp = NULL;
+                               temp = op_com_utils_concat(
+                                       dd_info->install_notify_uri, ch_str);
+                               if (temp) {
+                                       free(dd_info->install_notify_uri);
+                                       dd_info->install_notify_uri = temp;
+                               }
+                       } else {
+                               dd_info->install_notify_uri = (char*)calloc(1,
+                                       strlen(ch_str) + 1);
+                               if (OP_NULL == dd_info->install_notify_uri) {
+                                       app_data->parseError
+                                               = OP_ERR_FAIL_TO_MEMALLOC;
+                                       goto ERR;
+                               }
+                               strncpy(dd_info->install_notify_uri,
+                                       (const char*)ch_str, strlen(ch_str));
+                       }
+                       OP_SLOG("dd_info->install_notify_uri:[%s]",
+                                       dd_info->install_notify_uri);
+
+                       break;
+
+               case DD1_ELEMENT_DESCRIPTION:
+                       if (IS_ELEMENT_CONTINUING(app_data->element_index)) {
+                               char *temp = NULL;
+                               temp = op_com_utils_concat(
+                                       dd_info->description, ch_str);
+                               if (temp) {
+                                       free(dd_info->description);
+                                       dd_info->description = temp;
+                               }
+                       } else {
+                               dd_info->description = (char*)calloc(1, strlen(
+                                       ch_str) + 1);
+                               if (OP_NULL == dd_info->description) {
+                                       app_data->parseError
+                                               = OP_ERR_FAIL_TO_MEMALLOC;
+                                       goto ERR;
+                               }
+                               strncpy(dd_info->description,
+                                       (const char*)ch_str, strlen(ch_str));
+                       }
+                       OP_SLOG("dd_info->description:[%s]",
+                                       dd_info->description);
+
+                       break;
+
+               case DD1_ELEMENT_INFOURL:
+                       op_com_util_remove_blankspace(ch_str, len);
+                       op_com_utils_convert_amp_string(ch_str);
+                       if (IS_ELEMENT_CONTINUING(app_data->element_index)) {
+                               char *temp = NULL;
+                               temp = op_com_utils_concat(
+                                       dd_info->midlet_info_url, ch_str);
+                               if (temp) {
+                                       free(dd_info->midlet_info_url);
+                                       dd_info->midlet_info_url = temp;
+                               }
+                       } else {
+                               dd_info->midlet_info_url = (char*)calloc(1,
+                                       strlen(ch_str) + 1);
+                               if (OP_NULL == dd_info->midlet_info_url) {
+                                       app_data->parseError
+                                               = OP_ERR_FAIL_TO_MEMALLOC;
+                                       goto ERR;
+                               }
+                               strncpy(dd_info->midlet_info_url,
+                                       (const char*)ch_str, strlen(ch_str));
+                       }
+                       OP_SLOG("dd_info->midlet_info_url:[%s]",
+                                       dd_info->midlet_info_url);
+
+                       break;
+
+               case DD1_ELEMENT_ICONURL:
+                       op_com_util_remove_blankspace(ch_str, len);
+                       op_com_utils_convert_amp_string(ch_str);
+                       if (IS_ELEMENT_CONTINUING(app_data->element_index)) {
+                               char *temp = NULL;
+                               temp = op_com_utils_concat(dd_info->icon_uri,
+                                       ch_str);
+                               if (temp) {
+                                       free(dd_info->icon_uri);
+                                       dd_info->icon_uri = temp;
+                               }
+                       } else {
+                               dd_info->icon_uri = (char*)calloc(1, strlen(
+                                       ch_str) + 1);
+                               if (OP_NULL == dd_info->icon_uri) {
+                                       app_data->parseError
+                                               = OP_ERR_FAIL_TO_MEMALLOC;
+                                       goto ERR;
+                               }
+                               strncpy(dd_info->icon_uri, (const char*)ch_str,
+                                       strlen(ch_str));
+                               OP_SLOG("dd_info->icon_uri:[%s]",
+                                               dd_info->icon_uri);
+                       }
+                       break;
+
+               case DD1_ELEMENT_NEXTURL:
+                       op_com_util_remove_blankspace(ch_str, len);
+                       op_com_utils_convert_amp_string(ch_str);
+                       if (IS_ELEMENT_CONTINUING(app_data->element_index)) {
+                               char *temp = NULL;
+                               temp = op_com_utils_concat(dd_info->next_url,
+                                       ch_str);
+                               if (temp) {
+                                       free(dd_info->next_url);
+                                       dd_info->next_url = temp;
+                               }
+                       } else {
+                               dd_info->next_url = (char*)calloc(1, strlen(
+                                       ch_str) + 1);
+                               if (OP_NULL == dd_info->next_url) {
+                                       app_data->parseError
+                                               = OP_ERR_FAIL_TO_MEMALLOC;
+                                       goto ERR;
+                               }
+                               strncpy(dd_info->next_url, (const char*)ch_str,
+                                       strlen(ch_str));
+                       }
+
+                       OP_SLOG("dd_info->next_url:[%s]",
+                                       dd_info->next_url);
+
+                       break;
+
+               case DD1_ELEMENT_PROGRESS:
+                       if (strcmp("true", (char*)ch_str) == 0 || strcmp(
+                               "TRUE", (char*)ch_str) == 0) {
+                                       dd_info->progressive_download_flag = OP_TRUE;
+                       } else {
+                               dd_info->progressive_download_flag = OP_FALSE;
+                       }
+                       OP_LOGD("dd_info->progressive_download_flag:[%d]",
+                                       dd_info->progressive_download_flag);
+
+                       break;
+
+               case DD1_ELEMENT_MEDIA:
+                       break;
+
+               default:
+                       OP_LOGE("Element not listed.");
+
+                       break;
+               }
+       } else {
+               if (app_data->element_index >= 0)
+                       OP_SLOG("ERR:Element[%s] Value String[%s]",
+                                       dd_element_table[app_data->element_index].element_str,
+                                       ch_str);
+       }
+
+ERR:
+       if (ch_str)
+               free(ch_str);
+
+       return;
+}
+
diff --git a/oma-parser/oma-parser-dd1.h b/oma-parser/oma-parser-dd1.h
new file mode 100755 (executable)
index 0000000..e448ebb
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file               oma-parser-dd1.h
+ * @brief              header file for oma 1.0 dd parser
+ * @author             Jungki Kwak(jungki.kwak@samsung.com)
+ */
+
+#ifndef OMA_PARSER_DD1_H_
+#define OMA_PARSER_DD1_H_
+
+#include <libxml/parser.h>
+
+#include "oma-parser-common.h"
+
+#define DD_ELEMENT_COUNT_MAX   13
+#define DD_ELEMENT_MANOPT_COUNT        3
+
+typedef struct _more_type_info_t more_type_info_t;
+struct _more_type_info_t {
+       char type[OP_MAX_MIME_STR_LEN];
+       struct _more_type_info_t *next;
+};
+
+/**
+ * This structure contains Download descriptor information.
+ * character pointer variable is used in case using rarely for optimization of memory
+ * That's okay to change same type of all char. variables for consistency
+ */
+typedef struct _download_descriptor_oma1_t dd_oma1_t;
+struct _download_descriptor_oma1_t {
+       char type[OP_MAX_MIME_STR_LEN]; /* type : Mandatory */
+       char name[OP_MAX_STR_LEN]; /* name : Optional */
+       int major_version; /* DD Version, major : Optional */
+       int minor_version; /* DD Version, minor : Optional */
+       char *vendor; /* vendor : Optional */
+       char object_uri[OP_MAX_URI_LEN]; /* object URI : Mandatory */
+       unsigned long long size; /* size : Mandatory */
+       char *install_notify_uri; /* installNotifyURI : Optional */
+       char *description; /* description : Optional */
+       char *midlet_info_url; /* info url : Optional */
+       char *icon_uri; /* iconURI : Optional */
+       char *next_url; /* nextURL : Optional */
+       char *install_param; /* install param : Optional */
+       int other_type_count; /* count of other type : Optional */
+       int progressive_download_flag; /* progressiveDownloadFlag : Optional*/
+       more_type_info_t *other_type_info; /* other type : Optional */
+};
+
+typedef struct _dd1_cntx dd1_cntx;
+struct _dd1_cntx {
+       int bMand_element_registrar[DD_ELEMENT_MANOPT_COUNT];
+       dd_oma1_t *dd1;
+};
+
+typedef enum {
+       DD1_ELEMENT_NONE = -1,
+       DD1_ELEMENT_TYPE, /* 0 to 3 are mandatory elements */
+       DD1_ELEMENT_SIZE,
+       DD1_ELEMENT_URL,
+       DD1_ELEMENT_MEDIA,
+       DD1_ELEMENT_NAME,
+       DD1_ELEMENT_INSTALLNOTIFY,
+       DD1_ELEMENT_NEXTURL, /*5*/
+       DD1_ELEMENT_DDVERSION,
+       DD1_ELEMENT_DESCRIPTION,
+       DD1_ELEMENT_VENDOR,
+       DD1_ELEMENT_INFOURL,
+       DD1_ELEMENT_ICONURL,
+       DD1_ELEMENT_PROGRESS /*12*/
+} dd1_element_index;
+
+typedef struct _dd1_Element_Info_table dd1_Element_Info_table;
+struct _dd1_Element_Info_table {
+       const char *element_str;
+       dd1_element_index element_index;
+       int element_inst_cnt;
+};
+
+int op_parse_dd1_file(xmlSAXHandler *sHandlerPtr, op_parser_app_data_t **app_data);
+void op_free_dd1_info(dd_oma1_t *dd);
+int op_check_dd1_mandatory_tags(op_parser_app_data_t *app_data);
+
+void op_libxml_start_element_dd1(void *userData, const xmlChar *name,
+               const xmlChar **atts);
+void op_libxml_end_element_dd1(void *userData, const xmlChar *name);
+void op_libxml_characters_dd1(void *userData, const xmlChar *s, int len);
+
+#endif /* OMA_PARSER_DD1_H_ */
diff --git a/oma-parser/oma-parser-interface.c b/oma-parser/oma-parser-interface.c
new file mode 100644 (file)
index 0000000..cb0e9b5
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file               oma-parser-interface.c
+ * @brief              interface function for oma dd parser
+ * @author             Jungki Kwak(jungki.kwak@samsung.com)
+ */
+
+#include <expat.h>
+#include <string.h>
+#include <stdio.h>
+
+#include "oma-parser-interface.h"
+
+static int op_check_mandatory_tags(op_parser_app_data_t *app_data);
+
+void op_parser_init(void)
+{
+       xmlInitParser();
+}
+
+void op_parser_deinit(void)
+{
+       xmlCleanupParser();
+}
+
+int op_parse_dd_file(
+        const char *dd_file_path,
+        void **dd_info,
+        int *error_code)
+{
+       int b_ret = OP_TRUE;
+       op_parser_app_data_t *app_data = OP_NULL;
+       int ret_code = OP_RESULT_OK;
+
+       OP_LOGD("");
+
+       if (dd_file_path == OP_NULL || strpbrk(dd_file_path, OP_INVALID_PATH_STRING) != NULL ||
+               error_code == OP_NULL || dd_info == OP_NULL) {
+
+               OP_LOGE("OP INVALID ARGUMENT");
+               if (error_code)
+                       *error_code = OP_PARSER_ERR_INVALID_ARG;
+
+               b_ret = OP_FALSE;
+               return b_ret;
+       }
+
+       *error_code = OP_PARSER_ERR_NO_ERROR;
+       *dd_info = OP_NULL;
+
+       xmlSAXHandler *sHandlerPtr = calloc(1, sizeof(xmlSAXHandler));
+       if (sHandlerPtr == OP_NULL) {
+               OP_LOGE("OP NULL RETURN");
+               *error_code = OP_PARSER_ERR_CREATE;
+               b_ret = OP_FALSE;
+               goto ERR;
+       }
+
+       ret_code = op_parse_dd1_file(sHandlerPtr, &app_data);
+       if (OP_RESULT_OK == ret_code) {
+               *dd_info = (void *)(((dd1_cntx *)(app_data->data))->dd1);
+       } else {
+               *error_code = ret_code;
+               b_ret = OP_FALSE;
+               goto ERR;
+       }
+
+       if (xmlSAXUserParseFile(sHandlerPtr, app_data, dd_file_path) < 0) {
+               OP_LOGD("Error : return value less than zero");
+               *error_code = app_data->parseError;
+               b_ret = OP_FALSE;
+               goto ERR;
+       }
+
+       if (OP_RESULT_OK != app_data->parseError) {
+               *error_code = app_data->parseError;
+               b_ret = OP_FALSE;
+               goto ERR;
+       }
+
+       if (OP_FALSE == (b_ret = op_check_mandatory_tags(app_data))) {
+               OP_LOGE("Parse error happened. Mandatory Element Missing");
+               *error_code = OP_PARSER_ERR_MISSING_MANOPTORY_TAG;
+               goto ERR;
+       }
+
+       OP_LOGD("DD1 prasing is Successful");
+ERR:
+       if (app_data) {
+               free(app_data->data);
+               free(app_data);
+       }
+       free(sHandlerPtr);
+
+       return b_ret;
+}
+
+void op_free_dd_info(void *dd_info)
+{
+       op_free_dd1_info((dd_oma1_t*)dd_info);
+}
+
+int op_check_mandatory_tags(op_parser_app_data_t *app_data)
+{
+       int ret = OP_FALSE;
+
+       OP_LOGD("");
+
+       ret = op_check_dd1_mandatory_tags(app_data);
+
+       return ret;
+}
diff --git a/oma-parser/oma-parser-interface.h b/oma-parser/oma-parser-interface.h
new file mode 100755 (executable)
index 0000000..23a86a6
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * @file               oma-parser-interface.h
+ * @brief              Including interface functions regarding oma dd parser
+ * @author             Jungki Kwak(jungki.kwak@samsung.com)
+ */
+
+#ifndef _OMA_PARSER_INTERFACE_H
+#define _OMA_PARSER_INTERFACE_H
+
+
+#ifdef __cplusplus
+ extern "C"
+ {
+#endif
+
+#include "oma-parser-dd1.h"
+#include "oma-parser-common.h"
+
+/* This function Initialize libxml for oma parser
+* @param[in]   void
+* @return      void
+*/
+void op_parser_init(void);
+
+/* This function do cleanup task for libxml in oma parser
+* @param[in]   void
+* @return      void
+*/
+void op_parser_deinit(void);
+
+/**
+  * This function parses the OMA Download Descriptor and returns parsed data specific to version.
+  * It takes file path as input
+  * @param[in]         dd_file_path    DD file path
+  * @param[out]        dd_info         parserd data
+  * @param[out]        error_code      op_parser_err_t
+  * @return            true for success, or false for fail
+  *
+  **/
+
+int op_parse_dd_file(const char* dd_file_path, void** dd_info, int* error_code);
+
+/**
+  * This function frees the DD data structure.
+  *
+  * @param[in]         dd_info DD data info
+  *
+  **/
+void op_free_dd_info(void* dd_info);
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+  }
+#endif
+
+
+#endif
diff --git a/org.tizen.download-manager.efl b/org.tizen.download-manager.efl
new file mode 100644 (file)
index 0000000..77a238b
--- /dev/null
@@ -0,0 +1,59 @@
+org.tizen.download-manager system::homedir rwxat- ------
+org.tizen.download-manager system::vconf rwxat- ------
+org.tizen.download-manager system::media rwxat- ------
+org.tizen.download-manager system::share rwxat- ------
+org.tizen.download-manager pulseaudio rwxat- ------
+e17 org.tizen.download-manager rwx--- ------
+org.tizen.download-manager device::app_logging -w---- ------
+org.tizen.download-manager sys-assert::core rwxat- ------
+stest-service org.tizen.download-manager r-x--- ------
+org.tizen.download-manager stest-service -w---- ------
+org.tizen.download-manager privacy-manager::db r----l ------
+org.tizen.download-manager pkgmgr::db r----l ------
+org.tizen.download-manager system::vconf_inhouse rw---- ------
+org.tizen.download-manager system::vconf_setting rw---- ------
+org.tizen.download-manager system::vconf_privacy rw---- ------
+org.tizen.download-manager system::vconf_system rw---- ------
+org.tizen.download-manager system::vconf_multimedia rw---- ------
+org.tizen.download-manager system::vconf_network rw---- ------
+org.tizen.download-manager system::vconf_misc rw---- ------
+org.tizen.download-manager ecore::lock rwxat- ------
+org.tizen.download-manager system::ext_media rwxat- ------
+org.tizen.download-manager system::ext_storage rwxat- ------
+org.tizen.download-manager org.tizen.indicator rw---- ------
+org.tizen.download-manager sound_server rw---- ------
+org.tizen.download-manager dbus rwx--- ------
+org.tizen.download-manager org.tizen.setting r-x--- ------
+org.tizen.download-manager download-provider rw---- ------
+org.tizen.download-manager app-svc::db rw---- ------
+org.tizen.download-manager ail::db rw---- ------
+org.tizen.download-manager notification::db rw---- ------
+org.tizen.download-manager org.tizen.browser r-x--- ------
+org.tizen.download-manager media-data::db rw---- ------
+org.tizen.download-manager media-server -w---- ------
+org.tizen.download-manager xorg rw---- ------
+org.tizen.download-manager isf r-x--- ------
+org.tizen.download-manager cbhm r----- ------
+org.tizen.download-manager data-provider-master rw---- ------
+org.tizen.download-manager data-provider-master::notification rw---- ------
+org.tizen.download-manager data-provider-master::notification.client -w---- ------
+org.tizen.download-manager org.tizen.image-viewer rw---- ------
+org.tizen.download-manager net.wifi-qs r-x--- ------
+org.tizen.download-manager system::use_internet rw---- ------
+org.tizen.download-manager org.tizen.oma-dm rw---- ------
+org.tizen.download-manager drmfw rw---- ------
+org.tizen.download-manager device::sys_logging -w---- ------
+org.tizen.download-manager starter::vconf rw---- ------
+org.tizen.download-manager org.tizen.browser::vconf_public rw---- ------
+org.tizen.download-manager tts-server r-x--- ------
+media-server org.tizen.download-manager -w---- ------
+org.tizen.indicator org.tizen.download-manager rwx--- ------
+org.tizen.quickpanel org.tizen.download-manager r-x--- ------
+org.tizen.lockscreen org.tizen.download-manager r-x--- ------
+system::use_internet org.tizen.download-manager -w---- ------
+tts-server org.tizen.download-manager rw---- ------
+org.tizen.download-manager connman::get rw---- ------
+org.tizen.download-manager telephony_framework::api_ps_public rw---- ------
+org.tizen.download-manager net-config rw---- ------
+org.tizen.download-manager aul::launch --x--- ------
+org.tizen.download-manager svi-data rwx--- ------
diff --git a/org.tizen.download-manager.manifest b/org.tizen.download-manager.manifest
new file mode 100644 (file)
index 0000000..41c3ffd
--- /dev/null
@@ -0,0 +1,14 @@
+<manifest>
+       <define>
+               <domain name="org.tizen.download-manager" />
+       </define>
+       <assign>
+               <filesystem path="/usr/share/applications/org.tizen.download-manager.desktop" label="_" exec_label="none" />
+               <filesystem path="/usr/share/icons/default/small/org.tizen.download-manager.png" label="_" exec_label="none" />
+               <filesystem path="/usr/apps/org.tizen.download-manager/author-signature.xml" label="_" />
+               <filesystem path="/usr/apps/org.tizen.download-manager/signature1.xml" label="_" />
+       </assign>
+       <request>
+               <domain name="org.tizen.download-manager" />
+       </request>
+</manifest>
index 37af162..a575d36 100644 (file)
@@ -1,10 +1,10 @@
-
+%define _ux_define tizen2.3
 Name:  org.tizen.download-manager
 Summary:       Application for support of the content download
-Version:       0.0.1
-Release:       11
-Group:         TO_BE_FILLED_IN
-License:       TO_BE_FILLED_IN
+Version:       0.2.42
+Release:       1
+Group:         misc
+License:       Flora-1.1
 URL:           N/A
 Source0:       %{name}-%{version}.tar.gz
 BuildRequires: pkgconfig(capi-web-url-download)
@@ -12,16 +12,32 @@ BuildRequires: pkgconfig(capi-system-runtime-info)
 BuildRequires: pkgconfig(capi-appfw-application)
 BuildRequires: pkgconfig(capi-network-connection)
 BuildRequires: pkgconfig(capi-content-media-content)
+BuildRequires: pkgconfig(capi-content-mime-type)
+BuildRequires: pkgconfig(capi-base-utils-i18n)
 BuildRequires: pkgconfig(elementary)
-BuildRequires: pkgconfig(aul)
 BuildRequires: pkgconfig(ecore)
-BuildRequires: pkgconfig(bundle)
 BuildRequires: pkgconfig(xdgmime)
-BuildRequires: pkgconfig(icu-i18n)
+BuildRequires: pkgconfig(libcurl)
+BuildRequires: pkgconfig(notification)
+BuildRequires: pkgconfig(appsvc)
+BuildRequires: pkgconfig(sqlite3)
+BuildRequires: pkgconfig(vconf)
+BuildRequires: pkgconfig(utilX)
+BuildRequires: pkgconfig(xproto)
+BuildRequires: pkgconfig(x11)
+BuildRequires: pkgconfig(libxml-2.0)
+BuildRequires: pkgconfig(storage)
+BuildRequires: efl-assist-devel
 BuildRequires: cmake
 BuildRequires: gettext-devel
 BuildRequires: expat-devel
-BuildRequires: edje-tools
+BuildRequires: hash-signer
+Requires(post): coreutils
+Requires(post): sqlite
+Requires(post): sys-assert
+Requires(post): edje-tools
+
+%{echo:#winset style:%{?_ux_define}#}
 
 %description
 Application for support of the content download
@@ -29,62 +45,83 @@ Application for support of the content download
 %prep
 %setup -q
 
-%build
-cmake . -DCMAKE_INSTALL_PREFIX="/opt/apps/org.tizen.download-manager"
+%define _default_path /usr/apps/%{name}
+%define _bin_path %{_default_path}/bin
+%define _res_path %{_default_path}/res
+%define _imagedir %{_res_path}/images
+%if "%{?_ux_define}" == "tizen2.3"
+%define _edjedir %{_res_path}/edje
+%define _tabledir %{_res_path}/tables
+%endif
+%define _localedir %{_res_path}/locale
+%define _pkgxmldir /usr/share/packages
+%define _icondir /usr/share/icons/default/small
+%define _licensedir /usr/share/license
+%define _smackdir /etc/smack/accesses.d
+%define support_oma_drm OFF
+
+%define cmake \
+       CFLAGS="${CFLAGS:-%optflags} -fPIC -D_REENTRANT -fvisibility=hidden"; export CFLAGS \
+       CXXFLAGS="${CXXFLAGS:-%optflags} -fvisibility-inlines-hidden"; export CXXLAGS \
+       FFLAGS="${FFLAGS:-%optflags} -fPIC -fvisibility=hidden"; export FFLAGS \
+       LDFLAGS+=" -Wl,--as-needed -Wl,--hash-style=both"; export LDFLAGS \
+       %__cmake \\\
+               -DCMAKE_INSTALL_PREFIX:PATH=%{_default_path} \\\
+               %if "%{?_lib}" == "lib64" \
+               %{?_cmake_lib_suffix64} \\\
+               %endif \
+               %{?_cmake_skip_rpath} \\\
+               %if "%{?support_oma_drm}" == "ON" \
+               -DSUPPORT_WAITING_RO:BOOL=ON \\\
+               %else \
+               -DSUPPORT_WAITING_RO:BOOL=OFF \\\
+               %endif \
+               %if "%{?_ux_define}" == "tizen2.3" \
+               -DTIZEN_2_3_UX:BOOL=ON \\\
+               %endif \
+               -DPKG_NAME=%{name} \\\
+               -DPKG_VERSION=%{version} \\\
+               -DPKG_RELEASE=%{release} \\\
+               -DSMACK_DIR=%{_smackdir}
 
+%build
+export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
+export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
+%cmake .
 make %{?jobs:-j%jobs}
 
 %install
 rm -rf %{buildroot}
 %make_install
+PKG_ID=%{name}
+%define tizen_sign 1
+%define tizen_sign_base /usr/apps/${PKG_ID}
+%define tizen_sign_level platform
+%define tizen_author_sign 1
+%define tizen_dist_sign 1
+mkdir -p %{buildroot}/usr/share/license
 
 %post
-#### Download History ####
-if [ ! -f /opt/apps/org.tizen.download-manager/data/db/.download-history.db ];
-then
-               sqlite3 /opt/apps/org.tizen.download-manager/data/db/.download-history.db 'PRAGMA journal_mode=PERSIST;
-               create table history(id integer primary key autoincrement, historyid integer, downloadtype integer, contenttype integer, state integer, err integer, name, path, url, cookie, date datetime);'
-fi
-
-chown -R 5000:5000 /opt/apps/org.tizen.download-manager/data
-chmod 660 /opt/apps/org.tizen.download-manager/data/db/.download-history.db
-chmod 660 /opt/apps/org.tizen.download-manager/data/db/.download-history.db-journal
+mkdir -p /opt/usr/apps/org.tizen.download-manager/data/db
+chown -R 5000:5000 /opt/usr/apps/org.tizen.download-manager/data
+chmod -R 755 /opt/usr/apps/org.tizen.download-manager/data
+chsmack -a 'org.tizen.download-manager' /opt/usr/apps/org.tizen.download-manager/data/db
 
 %files
 %defattr(-,root,root,-)
-/opt/apps/org.tizen.download-manager/bin/*
-/opt/apps/org.tizen.download-manager/data
-/opt/apps/org.tizen.download-manager/res/*
-/opt/apps/org.tizen.download-manager/res/edje/*
-/opt/share/packages/org.tizen.download-manager.xml
-
-%changelog
-* Tue Sep 04 2012 Jungki kwak <jungki.kwak@samsung.com>
-- Change the name of application operation
-
-* Mon Sep 03 2012 Jungki Kwak <jungki.kwak@samsung.com>
-- Add deisplay language set
-- Resolve a bug about the name of edc
-
-* Mon Aug 27 2012 Jungki Kwak <jungki.kwak@samsung.com>
-- Change notify winset to selectioninfo winset
-- Apply changes of capi-web-url-download
-- Resolve a prevent defect
-
-* Wed Aug 22 2012 Jungki Kwak <jungki.kwak@samsung.com>
-- Enable to use notification of download CAPI
-- Show the application in case of default service operation
-
-* Mon Aug 17 2012 Jungki Kwak <jungki.kwak@samsung.com>
-- Add https protocol to service uri field
-
-* Mon Aug 16 2012 Jungki Kwak <jungki.kwak@samsung.com>
-- Apply changes of capi-web-url-download
-- Change boilerplates and licence to flora
-
-* Mon Aug 10 2012 Jungki Kwak <jungki.kwak@samsung.com>
-- Do not display installing message
-
-* Fri Aug 03 2012 Jungki Kwak <jungki.kwak@samsung.com>
-- Initial release
+%manifest %{name}.manifest
+%{_bin_path}/*
+%{_imagedir}/*
+%if "%{?_ux_define}" == "tizen2.3" 
+%{_edjedir}/*
+%{_tabledir}/*
+%endif
+%{_localedir}/*
+%{_default_path}/author-signature.xml
+%{_default_path}/signature1.xml
+%{_pkgxmldir}/%{name}.xml
+%{_icondir}/%{name}.png
+%{_licensedir}/%{name}
+%{_smackdir}/%{name}.efl
 
diff --git a/po/ar.po b/po/ar.po
deleted file mode 100644 (file)
index 2f73a05..0000000
--- a/po/ar.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "جاري الإخطار..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "إ. محاولة"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "مدير التحميل"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "الموصف غير صالح"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "لا توجد ملفات محملة"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "كامل"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "غير قادر على فتح ملف"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "تنزيل؟"
-
diff --git a/po/az.po b/po/az.po
deleted file mode 100644 (file)
index 210df03..0000000
--- a/po/az.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Bildirilir..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Yenidən cəhd et"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Yükləmə meneceri"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Yanlış deskriptor"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Yüklmə yoxdur"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "tam"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Faylı açmaq mümkün deyildir"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Yüklənsin?"
-
diff --git a/po/bg.po b/po/bg.po
deleted file mode 100644 (file)
index 4cd1e56..0000000
--- a/po/bg.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Известяване..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Отново"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Диспечер на изтеглянето"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Невалиден дескриптор"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Няма изтегляния"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Завършено"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Файлът не може да се отвори"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Изтегляне?"
-
diff --git a/po/ca.po b/po/ca.po
deleted file mode 100644 (file)
index bf78e84..0000000
--- a/po/ca.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Notificant..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Reintent"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Administrador de descàrregues"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Descriptor no vàlid"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Sense descàrregues"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Finalitzar"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "No s'ha pogut obrir el fitxer"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Descarregar?"
-
diff --git a/po/cs.po b/po/cs.po
deleted file mode 100644 (file)
index 970f5f7..0000000
--- a/po/cs.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Probíhá oznamování..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Opakovat"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Správce stahování"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Chybný deskriptor"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Žádné stažené položky"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Dokončeno"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Soubor nelze otevřít"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Stáhnout?"
-
diff --git a/po/da.po b/po/da.po
deleted file mode 100644 (file)
index 7e991ec..0000000
--- a/po/da.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Giver besked..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Prøv igen"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Downloadstyring"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Ugyldig beskrivelse"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Ingen downloads"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "udført"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Kunne ikke åbne fil"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Download?"
-
diff --git a/po/de_DE.po b/po/de_DE.po
deleted file mode 100644 (file)
index 1d0cd55..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Benachrichtigung..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Ern. vers."
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Download-Manager"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Ungültiger Descriptor"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Keine Downloads"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Abgeschlossen"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Datei kann nicht geöffnet werden"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Herunterladen?"
-
diff --git a/po/el_GR.po b/po/el_GR.po
deleted file mode 100644 (file)
index 9b71a13..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Ειδοποίηση..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Επανάληψη"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Διαχείριση λήψεων"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Μη έγκυρη περιγραφή"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Δεν υπάρχουν λήψεις"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Ολοκληρώθηκε"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Δεν είναι δυνατό το άνοιγμα αρχείου"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Λήψη;"
-
diff --git a/po/en.po b/po/en.po
deleted file mode 100644 (file)
index 0910a1f..0000000
--- a/po/en.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Notifying..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Retry"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Download manager"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Invalid descriptor"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "No downloads"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Complete"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Unable to open file"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Download?"
-
diff --git a/po/en_PH.po b/po/en_PH.po
deleted file mode 100644 (file)
index 0910a1f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Notifying..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Retry"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Download manager"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Invalid descriptor"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "No downloads"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Complete"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Unable to open file"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Download?"
-
diff --git a/po/en_US.po b/po/en_US.po
deleted file mode 100644 (file)
index 0910a1f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Notifying..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Retry"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Download manager"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Invalid descriptor"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "No downloads"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Complete"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Unable to open file"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Download?"
-
diff --git a/po/es_ES.po b/po/es_ES.po
deleted file mode 100644 (file)
index e994881..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Notificando..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Reint."
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Administrador de descarga"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Descriptor no válido"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Sin descargas"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Completo"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "No se puede abrir el archivo"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "¿Descargar?"
-
diff --git a/po/es_US.po b/po/es_US.po
deleted file mode 100644 (file)
index 9fb2308..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Notificando..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Reintentar"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Administrador de descarga"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Descriptor no válido"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Sin descargas"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Completo"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "No se puede abrir el archivo"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "¿Descargar?"
-
diff --git a/po/et.po b/po/et.po
deleted file mode 100644 (file)
index 23ed47f..0000000
--- a/po/et.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Teavitamine..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Uuesti"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Allalaadimishaldur"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Vigane deskriptor"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Allalaadimisi pole"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Valmis"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Faili ei saa avada"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Laadida alla?"
-
diff --git a/po/eu.po b/po/eu.po
deleted file mode 100644 (file)
index b1b6b20..0000000
--- a/po/eu.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Jakinarazten..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Berriro saiatu"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Deskargen kudeatzailea"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Deskriptore baliogabea"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Deskargarik ez"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Osoa"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Ezin izan da fitxategia ireki"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Deskargatu?"
-
diff --git a/po/fi.po b/po/fi.po
deleted file mode 100644 (file)
index ce7f5b5..0000000
--- a/po/fi.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Ilmoitetaan..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Yritä uud."
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Latauksen hallinta"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Virheellinen kuvaus"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Latauksia ei ole"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Valmis"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Tiedostoa ei voi avata"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Ladataanko?"
-
diff --git a/po/fr_CA.po b/po/fr_CA.po
deleted file mode 100644 (file)
index c42e416..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Notification..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Réessayer"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Gestionnaire de téléchargement"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Descripteur non valide"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Aucun téléchargement"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "OK"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Impossible d'ouvrir le fichier"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Télécharger ?"
-
diff --git a/po/fr_FR.po b/po/fr_FR.po
deleted file mode 100644 (file)
index c42e416..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Notification..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Réessayer"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Gestionnaire de téléchargement"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Descripteur non valide"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Aucun téléchargement"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "OK"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Impossible d'ouvrir le fichier"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Télécharger ?"
-
diff --git a/po/ga.po b/po/ga.po
deleted file mode 100644 (file)
index eb341fb..0000000
--- a/po/ga.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Ag cur in iúl"
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Atriail"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Bainisteoir íoslódálacha"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Tuairisceoir neamhbhailí"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Níl íoslódálacha ann"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Comhlíon"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Ní féidir an comhad a oscailt"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Íoslódáil?"
-
diff --git a/po/gl.po b/po/gl.po
deleted file mode 100644 (file)
index fa02da5..0000000
--- a/po/gl.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Notificando..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Reintentar"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Administrador de descargas"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Descritor non válido"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Ningunha descarga"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Completar"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Non se pode abrir o arquivo"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Descargar?"
-
similarity index 63%
rename from po/CMakeLists.txt
rename to po/hd/CMakeLists.txt
index a8256e6..083b474 100644 (file)
@@ -1,10 +1,9 @@
 # for i18n
 
-SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de_DE.po el_GR.po en.po en_PH.po
-       en_US.po es_ES.po es_US.po et.po eu.po fi.po fr_CA.po fr_FR.po ga.po gl.po hi.po
-       hr.po hu.po hy.po is.po it_IT.po ja_JP.po ka.po kk.po ko_KR.po lt.po lv.po mk.po
-       nb.po nl_NL.po pl.po pt_BR.po pt_PT.po ro.po ru_RU.po sk.po sl.po sr.po sv.po
-       tr_TR.po uk.po uz.po zh_CN.po zh_HK.po zh_SG.po zh_TW.po)
+SET(POFILES az.po bg.po ca.po cs.po da.po de.po el_GR.po en.po en_US.po es_ES.po
+       es_US.po et.po eu.po fi.po fr_CA.po fr.po gl.po hr.po hu.po hy.po is.po it_IT.po
+       ka.po kk.po ko_KR.po lt.po lv.po mn_MN.po nb.po nl.po pl.po pt_BR.po pt_PT.po ro.po
+       ru_RU.po sk.po sl.po sr.po sv.po tr_TR.po uk.po uz.po)
 
 SET(MSGFMT "/usr/bin/msgfmt")
 
similarity index 100%
rename from po/POTFILES.in.in
rename to po/hd/POTFILES.in.in
diff --git a/po/hd/az.po b/po/hd/az.po
new file mode 100644 (file)
index 0000000..f2e7c0d
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Fayl qəbul edilmədi. Yenidən yüklənsin?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Fayl mövcud deyil. Yenidən yüklənsin?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Yüklmə yoxdur"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Yaddaş kifayət etmir. Xahiş olunur bəzi elementləri silin"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Yükləmə tamamlandı"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Serverə bildirilir..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Yükləmə meneceri"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Elementləri seç"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Yüklədikdən sonra yüklənənlər burada göstəriləcək."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Yükləmə ləğv edildi"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Yükləmə alınmadı"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Yükləməyə hazırlaşır..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Yükləməyə hazırlaşır..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Cihazınızın yaddaşında kifayət qədər yer yoxdur. Bəzi məlumatları silmək üçün %s parametrlərinə keçin və ya SD kartı daxil edin."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Cihazınızın yaddaşında kifayət qədər yer yoxdur. Boş yer açmaq üçün %s parametrlərinə keçin və yenidən cəhd edin."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "SD kartınızda kifayət qədər yer yoxdur. Bəzi məlumatları silmək üçün %s parametrlərinə keçin və ya defolt yaddaşı Cihaza dəyişin."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "SD kartınızda kifayət qədər yer yoxdur. Bəzi məlumatları silmək üçün %s parametrlərinə keçin və yenidən cəhd edin."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Yaddaşa keç"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Faylı açmaq mümkün olmadı"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "%d fayl silinsin?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Silinsin?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Defolt yaddaş doludur"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Köhnə"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Faylı silin"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Ehtiyat"
+
diff --git a/po/hd/bg.po b/po/hd/bg.po
new file mode 100644 (file)
index 0000000..9a6f76a
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Файлът не е получен. Изтегляне отново?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Файлът не съществува. Изтегляне отново?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Няма изтегляния"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Няма достатъчно памет. Изтрийте някои елементи"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Изтеглянето завършено"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Уведомяв. на сървъра..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Диспечер на изтегляне"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Изберете елементи"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "След като изтеглите елементи, те ще се покажат тук."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Изтеглянето е отменено"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Изтеглянето неуспешно"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Подготвя се за изтегляне..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Подготвя се за изтегляне..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Няма достатъчно място в паметта на устройството ви. Отидете на Настройки на %s, за да изтриете някои данни, или поставете SD карта."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Няма достатъчно място в паметта на устройството ви. Отидете на Настройки на %s, за да освободите място за съхранение, след което опитайте отново."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Няма достатъчно място на вашата SD карта. Отидете на Настройки на %s, за да изтриете данни, или променете мястото за съхранение по подразбиране на Устройство."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Няма достатъчно място на вашата SD карта. Отидете в Настройки на %s, за да изтриете някои данни, след което опитайте отново."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Към Съхраняване"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Файлът не може да се отвори"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Изтриване на %d файла?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Изтриване?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Мястото за съхранение по подразбиране е пълно"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "По-стари"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Изтриване на файл"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Устройство за съхранение на данни"
+
diff --git a/po/hd/ca.po b/po/hd/ca.po
new file mode 100644 (file)
index 0000000..33e9cc3
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "No s'ha rebut el fitxer. Tornar-lo a descarregar?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "El fitxer no existeix. Tornar-lo a descarregar?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Sense descàrregues"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "No hi ha prou memòria. Esborrar-ne alguns elements."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Descàrrega completa"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Notificant servidor..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Administrador descàr"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Seleccionar elements"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Després de descarregar elements, es mostraran aquí"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Descàrrega cancel·lada"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Descàrrega fallida"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Preparant per descarregar..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Preparant per descarregar..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "No hi ha prou espai a l'emmagatzematge del seu dispositiu. Vagi als ajustaments de %s per esborrar algunes dades o insereixi una targeta SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "No hi ha prou espai a l'emmagatzematge del seu dispositiu. Vagi als ajustaments de %s per alliberar espai d'emmagatzematge i torni-ho a intentar."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "No hi ha prou espai a la targeta SD. Vagi als ajustaments de %s per esborrar algunes dades o canviï la ubicació d'emmagatzematge predeterminada a Dispositiu."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "No hi ha prou espai a la targeta SD. Vagi als ajustaments de %s per esborrar dades i torni-ho a intentar."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Anar a emmagatzem"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "No es pot obrir el fitxer"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Esborrar %d fitxers?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Esborrar?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Emmagatzematge predeterminat ple"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Més antic"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Esborrar fitxer"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Emmagatzematge"
+
diff --git a/po/hd/cs.po b/po/hd/cs.po
new file mode 100644 (file)
index 0000000..5ed923a
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Soubor nebyl přijat. Chcete ho stáhnout znovu?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Soubor neexistuje. Chcete ho stáhnout znovu?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Žádné stažené položky"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nedostatek paměti. Odstraňte některé položky"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Stahování dokončeno"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Oznamování serveru..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Správce stahování"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Vyberte položky"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Až stáhnete položky, zobrazí se zde."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Stahování bylo zrušeno"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Stažení se nezdařilo"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Probíhá příprava na stahování..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Probíhá příprava na stahování..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "V paměti zařízení není dostatek volného místa. Přejděte na nastavení %s a odstraňte některá data nebo vložte SD kartu."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "V paměti zařízení není dostatek volného místa. Přejděte na nastavení %s a uvolněte místo. Potom opakujte akci."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Na SD kartě není dostatek volného místa. Přejděte na nastavení %s a odstraňte některá data, nebo změňte výchozí úložiště na Zařízení."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Na SD kartě není dostatek volného místa. Přejděte na nastavení %s a odstraňte některá data, a potom opakujte akci."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Přejít na Úložiště"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Soubor nelze otevřít"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Odstranit %d souborů?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Odstranit?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Výchozí paměť je plná"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Starší"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Odstranit soubor"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Úložiště"
+
diff --git a/po/hd/da.po b/po/hd/da.po
new file mode 100644 (file)
index 0000000..d154200
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Fil ikke modtaget. Download igen?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Fil findes ikke. Download igen?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Ingen downloads"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Der er ikke tilstrækkelig hukommelse. Slet nogle elementer."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Overførsel fuldført"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Underretter server ..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Downloadstyring"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Vælg elementer"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du har hentet elementer, vises de her."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Overførsel annulleret"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Overførsel mislykkedes"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Forbereder overførsel ..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Forbereder overførsel ..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Der er ikke tilstrækkelig plads i din enheds hukommelse. Gå til indstillingerne for %s for at slette data, eller indsæt et SD-kort."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Der er ikke tilstrækkelig plads i din enheds hukommelse. Gå til indstillingerne for %s for at frigøre lagerplads, og prøv igen."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Der er ikke tilstrækkelig plads på dit SD-kort. Gå til indstillingerne for %s for at slette data, eller skift standardlagerplacering til Enhed."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Der er ikke tilstrækkelig plads på dit SD-kort. Gå til %s for at slette data, og prøv igen."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Gå til Lagring"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Kan ikke åbne filen"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Vil du slette %d filer?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Slet?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Standardlager fuldt"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Ældre"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Slet fil"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Lagring"
+
diff --git a/po/hd/de.po b/po/hd/de.po
new file mode 100644 (file)
index 0000000..93b68a6
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Datei nicht erhalten. Erneut herunterladen?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Datei ist nicht vorhanden. Erneut herunterladen?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Keine Downloads"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nicht genügend Speicher. Löschen Sie einige Elemente"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Download beendet"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Benachrichtige Server..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Download-Manager"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Elemente auswählen"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Heruntergeladene Artikel werden hier angezeigt."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Download abgebrochen"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Download fehlgeschlagen"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Herunterladen wird vorbereitet..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Herunterladen wird vorbereitet..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Es ist nicht genügend Gerätespeicher frei. Wechseln Sie zu den %s-Einstellungen und löschen Sie Daten oder legen Sie eine SD-Karte ein."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Es ist nicht genügend Gerätespeicher frei. Wechseln Sie zu den %s-Einstellungen und geben Sie Speicherplatz frei. Versuchen Sie es dann erneut."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Es ist nicht genügend Speicherplatz auf der SD-Karte frei. Wechseln Sie zu den %s-Einstellungen und löschen Sie Daten oder ändern Sie den Standard-Speicherort in „Gerät“."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Es ist nicht genügend Speicherplatz auf der SD-Karte frei. Wechseln Sie zu den %s-Einstellungen und löschen Sie Daten. Versuchen Sie es dann erneut."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Zu „Speicher“"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Datei öffnen nicht möglich."
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "%d Dateien löschen?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Löschen?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Standardspeicher voll."
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Älter"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Datei löschen"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Speicher"
+
diff --git a/po/hd/el_GR.po b/po/hd/el_GR.po
new file mode 100644 (file)
index 0000000..96d83e3
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Δεν έγινε λήψη του αρχείου. Επανάληψη λήψης;"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Το αρχείο δεν υπάρχει. Επανάληψη λήψης;"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Δεν υπάρχουν λήψεις"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Δεν υπάρχει αρκετή μνήμη. Διαγράψτε ορισμένα στοιχεία"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Η λήψη ολοκληρώθηκε"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Ειδοποίηση διακομιστή..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Διαχείριση λήψεων"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Επιλογή στοιχείων"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Τα στοιχεία θα εμφανιστούν εδώ, με τα τη λήψη τους."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Η λήψη ακυρώθηκε"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Αποτυχία λήψης"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Προετοιμασία για λήψη..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Προετοιμασία για λήψη..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Ο χώρος αποθήκευσης της συσκευής σας δεν επαρκεί. Μεταβείτε στις ρυθμίσεις %s για να διαγράψετε ορισμένα δεδομένα ή τοποθετήστε μια κάρτα SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Ο χώρος αποθήκευσης της συσκευής σας δεν επαρκεί. Μεταβείτε στις ρυθμίσεις %s για να ελευθερώσετε λίγο χώρο και, στη συνέχεια, δοκιμάστε ξανά."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Ο χώρος αποθήκευσης της κάρτας SD δεν επαρκεί. Μεταβείτε στις ρυθμίσεις %s, για να διαγράψετε ορισμένα δεδομένα ή αλλάξτε την προεπιλεγμένη θέση αποθήκευσης σε «Συσκευή»."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Ο χώρος αποθήκευσης της κάρτας SD δεν επαρκεί. Μεταβείτε στις ρυθμίσεις %s, για να διαγράψετε ορισμένα δεδομένα και, στη συνέχεια, δοκιμάστε ξανά."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Μτβ σε Χώρο αποθήκ."
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Αδύνατο το άνοιγμα αρχείου"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Να διαγραφούν %d αρχεία;"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Διαγραφή;"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Ο προεπιλεγμένος χώρος αποθήκευσης είναι πλήρης"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Παλαιότερα"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Διαγραφή αρχείου"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Αποθήκευση"
+
diff --git a/po/hd/en.po b/po/hd/en.po
new file mode 100644 (file)
index 0000000..a0fd810
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "File not received. Download again?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "File does not exist. Download again?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "No downloads"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Not enough memory. Delete some items."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Download complete"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Notifying server..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Download manager"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Select items"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you download items, they will be shown here."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Download cancelled"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Download failed"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Preparing to download..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Preparing to download..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "There is not enough space in your device storage. Go to %s settings to delete some data or insert an SD card."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "There is not enough space in your device storage. Go to %s settings to free up some storage space, then try again."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "There is not enough space on your SD card. Go to %s settings to delete some data, or change the default storage location to Device."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "There is not enough space on your SD card. Go to %s settings to delete some data, then try again."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Go to Storage"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Unable to open file"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Delete %d files?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Delete?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Default storage full"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Older"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Delete file"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Storage"
+
diff --git a/po/hd/en_US.po b/po/hd/en_US.po
new file mode 100644 (file)
index 0000000..3b24e91
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "File not received. Download again?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "File does not exist. Download again?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "No downloads"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Not enough memory. Delete some items."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Download complete"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Notifying server..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Download manager"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Select items"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you download items, they will be shown here."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Download canceled"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Download failed"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Preparing to download..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Preparing to download..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "There is not enough space in your device storage. Go to %s settings to delete some data or insert an SD card."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "There is not enough space in your device storage. Go to %s settings to free up some storage space, then try again."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "There is not enough space on your SD card. Go to %s settings to delete some data, or change the default storage location to Device."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "There is not enough space on your SD card. Go to %s settings to delete some data, then try again."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Go to Storage"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Unable to open file"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Delete %d files?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Delete?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Default storage full"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Older"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Delete file"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Storage"
+
diff --git a/po/hd/es_ES.po b/po/hd/es_ES.po
new file mode 100644 (file)
index 0000000..e61f81b
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "No se ha recibido el archivo. ¿Desea volver a descargarlo?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "El archivo no existe. ¿Desea volver a descargarlo?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Sin descargas"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "No hay memoria suficiente. Elimine algunos elementos."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Descarga completa"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Notificando servidor..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Administrador descarga"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Seleccionar elementos"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Después de descargar elementos, se mostrarán aquí"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Descarga cancelada"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Error de descarga"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Preparando para descargar..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Preparando para descargar..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "No hay espacio suficiente en el almacenamiento del dispositivo. Vaya a ajustes de %s para eliminar algunos datos o inserte una tarjeta SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "No hay espacio suficiente en el almacenamiento del dispositivo. Vaya a ajustes de %s para liberar espacio y, a continuación, inténtelo de nuevo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "No hay espacio suficiente en la tarjeta SD. Vaya a ajustes de %s para eliminar algunos datos o cambie la ubicación de almacenamiento predeterminada al dispositivo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "No hay espacio suficiente en la tarjeta SD. Vaya a ajustes de %s para eliminar algunos datos y, a continuación, inténtelo de nuevo."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Ir al almacenamiento"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "No se puede abrir el archivo"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "¿Desea eliminar %d archivos?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "¿Eliminar?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Almacenamiento predeterminado lleno"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Más antiguo"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Eliminar archivo"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Almacenamiento"
+
diff --git a/po/hd/es_US.po b/po/hd/es_US.po
new file mode 100644 (file)
index 0000000..17bfc4f
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Archivo no recibido. ¿Descargar nuevamente?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "El archivo no existe. ¿Descargar nuevamente?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Sin descargas"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Memoria insuficiente. Elimine algunos elementos"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Descarga completa"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Notificando servidor..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Admin. de descargas"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Seleccionar archivos"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Después de descargar elementos, se mostrarán aquí."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Descarga cancelada"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Error al descargar"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Preparándose para descargar..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Preparándose para descargar..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "No queda suficiente espacio en el dispositivo de almacenamiento. Vaya a Configuración de %s para eliminar algunos datos o inserte una tarjeta de memoria."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "No queda suficiente espacio en el dispositivo de almacenamiento. Vaya a Configuración de %s para liberar espacio y, a continuación, inténtelo de nuevo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "No queda suficiente espacio en la tarjeta de memoria. Vaya a Configuración de %s para eliminar algunos datos o cambie la ubicación de almacenamiento predeterminada del dispositivo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "No queda suficiente espacio en la tarjeta de memoria. Vaya a Configuración de %s para eliminar algunos datos y, a continuación, inténtelo de nuevo."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Ir al Almacenamiento"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "No se puede abrir el archivo"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "¿Desea eliminar los archivos de %d?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "¿Eliminar?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Almacenamiento predeterminado lleno"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Más antiguo"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Eliminar archivo"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Almacenamiento"
+
diff --git a/po/hd/et.po b/po/hd/et.po
new file mode 100644 (file)
index 0000000..443c58b
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Faili ei võetud vastu. Kas laadida uuesti alla?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Faili pole olemas. Kas laadida uuesti alla?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Allalaadimisi pole"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Mälu pole piisavalt. Kustutage mõned üksused"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Allalaadimine on lõpule viidud"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Serveri teavitamine..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Allalaadimishaldur"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Vali üksusi"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Uksused kuvatakse siin parast nende allalaadimist."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Allalaadimine tühistati"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Allalaadimine nurjus"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Allalaadimiseks valmistumine..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Allalaadimiseks valmistumine..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Seadme mälus pole piisavalt ruumi. Avage menüü %s seaded, et kustutada mõned andmed, või paigaldage SD-kaart."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Seadme mälus pole piisavalt ruumi. Avage menüü %s seaded, et vabastada mäluruumi, ning seejärel proovige uuesti."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Teie SD-kaardil pole piisavalt ruumi. Avage menüü %s seaded, et kustutada mõned andmed, või muutke vaikemälu asukohaks Seade."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Teie SD-kaardil pole piisavalt ruumi. Avage menüü %s seaded, et kustutada mõned andmed, ning seejärel proovige uuesti."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Ava menüü Mälu"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Faili ei saa avada"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Kas kustutada %d faili?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Kustutada?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Vaikemälu on täis"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Vanemad"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Kustuta fail"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Hoiundamine"
+
diff --git a/po/hd/eu.po b/po/hd/eu.po
new file mode 100644 (file)
index 0000000..8f6fbf7
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Fitxategiak ez da jaso. Deskargatu berriz?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Fitxategiak ez du existitzen. Deskargatu berriz?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Deskargarik ez"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Ez dago memoria nahikoa. Elementu batzuk ezabatu."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Deskarga osatuta"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Zerbitz. jakinarazten..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Deskargen kudeatzailea"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Aukeratu elementuak"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Elementuak deskargatu ondoren, hemen erakutsiko dira"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Deskarga utzita"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Deskargak huts egin du"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Deskargatzeko prestatzen..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Deskargatzeko prestatzen..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Ez dago nahikoa espazio zure gailuaren memorian. Joan %s ezarpenetara, hainbat datu ezabatzeko edo sartu SD txartel bat."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Ez dago nahikoa espazio zure gailuaren memorian. Joan %s ezarpenetara, hainbat memoria espazio libratzeko, eta saiatu berriz."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Ez dago nahikoa espazio zure SD txartelean. Joan %s ezarpenetara, hainbat datu ezabatzeko edo lehenetsitako biltegiratze kokapena Gailura aldatzeko."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Ez dago nahikoa espazio zure SD txartelean. Joan %s ezarpenetara, hainbat datu ezabatzeko eta saiatu berriz."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Joan Biltegira."
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Ezin izan da fitxategia ireki"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Ezabatu %d fitxategi?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Ezabatu?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Biltegi lehenetsia beteta"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Zaharragoa"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Ezabatu fitxategia"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Biltegiratzea"
+
diff --git a/po/hd/fi.po b/po/hd/fi.po
new file mode 100644 (file)
index 0000000..08cf174
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Tiedostoa ei ole vastaanotettu. Ladataanko uudelleen?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Tiedostoa ei ole. Ladataanko uudelleen?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Latauksia ei ole"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Muisti ei riitä. Poista joitain kohteita."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Lataus valmis"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Ilmoit. palvelimelle..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Latauksen hallinta"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Valitse kohteet"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kohteet näytetään täällä, kun olet ladannut ne."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Lataus peruutettu"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Lataus epäonnistui"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Valmistellaan lataamista..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Valmistellaan lataamista..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Laitteen muistissa ei ole tarpeeksi tilaa. Siirry %s Asetukset -kohtaan ja poista tietoja tai aseta laitteeseen SD-kortti."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Laitteen muistissa ei ole tarpeeksi tilaa. Siirry %s Asetukset -kohtaan, vapauta tallennustilaa ja yritä uudelleen."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "SD-kortilla ei ole tarpeeksi tilaa. Siirry %s Asetukset -kohtaan ja poista tietoja tai vaihda oletustallennuspaikaksi Laite."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "SD-kortilla ei ole tarpeeksi tilaa. Siirry %s Asetukset -kohtaan, poista tietoja ja yritä uudelleen."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Siirry tall.tilaan"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Tiedostoa ei voi avata"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Poistetaanko %d tiedostoa?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Poistetaanko?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Oletustallennussijainti täynnä"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Vanhempi"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Poista tiedosto"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Tallennustila"
+
diff --git a/po/hd/fr.po b/po/hd/fr.po
new file mode 100644 (file)
index 0000000..66f733e
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Fichier non reçu. Télécharger à nouveau ?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Le fichier n'existe pas. Télécharger à nouveau ?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Aucun téléchargement"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Mémoire insuffisante. Supprimez certains éléments."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Téléchargement terminé"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Notification serveur..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Gestionnaire téléch."
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Sélectionner éléments"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Les éléments téléchargés seront affichés ici."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Téléchargement annulé"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Echec du téléchargement"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Préparation du téléchargement..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Préparation du téléchargement..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Espace insuffisant sur votre appareil. Accédez aux paramètres %s pour supprimer des données ou insérez une carte SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Espace insuffisant sur votre appareil. Accédez aux paramètres %s pour libérer de l'espace, puis réessayez."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Espace insuffisant sur votre carte SD. Accédez aux paramètres %s pour supprimer des données ou définissez votre appareil comme espace de stockage par défaut."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Espace insuffisant sur votre carte SD. Accédez aux paramètres %s pour supprimer des données, puis réessayez."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Accéder au stockage"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Impossible d'ouvrir le fichier"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Supprimer %d fichiers ?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Supprimer ?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Stockage par défaut saturé"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Ancien"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Supprimer le fichier"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Stockage"
+
diff --git a/po/hd/fr_CA.po b/po/hd/fr_CA.po
new file mode 100644 (file)
index 0000000..3c2fa27
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Fichier non reçu. Télécharger à nouveau ?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Le fichier n'existe pas. Télécharger à nouveau ?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Aucun téléchargement"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Mémoire insuffisante. Supprimez certains éléments"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Téléchargement terminé"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Notification serveur..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Gestionnaire téléch."
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Sélectionner éléments"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Les éléments téléchargés seront affichés ici."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Téléchargement annulé"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Échec du téléchargement"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Préparation du téléchargement..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Préparation du téléchargement..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Espace insuffisant sur votre appareil. Accédez aux paramètres %s pour supprimer des données ou insérez une carte SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Espace insuffisant sur votre appareil. Accédez aux paramètres %s pour libérer de l'espace, puis réessayez."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Espace insuffisant sur votre carte SD. Accédez aux paramètres %s pour supprimer des données ou définissez votre appareil comme espace de stockage par défaut."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Espace insuffisant sur votre carte SD. Accédez aux paramètres %s pour supprimer des données, puis réessayez."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Accéder au stockage"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Impossible d'ouvrir le fichier"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Supprimer %d fichiers ?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Supprimer ?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Stockage par défaut saturé"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Ancien"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Supprimer le fichier"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Stockage"
+
diff --git a/po/hd/gl.po b/po/hd/gl.po
new file mode 100644 (file)
index 0000000..9c1107b
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "O arquivo non se recibiu. Desexas descargalo de novo?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "O arquivo non existe. Desexas descargalo de novo?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Ningunha descarga"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Non hai suficiente memoria. Elimine algúns elementos."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Descarga completa"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Notifica. ao servidor..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Administrad. descargas"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Seleccionar elementos"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Despois de descargar elementos, estes amosaranse aquí"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Descarga cancelada"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Erro na descarga"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Preparando para descargar..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Preparando para descargar..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Non hai espazo suficiente no almacenamento do teu dispositivo. Vai a %s axustes para eliminar algúns dos datos ou inserir unha tarxeta SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Non hai espazo suficiente no almacenamento do teu dispositivo. Vai a %s axustes para liberar espazo de almacenamento e, a continuación, téntao de novo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Non hai espazo suficiente na túa tarxeta SD. Vai a %s axustes para eliminar algúns dos datos ou cambia a localización de almacenamento predeterminada a Dispositivo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Non hai espazo suficiente na túa tarxeta SD. Vai a %s axustes para eliminar algúns dos datos e, a continuación, téntao de novo."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Ir ao Almacenamento"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Non se pode abrir o arquivo"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Desexas eliminar %d arquivos?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Eliminar?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Almacenamento predeterminado cheo"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Máis antigo"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Eliminar arquivo"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Almacenamento"
+
diff --git a/po/hd/hr.po b/po/hd/hr.po
new file mode 100644 (file)
index 0000000..ec5d151
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Datoteka nije primljena. Ponovno skinuti?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Datoteka ne postoji. Ponovno skinuti?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Nema skidanja"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nedovoljno memorije. Obrišite neke datoteke"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Skidanje dovršeno"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Obavij. poslužitelja..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Upravitelj skidanja"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Odaberite stavke"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Stavke će se prikazati ovdje nakon što ih skinete."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Preuzimanje prekinuto"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Skidanje neuspješno"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Priprema za preuzimanje..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Priprema za preuzimanje..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Nema dovoljno prostora u memoriji uređaja. Idite na %s postavke da biste izbrisali neke podatke ili umetnite SD karticu."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Nema dovoljno prostora u memoriji uređaja. Idite na %s postavke da biste oslobodili memoriju, a zatim pokušajte ponovno."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Nema dovoljno prostora na SD kartici. Idite na %s postavke da biste izbrisali neke podatke ili promijenite zadano mjesto spremanja na Uređaju."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Nema dovoljno prostora na SD kartici. Idite na %s postavke da biste izbrisali neke podatke, a zatim pokušajte ponovno."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Idi u Memoriju"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Nije moguće otvoriti datoteku"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Izbrisati %d datoteke?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Obrisati?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Zadana memorija puna"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Starije"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Izbriši datoteku"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Spremanje"
+
diff --git a/po/hd/hu.po b/po/hd/hu.po
new file mode 100644 (file)
index 0000000..732e24c
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "A fájl nincs letöltve. Letölti újból?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "A fájl nem létezik. Letölti újból?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Nincsenek letöltések"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Kevés a memória. Töröljön néhány tételt"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "A letöltés befejeződött"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Szerver értesítése..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Letöltéskezelő"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Jelöljön ki tételeket"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Itt jelennek majd meg a letöltött tételei."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Letöltés megszakítva"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Sikertelen letöltés"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Letöltés előkészítése..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Letöltés előkészítése..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Nincs elég hely az eszköz tárhelyén. Nyissa meg a(z) %s beállításait, és töröljön adatokat, vagy helyezzen be SD-kártyát."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Nincs elég hely az eszköz tárhelyén. Nyissa meg a(z) %s beállításait, szabadítson fel tárterületet, majd próbálja újra."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Nincs elég hely az SD-kártyán. Nyissa meg a(z) %s beállításait, és töröljön adatokat, vagy válassza ki alapértelmezett tárhelyként az Eszközt."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Nincs elég hely az SD-kártyán. Nyissa meg a(z) %s beállításait, és töröljön adatokat, majd próbálja újra."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Tárhely megnyitása"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Nem lehet megnyitni a fájlt"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Biztosan töröl %d fájlt?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Törli?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Az alapértelmezett tárhely megtelt"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Régebbi"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Fájl törlése"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Tárhely"
+
diff --git a/po/hd/hy.po b/po/hd/hy.po
new file mode 100644 (file)
index 0000000..5f47410
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Ֆայլը չի ստացվել. ներբեռնե՞լ նորից:"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Ֆայլը գոյություն չունի. ներբեռնե՞լ նորից:"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Ներբեռնումներ չկան"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Հիշողությունը չի բավարարում: Ջնջեք որոշ տարրեր"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Ներբեռնումն ավարտվեց"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Սերվերը ծանուցվում է..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Ներբեռնման կառավարիչ"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Ընտրել տարրեր"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Ապրանքներ ներբեռնելուց հետո դրանք կցուցադրվեն այստեղ:"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Ներբեռնումը դադարեցված է"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Ներբեռնումը ձախողվեց"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Պատրաստվում է ներբեռնել..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Պատրաստվում է ներբեռնել..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Ձեր սարքի պահոցում բավարար տեղ չկա: Գնացեք %s դրվածքներ՝ որոշ տվյալներ վերացնելու համար, կամ մտցրեք SD քարտ:"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Ձեր սարքի պահոցում բավարար տեղ չկա: Գնացեք %s դրվածքներ՝ որոշ հիշողության տիրույթ ազատելու համար, հետո նորից փորձեք:"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Ձեր SD քարտում բավարար տեղ չկա: Գնացեք %s դրվածքներ՝ որոշ տվյալներ վերացնելու համար, կամ կանխադրված պահման տեղը փոխեք «Սարք»-ի:"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Ձեր SD քարտում բավարար տեղ չկա: Գնացեք %s դրվածքներ՝ որոշ տվյալներ վերացնելու համար, հետո նորից փորձեք:"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Գնալ Պահոց"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Անհնար է բացել ֆայլը"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Վերացնե՞լ %d ֆայլ:"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Ջնջե՞լ"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Կանխադրված պահոցը լիքն է"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Ավելի հին"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Վերացնել ֆայլ"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Պահոց"
+
diff --git a/po/hd/is.po b/po/hd/is.po
new file mode 100644 (file)
index 0000000..040de80
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Skráin var ekki móttekin. Viltu sækja hana aftur?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Skráin er ekki til. Viltu sækja hana aftur?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Ekkert niðurhal"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Ekki er nægt minni. Eyðið nokkrum atriðum."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Niðurhali lokið"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Tilkynni þjóni..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Stjórnun niðurhals"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Velja hluti"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Atriði birtast hér eftir að þeim er hlaðið niður."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Hætt við niðurhal"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Niðurhal mistókst"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Undirbý niðurhal..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Undirbý niðurhal..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Ekki er nægt rými í geymslu tækisins. Opnaðu stillingar „%s“ til að eyða gögnum eða settu SD-kort í."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Ekki er nægt rými í geymslu tækisins. Opnaðu stillingar „%s“ til að losa rými og reyndu svo aftur."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Ekki er nægt rými á SD-kortinu. Opnaðu stillingar „%s“ til að eyða gögnum eða gerðu geymslu tækisins að sjálfgefinni geymslu."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Ekki er nægt rými á SD-kortinu. Opnaðu stillingar „%s“ til að eyða gögnum og reyndu svo aftur."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Opna geymslu"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Ekki er hægt að opna skrána"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Eyða %d skrám?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Á að eyða?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Sjálfgefin geymsla er full"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Eldra"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Eyða skrá"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Geymsla"
+
diff --git a/po/hd/it_IT.po b/po/hd/it_IT.po
new file mode 100644 (file)
index 0000000..069c6f3
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "File non ricevuto. Scaricarlo di nuovo?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Il file non esiste. Scaricarlo di nuovo?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Nessun download"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Memoria insufficiente. Eliminare alcuni elementi."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Download completato"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Invio notifiche..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Download manager"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Seleziona elementi"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Gli elementi scaricati verranno visualizzati qui."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Download annullato"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Download non riuscito"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Preparazione al download in corso..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Preparazione al download in corso..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Spazio insufficiente sulla memoria del dispositivo. Andate alle impostazioni di %s per eliminare alcuni dati o inserite una scheda SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Spazio insufficiente sulla memoria del dispositivo. Andate alle impostazioni di %s per liberare dello spazio in memoria e riprovate."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Spazio insufficiente sulla scheda SD. Andate alle impostazioni di %s per eliminare alcuni dati oppure impostate la posizione di memoria predefinita in Dispositivo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Spazio insufficiente sulla scheda SD. Andate alle impostazioni di %s per eliminare alcuni dati e riprovate."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Vai alla memoria"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Impossibile aprire file"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Eliminare %d file?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Eliminare?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Memoria predefinita piena"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Precedenti"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Elimina file"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Memoria"
+
diff --git a/po/hd/ka.po b/po/hd/ka.po
new file mode 100644 (file)
index 0000000..76bc054
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "ფაილი არ არის მიღებული. თავიდან ჩამოტვირთავთ?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "ფაილი არ არსებობს. თავიდან ჩამოტვირთავთ?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "არაფერია ჩამოტვირთული"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "მეხსიერება საკმარისი არაა. წაშალეთ ზოგიერთი ელემენტი"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "ჩამოტვირთვა დასრულდა"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "იგზავნება შეტყობინება..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "ჩამოტვირთვის მმართველი"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "ელემენტების არჩევა"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ჩამოტვირთვის შემდეგ შენაძენები გამოჩნდება აქ."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "ჩამოტვირთვა შეწყდა"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "ვერ ჩამოიტვირთა"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "მზადდება ჩამოსატვირთად..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "მზადდება ჩამოსატვირთად..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "აპარატის მეხსიერებაში არ არის საკმარისი ადგილი. გახსენით %s პარამეტრები და წაშალეთ ზოგიერთი მონაცემი, ან ჩადეთ SD ბარათი."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "აპარატის მეხსიერებაში არ არის საკმარისი ადგილი. გახსენით %s პარამეტრები და გაათავისუფლეთ ადგილი მეხსიერებაში, შემდეგ კი ისევ სცადეთ."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "SD ბარათზე არ არის საკმარისი ადგილი. გახსენით %s პარამეტრები და წაშალეთ ზოგიერთი მონაცემი, ან შენახვის ნაგულისხმევ ადგილად აირჩიეთ მოწყობილობა."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "SD ბარათზე არ არის საკმარისი ადგილი. გახსენით %s პარამეტრები და წაშალეთ ზოგიერთი მონაცემი, შემდეგ კი ისევ სცადეთ."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "საცავზე გადასვლა"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "ფაილი ვერ იხსნება"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "წაიშალოს %d ფაილი?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "წაიშალოს?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "აპარატის მეხსიერება სავსეა"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "შედარებით ძველი"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "ფაილის წაშლა"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "მეხსიერება"
+
diff --git a/po/hd/kk.po b/po/hd/kk.po
new file mode 100644 (file)
index 0000000..5ba20a1
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Файл алынбады. Қайта жүктеу керек пе?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Файл жоқ. Қайта жүктеу керек пе?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Жүктеулер жоқ"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Жад жетыспейт.Көп арналы жою."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Жүктеу аяқталды"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Серверге хабар-да..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Жүктеулер реттеушісі"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Элементтер таңдау"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Элементтерді жүктеп алған соң, олар осында көрсетіледі."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Жүктеуден бас тартылды"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Жүктеу орындалмады"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Жүктеуге дайындалуда..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Жүктеуге дайындалуда..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Құрылғы жадында бос орын жеткіліксіз. Кейбір деректерді жою немесе SD картасын енгізу үшін, %s параметріне өтіңіз."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Құрылғы жадында бос орын жеткіліксіз. Сақтау орнын босату үшін, %s параметріне өтіп, әрекетті қайталаңыз."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "SD картасында бос орын жеткіліксіз. Кейбір деректерді жою немесе әдепкі сақтау орнын құрылғыға өзгерту үшін, %s параметріне өтіңіз."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "SD картасында бос орын жеткіліксіз. Кейбір деректерді жою үшін, %s параметріне өтіңіз, содан кейін әрекетті қайталаңыз."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Қоймаға өту"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Файлды ашу мүмкін емес"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "%d файлды жоясыз ба?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Өшіресіз бе?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Әдепкі сақтау орны толы"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Ескірек"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Файлды жою"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Сақтау орны"
+
diff --git a/po/hd/ko_KR.po b/po/hd/ko_KR.po
new file mode 100644 (file)
index 0000000..45d9379
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "파일을 다운로드할 수 없습니다. 다시 다운로드할까요?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "파일이 없습니다. 다시 다운로드할까요?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "다운로드 항목이 없습니다"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "저장공간이 부족합니다. 일부 항목을 삭제하세요."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "다운로드 완료"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "서버에 알리는 중..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "다운로드 관리자"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "항목 선택"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "항목을 다운로드하면 여기에 표시됩니다."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "다운로드 취소"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "다운로드 안 됨"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "다운로드 준비 중..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "다운로드 준비 중..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "디바이스에 저장공간이 부족합니다. %s 설정에서 일부 데이터를 삭제하거나 SD 카드를 삽입하세요."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "디바이스에 저장공간이 부족합니다. %s 설정에서 저장공간을 확보하고 다시 시도하세요."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "SD 카드에 저장공간이 부족합니다. %s 설정에서 일부 데이터를 삭제하거나 기본 저장 위치를 디바이스로 변경하세요."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "SD 카드에 저장공간이 부족합니다. %s 설정에서 일부 데이터를 삭제하고 다시 시도하세요."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "저장공간으로 이동"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "파일을 열 수 없음"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "파일 %d개를 삭제할까요?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "삭제할까요?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "기본 저장공간 모두 사용"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "오래된 항목"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "파일 삭제"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "저장공간"
+
diff --git a/po/hd/lt.po b/po/hd/lt.po
new file mode 100644 (file)
index 0000000..e0b5ba0
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Failas negautas. Atsisiųsti dar kartą?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Failo nėra. Atsisiųsti dar kartą?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Nėra atsisiuntimų"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nepakanka atminties. Ištrinkite kai kuriuos elementus"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Atsisiuntimas baigtas"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Pranešama serveriui..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Atsisiuntimų tvarkyt."
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Pasirinkti elementų"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Atsisiuntus elementų, jie bus rodomi čia."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Atsisiuntimas atšauktas"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Atsisiųsti nepavyko"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Ruošiamasi atsisiųsti..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Ruošiamasi atsisiųsti..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Įrenginio saugykloje nepakanka vietos. Eikite į %s nustatymus ir ištrinkite kai kuriuos duomenis arba įdėkite SD kortelę."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Įrenginio saugykloje nepakanka vietos. Eikite į %s nustatymus ir atlaisvinkite šiek tiek vietos, tada bandykite dar kartą."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Jūsų SD kortelėje nepakanka vietos. Eikite į %s nustatymus ir ištrinkite kai kuriuos duomenis arba pakeiskite numatytąją saugyklos vietą į įrenginį."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Jūsų SD kortelėje nepakanka vietos. Eikite į %s nustatymus ir ištrinkite kai kuriuos duomenis, tada bandykite dar kartą."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Eikite į saugyklą"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Neįmanoma atidaryti failo"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Trinti %d failus?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Ar trinti?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Numatytoji saugykla pilna"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Senesni"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Trinti failą"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Saugykla"
+
diff --git a/po/hd/lv.po b/po/hd/lv.po
new file mode 100644 (file)
index 0000000..45d5b3d
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Fails netika saņemts. Vai lejupielādēt vēlreiz?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Šāda faila nav. Vai lejupielādēt vēlreiz?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Nav lejupielāžu"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nepietiek atmiņas. Izdzēsiet dažus vienumus"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Lejupielāde pabeigta"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Informē serveri..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Lejupielāžu pārvaldn."
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Izvēlēties objektus"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Pēc objektu lejupielādes tie tiks parādīti šeit."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Lejupielāde ir atcelta"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Lejupielāde neizdevās"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Sagatavojas lejupielādēt..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Sagatavojas lejupielādēt..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Ierīces krātuvē nepietiek vietas. Atveriet %s iestatījumi, lai izdzēstu daļu datu, vai ievietojiet SD karti."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Ierīces krātuvē nepietiek vietas. Atveriet %s iestatījumi, lai atbrīvotu vietu krātuvē, un pēc tam mēģiniet vēlreiz."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "SD kartē nepietiek vietas. Atveriet %s iestatījumi, lai izdzēstu daļu datu, vai mainiet noklusējuma krātuves vietu uz Ierīce."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "SD kartē nepietiek vietas. Atveriet %s iestatījumi, lai izdzēstu daļu datu, un pēc tam mēģiniet vēlreiz."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Atvērt krātuvi"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Nevar atvērt failu"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Vai izdzēst %d failus?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Vai dzēst?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Noklusējuma krātuve ir pilna"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Vecāki"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Dzēst failu"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Krātuve"
+
diff --git a/po/hd/mn_MN.po b/po/hd/mn_MN.po
new file mode 100644 (file)
index 0000000..c9dfe1f
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Файл хүлээн аваагүй. Ахин татаж авах уу?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Файл байхгүй байна. Ахин татаж авах уу?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Татац байхгүй"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Санах ой хангалтгүй байна. Зарим зүйлийг устга."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Татан авалт дууссан"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Серверт мэдэгдэж б.на..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Татаж авах удирдлага"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Зүйлсийг сонгох"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Таныг зүйлс татаж авсны дараа, тэд энд харагдана"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Татаж авахыг цуцалсан"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Татаж авч чадсангүй"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Татаж авахаар бэлтгэж байна..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Татаж авахаар бэлтгэж байна..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Таны төхөөрөмжийн хадгалалтад зай хангалтгүй байна. Зарим өгөгдлийг устгах эсвэл SD карт хийхийн тулд %s тохиргоо руу оч."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Таны төхөөрөмжийн хадгалалтад зай хангалтгүй байна. %s тохиргоо руу очиж хадгалалтын хэсэг зай чөлөөлөөд, дахин оролд."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Таны SD картанд зай хангалтгүй байна. Зарим өгөгдлийг устгах эсвэл хадгалалтын өгөгдмөл байрлалыг Төхөөрөмж болгон өөрчлөхийн тулд %s тохиргоо руу оч."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Таны SD картанд зай хангалтгүй байна. %s тохиргоо руу очиж зарим өгөгдлийг устгаад, дахин оролд."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Хадгалалт руу очих"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Файл нээх боломжгүй"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "%d файлыг устгах уу?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Устгах уу?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Өгөгдмөл хадгалалт дүүрэн"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Хуучивтар"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Файл устгах"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Санах байгууламж"
+
diff --git a/po/hd/nb.po b/po/hd/nb.po
new file mode 100644 (file)
index 0000000..50693b3
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Filen ble ikke mottatt. Laste ned på nytt?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Filen finnes ikke. Laste ned på nytt?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Ingen nedlastinger"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Ikke nok minne. Slett noen elementer."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Nedlasting fullført"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Varsler tjener..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Nedlastingsbehandling"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Merk elementer"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du har lastet ned elementer, vil de vises her."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Nedlasting avbrutt"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Nedlastingen mislyktes"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Forbereder nedlasting..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Forbereder nedlasting..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Det er ikke nok plass i enhetsminnet. Gå til %s-innstillinger for å slette noen data, eller sett inn et SD-kort."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Det er ikke nok plass i enhetsminnet. Gå til %s-innstillinger for å frigjøre lagringsplass, og prøv på nytt."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Det er ikke nok plass på SD-kortet. Gå til %s-innstillinger for å slette noen data, eller endre standard lagringsplassering til Enhet."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Det er ikke nok plass på SD-kortet. Gå til %s-innstillinger for å slette noen data, og prøv på nytt."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Gå til Lagring"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Kan ikke åpne fil"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Vil du slette %d filer?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Slette?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Standardlagringsplass full"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Eldre"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Slett fil"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Lagring"
+
diff --git a/po/hd/nl.po b/po/hd/nl.po
new file mode 100644 (file)
index 0000000..6615487
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Bestand niet ontvangen. Opnieuw downloaden?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Bestand bestaat niet. Opnieuw downloaden?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Geen downloads"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Onvoldoende geheugen. Wis een aantal items."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Downloaden voltooid"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Melden aan server..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Downloadmanager"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Items selecteren"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nadat u items hebt gedownload, worden ze hier getoond."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Download geannuleerd"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Downloaden mislukt"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Voorbereiden voor downloaden..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Voorbereiden voor downloaden..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Er is onvoldoende ruimte in uw apparaatopslag. Ga naar de instellingen voor %s om gegevens te verwijderen of plaats een SD-kaart."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Er is onvoldoende ruimte in uw apparaatopslag. Ga naar de instellingen voor %s om opslagruimte vrij te maken en probeer het opnieuw."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Er is onvoldoende ruimte op uw SD-kaart. Ga naar de instellingen voor %s om gegevens te verwijderen of de standaard opslaglocatie te wijzen in Apparaat."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Er is onvoldoende ruimte op uw SD-kaart. Ga naar de instellingen voor %s om gegevens te verwijderen en probeer het opnieuw."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Ga naar Opslag"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Kan het bestand niet openen"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "%d bestanden verwijderen?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Verwijderen?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Standaardopslag vol"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Ouder"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Bestand verwijderen"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Opslag"
+
diff --git a/po/hd/pl.po b/po/hd/pl.po
new file mode 100644 (file)
index 0000000..d978305
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Nie otrzymano pliku. Pobrać ponownie?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Plik nie istnieje. Pobrać ponownie?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Brak pobranych elementów"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Brak pamięci. Usuń niektóre elementy"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Pobieranie zakończone"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Powiadamianie serwera..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Menedżer pobierania"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Wybierz elementy"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Elementy zostaną tu wyświetlone po ich pobraniu."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Anulowano pobieranie"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Pobieranie nie powiodło się"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Przygotowywanie do pobierania..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Przygotowywanie do pobierania..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Za mało miejsca w pamięci urządzenia. Wejdź do ustawień w menu %s i usuń część danych lub włóż kartę pamięci."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Za mało miejsca w pamięci urządzenia. Wejdź do ustawień w menu %s i zwolnij trochę miejsca, a następnie spróbuj ponownie."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Za mało miejsca na karcie pamięci. Wejdź do ustawień w menu %s i usuń część danych lub zmień domyślną lokalizację pamięci na Urządzenie."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Za mało miejsca na karcie pamięci. Wejdź do ustawień w menu %s i usuń część danych, a następnie spróbuj ponownie."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Przejdź do Pamięci"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Nie można otworzyć pliku"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Usunąć następującą liczbę plików: %d?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Usunąć?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Domyślna pamięć pełna"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Starsze"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Usuwanie pliku"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Domyślna pamięć"
+
diff --git a/po/hd/pt_BR.po b/po/hd/pt_BR.po
new file mode 100644 (file)
index 0000000..b695dd0
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Arquivo não recebido. Baixar novamente?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "O arquivo não existe. Baixar novamente?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Não há downloads"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Memória insuficiente. Apague alguns itens"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Download concluído"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Notificando servidor..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Gerenciador download"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Selecionar itens"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Após baixar itens, eles serão exibidos aqui."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Download cancelado"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Falha no download"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Preparando para baixar..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Preparando para baixar..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Não existe espaço suficiente no armazenamento do seu dispositivo. Vá para configurações de %s para excluir alguns dados ou insira um cartão SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Não existe espaço suficiente no armazenamento do dispositivo. Vá para configurações de %s para liberar algum espaço de armazenamento e tente novamente."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Não existe espaço suficiente no seu cartão SD. Vá para configurações de %s para excluir alguns dados ou alterar o local de armazenamento padrão para o Dispositivo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Não existe espaço suficiente no cartão SD. Vá para as configurações de %s para excluir alguns dados e tente novamente."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Ir ao Armazenamento"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Não é possível abrir o arquivo"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Excluir %d arquivos?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Apagar?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Armazenamento padrão cheio"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Mais antigo"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Excluir arquivo"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Armazenamento"
+
diff --git a/po/hd/pt_PT.po b/po/hd/pt_PT.po
new file mode 100644 (file)
index 0000000..268186a
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Ficheiro não recebido. Transferir de novo?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "O ficheiro não existe. Transferir de novo?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Nenhumas transferências"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Memória insuficiente. Apague alguns itens."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Transferência concluída"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "A notificar servidor..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Gestor transferências"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Seleccionar itens"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Depois de transferir itens, estes serão mostrados aqui."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Transferência cancelada"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "A transferência falhou"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "A preparar para transferir..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "A preparar para transferir..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Não existe espaço suficiente no armazenamento do dispositivo. Vá para as definições de %s para eliminar alguns dados ou introduza um cartão SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Não existe espaço suficiente no armazenamento do dispositivo. Vá para as definições de %s para libertar algum espaço de armazenamento, e depois tente novamente."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Não existe espaço suficiente no seu cartão SD. Vá para as definições de %s para eliminar alguns dados ou altere a localização de armazenamento padrão para o Dispositivo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Não existe espaço suficiente no seu cartão SD. Vá para as definições de %s para eliminar alguns dados e depois tente novamente."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Ir p/ Armazenamento"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Impossível abrir ficheiro"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Eliminar %d ficheiros?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Eliminar?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Memória padrão cheia"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Mais antigo"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Eliminar ficheiro"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Armazenamento"
+
diff --git a/po/hd/ro.po b/po/hd/ro.po
new file mode 100644 (file)
index 0000000..bb94068
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Fişierul nu a fost primit. Îl descărcaţi din nou?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Fişierul nu există. Îl descărcaţi din nou?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Nicio descărcare"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Memorie insuficientă. Ştergeţi câteva elemente"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Descărcare finalizată"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Se notifică serverul..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Manager descărcare"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Selectare elemente"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "După ce descărcaţi elemente, acestea vor fi afişate aici."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Descărcarea a fost anulată"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Descărcarea nu a reuşit"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Se pregăteşte descărcarea..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Se pregăteşte descărcarea..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Spaţiul din memoria dispozitivului este insuficient. Deschideţi setările %s pentru a şterge câteva date sau introduceţi un card SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Spaţiul din memoria dispozitivului este insuficient. Deschideţi setările %s pentru a elibera spaţiu, apoi încercaţi din nou."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Spaţiul de pe cardul SD este insuficient. Deschideţi setările %s pentru a şterge câteva date sau schimbaţi locaţia implicită de stocare la Dispozitiv."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Spaţiul de pe cardul SD este insuficient. Deschideţi setările %s pentru a şterge date, apoi încercaţi din nou."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Deschidere Stocare"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Fişierul nu poate fi deschis"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Ştergeţi %d fişiere?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Ştergeţi?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Spaţiul de stocare implicit este plin"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Mai vechi"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Ştergere fişier"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Stocare"
+
diff --git a/po/hd/ru_RU.po b/po/hd/ru_RU.po
new file mode 100644 (file)
index 0000000..bddba5e
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Файл не получен. Загрузить еще раз?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Файл не существует. Загрузить еще раз?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Нет загрузок"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Недостаточно памяти. Удалите некоторые элементы"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Загрузка завершена"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Уведомление сервера..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Диспетчер загрузки"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Выберите элементы"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Здесь отображаются загруженные элементы."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Загрузка отменена"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Сбой загрузки"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Подготовка к загрузке..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Подготовка к загрузке..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Недостаточно места в памяти устройства. Вставьте карту памяти SD или перейдите в меню %s, чтобы удалить некоторые данные."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Недостаточно места в памяти устройства. Перейдите в меню %s, чтобы освободить место, затем повторите попытку."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Недостаточно места на карте памяти SD. Перейдите в меню %s, чтобы удалить некоторые данные, или измените место хранения по умолчанию на “Устройство”."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Недостаточно места на карте памяти SD. Перейдите в меню %s, чтобы удалить некоторые данные, затем повторите попытку."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Перейти в “Хранил.”"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Не удалось открыть файл"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Удалить файлы (%d)?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Удалить?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Хранилище по умолчанию заполнено"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Старые"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Удалить файл"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Память"
+
diff --git a/po/hd/sk.po b/po/hd/sk.po
new file mode 100644 (file)
index 0000000..e812d2b
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Súbor nebol prijatý. Stiahnuť znova?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Súbor neexistuje. Stiahnuť znova?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Žiadne sťahovania"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nedostatok pamäte. Vymažte niektoré položky"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Sťahovanie je dokončené"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Oznamuje sa serveru..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Správca sťahovaní"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Vybrať položky"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Po stiahnutí položiek sa zobrazia tu."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Sťahovanie bolo zrušené"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Sťahovanie zlyhalo"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Pripravuje sa na stiahnutie..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Pripravuje sa na stiahnutie..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "V úložisku zariadenia nie je dostatok miesta. Prejdite do menu %s a odstráňte niektoré údaje, alebo vložte kartu SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "V úložisku zariadenia nie je dostatok miesta. Prejdite do menu %s, uvoľnite miesto v úložisku a potom to skúste znova."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Na karte SD nie je dostatok miesta. Prejdite do menu %s a odstráňte niektoré údaje, alebo zmeňte predvolené umiestnenie úložiska na Zariadenie."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Na karte SD nie je dostatok miesta. Prejdite do menu %s, odstráňte niektoré údaje a potom to skúste znova."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Prejsť do úložiska"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Súbor sa nedá otvoriť"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Vykonať odstránenie %d súborov?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Odstrániť?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Predvolený úložný priestor je plný"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Staršie"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Odstrániť súbor"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Úložisko"
+
diff --git a/po/hd/sl.po b/po/hd/sl.po
new file mode 100644 (file)
index 0000000..136cae7
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Datoteka ni bila prejeta. Jo želite znova prenesti?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Datoteka ne obstaja. Jo želite znova prenesti?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Ni prenosov"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Ni dovolj pomnilnika. Izbrišite nekaj predmetov"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Prenos je končan"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Obveščanje strežnika ..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Upravitelj prenosov"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Izberi elemente"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Ko prenesete elemente, bodo prikazani tukaj."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Prenos je preklican"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Prenos ni uspel"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Priprava na prenos ..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Priprava na prenos ..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "V pomnilniku naprave ni dovolj prostora. Pojdite v nastavitve za %s in izbrišite nekaj podatkov ali vstavite kartico SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "V pomnilniku naprave ni dovolj prostora. Pojdite v nastavitve za %s in sprostite nekaj prostora, nato pa poskusite znova."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Na kartici SD ni dovolj prostora. Pojdite v nastavitve za %s in izbrišite nekaj podatkov ali za privzeto mesto shranjevanja nastavite možnost Naprava."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Na kartici SD ni dovolj prostora. Pojdite v nastavitve za %s in izbrišite nekaj podatkov, nato pa poskusite znova."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Pojdi v pomnilnik"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Datoteke ni mogoče odpreti"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Želite izbrisati toliko datotek: %d?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Izbrišem?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Privzeta shramba je polna"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Starejše"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Izbriši datoteko"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Shranjevanje"
+
diff --git a/po/hd/sr.po b/po/hd/sr.po
new file mode 100644 (file)
index 0000000..eae8105
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Fajl nije primljen. Preuzeti ponovo?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Fajl ne postoji. Preuzeti ponovo?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Nema preuzimanja"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Nedovoljno memorije. Obriši neke od stavki"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Preuzimanje završeno"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Obaveštavanje servera..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Menadžer preuzimanja"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Izaberi stavke"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Stavke će se prikazati ovde nakon što ih preuzmeš."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Preuzimanje je otkazano"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Neuspešno preuzimanje"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Priprema za preuzimanje..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Priprema za preuzimanje..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Nema dovoljno prostora u memoriji uređaja. Idi na %s podešavanja da bi izbrisao/la neke podatke ili ubaci SD karticu."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Nema dovoljno prostora u memoriji uređaja. Idi na %s podešavanja da bi oslobodio/la prostor u memoriji, a zatim pokušaj ponovo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Nema dovoljno prostora na SD kartici. Idi na %s podešavanja da bi izbrisao/la neke podatke ili promeni podrazumevanu lokaciju memorije na Uređaj."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Nema dovoljno prostora na SD kartici. Idi na %s podešavanja da bi izbrisao/la neke podatke, a zatim pokušaj ponovo."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Idi u Memoriju"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Nije moguće otvoriti fajl"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Izbrisati %d fajlove?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Obriši?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Podrazumevana memorija je puna"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Starije"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Izbriši fajl"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Memorija"
+
diff --git a/po/hd/sv.po b/po/hd/sv.po
new file mode 100644 (file)
index 0000000..1437eee
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Filen togs inte emot. Hämta igen?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Filen finns inte. Hämta igen?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Inga nedladdningar"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Minnet räcker inte. Radera några objekt."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Hämtningen är klar"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Notifierar server ..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Hämtningshanterare"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Välj objekt"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "När du har hämtat objekt kommer de att visas här."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Hämtningen avbröts"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Hämtningen misslyckades"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Förbereder hämtning..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Förbereder hämtning..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Det finns inte tillräckligt med utrymme på enhetens lagringsutrymme. Gå till inställningar för %s för att ta bort några data eller sätta i ett SD-kort."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Det finns inte tillräckligt med utrymme i enhetens lagringsutrymme. Gå till inställningar för %s för att frigöra lagringsutrymme och försök igen."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Det finns inte tillräckligt med utrymme på ditt SD-kort. Gå till inställningar för %s för att ta bort några data, eller ändra standardlagringsplatsen på enheten."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Det finns inte tillräckligt med utrymme på ditt SD-kort. Gå till inställningar för %s för att ta bort några data och försök sedan igen."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Gå till Lagring"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Kan inte öppna filen"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Ta bort %d filer?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Radera?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Standardlagring full"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Äldre"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Ta bort fil"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Lagring"
+
diff --git a/po/hd/tr_TR.po b/po/hd/tr_TR.po
new file mode 100644 (file)
index 0000000..af730ac
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Dosya alınamadı. Tekrar indirilsin mi?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Dosya bulunamadı. Tekrar indirilsin mi?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "İndirme yok"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Yeterli hafıza yok. Bazı öğeleri silin."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "İndirme tamamlandı"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Sunucu bildiriliyor..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "İndirme Yöneticisi"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Öğeleri seç"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Öğeleri indirdikten sonra burada gösterileceklerdir"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "İndirme iptal edildi"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "İndirme başarısız"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "İndirmeye hazırlanıyor..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "İndirmeye hazırlanıyor..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Cihazınızın belleğinde yeterli alan yok. Bazı verileri silmek veya bir SD kart takmak için %s ayarlarına gidin."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Cihazınızın belleğinde yeterli alan yok. Depolama alanı açmak için %s ayarlarına gidin, ardından tekrar deneyin."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "SD kartınızda yeterli alan yok. Bazı verileri silmek için %s ayarlarına gidin veya varsayılan depolama konumunu Cihaz olarak değiştirin."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "SD kartınızda yeterli alan yok. Bazı verileri silmek için %s ayarlarına gidin, ardından tekrar deneyin."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Belleğe git"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Dosya açılamıyor"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "%d dosya silinsin mi?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Sil?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Varsayılan bellek dolu"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Daha eski"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Dosyayı sil"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Kayıt yeri"
+
diff --git a/po/hd/uk.po b/po/hd/uk.po
new file mode 100644 (file)
index 0000000..feb75e6
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Файл не отримано. Завантажити ще раз?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Файл не існує. Завантажити ще раз?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Немає завантажень"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Недостатньо пам’яті. Видаліть деякі об’єкти"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Завантаження завершено"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Сповіщення сервера..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Диспетчер завантажень"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Виберіть об’єкти"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Після завантаження об’єктів вони відобразяться тут."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Завантаження скасовано"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Збій завантаження"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Підготовка до завантаження..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Підготовка до завантаження..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Недостатньо вільного місця в місці збереження на пристрої. Перейдіть до розділу «Установки %s», щоб видалити деякі дані, або вставте карту пам’яті."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Недостатньо вільного місця в місці збереження на пристрої. Перейдіть до розділу «Установки %s», щоб звільнити місце в пам’яті пристрою, а потім спробуйте ще раз."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Недостатньо вільного місця на карті пам’яті. Перейдіть до розділу «Установки %s», щоб видалити деякі дані, або змініть стандартне місце збереження на пристрій."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Недостатньо вільного місця на карті пам’яті. Перейдіть до розділу «Установки %s», щоб видалити деякі дані, а потім спробуйте ще раз."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Перейт.у міс.збереж."
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Неможливо відкрити файл"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "Видалити файли %d?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "Видалити?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Стандартне місце збереження заповнене"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Попередні"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Видалити файл"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Пам'ять"
+
diff --git a/po/hd/uz.po b/po/hd/uz.po
new file mode 100644 (file)
index 0000000..905ec8b
--- /dev/null
@@ -0,0 +1,75 @@
+msgid "IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q"
+msgstr "Fayl olinmadi. Qayta yuklab olinsinmi?"
+
+msgid "IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q"
+msgstr "Fayl mavjud emas. Qayta yuklab olinsinmi?"
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Yuklanmalar yo‘q"
+
+msgid "IDS_DM_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS"
+msgstr "Xotira yetarli emas. Ba’zi elementlarni o'chiring"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Yuklab olish yakunlandi"
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"
+msgstr "Serverga xabar berish..."
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Yuklab olish menejeri"
+
+msgid "IDS_DM_HEADER_SELECT_ITEMS"
+msgstr "Elementlarni tanlang"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Elementlarni yuklab olganingizdan so‘ng ular shu yerda ko‘rsatiladi."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Yuklab olish to'xtatildi"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Yuklab olib bo‘lmadi"
+
+msgid "IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Yuklab olish uchun tayyorlanmoqda..."
+
+msgid "IDS_DM_SBODY_PREPARING_TO_DOWNLOAD_ING"
+msgstr "Yuklab olish uchun tayyorlanmoqda..."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Qurilmangiz xotirasida yetarli bo‘sh joy mavjud emas. Ba’zi ma’lumotlarni yo‘q qilish uchun %s parametrlariga o‘ting yoki SD-kartani kiriting."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Qurilmangiz xotirasida yetarli bo‘sh joy mavjud emas. Xotirani bo‘shatish uchun %s parametrlariga o‘ting, so‘ngra qayta urinib ko‘ring."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "SD-kartangizda yetarli xotira mavjud emas. Ba’zi ma’lumotlarni yo‘q qilish uchun %s parametrlariga o‘ting yoki birlamchi saqlash joyini Qurilmaga o‘zgartiring."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "SD-kartangizda yetarli xotira mavjud emas. Ba’zi ma’lumotlarni yo‘q qilish uchun %s parametrlariga o‘ting, so‘ngra qayta urinib ko‘ring."
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Xotiraga o‘tish"
+
+msgid "IDS_DM_HEADER_UNABLE_TO_OPEN_FILE_ABB"
+msgstr "Faylni ochib bo‘lmaydi"
+
+msgid "IDS_DM_POP_DELETE_PD_FILES_Q"
+msgstr "%dta fayl yo‘q qilinsinmi?"
+
+msgid "IDS_DM_POP_DELETE_Q"
+msgstr "O'chirilsinmi?"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Birlamchi xotira to‘la"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Eskiroq"
+
+msgid "IDS_DM_HEADER_DELETE_FILE"
+msgstr "Faylni yo‘q qilish"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Xotira"
+
diff --git a/po/hi.po b/po/hi.po
deleted file mode 100644 (file)
index def175b..0000000
--- a/po/hi.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "सूचित किया जा रहा है..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "पुन: प्रयास"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "डाउनलोड प्रबंधक"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "अमान्य वर्णनकर्ता"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "कोई डाउनलोड नहीं"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "पूर्ण"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "फाईल खोलने में अक्षम"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "डाउनलोड?"
-
diff --git a/po/hr.po b/po/hr.po
deleted file mode 100644 (file)
index c4f3ce3..0000000
--- a/po/hr.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Obaviješćivanje..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Ponovi"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Upravljanje skidanja"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Neispravan opis"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Nema skidanja"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Dovrši"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Nemoguće otvoriti datoteku"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Skinuti?"
-
diff --git a/po/hu.po b/po/hu.po
deleted file mode 100644 (file)
index 7098988..0000000
--- a/po/hu.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Értesítés..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Újra"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Letöltéskezelő"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Érvénytelen leíró"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Nincsenek letöltések"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Befejeződött"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "A fájl nem nyitható meg"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Letöltés?"
-
diff --git a/po/hy.po b/po/hy.po
deleted file mode 100644 (file)
index 80685b6..0000000
--- a/po/hy.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Ծանուցում..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Կրկին փորձել"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Ներբեռնման կառավարիչ"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Անվավեր նկարագրող հատկանիշ"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Ներբեռնումներ չկան"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Ավարտված է"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Հնարավոր չէ բացել ֆայլը"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Ներբեռնե՞լ"
-
diff --git a/po/is.po b/po/is.po
deleted file mode 100644 (file)
index bebdd9f..0000000
--- a/po/is.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Tilkynni..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Reyna aftur"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Stjórnun niðurhals"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Ógildur öryggislýsandi"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Ekkert niðurhal"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Ljúka"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Mistókst að opna skrá"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Á að hala niður?"
-
diff --git a/po/it_IT.po b/po/it_IT.po
deleted file mode 100644 (file)
index c98402c..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Notifica in corso..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Riprova"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Gestione download"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Descrittore non valido"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Nessun download"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Completo"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Impossibile aprire file"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Scaricare?"
-
diff --git a/po/ja_JP.po b/po/ja_JP.po
deleted file mode 100644 (file)
index a6ae09f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "通知中..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "再接続"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "ダウンロードマネージャー"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "識別子​が​無効​です。"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "ダウンロードデータがありません。"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "完了"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "ファイル​を​開く​こと​が​できません"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "ダウンロードしますか?"
-
diff --git a/po/ka.po b/po/ka.po
deleted file mode 100644 (file)
index d42c4cf..0000000
--- a/po/ka.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "შეტყობინება..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "კიდევ ცდა"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "ჩამოტვირთვების მმართველი"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "აღმწერი არასწორია"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "არაფერია ჩამოტვირთული"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "დასრულება"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "ფაილი ვერ იხსნება"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "ჩამოტვირთავთ?"
-
diff --git a/po/kk.po b/po/kk.po
deleted file mode 100644 (file)
index 5f81221..0000000
--- a/po/kk.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Хабарлауда..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Қайталау"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Реттеушіні жүктеу"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Жарамсыз сипаттаушы"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Жүктеулер жоқ"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Аяқталды"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Файлды ашуға болмады"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Жазасыз ба?"
-
diff --git a/po/ko_KR.po b/po/ko_KR.po
deleted file mode 100644 (file)
index d15b0c4..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "알림 준비 중..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "재시도"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "다운로드 관리자"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "설명이 바르지 않습니다"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "다운로드가 없습니다"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "완료"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "파일을 열 수 없습니다"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "다운로드할까요?"
-
diff --git a/po/lt.po b/po/lt.po
deleted file mode 100644 (file)
index 486001f..0000000
--- a/po/lt.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Informuojama..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Bandyti dar kartą"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Atsisiuntimų tvarkytuvė"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Netinkamas aprašymas"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Nėra atsisiuntimų"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Užbaigta"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Negalima atidaryti failo"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Ar atsisiųsti?"
-
diff --git a/po/lv.po b/po/lv.po
deleted file mode 100644 (file)
index d9837d0..0000000
--- a/po/lv.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Paziņo..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Atkārtot"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Lejupielāžu pārvaldnieks"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Nederīgs deskriptors"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Nav lejupielāžu"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Pabeigta"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Nevar atvērt failu"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Vai lejupielādēt?"
-
diff --git a/po/mk.po b/po/mk.po
deleted file mode 100644 (file)
index 0393a59..0000000
--- a/po/mk.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Се известува..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Повторно"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Уредување преземања"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Неправилен JAD"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Нема преземања"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Завршено"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Не може да се отвори фајлот"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Преземи?"
-
diff --git a/po/nb.po b/po/nb.po
deleted file mode 100644 (file)
index 79bce21..0000000
--- a/po/nb.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Varsler..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Prøv igjen"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Nedlastingsbehandling"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Ugyldig deskriptor"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Ingen nedlastinger"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Fullført"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Kan ikke åpne fil"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Laste ned?"
-
diff --git a/po/nl_NL.po b/po/nl_NL.po
deleted file mode 100644 (file)
index c9c21fa..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Melden..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Opnieuw"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Downloadmanager"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Ongeldige descriptor"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Geen downloads"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Voltooid"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Kan bestand niet openen"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Downloaden?"
-
diff --git a/po/pl.po b/po/pl.po
deleted file mode 100644 (file)
index 2b23e40..0000000
--- a/po/pl.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Powiadamianie..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Ponów"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Menedżer pobierania"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Nieprawidłowy deskryptor"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Brak pobranych elementów"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Zakończono"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Nie można otworzyć pliku"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Pobrać?"
-
diff --git a/po/pt_BR.po b/po/pt_BR.po
deleted file mode 100644 (file)
index d19c43e..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Notificando..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Repetir"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Gerenciador de download"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Descritor inválido"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Não há downloads"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Concluída"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Impossível abrir arquivo"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Baixar?"
-
diff --git a/po/pt_PT.po b/po/pt_PT.po
deleted file mode 100644 (file)
index 3d35c41..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "A notificar..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Repetir"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Gestor de transferências"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Descrição inválida"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Nenhumas transferências"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Concluída"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Impossível abrir ficheiro"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Transferir?"
-
diff --git a/po/ro.po b/po/ro.po
deleted file mode 100644 (file)
index 85891d4..0000000
--- a/po/ro.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Se notifică..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Reîncerc."
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Manager descărcare"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "JAD invalid"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Nicio descărcare"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "terminat"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Imposibil de deschis fişierul"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Descărcaţi?"
-
diff --git a/po/ru_RU.po b/po/ru_RU.po
deleted file mode 100644 (file)
index 6980dfa..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Уведомление..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Повтор"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Диспетчер загрузки"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Неверный дескриптор"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Нет загрузок"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Завершено"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Невозможно открыть файл"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Загрузить?"
-
diff --git a/po/sk.po b/po/sk.po
deleted file mode 100644 (file)
index 75c2c11..0000000
--- a/po/sk.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Odosiela sa notifikácia..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Opakovať"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Správca sťahovaní"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Chybný deskriptor"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Žiadne sťahovania"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Dokončené"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Súbor sa nedá otvoriť"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Stiahnuť?"
-
diff --git a/po/sl.po b/po/sl.po
deleted file mode 100644 (file)
index 91ba809..0000000
--- a/po/sl.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Obveščam ..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Pos.znova"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Upravitelj prenosov"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Neveljaven deskriptor"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Ni prenosov"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Končano"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Datoteke ni mogoče odpreti"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Prenesem?"
-
diff --git a/po/sr.po b/po/sr.po
deleted file mode 100644 (file)
index 4ac55f1..0000000
--- a/po/sr.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Obaveštavanje..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Pokušaj ponovo"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Menadžer preuzimanja"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Neispravan deskriptor"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Nema preuzimanja"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Završeno"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Nemoguće otvoriti fajl"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Preuzmi?"
-
diff --git a/po/sv.po b/po/sv.po
deleted file mode 100644 (file)
index 6c46a4c..0000000
--- a/po/sv.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Meddelar..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Försök"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Hämtningshanterare"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Ogiltig beskrivning"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Inga nedladdningar"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Klar"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Det går inte att öppna filen"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Hämta?"
-
diff --git a/po/tr_TR.po b/po/tr_TR.po
deleted file mode 100644 (file)
index a4e0af2..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Bildiriliyor..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Y.dene"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "İndirme Yöneticisi"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Geçersiz Tanımlayıcı"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "İndirme yok"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Tamamlandı"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Dosyayı açamıyor"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Yüklensin mi?"
-
diff --git a/po/uk.po b/po/uk.po
deleted file mode 100644 (file)
index 6c261cf..0000000
--- a/po/uk.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Сповіщення..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Повтор."
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Диспетчер завантажень"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Хибний JAD"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Немає завантажень"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Завершено"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Неможливо відкрити файл"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Завантажити?"
-
diff --git a/po/uz.po b/po/uz.po
deleted file mode 100644 (file)
index c83ec92..0000000
--- a/po/uz.po
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "Xabar berilmoqda..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "Urinish"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "Yuklab olish menejeri"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "Noto‘g‘ri deskriptor"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "Yuklanmalar yo‘q"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "Yakunlamoq"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "Faylni ochib bo‘lmaydi"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "Yuklab olinsinmi?"
-
diff --git a/po/wvga/CMakeLists.txt b/po/wvga/CMakeLists.txt
new file mode 100644 (file)
index 0000000..5cf9a6c
--- /dev/null
@@ -0,0 +1,30 @@
+# for i18n
+
+SET(POFILES 
+       ar.po az.po bg.po ca.po cs.po da.po de.po el_GR.po en.po
+       en_PH.po en_US.po es_ES.po es_US.po et.po eu.po fi.po fr.po
+       fr_CA.po ga.po gl.po hi.po hr.po hu.po hy.po is.po it_IT.po
+       ja_JP.po ka.po kk.po ko_KR.po lt.po lv.po mk.po nb.po nl.po
+       pl.po pt_BR.po pt_PT.po ro.po ru_RU.po sk.po sl.po sr.po sv.po
+       tr_TR.po uk.po uz.po zh_CN.po zh_HK.po zh_TW.po)
+
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+       SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+       MESSAGE("PO: ${pofile}")
+       GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+       GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+       SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+       ADD_CUSTOM_COMMAND(
+                       OUTPUT ${moFile}
+                       COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+                       DEPENDS ${absPofile}
+       )
+       INSTALL(FILES ${moFile}
+                       DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+       SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+MESSAGE(".mo files: ${moFiles}")
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
diff --git a/po/wvga/ar.po b/po/wvga/ar.po
new file mode 100644 (file)
index 0000000..077d167
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "إلغاء"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "سيتم حذف %d من العناصر."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "سيتم حذف هذا العنصر."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "جارٍ التحضير..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "لا توجد ملفات محملة"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "بعد تنزيل العناصر، يتم عرضها هنا"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "تم إلغاء التنزيل"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "تم التنزيل"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "فشل التنزيل"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "مدير التنزيل"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "سيتم حذف عنصر واحد."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "جارٍ تنشيط محتوى DRM..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "جارٍ إشعار الخادم..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "سيتم حذف %d عناصر."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "مكان التخزين"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "انقر فوق تنزيل للمحاولة مرة أخرى."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "لا يمكن العثور على هذا الملف. انقر فوق تنزيل لمحاولة تنزيله مرة أخرى."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "يتعذّر العثور على تطبيق لفتح هذا الملف."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "إلغاء"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "تنزيل"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "انتقال إلى وحدة التخزين"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "موافق"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "التخزين الافتراضي ممتلئ"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "أقدم"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "تم تحديد %d"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "اليوم"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "أمس"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "تحديد الكل"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "حذف"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "حذف"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "ما من مساحة كافية على وحدة تخزين الجهاز. انتقل إلى ضبط %s لحذف بعض البيانات أو إدراج بطاقة SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "ما من مساحة كافية على وحدة تخزين الجهاز. انتقل إلى ضبط %s لإخلاء مساحة للتخزين ثم حاول مرة أخرى."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "ما من مساحة كافية على بطاقة SD. انتقل إلى ضبط %s لحذف بعض البيانات أو تغيير موقع التخزين الافتراضي إلى الجهاز."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "ما من مساحة كافية على بطاقة SD. انتقل إلى ضبط %s لحذف بعض البيانات ثم حاول مرة أخرى."
+
diff --git a/po/wvga/az.po b/po/wvga/az.po
new file mode 100644 (file)
index 0000000..812fbff
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "LƏĞV ET"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d element silinəcək."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Bu element silinəcək."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Hazırl..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Yüklmə yoxdur"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Yüklədikdən sonra yüklənənlər burada göstəriləcək."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Yükləmə ləğv edildi"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Yükləmə tamamlandı"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Yükləmə alınmadı"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Yükləmə meneceri"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 element silinəcək."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "DRM məzmunu aktivləşdirilir..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Serverə bildirilir..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d element silinəcək."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Ehtiyat"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Yenidən cəhd etmək üçün Yüklə vurun."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Bu faylı tapmaq mümkün deyil. Onu yenidən yükləməyə cəhd etmək üçün Yüklə vurun."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Bu faylı açmaq üçün proqramı tapmaq olmadı."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Ləğv et"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Yüklə"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Yaddaşa keç"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Defolt yaddaş doludur"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Köhnə"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d seçilmişdir"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Bu gün"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Dünən"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Hamısını seç"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SİL"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Cihazınızın yaddaşında kifayət qədər yer yoxdur. Bəzi məlumatları silmək üçün %s parametrlərinə keçin və ya SD kartı daxil edin."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Cihazınızın yaddaşında kifayət qədər yer yoxdur. Boş yer açmaq üçün %s parametrlərinə keçin və yenidən cəhd edin."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "SD kartınızda kifayət qədər yer yoxdur. Bəzi məlumatları silmək üçün %s parametrlərinə keçin və ya defolt yaddaşı Cihaza dəyişin."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "SD kartınızda kifayət qədər yer yoxdur. Bəzi məlumatları silmək üçün %s parametrlərinə keçin və yenidən cəhd edin."
+
diff --git a/po/wvga/bg.po b/po/wvga/bg.po
new file mode 100644 (file)
index 0000000..aca1a26
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ОТКАЗ"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d елемента ще бъдат изтрити."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Този елемент ще бъде изтрит."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Подготв..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Няма изтегляния"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "След като изтеглите елементи, те ще се покажат тук."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Изтеглянето е отменено"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Изтеглянето завършено"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Изтеглянето неуспешно"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Диспечер на изтегляне"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 елемент ще бъде изтрит."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Активиране на DRM съдържание..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Уведомяване на сървъра..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d елемента ще бъдат изтрити."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Устройство за съхранение на данни"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Докоснете „Изтегляне“, за да опитате отново."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Този файл не може да се намери. Докоснете „Изтегляне“, за да опитате да го изтеглите отново."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Не може да се намери приложение, което да отвори този файл."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Отказ"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Изтегляне"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Към Съхраняване"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Мястото за съхранение по подразбиране е пълно"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "По-стари"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d избрани"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Днес"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Вчера"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Избор на всичко"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Изтриване"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ИЗТРИВАНЕ"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Няма достатъчно място в паметта на устройството ви. Отидете на Настройки на %s, за да изтриете някои данни, или поставете SD карта."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Няма достатъчно място в паметта на устройството ви. Отидете на Настройки на %s, за да освободите място за съхранение, след което опитайте отново."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Няма достатъчно място на вашата SD карта. Отидете на Настройки на %s, за да изтриете данни, или променете мястото за съхранение по подразбиране на Устройство."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Няма достатъчно място на вашата SD карта. Отидете в Настройки на %s, за да изтриете някои данни, след което опитайте отново."
+
diff --git a/po/wvga/ca.po b/po/wvga/ca.po
new file mode 100644 (file)
index 0000000..f2efa3f
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL·LAR"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "S'esborraran %d elements."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "S'esborrarà aquest element."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Preparant..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Sense descàrregues"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Després de descarregar elements, es mostraran aquí"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Descàrrega cancel·lada"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Descàrrega completa"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Descàrrega fallida"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Administrador descàr"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "S'esborrarà 1 element"
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Activant el contingut DRM..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Notificant servidor..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "S'esborraran %d elements"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Emmagatzematge"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Toqui Descarregar per tornar-ho a intentar."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "No es pot trobar aquest fitxer. Toqui Descarregar per intentar tornar a descarregar-ho."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "No es troba cap aplicació per obrir aquest fitxer."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Cancel·lar"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Descarregar"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Anar a emmagatzem"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "Acceptar"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Emmagatzematge predeterminat ple"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Més antic"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d seleccionats"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Avui"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Ahir"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Seleccionar tot"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Esborrar"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ESBORRAR"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "No hi ha prou espai a l'emmagatzematge del seu dispositiu. Vagi als ajustaments de %s per esborrar algunes dades o insereixi una targeta SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "No hi ha prou espai a l'emmagatzematge del seu dispositiu. Vagi als ajustaments de %s per alliberar espai d'emmagatzematge i torni-ho a intentar."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "No hi ha prou espai a la targeta SD. Vagi als ajustaments de %s per esborrar algunes dades o canviï la ubicació d'emmagatzematge predeterminada a Dispositiu."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "No hi ha prou espai a la targeta SD. Vagi als ajustaments de %s per esborrar dades i torni-ho a intentar."
+
diff --git a/po/wvga/cs.po b/po/wvga/cs.po
new file mode 100644 (file)
index 0000000..d6ed617
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ZRUŠIT"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "Bude odstraněno %d položek."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Tato položka bude odstraněna."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Příprava..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Žádné stažené položky"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Až stáhnete položky, zobrazí se zde."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Stahování bylo zrušeno"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Stahování dokončeno"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Stažení se nezdařilo"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Správce stahování"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 položka bude odstraněna."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Aktivace obsahu DRM..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Oznamování serveru..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d položek bude odstraněno."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Úložiště"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Klepnutím na Stáhnout opakujte akci."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Soubor nebyl nalezen. Klepněte na tlačítko Stáhnout a stáhněte soubor znovu."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Nepodařilo se najít aplikaci pro otevření tohoto souboru."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Zrušit"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Stáhnout"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Přejít na Úložiště"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Výchozí paměť je plná"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Starší"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "Vybráno %d"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Dnes"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Včera"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Vybrat vše"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Odstranit"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ODSTRANIT"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "V paměti zařízení není dostatek volného místa. Přejděte na nastavení %s a odstraňte některá data nebo vložte SD kartu."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "V paměti zařízení není dostatek volného místa. Přejděte na nastavení %s a uvolněte místo. Potom opakujte akci."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Na SD kartě není dostatek volného místa. Přejděte na nastavení %s a odstraňte některá data, nebo změňte výchozí úložiště na Zařízení."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Na SD kartě není dostatek volného místa. Přejděte na nastavení %s a odstraňte některá data, a potom opakujte akci."
+
diff --git a/po/wvga/da.po b/po/wvga/da.po
new file mode 100644 (file)
index 0000000..cbbfd99
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULLER"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d elementer bliver slettet."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Dette element bliver slettet."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Klargør ..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Ingen downloads"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du har hentet elementer, vises de her."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Overførsel annulleret"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Overførsel fuldført"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Overførsel mislykkedes"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Downloadstyring"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 element vil blive slettet."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Aktiverer DRM-indhold ..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Underretter server ..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d elementer vil blive slettet."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Lagring"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Tryk på Download for at prøve igen."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Denne fil kan ikke findes. Tryk på Download for at prøve at downloade den igen."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Kan ikke finde en applikation, der kan åbne denne fil."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Annullér"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Overfør"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Gå til Lagring"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Standardlager fuldt"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Ældre"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d valgt"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "I dag"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "I går"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Vælg alle"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Slet"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SLET"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Der er ikke tilstrækkelig plads i din enheds hukommelse. Gå til indstillingerne for %s for at slette data, eller indsæt et SD-kort."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Der er ikke tilstrækkelig plads i din enheds hukommelse. Gå til indstillingerne for %s for at frigøre lagerplads, og prøv igen."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Der er ikke tilstrækkelig plads på dit SD-kort. Gå til indstillingerne for %s for at slette data, eller skift standardlagerplacering til Enhed."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Der er ikke tilstrækkelig plads på dit SD-kort. Gå til %s for at slette data, og prøv igen."
+
diff --git a/po/wvga/de.po b/po/wvga/de.po
new file mode 100644 (file)
index 0000000..da3f611
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ABBRECHEN"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d Elemente werden gelöscht."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Dieses Element wird gelöscht."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Vorber..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Keine Downloads"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Heruntergeladene Artikel werden hier angezeigt."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Download abgebrochen"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Download beendet"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Download fehlgeschlagen"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Download-Manager"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 Element wird gelöscht."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "DRM-Inhalt wird aktiviert..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Server wird benachrichtigt..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d Elemente werden gelöscht."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Speicher"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Auf „Herunterladen“ tippen, um es erneut zu versuchen."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Diese Datei konnte nicht gefunden werden. Tippen Sie auf „Herunterladen“, um es erneut zu versuchen."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Anwendung zum Öffnen dieser Datei kann nicht gefunden werden."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Abbrechen"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Herunterladen"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Zu „Speicher“"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Standardspeicher voll."
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Älter"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "Auswahl von %d"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Heute"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Gestern"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Alle auswählen"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Löschen"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "LÖSCHEN"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Es ist nicht genügend Gerätespeicher frei. Wechseln Sie zu den %s-Einstellungen und löschen Sie Daten oder legen Sie eine SD-Karte ein."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Es ist nicht genügend Gerätespeicher frei. Wechseln Sie zu den %s-Einstellungen und geben Sie Speicherplatz frei. Versuchen Sie es dann erneut."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Es ist nicht genügend Speicherplatz auf der SD-Karte frei. Wechseln Sie zu den %s-Einstellungen und löschen Sie Daten oder ändern Sie den Standard-Speicherort in „Gerät“."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Es ist nicht genügend Speicherplatz auf der SD-Karte frei. Wechseln Sie zu den %s-Einstellungen und löschen Sie Daten. Versuchen Sie es dann erneut."
+
diff --git a/po/wvga/el_GR.po b/po/wvga/el_GR.po
new file mode 100644 (file)
index 0000000..d36b095
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ΑΚΥΡΟ"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "Θα διαγραφούν %d στοιχεία."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Αυτό το στοιχείο θα διαγραφεί."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Προετοιμ..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Δεν υπάρχουν λήψεις"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Τα στοιχεία θα εμφανιστούν εδώ, με τα τη λήψη τους."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Η λήψη ακυρώθηκε"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Η λήψη ολοκληρώθηκε"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Αποτυχία λήψης"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Διαχείριση λήψεων"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "Θα γίνει διαγραφή 1 στοιχείου."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Ενεργοποίηση περιεχομένου DRM..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Ειδοποίηση διακομιστή..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "Θα διαγραφούν %d στοιχεία."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Αποθήκευση"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Πατήστε «Λήψη» για να δοκιμάσετε ξανά."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Δεν είναι δυνατή η εύρεση αυτού του αρχείου. Πατήστε «Λήψη», για να επαναλάβετε τη λήψη."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Δεν είναι δυνατή η εύρεση εφαρμογής για το άνοιγμα αυτού του αρχείου."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Ακύρωση"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Λήψη"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Μτβ σε Χώρο αποθήκ."
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Ο προεπιλεγμένος χώρος αποθήκευσης είναι πλήρης"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Παλαιότερα"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "Επιλέχθηκαν %d"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Σήμερα"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Xθές"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Επιλογή όλων"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Διαγραφή"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ΔΙΑΓΡΑΦΗ"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Ο χώρος αποθήκευσης της συσκευής σας δεν επαρκεί. Μεταβείτε στις ρυθμίσεις %s για να διαγράψετε ορισμένα δεδομένα ή τοποθετήστε μια κάρτα SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Ο χώρος αποθήκευσης της συσκευής σας δεν επαρκεί. Μεταβείτε στις ρυθμίσεις %s για να ελευθερώσετε λίγο χώρο και, στη συνέχεια, δοκιμάστε ξανά."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Ο χώρος αποθήκευσης της κάρτας SD δεν επαρκεί. Μεταβείτε στις ρυθμίσεις %s, για να διαγράψετε ορισμένα δεδομένα ή αλλάξτε την προεπιλεγμένη θέση αποθήκευσης σε «Συσκευή»."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Ο χώρος αποθήκευσης της κάρτας SD δεν επαρκεί. Μεταβείτε στις ρυθμίσεις %s, για να διαγράψετε ορισμένα δεδομένα και, στη συνέχεια, δοκιμάστε ξανά."
+
diff --git a/po/wvga/en.po b/po/wvga/en.po
new file mode 100644 (file)
index 0000000..cbb5644
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d items will be deleted."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "This item will be deleted."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Preparing..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "No downloads"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you download items, they will be shown here."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Download cancelled"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Download complete"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Download failed"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Download manager"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 item will be deleted."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Activating DRM content..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Notifying server..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d items will be deleted."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Storage"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Tap Download to try again."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "This file cannot be found. Tap Download to try downloading it again."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Unable to find an application to open this file."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Cancel"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Download"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Go to Storage"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Default storage full"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Older"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d selected"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Today"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Yesterday"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Select all"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "DELETE"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "There is not enough space in your device storage. Go to %s settings to delete some data or insert an SD card."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "There is not enough space in your device storage. Go to %s settings to free up some storage space, then try again."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "There is not enough space on your SD card. Go to %s settings to delete some data, or change the default storage location to Device."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "There is not enough space on your SD card. Go to %s settings to delete some data, then try again."
+
diff --git a/po/wvga/en_PH.po b/po/wvga/en_PH.po
new file mode 100644 (file)
index 0000000..e28f621
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d items will be deleted."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "This item will be deleted."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Preparing..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "No downloads"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you download items, they will be shown here."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Download canceled"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Download complete"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Download failed"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Download manager"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 item will be deleted."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Activating DRM content..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Notifying server..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d items will be deleted."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Storage"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Tap Download to try again."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "This file cannot be found. Tap Download to try downloading it again."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Unable to find an application to open this file."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Cancel"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Download"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Go to Storage"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Default storage full"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Older"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d selected"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Today"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Yesterday"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Select all"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "DELETE"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "There is not enough space in your device storage. Go to %s settings to delete some data or insert an SD card."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "There is not enough space in your device storage. Go to %s settings to free up some storage space, then try again."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "There is not enough space on your SD card. Go to %s settings to delete some data, or change the default storage location to Device."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "There is not enough space on your SD card. Go to %s settings to delete some data, then try again."
+
diff --git a/po/wvga/en_US.po b/po/wvga/en_US.po
new file mode 100644 (file)
index 0000000..e28f621
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCEL"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d items will be deleted."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "This item will be deleted."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Preparing..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "No downloads"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "After you download items, they will be shown here."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Download canceled"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Download complete"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Download failed"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Download manager"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 item will be deleted."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Activating DRM content..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Notifying server..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d items will be deleted."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Storage"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Tap Download to try again."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "This file cannot be found. Tap Download to try downloading it again."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Unable to find an application to open this file."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Cancel"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Download"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Go to Storage"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Default storage full"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Older"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d selected"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Today"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Yesterday"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Select all"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "DELETE"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "There is not enough space in your device storage. Go to %s settings to delete some data or insert an SD card."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "There is not enough space in your device storage. Go to %s settings to free up some storage space, then try again."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "There is not enough space on your SD card. Go to %s settings to delete some data, or change the default storage location to Device."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "There is not enough space on your SD card. Go to %s settings to delete some data, then try again."
+
diff --git a/po/wvga/es_ES.po b/po/wvga/es_ES.po
new file mode 100644 (file)
index 0000000..552036d
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "Se eliminarán %d elementos."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Se eliminará este elemento."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Preparand..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Sin descargas"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Después de descargar elementos, se mostrarán aquí"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Descarga cancelada"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Descarga completa"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Error de descarga"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Administrador descarga"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "Se eliminará 1 elemento"
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Activando contenido de DRM..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Notificando servidor..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "Se eliminarán %d elementos"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Almacenamiento"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Pulse Descargar para intentarlo de nuevo."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "No se puede encontrar este archivo. Pulse Descargar para intentar descargarlo de nuevo."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "No se ha podido encontrar una aplicación para abrir este archivo."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Cancelar"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Descargar"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Ir al almacenamiento"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Almacenamiento predeterminado lleno"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Más antiguo"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d seleccionados"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Hoy"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Ayer"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Seleccionar todo"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINAR"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "No hay espacio suficiente en el almacenamiento del dispositivo. Vaya a Ajustes de %s para eliminar algunos datos o inserte una tarjeta SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "No hay espacio suficiente en el almacenamiento del dispositivo. Vaya a Ajustes de %s para liberar espacio y, a continuación, inténtelo de nuevo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "No hay espacio suficiente en la tarjeta SD. Vaya a Ajustes de %s para eliminar algunos datos o cambie la ubicación de almacenamiento predeterminada al dispositivo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "No hay espacio suficiente en la tarjeta SD. Vaya a Ajustes de %s para eliminar algunos datos y, a continuación, inténtelo de nuevo."
+
diff --git a/po/wvga/es_US.po b/po/wvga/es_US.po
new file mode 100644 (file)
index 0000000..b115bdc
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "Se eliminarán %d elementos."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Se eliminará este elemento."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Preparando..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Sin descargas"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Después de descargar elementos, se mostrarán aquí."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Descarga cancelada"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Descarga completa"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Error al descargar"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Admin. de descargas"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "Se eliminará este elemento."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Activando contenido DRM..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Notificando servidor..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "Se eliminarán %d elementos."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Almacenamiento"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Pulse Descargar para intentarlo de nuevo."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "No es posible encontrar este archivo. Pulse Descargar para intentar descargarlo de nuevo."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "No se ha podido encontrar una aplicación para abrir este archivo."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Cancelar"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Descargar"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Ir al Almacenamiento"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "Aceptar"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Almacenamiento predeterminado lleno"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Más antiguo"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d seleccionados"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Hoy"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Ayer"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Todo"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINAR"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "No queda suficiente espacio en el dispositivo de almacenamiento. Vaya a Configuración de %s para eliminar algunos datos o inserte una tarjeta de memoria."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "No queda suficiente espacio en el dispositivo de almacenamiento. Vaya a Configuración de %s para liberar espacio y, a continuación, inténtelo de nuevo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "No queda suficiente espacio en la tarjeta de memoria. Vaya a Configuración de %s para eliminar algunos datos o cambie la ubicación de almacenamiento predeterminada del dispositivo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "No queda suficiente espacio en la tarjeta de memoria. Vaya a Configuración de %s para eliminar algunos datos y, a continuación, inténtelo de nuevo."
+
diff --git a/po/wvga/et.po b/po/wvga/et.po
new file mode 100644 (file)
index 0000000..56a2341
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "TÜHISTA"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d üksust kustutatakse."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "See üksus kustutatakse."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Valmistum..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Allalaadimisi pole"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Uksused kuvatakse siin parast nende allalaadimist."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Allalaadimine tühistati"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Allalaadimine on lõpule viidud"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Allalaadimine nurjus"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Allalaadimishaldur"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 üksus kustutatakse."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "DRM-sisu aktiveerimine..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Serveri teavitamine..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d uksust kustutatakse."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Hoiundamine"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Uuesti proovimiseks toksake käsku Laadi alla."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Seda faili ei leita. Toksake käsku Laadi alla, et proovida seda uuesti alla laadida."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Selle faili avamiseks ei leita rakendust."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Tühista"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Lae alla"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Ava menüü Mälu"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Vaikemälu on täis"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Vanemad"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d on valitud"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Täna"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Eile"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Vali kõik"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Kustuta"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "KUSTUTA"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Seadme mälus pole piisavalt ruumi. Avage menüü %s seaded, et kustutada mõned andmed, või paigaldage SD-kaart."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Seadme mälus pole piisavalt ruumi. Avage menüü %s seaded, et vabastada mäluruumi, ning seejärel proovige uuesti."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Teie SD-kaardil pole piisavalt ruumi. Avage menüü %s seaded, et kustutada mõned andmed, või muutke vaikemälu asukohaks Seade."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Teie SD-kaardil pole piisavalt ruumi. Avage menüü %s seaded, et kustutada mõned andmed, ning seejärel proovige uuesti."
+
diff --git a/po/wvga/eu.po b/po/wvga/eu.po
new file mode 100644 (file)
index 0000000..0200afd
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "UTZI"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d elementu ezabatuko dira."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Elementu hau ezabatuko da."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Prestatzen..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Deskargarik ez"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Elementuak deskargatu ondoren, hemen erakutsiko dira"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Deskarga utzita"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Deskarga osatuta"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Deskargak huts egin du"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Deskargen kudeatzailea"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "Elementu 1 ezabatuko da"
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "DRM edukia aktibatzen..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Zerbitzariari jakinarazten..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d elementu ezabatuko dira"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Biltegiratzea"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Ukitu Deskargatu, berriz saiatzeko."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Ez da fitxategi hau aurkitu. Ukitu Deskargatu berriz deskargatzen saiatzeko."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Ezin da fitxategi hau irekitzeko aplikazioa aurkitu."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Utzi"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Deskargatu"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Joan Biltegira."
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "Ados"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Biltegi lehenetsia beteta"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Zaharragoa"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d hautatuta"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Gaur"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Atzo"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Hautatu denak"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Ezabatu"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "EZABATU"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Ez dago nahikoa espazio zure gailuaren memorian. Joan %s ezarpenetara, hainbat datu ezabatzeko edo sartu SD txartel bat."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Ez dago nahikoa espazio zure gailuaren memorian. Joan %s ezarpenetara, hainbat memoria espazio libratzeko, eta saiatu berriz."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Ez dago nahikoa espazio zure SD txartelean. Joan %s ezarpenetara, hainbat datu ezabatzeko edo lehenetsitako biltegiratze kokapena Gailura aldatzeko."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Ez dago nahikoa espazio zure SD txartelean. Joan %s ezarpenetara, hainbat datu ezabatzeko eta saiatu berriz."
+
diff --git a/po/wvga/fi.po b/po/wvga/fi.po
new file mode 100644 (file)
index 0000000..8d93981
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "PERUUTA"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d kohdetta poistetaan."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Tämä kohde poistetaan."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Valmistelu..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Latauksia ei ole"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Kohteet näytetään täällä, kun olet ladannut ne."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Lataus peruutettu"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Lataus valmis"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Lataus epäonnistui"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Latauksen hallinta"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 kohde poistetaan."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Aktivoidaan DRM-sisältöä..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Ilmoitetaan palvelimelle..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d kohdetta poistetaan."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Tallennustila"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Yritä uudelleen napauttamalla Lataa."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Tätä tiedostoa ei löydy. Yritä ladata se uudelleen napauttamalla Lataa."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Tiedoston avaamiseen soveltuvaa sovellusta ei löydy."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Peruuta"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Lataa"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Siirry tall.tilaan"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Oletustallennussijainti täynnä"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Vanhempi"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d valittu"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Tänään"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Eilen"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Valitse kaikki"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Poista"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "POISTA"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Laitteen muistissa ei ole tarpeeksi tilaa. Siirry %s Asetukset -kohtaan ja poista tietoja tai aseta laitteeseen SD-kortti."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Laitteen muistissa ei ole tarpeeksi tilaa. Siirry %s Asetukset -kohtaan, vapauta tallennustilaa ja yritä uudelleen."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "SD-kortilla ei ole tarpeeksi tilaa. Siirry %s Asetukset -kohtaan ja poista tietoja tai vaihda oletustallennuspaikaksi Laite."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "SD-kortilla ei ole tarpeeksi tilaa. Siirry %s Asetukset -kohtaan, poista tietoja ja yritä uudelleen."
+
diff --git a/po/wvga/fr.po b/po/wvga/fr.po
new file mode 100644 (file)
index 0000000..7490ccb
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULER"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d éléments seront supprimés."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Cet élément va être supprimé."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Préparation..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Aucun téléchargement"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Les éléments téléchargés seront affichés ici."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Téléchargement annulé"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Téléchargement terminé"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Echec du téléchargement"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Gestionnaire téléch."
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 élément va être supprimé."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Activation du contenu DRM..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Notification au serveur en cours..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d éléments vont être supprimés."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Stockage"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Appuyez sur Télécharger pour réessayer."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Ce fichier est introuvable. Appuyez sur Télécharger pour essayer de le télécharger à nouveau."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Impossible de trouver une application permettant d'ouvrir ce fichier."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Annuler"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Télécharger"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Accéder au stockage"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Stockage par défaut saturé"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Ancien"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "Sélection : %d"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Aujourd'hui"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Hier"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Sélectionner tout"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SUPPRIMER"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Espace insuffisant sur votre appareil. Accédez aux paramètres %s pour supprimer des données ou insérez une carte SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Espace insuffisant sur votre appareil. Accédez aux paramètres %s pour libérer de l'espace, puis réessayez."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Espace insuffisant sur votre carte SD. Accédez aux paramètres %s pour supprimer des données ou définissez votre appareil comme espace de stockage par défaut."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Espace insuffisant sur votre carte SD. Accédez aux paramètres %s pour supprimer des données, puis réessayez."
+
diff --git a/po/wvga/fr_CA.po b/po/wvga/fr_CA.po
new file mode 100644 (file)
index 0000000..31b076f
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULER"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d éléments seront supprimés."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Cet élément va être supprimé."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Préparation..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Aucun téléchargement"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Les éléments téléchargés seront affichés ici."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Téléchargement annulé"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Téléchargement terminé"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Échec du téléchargement"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Gestionnaire téléch."
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 élément va être supprimé."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Activation du contenu DRM..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Notification au serveur en cours..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d éléments vont être supprimés."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Stockage"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Touchez Télécharger pour réessayer."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Ce fichier est introuvable. Touchez Télécharger pour essayer de le télécharger à nouveau."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Impossible de trouver une application permettant d'ouvrir ce fichier."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Annuler"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Télécharger"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Accéder au stockage"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Stockage par défaut saturé"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Ancien"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "Sélection : %d"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Aujourd'hui"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Hier"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Sélectionner tout"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SUPPRIMER"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Espace insuffisant sur votre appareil. Accédez aux paramètres %s pour supprimer des données ou insérez une carte SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Espace insuffisant sur votre appareil. Accédez aux paramètres %s pour libérer de l'espace, puis réessayez."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Espace insuffisant sur votre carte SD. Accédez aux paramètres %s pour supprimer des données ou définissez votre appareil comme espace de stockage par défaut."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Espace insuffisant sur votre carte SD. Accédez aux paramètres %s pour supprimer des données, puis réessayez."
+
diff --git a/po/wvga/ga.po b/po/wvga/ga.po
new file mode 100644 (file)
index 0000000..24ddd14
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CUIR AR CEAL"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "Scriosfar %d mír."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Scriosfar an mhír seo."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Á ullmhú..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Níl íoslódálacha ann"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Tar éis duit míreanna a íoslódáil, taispeánfar anseo iad"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Íoslódáil curtha ar ceal"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Íoslódáilte"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Theip ar íoslódáil"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Bainisteoir íoslódála"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "Scriosfar 1 mhír"
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Inneachar DRM á chur i ngníomh..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Á chur in iúl d'fhreastalaí..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "Scriosfar %d mír"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Stóras"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Tapáil Íoslódáil le triail arís."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Ní féidir an comhad seo a aimsiú. Tapáil Íoslódáil le triail é a íoslódáil arís."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Ní féidir feidhmchlár a aimsiú leis an gcomhad seo a oscailt."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Cuir ar ceal"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Íoslódáil"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Gabh chuig Stóras"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Stóras réamhshocraithe lán"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Níos sine"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d roghnaithe"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Inniu"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Inné"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Roghnaigh gach"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Scrios"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SCRIOS"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Níl go leor spáis i stóras do ghléis. Gabh chuig socruithe %s le roinnt sonraí a scriosadh nó ionsáigh cárta SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Níl go leor spáis i stóras do ghléis. Gabh chuig socruithe %s le roinnt spás stórála a shaoradh, ansin triail arís."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Níl go leor spáis ar do chárta SD. Gabh chuig socruithe %s le roinnt sonraí a scriosadh, nó athraigh an suíomh stórála réamhshocraithe chuig Gléas."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Níl go leor spáis ar do chárta SD. Gabh chuig socruithe %s le roinnt sonraí a scriosadh, ansin triail arís."
+
diff --git a/po/wvga/gl.po b/po/wvga/gl.po
new file mode 100644 (file)
index 0000000..aab20a2
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "Eliminaranse %d elementos."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Eliminarase este elemento."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Prepara. ..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Ningunha descarga"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Despois de descargar elementos, estes amosaranse aquí"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Descarga cancelada"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Descarga completa"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Erro na descarga"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Administrad. descargas"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "Eliminarase 1 elemento"
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Activando contido DRM..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Notificando ao servidor..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "Eliminaranse %d elementos"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Almacenamento"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Toca Descargar para tentalo de novo."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Non se pode atopar este arquivo. Toca Descargar para tentar descargalo de novo."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Non se pode atopar unha aplicación para abrir este arquivo."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Cancelar"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Descargar"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Ir ao Almacenamento"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "Aceptar"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Almacenamento predeterminado cheo"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Máis antigo"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d seleccionados"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Hoxe"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Onte"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Seleccionar todo"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINAR"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Non hai espazo suficiente no almacenamento do teu dispositivo. Vai a %s axustes para eliminar algúns dos datos ou inserir unha tarxeta SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Non hai espazo suficiente no almacenamento do teu dispositivo. Vai a %s axustes para liberar espazo de almacenamento e, a continuación, téntao de novo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Non hai espazo suficiente na túa tarxeta SD. Vai a %s axustes para eliminar algúns dos datos ou cambia a localización de almacenamento predeterminada a Dispositivo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Non hai espazo suficiente na túa tarxeta SD. Vai a %s axustes para eliminar algúns dos datos e, a continuación, téntao de novo."
+
diff --git a/po/wvga/hi.po b/po/wvga/hi.po
new file mode 100644 (file)
index 0000000..a81f4d4
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "रद्द करें"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d मदें हटाई जाएँगी।"
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "यह मद हटाई जाएगी।"
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "तैयार हो रहा है..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "कोई डाउनलोड नहीं"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "आपके द्वारा मदें डाउनलोड करने के बाद, वे यहाँ दिखाई जाएँगी"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "डाउनलोड रद्द किया गया"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "डाउनलोड पूर्ण"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "डाउनलोड विफल"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "डाउनलोड प्रबंधक"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 मद हटाया जाएगा।"
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "DRM सामग्री सक्रिय की जा रही है..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "सर्वर सूचित हो रहा है..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d मदें हटाई जाएँगी।"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "स्टोरेज"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "फिर से प्रयास करने के लिए डाउनलोड करें टैप करें।"
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "यह फाइल नहीं मिल सकती। इसे फिर से डाउनलोड करने का प्रयास करने के लिए डाउनलोड करें टैप करें।"
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "यह फाइल खोलने के लिए एक एप्लीकेशन ढूँढने में असमर्थ।"
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "रद्द करें"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "डाउनलोड करें"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "स्टोरेज पर जाएँ"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "ओके"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "डिफ़ॉल्ट स्टोरेज पूर्ण"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "अधिक पुराना"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d चयनित"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "आज"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "बीता हुआ कल"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "सभी चुनें"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "हटाएँ"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "आपकी डिवाइस स्टोरेज में पर्याप्त स्थान नहीं है। कुछ डाटा हटाने या कोई SD कार्ड डालने के लिए %s सेटिंग्स में जाएँ।"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "आपकी डिवाइस स्टोरेज में पर्याप्त स्थान नहीं है। कुछ स्टोरेज स्थान रिक्त करने के लिए %s सेटिंग्स में जाएँ, फिर दोबारा प्रयास करें।"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "आपके SD कार्ड में पर्याप्त स्थान नहीं है। कुछ डाटा हटाने के लिए %s सेटिंग्स में जाएँ, या डिफॉल्ट स्टोरेज स्‍थान को डिवाइस में बदलें।"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "आपके SD कार्ड में पर्याप्त स्थान नहीं है। कुछ डाटा हटाने के लिए %s सेटिंग्स में जाएँ, फिर दोबारा प्रयास करें।"
+
diff --git a/po/wvga/hr.po b/po/wvga/hr.po
new file mode 100644 (file)
index 0000000..4f7e454
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ODUSTANI"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "Izbr. će se više stavki (%d)."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Ova će se stavka izbrisati."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Priprema..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Nema skidanja"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Stavke će se prikazati ovdje nakon što ih skinete."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Preuzimanje prekinuto"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Skidanje dovršeno"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Skidanje neuspješno"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Upravitelj skidanja"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 stavka bit će obrisana."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Aktiviranje DRM sadržaja..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Obavješćivanje poslužitelja..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d datoteka bit će obrisano."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Spremanje"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Dodirnite Preuzmi za ponovni pokušaj."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Ova se datoteka ne može pronaći. Dodirnite Preuzmi kako biste je pokušali ponovno preuzeti."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Nema aplikacije potrebne za otvaranje ove datoteke."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Prekid"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Skini"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Idi u Memoriju"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Zadana memorija puna"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Starije"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d odabrano"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Danas"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Jučer"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Odaberi sve"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "IZBRIŠI"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Nema dovoljno prostora u memoriji uređaja. Idite na %s postavke da biste izbrisali neke podatke ili umetnite SD karticu."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Nema dovoljno prostora u memoriji uređaja. Idite na %s postavke da biste oslobodili memoriju, a zatim pokušajte ponovno."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Nema dovoljno prostora na SD kartici. Idite na %s postavke da biste izbrisali neke podatke ili promijenite zadano mjesto spremanja na Uređaju."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Nema dovoljno prostora na SD kartici. Idite na %s postavke da biste izbrisali neke podatke, a zatim pokušajte ponovno."
+
diff --git a/po/wvga/hu.po b/po/wvga/hu.po
new file mode 100644 (file)
index 0000000..f4b5cee
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "MÉGSE"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "Töröl %d elemet."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Törli ezt az elemet."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Előkész..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Nincsenek letöltések"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Itt jelennek majd meg a letöltött tételei."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Letöltés megszakítva"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "A letöltés befejeződött"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Sikertelen letöltés"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Letöltéskezelő"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "Törölni fog 1 tételt."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "DRM-tartalom aktiválása..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Szerver értesítése..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d tételt törölni fog."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Tárhely"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Érintse meg a Letöltés gombot az újabb próbálkozáshoz."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "A fájl nem található. A Letöltés megérintésével megpróbálhatja újból letölteni."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Nem található alkalmazás a fájl megnyitásához."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Mégse"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Letöltés"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Tárhely megnyitása"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Az alapértelmezett tárhely megtelt"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Régebbi"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d kijelölve"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Ma"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Tegnap"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Összes kijelölése"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Törlés"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "TÖRLÉS"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Nincs elég hely az eszköz tárhelyén. Nyissa meg a(z) %s beállításait, és töröljön adatokat, vagy helyezzen be SD-kártyát."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Nincs elég hely az eszköz tárhelyén. Nyissa meg a(z) %s beállításait, szabadítson fel tárterületet, majd próbálja újra."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Nincs elég hely az SD-kártyán. Nyissa meg a(z) %s beállításait, és töröljön adatokat, vagy válassza ki alapértelmezett tárhelyként az Eszközt."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Nincs elég hely az SD-kártyán. Nyissa meg a(z) %s beállításait, és töröljön adatokat, majd próbálja újra."
+
diff --git a/po/wvga/hy.po b/po/wvga/hy.po
new file mode 100644 (file)
index 0000000..f5ac0d0
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ԴԱԴԱՐԵՑՆԵԼ"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d տարրեր կվերացվեն:"
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Այս տարրը կվերացվի:"
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Պտրստվմ է..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Ներբեռնումներ չկան"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Ապրանքներ ներբեռնելուց հետո դրանք կցուցադրվեն այստեղ:"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Ներբեռնումը դադարեցված է"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Ներբեռնումն ավարտվեց"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Ներբեռնումը ձախողվեց"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Ներբեռնման կառավարիչ"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 տարր կվերացվի:"
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Ակտիվացվում է DRM բովանդակություն..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Սերվերը ծանուցվում է..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d տարրեր կվերացվեն:"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Պահոց"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Թակեք «Ներբեռնել»՝ նորից փորձելու համար:"
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Անհնար է գտնել այս ֆայլը: Թակեք «Ներբեռնել»՝ ներբեռնումը նորից փորձելու համար:"
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Անհնար է ծրագիր գտնել այս ֆայլը բացելու համար:"
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Դադարեցնել"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Ներբեռնել"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Գնալ Պահոց"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Կանխադրված պահոցը լիքն է"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Ավելի հին"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d ընտրված"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Այսօր"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Երեկ"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Ընտրել բոլորը"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Վերացնել"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ՎԵՐԱՑՆԵԼ"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Ձեր սարքի պահոցում բավարար տեղ չկա: Գնացեք %s դրվածքներ՝ որոշ տվյալներ վերացնելու համար, կամ մտցրեք SD քարտ:"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Ձեր սարքի պահոցում բավարար տեղ չկա: Գնացեք %s դրվածքներ՝ որոշ հիշողության տիրույթ ազատելու համար, հետո նորից փորձեք:"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Ձեր SD քարտում բավարար տեղ չկա: Գնացեք %s դրվածքներ՝ որոշ տվյալներ վերացնելու համար, կամ կանխադրված պահման տեղը փոխեք «Սարք»-ի:"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Ձեր SD քարտում բավարար տեղ չկա: Գնացեք %s դրվածքներ՝ որոշ տվյալներ վերացնելու համար, հետո նորից փորձեք:"
+
diff --git a/po/wvga/is.po b/po/wvga/is.po
new file mode 100644 (file)
index 0000000..bb43346
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "HÆTTA VIÐ"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d atriðum verður eytt."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Þessu atriði verður eytt."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Undirbý..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Ekkert niðurhal"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Atriði birtast hér eftir að þeim er hlaðið niður."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Hætt við niðurhal"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Niðurhali lokið"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Niðurhal mistókst"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Stjórnun niðurhals"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 hlut verður eytt."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Spilunarhraði: %d r./sek."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Sendi tilkynningu á netþjón..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d hlutum verður eytt."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Geymsla"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Pikkaðu á „Sækja“ til að reyna aftur."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Skráin finnst ekki. Pikkaðu á „Sækja“ til að reyna að sækja hana aftur."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Forrit sem getur opnað þessa skrá finnst ekki."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Hætta v."
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Sækja"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Opna geymslu"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "Í lagi"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Sjálfgefin geymsla er full"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Eldra"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d valin"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Í dag"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Í gær"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Velja allt"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Eyða"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "EYÐA"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Ekki er nægt rými í geymslu tækisins. Opnaðu stillingar „%s“ til að eyða gögnum eða settu SD-kort í."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Ekki er nægt rými í geymslu tækisins. Opnaðu stillingar „%s“ til að losa rými og reyndu svo aftur."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Ekki er nægt rými á SD-kortinu. Opnaðu stillingar „%s“ til að eyða gögnum eða gerðu geymslu tækisins að sjálfgefinni geymslu."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Ekki er nægt rými á SD-kortinu. Opnaðu stillingar „%s“ til að eyða gögnum og reyndu svo aftur."
+
diff --git a/po/wvga/it_IT.po b/po/wvga/it_IT.po
new file mode 100644 (file)
index 0000000..845adba
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULLA"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d elementi verranno eliminati."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "L'elemento verrà eliminato."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Preparazione..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Nessun download"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Gli elementi scaricati verranno visualizzati qui."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Download annullato"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Download completato"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Download non riuscito"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Download manager"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 elemento verrà eliminato."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Attivazione del contenuto DRM in corso..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Invio notifica al server in corso..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d elementi verranno eliminati."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Memoria"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Toccate Download per riprovare."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Impossibile trovare il file. Toccate Download per provare a scaricarlo nuovamente."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Impossibile trovare un'applicazione per aprire questo file."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Annulla"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Scarica"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Vai alla memoria"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Memoria predefinita piena"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Precedenti"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d selezionati"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Oggi"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Ieri"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Seleziona tutto"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINA"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Spazio insufficiente sulla memoria del dispositivo. Andate alle impostazioni di %s per eliminare alcuni dati o inserite una scheda SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Spazio insufficiente sulla memoria del dispositivo. Andate alle impostazioni di %s per liberare dello spazio in memoria e riprovate."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Spazio insufficiente sulla scheda SD. Andate alle impostazioni di %s per eliminare alcuni dati oppure impostate la posizione di memoria predefinita in Dispositivo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Spazio insufficiente sulla scheda SD. Andate alle impostazioni di %s per eliminare alcuni dati e riprovate."
+
diff --git a/po/wvga/ja_JP.po b/po/wvga/ja_JP.po
new file mode 100644 (file)
index 0000000..04e442a
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "キャンセル"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d件のアイテムを削除します。"
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "このアイテムを削除します。"
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "準備中..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "ダウンロードデータがありません。"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "アイテムをダウンロードすると、ここにアイテムが表示されます。"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "ダウンロード中止"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "ダウンロード完了"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "ダウンロード失敗"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "ダウンロードマネージャー"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1件のアイテムを削除します。"
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "DRMコンテンツを有効にしています..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "サーバーに通知中..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d件のアイテムを削除します。"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "ストレージ"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "再度実行するには、[ダウンロード]をタップしてください。"
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "ファイルが見つかりません。再度ダウンロードを実行するには、[ダウンロード]をタップしてください。"
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "このファイルを開くアプリケーションが見つかりません。"
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "キャンセル"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "ダウンロード"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "ストレージに移動"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "標準ストレージの空き容量不足"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "さらに前"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d件選択"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "今日"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "昨日"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "全て選択"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "削除"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "削除"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "システムメモリ(本体)の空き容量が低下しています。%s[設定]に移動して不要なデータを削除するか、外部SDカードを挿入してください。"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "システムメモリ(本体)の空き容量が低下しています。%s[設定]に移動して空き容量を増やし、再度実行してください。"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "外部SDカードの空き容量が低下しています。%s[設定]に移動して不要なデータを削除するか、端末の標準保存場所を変更してください。"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "外部SDカードの空き容量が低下しています。%s[設定]に移動して不要なデータを削除し、再度実行してください。"
+
diff --git a/po/wvga/ka.po b/po/wvga/ka.po
new file mode 100644 (file)
index 0000000..f6d4f69
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "გაუქმება"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d ელემენტი წაიშლება."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "ეს ელემენტი წაიშლება."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "მზადდება..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "არაფერია ჩამოტვირთული"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "ჩამოტვირთვის შემდეგ შენაძენები გამოჩნდება აქ."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "ჩამოტვირთვა შეწყდა"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "ჩამოტვირთვა დასრულდა"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "ვერ ჩამოიტვირთა"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "ჩამოტვირთვის მმართველი"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 ელემენტი წაიშლება."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "აქტიურდება DRM მასალა..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "სერვერის შეტყობინება..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d ელემენტი წაიშლება."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "მეხსიერება"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "მცდელობის გასამეორებლად, შეეხეთ ჩამოტვირთვის ნიშანს."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "ეს ფაილი ვერ იძებნება. ჩამოტვირთვის მცდელობის გასამეორებლად, შეეხეთ „ჩამოტვირთვა“-ს."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "პროგრამა ვერ მოიძებნა ამ ფაილის გასახსნელად."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "გაუქმება"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "ჩამოტვირთვა"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "საცავზე გადასვლა"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "აპარატის მეხსიერება სავსეა"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "შედარებით ძველი"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d არჩეულია"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "დღეს"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "გუშინ"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "ყველას არჩევა"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "წაშლა"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "აპარატის მეხსიერებაში არ არის საკმარისი ადგილი. გახსენით %s პარამეტრები და წაშალეთ ზოგიერთი მონაცემი, ან ჩადეთ SD ბარათი."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "აპარატის მეხსიერებაში არ არის საკმარისი ადგილი. გახსენით %s პარამეტრები და გაათავისუფლეთ ადგილი მეხსიერებაში, შემდეგ კი ისევ სცადეთ."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "SD ბარათზე არ არის საკმარისი ადგილი. გახსენით %s პარამეტრები და წაშალეთ ზოგიერთი მონაცემი, ან შენახვის ნაგულისხმევ ადგილად აირჩიეთ მოწყობილობა."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "SD ბარათზე არ არის საკმარისი ადგილი. გახსენით %s პარამეტრები და წაშალეთ ზოგიერთი მონაცემი, შემდეგ კი ისევ სცადეთ."
+
diff --git a/po/wvga/kk.po b/po/wvga/kk.po
new file mode 100644 (file)
index 0000000..e854267
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "БАС ТАРТУ"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d элемент жойылады."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Бұл элемент жойылады."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Дай-да..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Жүктеулер жоқ"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Элементтерді жүктеп алған соң, олар осында көрсетіледі."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Жүктеуден бас тартылды"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Жүктеу аяқталды"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Жүктеу орындалмады"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Жүктеулер реттеушісі"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 элемент жойылады."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "DRM мазмұнын белсендіруде..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Серверге хабарлауда..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d элемент жойылады."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Сақтау орны"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Әрекетті қайталау үшін “Жүктеу” түймесін түртіңіз."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Файлды табы мүмкін емес. Қайта жүктеп көру үшін, “Жүктеу” түймесін түртіңіз."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Бұл файлды ашу үшін бағдарлама табылмады."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Бас тарту"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Жүктеу"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Қоймаға өту"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Әдепкі сақтау орны толы"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Ескірек"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d таңдалды"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Бүгін"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Кеше"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Барлығын таңдау"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Жою"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ЖОЮ"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Құрылғы жадында бос орын жеткіліксіз. Кейбір деректерді жою немесе SD картасын енгізу үшін, %s параметріне өтіңіз."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Құрылғы жадында бос орын жеткіліксіз. Сақтау орнын босату үшін, %s параметріне өтіп, әрекетті қайталаңыз."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "SD картасында бос орын жеткіліксіз. Кейбір деректерді жою немесе әдепкі сақтау орнын құрылғыға өзгерту үшін, %s параметріне өтіңіз."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "SD картасында бос орын жеткіліксіз. Кейбір деректерді жою үшін, %s параметріне өтіңіз, содан кейін әрекетті қайталаңыз."
+
diff --git a/po/wvga/ko_KR.po b/po/wvga/ko_KR.po
new file mode 100644 (file)
index 0000000..2617b6b
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "취소"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "항목 %d개를 삭제합니다."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "이 항목을 삭제합니다."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "준비 중..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "다운로드 항목이 없습니다"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "항목을 다운로드하면 여기에 표시됩니다."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "다운로드 취소"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "다운로드 완료"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "다운로드 안 됨"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "다운로드 관리자"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "항목 1개를 삭제합니다."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "DRM 컨텐츠 실행 중..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "서버에 알리는 중..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "항목 %d개를 삭제합니다."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "저장공간"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "다시 시도하려면 [다운로드]를 누르세요."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "파일을 찾을 수 없습니다. 다시 다운로드하려면 [다운로드]를 누르세요."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "이 파일을 열 수 있는 애플리케이션을 찾을 수 없습니다."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "취소"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "다운로드"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "저장공간으로 이동"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "확인"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "기본 저장공간 모두 사용"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "오래된 항목"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d개 선택"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "오늘"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "어제"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "모두 선택"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "삭제"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "삭제"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "디바이스에 저장공간이 부족합니다. %s 설정에서 일부 데이터를 삭제하거나 SD 카드를 삽입하세요."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "디바이스에 저장공간이 부족합니다. %s 설정에서 저장공간을 확보하고 다시 시도하세요."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "SD 카드에 저장공간이 부족합니다. %s 설정에서 일부 데이터를 삭제하거나 기본 저장 위치를 디바이스로 변경하세요."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "SD 카드에 저장공간이 부족합니다. %s 설정에서 일부 데이터를 삭제하고 다시 시도하세요."
+
diff --git a/po/wvga/lt.po b/po/wvga/lt.po
new file mode 100644 (file)
index 0000000..a252b35
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ATŠAUKTI"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "Bus ištrinta elementų: %d."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Šis elementas bus ištrintas."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Ruošiama..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Nėra atsisiuntimų"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Atsisiuntus elementų, jie bus rodomi čia."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Atsisiuntimas atšauktas"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Atsisiuntimas baigtas"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Atsisiųsti nepavyko"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Atsisiuntimų tvarkyt."
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 elementas bus ištrintas."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Aktyvinamas DRM turinys..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Pranešama serveriui..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "Bus ištrinta elementų: %d."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Saugykla"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Bakstelėkite „Atsisiųsti“ ir bandykite dar kartą."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Šio failo nepavyko rasti. Jei norite jį pabandyti atsisiųsti dar kartą, bakstelėkite „Atsisiųsti“."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Nepavyksta rasti programos, kuria būtų galima atidaryti šį failą."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Atšaukti"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Atsisiųsti"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Eikite į saugyklą"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "Gerai"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Numatytoji saugykla pilna"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Senesni"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "Pasirinkta: %d"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Šiandien"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Vakar"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Rinktis viską"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "IŠTRINTI"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Įrenginio saugykloje nepakanka vietos. Eikite į %s nustatymus ir ištrinkite kai kuriuos duomenis arba įdėkite SD kortelę."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Įrenginio saugykloje nepakanka vietos. Eikite į %s nustatymus ir atlaisvinkite šiek tiek vietos, tada bandykite dar kartą."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Jūsų SD kortelėje nepakanka vietos. Eikite į %s nustatymus ir ištrinkite kai kuriuos duomenis arba pakeiskite numatytąją saugyklos vietą į įrenginį."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Jūsų SD kortelėje nepakanka vietos. Eikite į %s nustatymus ir ištrinkite kai kuriuos duomenis, tada bandykite dar kartą."
+
diff --git a/po/wvga/lv.po b/po/wvga/lv.po
new file mode 100644 (file)
index 0000000..4e75f87
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ATCELT"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "Tiks izdzēsti %d objekti."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Šis objekts tiks izdzēsts."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Sagatavo..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Nav lejupielāžu"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Pēc objektu lejupielādes tie tiks parādīti šeit."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Lejupielāde ir atcelta"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Lejupielāde pabeigta"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Lejupielāde neizdevās"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Lejupielāžu pārvaldn."
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "Tiks izdzēsts 1 objekts."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Aktivizē DRM saturu..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Paziņo serverim..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d objekti tiks izdzēsti."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Krātuve"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Lai mēģinātu vēlreiz, pieskarieties pie Lejupielādēt."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Šis fails nav atrodams. Pieskarieties pie Lejupielādēt, lai lejupielādētu vēlreiz."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Nevar atrast programmu, ar ko atvērt šo failu."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Atcelt"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Lejupielādēt"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Atvērt krātuvi"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "Labi"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Noklusējuma krātuve ir pilna"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Vecāki"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "Izvēlēti %d"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Šodien"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Vakar"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Izvēlēties visu"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "DZĒST"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Ierīces krātuvē nepietiek vietas. Atveriet %s iestatījumi, lai izdzēstu daļu datu, vai ievietojiet SD karti."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Ierīces krātuvē nepietiek vietas. Atveriet %s iestatījumi, lai atbrīvotu vietu krātuvē, un pēc tam mēģiniet vēlreiz."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "SD kartē nepietiek vietas. Atveriet %s iestatījumi, lai izdzēstu daļu datu, vai mainiet noklusējuma krātuves vietu uz Ierīce."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "SD kartē nepietiek vietas. Atveriet %s iestatījumi, lai izdzēstu daļu datu, un pēc tam mēģiniet vēlreiz."
+
diff --git a/po/wvga/mk.po b/po/wvga/mk.po
new file mode 100644 (file)
index 0000000..73864f6
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ОТКАЖИ"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d записи ќе се избришат."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Ставката ќе се избрише."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Се подгот..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Нема преземања"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Откако ќе преземете записи, тие ќе се прикажат тука."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Преземањето е откажано"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Преземањето заврши"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Преземањето не успеа"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Уредување преземања"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 запис ќе се избрише."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Се активираат содржини DRM..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Се известува серверот..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d записи ќе се избришат."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Меморија"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Допрете Преземи за повторен обид."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Го нема фајлот. Допрете Преземи за да се обидете да го преземете повторно."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Не може да се најде апликација за отворање на овој фајл."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Откажи"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Преземи"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Оди до Складиште"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Основната меморија е полна"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Постаро"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d избрани"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Денес"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Вчера"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Избери ги сите"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Избриши"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ИЗБРИШИ"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Нема доволно место во меморијата на уредот. Одете во поставките на %s за да избришете податоци или вметнете SD-картичка."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Нема доволно место во меморијата на уредот. Одете во поставките на %s за да ослободите место во меморијата, па обидете се повторно."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Нема доволно место на SD-картичката. Одете во поставките на %s за да избришете податоци или сменете ја основната меморија во Уред."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Нема доволно место на SD-картичката. Одете во поставките на %s за да избришете податоци, па обидете се повторно."
+
diff --git a/po/wvga/nb.po b/po/wvga/nb.po
new file mode 100644 (file)
index 0000000..1dff63e
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "AVBRYT"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d elementer blir slettet."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Dette elementet blir slettet."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Forbered..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Ingen nedlastinger"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Når du har lastet ned elementer, vil de vises her."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Nedlasting avbrutt"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Nedlasting fullført"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Nedlastingen mislyktes"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Nedlastingsbehandling"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 element vil bli slettet."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Aktiverer DRM-innhold..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Varsler tjener..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d elementer vil bli slettet."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Lagring"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Trykk på Last ned for å prøve på nytt."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Finner ikke denne filen. Trykk på Last ned for å prøve å laste den ned på nytt."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Kan ikke finne en app til å åpne denne filen."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Avbryt"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Last ned"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Gå til Lagring"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Standardlagringsplass full"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Eldre"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d valgt"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "I dag"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "I går"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Merk alle"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Slett"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SLETT"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Det er ikke nok plass i enhetsminnet. Gå til %s-innstillinger for å slette noen data, eller sett inn et SD-kort."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Det er ikke nok plass i enhetsminnet. Gå til %s-innstillinger for å frigjøre lagringsplass, og prøv på nytt."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Det er ikke nok plass på SD-kortet. Gå til %s-innstillinger for å slette noen data, eller endre standard lagringsplassering til Enhet."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Det er ikke nok plass på SD-kortet. Gå til %s-innstillinger for å slette noen data, og prøv på nytt."
+
diff --git a/po/wvga/nl.po b/po/wvga/nl.po
new file mode 100644 (file)
index 0000000..16179ca
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANNULEREN"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d items worden verwijderd."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Dit item wordt verwijderd."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Voorber..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Geen downloads"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Nadat u items hebt gedownload, worden ze hier getoond."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Download geannuleerd"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Downloaden voltooid"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Downloaden mislukt"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Downloadmanager"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 item wordt verwijderd."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "DRM-inhoud activeren..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Melden aan server..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d items worden verwijderd."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Opslag"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Tik op Downloaden om opnieuw te proberen."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Dit bestand is niet gevonden. Tik op Downloaden om het opnieuw te proberen."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Kan geen applicatie vinden om dit bestand te openen."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Annul."
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Downloaden"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Ga naar Opslag"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Standaardopslag vol"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Ouder"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d geselecteerd"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Vandaag"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Gisteren"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Alles selecteren"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Wissen"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "VERWIJDEREN"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Er is onvoldoende ruimte in uw apparaatopslag. Ga naar de instellingen voor %s om gegevens te verwijderen of plaats een SD-kaart."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Er is onvoldoende ruimte in uw apparaatopslag. Ga naar de instellingen voor %s om opslagruimte vrij te maken en probeer het opnieuw."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Er is onvoldoende ruimte op uw SD-kaart. Ga naar de instellingen voor %s om gegevens te verwijderen of de standaard opslaglocatie te wijzen in Apparaat."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Er is onvoldoende ruimte op uw SD-kaart. Ga naar de instellingen voor %s om gegevens te verwijderen en probeer het opnieuw."
+
diff --git a/po/wvga/pl.po b/po/wvga/pl.po
new file mode 100644 (file)
index 0000000..00cfeb2
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANULUJ"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "Elementów: %d zostanie usun."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Ten element zostanie usunięty."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Przyg.w toku..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Brak pobranych elementów"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Elementy zostaną tu wyświetlone po ich pobraniu."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Anulowano pobieranie"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Pobieranie zakończone"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Pobieranie nie powiodło się"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Menedżer pobierania"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 element zostanie usunięty."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Aktywowanie zawartości DRM..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Powiadamianie serwera..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "Liczba elementów, które zostaną usunięte: %d."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Domyślna pamięć"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Dotknij przycisku Pobierz, aby spróbować ponownie."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Nie można znaleźć tego pliku. Dotknij opcji Pobierz, aby spróbować pobrać go ponownie."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Nie można znaleźć aplikacji do otwarcia tego pliku."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Anuluj"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Pobierz"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Przejdź do Pamięci"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Domyślna pamięć pełna"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Starsze"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "Wybranych: %d"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Dzisiaj"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Wczoraj"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Zaznacz wszystko"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "USUŃ"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Za mało miejsca w pamięci urządzenia. Wejdź do ustawień w menu %s i usuń część danych lub włóż kartę pamięci."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Za mało miejsca w pamięci urządzenia. Wejdź do ustawień w menu %s i zwolnij trochę miejsca, a następnie spróbuj ponownie."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Za mało miejsca na karcie pamięci. Wejdź do ustawień w menu %s i usuń część danych lub zmień domyślną lokalizację pamięci na Urządzenie."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Za mało miejsca na karcie pamięci. Wejdź do ustawień w menu %s i usuń część danych, a następnie spróbuj ponownie."
+
diff --git a/po/wvga/pt_BR.po b/po/wvga/pt_BR.po
new file mode 100644 (file)
index 0000000..b7bf75c
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d itens serão apagados."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Este item será excluído."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Prepar..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Não há downloads"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Após baixar itens, eles serão exibidos aqui."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Download cancelado"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Download concluído"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Falha no download"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Gerenciador download"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 item será excluído."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Ativando conteúdo DRM..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Notificando servidor..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d itens serão excluídos"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Armazenamento"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Toque em Baixar para tentar novamente."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Não é possível encontrar este arquivo. Toque em Baixar para tentar baixá-lo novamente."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Não é possível localizar um aplicativo para abrir este arquivo."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Cancelar"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Baixar"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Ir ao Armazenamento"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Armazenamento padrão cheio"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Mais antigo"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d selecionados"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Hoje"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Ontem"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Selec. tudo"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Excluir"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "EXCLUIR"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Não existe espaço suficiente no armazenamento do seu dispositivo. Vá para configurações de %s para excluir alguns dados ou insira um cartão SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Não existe espaço suficiente no armazenamento do dispositivo. Vá para configurações de %s para liberar algum espaço de armazenamento e tente novamente."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Não existe espaço suficiente no seu cartão SD. Vá para configurações de %s para excluir alguns dados ou alterar o local de armazenamento padrão para o Dispositivo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Não existe espaço suficiente no cartão SD. Vá para as configurações de %s para excluir alguns dados e tente novamente."
+
diff --git a/po/wvga/pt_PT.po b/po/wvga/pt_PT.po
new file mode 100644 (file)
index 0000000..26684dd
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "CANCELAR"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d itens serão eliminados."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Este item será eliminado."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "A prep..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Nenhumas transferências"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Depois de transferir itens, estes serão mostrados aqui."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Transferência cancelada"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Transferência concluída"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "A transferência falhou"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Gestor transferências"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 item será eliminado."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "A activar conteúdo DRM..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "A notificar servidor..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d itens serão eliminados."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Armazenamento"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Toque em Transferir para tentar novamente."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Não foi possível encontrar este ficheiro. Toque em Transferir e tente transferir o ficheiro novamente."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Impossível localizar uma aplicação para abrir este ficheiro."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Cancelar"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Transferir"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Ir p/ Armazenamento"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Memória padrão cheia"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Mais antigo"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d seleccionados"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Hoje"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Ontem"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Seleccionar tudo"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ELIMINAR"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Não existe espaço suficiente no armazenamento do dispositivo. Vá para as definições de %s para eliminar alguns dados ou introduza um cartão SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Não existe espaço suficiente no armazenamento do dispositivo. Vá para as definições de %s para libertar algum espaço de armazenamento, e depois tente novamente."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Não existe espaço suficiente no seu cartão SD. Vá para as definições de %s para eliminar alguns dados ou altere a localização de armazenamento padrão para o Dispositivo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Não existe espaço suficiente no seu cartão SD. Vá para as definições de %s para eliminar alguns dados e depois tente novamente."
+
diff --git a/po/wvga/ro.po b/po/wvga/ro.po
new file mode 100644 (file)
index 0000000..065f5b2
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ANULARE"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d elemente vor fi şterse."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Acest element va fi şters."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Pregătire..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Nicio descărcare"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "După ce descărcaţi elemente, acestea vor fi afişate aici."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Descărcarea a fost anulată"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Descărcare finalizată"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Descărcarea nu a reuşit"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Manager descărcare"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 element va fi şters."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Se activează conţinutul DRM..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Se notifică serverul..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d elemente vor fi şterse."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Stocare"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Atingeţi Descărcare pentru a încerca din nou."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Fişierul nu poate fi găsit. Atingeţi Descărcare pentru a încerca din nou să-l descărcaţi."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Nu s-a putut găsi o aplicaţie pentru a deschide acest fişier."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Anulare"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Descărcare"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Deschidere Stocare"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Spaţiul de stocare implicit este plin"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Mai vechi"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d selectate"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Azi"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Ieri"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Select. totală"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Ştergere"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ŞTERGERE"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Spaţiul din memoria dispozitivului este insuficient. Deschideţi setările %s pentru a şterge câteva date sau introduceţi un card SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Spaţiul din memoria dispozitivului este insuficient. Deschideţi setările %s pentru a elibera spaţiu, apoi încercaţi din nou."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Spaţiul de pe cardul SD este insuficient. Deschideţi setările %s pentru a şterge câteva date sau schimbaţi locaţia implicită de stocare la Dispozitiv."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Spaţiul de pe cardul SD este insuficient. Deschideţi setările %s pentru a şterge date, apoi încercaţi din nou."
+
diff --git a/po/wvga/ru_RU.po b/po/wvga/ru_RU.po
new file mode 100644 (file)
index 0000000..c264699
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ОТМЕНА"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "Элементы (%d) будут удалены."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Этот элемент будет удален."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Подготовка..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Нет загрузок"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Здесь отображаются загруженные элементы."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Загрузка отменена"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Загрузка завершена"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Сбой загрузки"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Диспетчер загрузки"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "Будет удален 1 элемент."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Активация содержимого DRM..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Уведомление сервера..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "Элементы (%d) будут удалены."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Память"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Нажмите “Загрузить”, чтобы повторить попытку."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Не удается найти этот файл. Нажмите “Загрузка”, чтобы снова загрузить его."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Не удалось найти приложение для открытия этого файла."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Отмена"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Загрузка"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Перейти в “Хранил.”"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "ОК"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Хранилище по умолчанию заполнено"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Старые"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "Выбрано: %d"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Сегодня"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Вчера"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Выбрать все"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Удалить"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "УДАЛИТЬ"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Недостаточно места в памяти устройства. Вставьте карту памяти SD или перейдите в меню %s, чтобы удалить некоторые данные."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Недостаточно места в памяти устройства. Перейдите в меню %s, чтобы освободить место, затем повторите попытку."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Недостаточно места на карте памяти SD. Перейдите в меню %s, чтобы удалить некоторые данные, или измените место хранения по умолчанию на “Устройство”."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Недостаточно места на карте памяти SD. Перейдите в меню %s, чтобы удалить некоторые данные, затем повторите попытку."
+
diff --git a/po/wvga/sk.po b/po/wvga/sk.po
new file mode 100644 (file)
index 0000000..a947a06
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "ZRUŠIŤ"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "Vykoná sa odstr. %d položiek."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Táto položka sa odstráni."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Príprava..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Žiadne sťahovania"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Po stiahnutí položiek sa zobrazia tu."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Sťahovanie bolo zrušené"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Sťahovanie je dokončené"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Sťahovanie zlyhalo"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Správca sťahovaní"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 položka sa vymaže."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Aktivuje sa obsah DRM..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Oznamuje sa serveru..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d položky sa vymažú."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Úložisko"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Ťuknutím na tlačidlo Stiahnuť to skúste znova."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Tento súbor sa nedá nájsť. Ťuknutím na tlačidlo Stiahnuť ho skúste stiahnuť znova."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Nedá sa nájsť aplikácia na otvorenie tohto súboru."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Zrušiť"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Stiahnuť"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Prejsť do úložiska"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Predvolený úložný priestor je plný"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Staršie"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "Vybraté: %d"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Dnes"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Včera"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Vybrať všetko"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Odstrániť"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ODSTRÁNIŤ"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "V úložisku zariadenia nie je dostatok miesta. Prejdite do menu %s a odstráňte niektoré údaje, alebo vložte kartu SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "V úložisku zariadenia nie je dostatok miesta. Prejdite do menu %s, uvoľnite miesto v úložisku a potom to skúste znova."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Na karte SD nie je dostatok miesta. Prejdite do menu %s a odstráňte niektoré údaje, alebo zmeňte predvolené umiestnenie úložiska na Zariadenie."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Na karte SD nie je dostatok miesta. Prejdite do menu %s, odstráňte niektoré údaje a potom to skúste znova."
+
diff --git a/po/wvga/sl.po b/po/wvga/sl.po
new file mode 100644 (file)
index 0000000..0d2c584
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "PREKLIČI"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "Izbrisan. bo toliko elem.: %d."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Ta element bo izbrisan."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Priprava ..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Ni prenosov"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Ko prenesete elemente, bodo prikazani tukaj."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Prenos je preklican"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Prenos je končan"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Prenos ni uspel"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Upravitelj prenosov"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 element bo izbrisan."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Aktiviranje vsebine DRM ..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Obveščanje strežnika ..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d elementov bo izbrisanih."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Shranjevanje"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Pritisnite Prenos, da poskusite znova."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Te datoteke ni mogoče najti. Pritisnite Prenos, da jo poskusite prenesti znova."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Ni mogoče najti aplikacije za odpiranje te datoteke."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Prekliči"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Prenesi"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Pojdi v pomnilnik"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "V redu"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Privzeta shramba je polna"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Starejše"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "Št. izbranih: %d"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Danes"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Včeraj"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Izberi vse"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "IZBRIŠI"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "V pomnilniku naprave ni dovolj prostora. Pojdite v nastavitve za %s in izbrišite nekaj podatkov ali vstavite kartico SD."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "V pomnilniku naprave ni dovolj prostora. Pojdite v nastavitve za %s in sprostite nekaj prostora, nato pa poskusite znova."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Na kartici SD ni dovolj prostora. Pojdite v nastavitve za %s in izbrišite nekaj podatkov ali za privzeto mesto shranjevanja nastavite možnost Naprava."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Na kartici SD ni dovolj prostora. Pojdite v nastavitve za %s in izbrišite nekaj podatkov, nato pa poskusite znova."
+
diff --git a/po/wvga/sr.po b/po/wvga/sr.po
new file mode 100644 (file)
index 0000000..53cd24d
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "OTKAŽI"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "Biće izbrisano %d stavki."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Ova stavka će biti izbrisana."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Priprema..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Nema preuzimanja"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Stavke će se prikazati ovde nakon što ih preuzmeš."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Preuzimanje je otkazano"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Preuzimanje završeno"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Neuspešno preuzimanje"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Menadžer preuzimanja"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 stavka će biti izbrisana."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Aktivira se DRM sadržaj..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Obaveštavanje servera..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "Biće obrisane/o %d stavke/i."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Memorija"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Kucni na Preuzmi da bi pokušao/la ponovo."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Nije moguće pronaći ovaj fajl. Kucni na opciju Preuzmi za ponovni pokušaj njegovog preuzimanja."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Nije moguće naći aplikaciju da bi se otvorio ovaj fajl."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Otkaži"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Preuzmi"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Idi u Memoriju"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Podrazumevana memorija je puna"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Starije"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "Izabrano: %d"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Danas"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Juče"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Izaberi sve"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "IZBRIŠI"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Nema dovoljno prostora u memoriji uređaja. Idi na %s podešavanja da bi izbrisao/la neke podatke ili ubaci SD karticu."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Nema dovoljno prostora u memoriji uređaja. Idi na %s podešavanja da bi oslobodio/la prostor u memoriji, a zatim pokušaj ponovo."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Nema dovoljno prostora na SD kartici. Idi na %s podešavanja da bi izbrisao/la neke podatke ili promeni podrazumevanu lokaciju memorije na Uređaj."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Nema dovoljno prostora na SD kartici. Idi na %s podešavanja da bi izbrisao/la neke podatke, a zatim pokušaj ponovo."
+
diff --git a/po/wvga/sv.po b/po/wvga/sv.po
new file mode 100644 (file)
index 0000000..773ae6e
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "AVBRYT"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d objekt tas bort."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Det här objektet tas bort."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Förber..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Inga nedladdningar"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "När du har hämtat objekt kommer de att visas här."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Hämtningen avbröts"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Hämtningen är klar"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Hämtningen misslyckades"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Hämtningshanterare"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 objekt kommer att tas bort."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Aktiverar DRM-innehåll ..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Aviserar servern ..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d objekt raderas."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Lagring"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Tryck på Hämta om du vill försöka igen."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Den här filen hittades inte. Tryck på Hämta om du vill försöka hämta den igen."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Det gick inte att hitta något program att öppna filen med."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Avbryt"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Hämta"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Gå till Lagring"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Standardlagring full"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Äldre"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d valda"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Idag"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Igår"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Välj alla"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Ta bort"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "TA BORT"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Det finns inte tillräckligt med utrymme på enhetens lagringsutrymme. Gå till inställningar för %s för att ta bort några data eller sätta i ett SD-kort."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Det finns inte tillräckligt med utrymme i enhetens lagringsutrymme. Gå till inställningar för %s för att frigöra lagringsutrymme och försök igen."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Det finns inte tillräckligt med utrymme på ditt SD-kort. Gå till inställningar för %s för att ta bort några data, eller ändra standardlagringsplatsen på enheten."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Det finns inte tillräckligt med utrymme på ditt SD-kort. Gå till inställningar för %s för att ta bort några data och försök sedan igen."
+
diff --git a/po/wvga/tr_TR.po b/po/wvga/tr_TR.po
new file mode 100644 (file)
index 0000000..2da1c83
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "İPTAL"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d öğe silinecek."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Bu öğe silinecek."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Hzrlnıyor..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "İndirme yok"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Öğeleri indirdikten sonra burada gösterileceklerdir"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "İndirme iptal edildi"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "İndirme tamamlandı"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "İndirme başarısız"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "İndirme Yöneticisi"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 öğe silinecek."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "DRM içeriği etkinleştiriliyor..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Sunucuya bildiriliyor..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d öğe silinecek."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Kayıt yeri"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Tekrar denemek için İndir öğesine dokunun."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Bu dosya bulunamıyor. Tekrar indirmeyi denemek için İndir'e dokunun."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Bu dosyayı açacak bir uygulama bulunamadı."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "İptal"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "İndir"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Belleğe git"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "Tamam"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Varsayılan bellek dolu"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Daha eski"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d seçildi"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Bugün"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Dün"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Tümünü seç"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "SİL"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Cihazınızın belleğinde yeterli alan yok. Bazı verileri silmek veya bir SD kart takmak için %s ayarlarına gidin."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Cihazınızın belleğinde yeterli alan yok. Depolama alanı açmak için %s ayarlarına gidin, ardından tekrar deneyin."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "SD kartınızda yeterli alan yok. Bazı verileri silmek için %s ayarlarına gidin veya varsayılan depolama konumunu Cihaz olarak değiştirin."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "SD kartınızda yeterli alan yok. Bazı verileri silmek için %s ayarlarına gidin, ardından tekrar deneyin."
+
diff --git a/po/wvga/uk.po b/po/wvga/uk.po
new file mode 100644 (file)
index 0000000..98477f0
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "СКАСУВАТИ"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d об’єктів буде видалено."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Цей об’єкт буде видалено."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Підготов..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Немає завантажень"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Після завантаження об’єктів вони відобразяться тут."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Завантаження скасовано"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Завантаження завершено"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Збій завантаження"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Диспетчер завантажень"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 об’єкт буде видалено."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "Активація вмісту DRM..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Сповіщення сервера..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d об'єкти буде видалено."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Пам'ять"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Торкніться «Завантажити», щоб спробувати ще раз."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Неможливо знайти цей файл. Торкніться «Завантажити», щоб спробувати завантажити його ще раз."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Неможливо знайти програму для відкриття цього файла."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Скасувати"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Завантажити"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Перейт.у міс.збереж."
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "ОК"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Стандартне місце збереження заповнене"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Попередні"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "Вибрано: %d"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Сьогодні"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Вчора"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Вибрати всі"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Видалити"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "ВИДАЛИТИ"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Недостатньо вільного місця в місці збереження на пристрої. Перейдіть до розділу «Установки %s», щоб видалити деякі дані, або вставте карту пам’яті."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Недостатньо вільного місця в місці збереження на пристрої. Перейдіть до розділу «Установки %s», щоб звільнити місце в пам’яті пристрою, а потім спробуйте ще раз."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "Недостатньо вільного місця на карті пам’яті. Перейдіть до розділу «Установки %s», щоб видалити деякі дані, або змініть стандартне місце збереження на пристрій."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "Недостатньо вільного місця на карті пам’яті. Перейдіть до розділу «Установки %s», щоб видалити деякі дані, а потім спробуйте ще раз."
+
diff --git a/po/wvga/uz.po b/po/wvga/uz.po
new file mode 100644 (file)
index 0000000..25aa4d0
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "BEKOR QILISH"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d ta element yo‘q qilinadi."
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "Ushbu element yo‘q qilinadi."
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "Tay-rlash..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "Yuklanmalar yo‘q"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "Elementlarni yuklab olganingizdan so‘ng ular shu yerda ko‘rsatiladi."
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "Yuklab olish to'xtatildi"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "Yuklab olish yakunlandi"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "Yuklab olib bo‘lmadi"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "Yuklab olish menejeri"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "1 element yo‘q qilinadi."
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "DRM tarkib faollashtirilmoqda..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "Serverga xabar berilmoqda..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "%d element o'chirib tashlanadi."
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "Xotira"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "Qayta urinib ko‘rish uchun Yuklab olishga teging."
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "Ushbu faylni topib bo‘lmaydi. Uni qayta yuklab olishga urinish uchun Yuklab olishga teging."
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "Ushbu faylni ochish uchun ilovani topib bo‘lmadi."
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "Bekor qilish"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "Yuklab olish"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "Xotiraga o‘tish"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "Birlamchi xotira to‘la"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "Eskiroq"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "%d tanlandi"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "Bugun"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "Kecha"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "Hammasini belgilash"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "Yo‘q qilish"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "O‘CHIRISH"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "Qurilmangiz xotirasida yetarli bo‘sh joy mavjud emas. Ba’zi ma’lumotlarni yo‘q qilish uchun %s parametrlariga o‘ting yoki SD-kartani kiriting."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "Qurilmangiz xotirasida yetarli bo‘sh joy mavjud emas. Xotirani bo‘shatish uchun %s parametrlariga o‘ting, so‘ngra qayta urinib ko‘ring."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "SD-kartangizda yetarli xotira mavjud emas. Ba’zi ma’lumotlarni yo‘q qilish uchun %s parametrlariga o‘ting yoki birlamchi saqlash joyini Qurilmaga o‘zgartiring."
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "SD-kartangizda yetarli xotira mavjud emas. Ba’zi ma’lumotlarni yo‘q qilish uchun %s parametrlariga o‘ting, so‘ngra qayta urinib ko‘ring."
+
diff --git a/po/wvga/zh_CN.po b/po/wvga/zh_CN.po
new file mode 100644 (file)
index 0000000..37d5519
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "将删除 %d 个项目。"
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "将删除该项目。"
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "正在准备..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "无下载项"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "在您下载项目后,其将显示在此处。"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "已取消下载"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "下载完成"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "下载失败"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "下载管理器"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "将删除 1 个项目。"
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "正在激活 DRM 内容..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "正在通知服务器..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "将删除 %d 个项目。"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "存储器"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "点击下载以重试。"
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "该文件无法找到。点击下载以重新尝试下载。"
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "无法找到用于打开该文件的应用程序。"
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "取消"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "下载"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "进入存储"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "确定"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "默认存储已满"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "较旧"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "已选中 %d 个"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "今天"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "昨天"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "全选"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "删除"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "删除"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "您的设备存储空间不足。进入 %s 设定以删除部分数据或插入 SD 卡。"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "您的设备存储空间不足。进入 %s 设定以释放部分存储空间,然后重试。"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "您的 SD 卡上空间不足。进入 %s 设定以删除部分数据或将默认存储位置更改为设备。"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "您的 SD 卡上空间不足。进入 %s 设定以删除部分数据,然后重试。"
+
diff --git a/po/wvga/zh_HK.po b/po/wvga/zh_HK.po
new file mode 100644 (file)
index 0000000..4005f74
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "%d 個項目將被刪除。"
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "此項目將被刪除。"
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "正在準備..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "無下載項目"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "項目將在您下載後顯示於此。"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "下載已取消"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "下載完成"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "下載失敗"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "下載管理員"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "將刪除 1 個項目。"
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "正在啟動 DRM 內容..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "正在通知伺服器..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "將刪除 %d 個項目。"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "儲存位置"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "輕觸下載以重試。"
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "找不到此檔案。輕觸下載以重新嘗試下載。"
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "找不到用於開啟此檔案的應用程式。"
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "取消"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "下載"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "前往儲存裝置"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "確定"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "預設儲存空間已滿"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "較舊的"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "已選擇 %d 個"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "今天"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "昨天"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "選擇全部"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "刪除"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "您的裝置儲存空間不足。前往 %s 設定以刪除部分數據或插入 SD 卡。"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "您的裝置儲存空間不足。前往 %s 設定以釋放部分儲存空間,然後重試。"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "您的 SD 卡上的空間不足。前往 %s 設定以刪除部分數據或將預設儲存位置變更為裝置。"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "您的 SD 卡上的空間不足。前往 %s 設定以刪除部分數據,然後重試。"
+
diff --git a/po/wvga/zh_TW.po b/po/wvga/zh_TW.po
new file mode 100644 (file)
index 0000000..8a0ec33
--- /dev/null
@@ -0,0 +1,102 @@
+msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"
+msgstr "取消"
+
+msgid "IDS_DM_POP_PD_ITEMS_WILL_BE_DELETED_ABB2"
+msgstr "將刪除 %d 個項目。"
+
+msgid "IDS_DM_POP_THIS_ITEM_WILL_BE_DELETED_ABB"
+msgstr "將刪除此項目。"
+
+msgid "IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"
+msgstr "正在就緒..."
+
+msgid "IDS_DM_BODY_NO_DOWNLOADS"
+msgstr "無下載"
+
+msgid "IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"
+msgstr "項目將在您下載後顯示於此。"
+
+msgid "IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"
+msgstr "下載已取消"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+msgstr "下載完成"
+
+msgid "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+msgstr "下載失敗"
+
+msgid "IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"
+msgstr "下載管理員"
+
+msgid "IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"
+msgstr "將刪除 1 個項目。"
+
+msgid "IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"
+msgstr "正在啟用 DRM 內容..."
+
+msgid "IDS_DM_BODY_NOTIFYING_SERVER_ING"
+msgstr "正在通知伺服器..."
+
+msgid "IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED"
+msgstr "將刪除%d 個項目。"
+
+msgid "IDS_DM_BODY_STORAGE"
+msgstr "儲存位置"
+
+msgid "IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN"
+msgstr "輕觸下載以重試。"
+
+msgid "IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN"
+msgstr "找不到此檔案。輕觸下載以重新嘗試下載。"
+
+msgid "IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE"
+msgstr "找不到應用程式來開啟此檔案。"
+
+msgid "IDS_DM_BUTTON_CANCEL_ABB2"
+msgstr "取消"
+
+msgid "IDS_DM_BUTTON_DOWNLOAD_ABB2"
+msgstr "下載"
+
+msgid "IDS_DM_BUTTON_GO_TO_STORAGE_ABB"
+msgstr "前往儲存空間"
+
+msgid "IDS_DM_BUTTON_OK_ABB"
+msgstr "確定"
+
+msgid "IDS_DM_HEADER_DEFAULT_STROAGE_FULL"
+msgstr "預設儲存空間已滿"
+
+msgid "IDS_DM_HEADER_OLDER"
+msgstr "較舊的"
+
+msgid "IDS_DM_HEADER_PD_SELECTED_ABB3"
+msgstr "已選擇 %d"
+
+msgid "IDS_DM_HEADER_TODAY"
+msgstr "今天"
+
+msgid "IDS_DM_HEADER_YESTERDAY"
+msgstr "昨天"
+
+msgid "IDS_DM_MBODY_SELECT_ALL"
+msgstr "全選"
+
+msgid "IDS_DM_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB"
+msgstr "刪除"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD"
+msgstr "裝置儲存空間中的空間不足。前往 %s 設定來刪除部分資料或插入 SD 卡。"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN"
+msgstr "裝置儲存空間中的空間不足。前往 %s 設定來釋出部分儲存空間,然後重試。"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE"
+msgstr "您的 SD 卡空間不足。前往 %s 設定來刪除部分儲存空間,或將預設儲存空間位置變更為裝置。"
+
+msgid "IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN"
+msgstr "您的 SD 卡空間不足。前往 %s 設定來刪除部分資料,然後重試。"
+
diff --git a/po/zh_CN.po b/po/zh_CN.po
deleted file mode 100644 (file)
index ba5632f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "通知中..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "重试"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "下载管理器"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "描述符无效"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "无下载项"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "完成"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "无法打开文件"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "下载?"
-
diff --git a/po/zh_HK.po b/po/zh_HK.po
deleted file mode 100644 (file)
index 91d044c..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "正在通知..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "重試"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "下載管理員"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "無效描述項"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "無下載項目"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "完成"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "無法開啟檔案"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "要下載嗎?"
-
diff --git a/po/zh_SG.po b/po/zh_SG.po
deleted file mode 100644 (file)
index 922533d..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "通知中..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "重试"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "下载管理器"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "描述符无效"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "无下载项"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "完成"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "无法打开文件"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "下载?"
-
diff --git a/po/zh_TW.po b/po/zh_TW.po
deleted file mode 100644 (file)
index 9476813..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-msgid "IDS_BR_BODY_NOTIFYING_ING"
-msgstr "正在通知..."
-
-msgid "IDS_BR_SK_RETRY"
-msgstr "重試"
-
-msgid "IDS_BR_HEADER_DOWNLOAD_MANAGER"
-msgstr "下載管理員"
-
-msgid "IDS_BR_POP_INVALIDDESCRIPTOR"
-msgstr "描述元無效"
-
-msgid "IDS_DL_BODY_NO_DOWNLOADS"
-msgstr "無下載"
-
-msgid "IDS_EMAIL_BODY_COMPLETE"
-msgstr "完成"
-
-msgid "IDS_BR_POP_UNABLE_TO_OPEN_FILE"
-msgstr "無法開啟檔案"
-
-msgid "IDS_BR_POP_DOWNLOAD_Q"
-msgstr "要下載嗎?"
-
diff --git a/res/download-manager.edc b/res/download-manager.edc
deleted file mode 100644 (file)
index a4db74f..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 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.
- *
- */
-
-collections {
-       group {
-               name: "download/selectioninfo";
-               parts {
-                       part {
-                               name: "gen.swallow.contents";
-                               type: SWALLOW;
-                               description {
-                                       state: "default" 0.0;
-                                       align: 0.5 0.0;
-                               }
-                       }
-                       part {
-                               name: "sel.swallow.contents";
-                               type: SWALLOW;
-                               description {
-                                       state: "default" 0.0;
-                                       fixed: 0 1;
-                                       align: 0.5 1.0;
-                                       rel1 {
-                                               relative: 0.0 1.0;
-                                               to:"gen.swallow.contents";
-                                       }
-                               }
-                               description { state: "hide" 0.0;
-                               inherit: "default" 0.0;
-                               visible: 0;
-                               }
-                       }
-               }
-               programs {
-                       program {
-                               name: "show";
-                               signal: "show,selection,info";
-                               source: "elm";
-                               action: STATE_SET "default" 0.0;
-                               target: "sel.swallow.contents";
-                       }
-                       program {
-                               name: "hide";
-                               signal: "hide,selection,info";
-                               source: "elm";
-                               action: STATE_SET "hide" 0.0;
-                               target: "sel.swallow.contents";
-                       }
-               }
-       }
-}
diff --git a/res/images/U06_icon_image.png b/res/images/U06_icon_image.png
deleted file mode 100644 (file)
index 5b11f78..0000000
Binary files a/res/images/U06_icon_image.png and /dev/null differ
diff --git a/res/images/U06_icon_music.png b/res/images/U06_icon_music.png
deleted file mode 100644 (file)
index 12b6cb8..0000000
Binary files a/res/images/U06_icon_music.png and /dev/null differ
diff --git a/res/images/U06_icon_ringtone.png b/res/images/U06_icon_ringtone.png
deleted file mode 100644 (file)
index 4ea1672..0000000
Binary files a/res/images/U06_icon_ringtone.png and /dev/null differ
diff --git a/res/images/U06_icon_video.png b/res/images/U06_icon_video.png
deleted file mode 100644 (file)
index 0ee8587..0000000
Binary files a/res/images/U06_icon_video.png and /dev/null differ
diff --git a/res/images/U06_icon_word.png b/res/images/U06_icon_word.png
deleted file mode 100644 (file)
index 96d3e50..0000000
Binary files a/res/images/U06_icon_word.png and /dev/null differ
similarity index 74%
rename from res/images/U06_icon_text.png
rename to res/images/hd/00_icon_delete.png
index b156b91..f5c3ec4 100644 (file)
Binary files a/res/images/U06_icon_text.png and b/res/images/hd/00_icon_delete.png differ
similarity index 68%
rename from res/images/U06_icon_pdf.png
rename to res/images/hd/00_icon_select_all.png
index b99803e..4829962 100644 (file)
Binary files a/res/images/U06_icon_pdf.png and b/res/images/hd/00_icon_select_all.png differ
diff --git a/res/images/hd/00_nocontents_text.png b/res/images/hd/00_nocontents_text.png
new file mode 100644 (file)
index 0000000..f674ada
Binary files /dev/null and b/res/images/hd/00_nocontents_text.png differ
diff --git a/res/images/hd/B03_processing_download_completed.png b/res/images/hd/B03_processing_download_completed.png
new file mode 100644 (file)
index 0000000..63e4aec
Binary files /dev/null and b/res/images/hd/B03_processing_download_completed.png differ
diff --git a/res/images/hd/B03_processing_download_failed.png b/res/images/hd/B03_processing_download_failed.png
new file mode 100644 (file)
index 0000000..2f1826d
Binary files /dev/null and b/res/images/hd/B03_processing_download_failed.png differ
similarity index 65%
rename from res/images/U06_icon_Unknown.png
rename to res/images/hd/U01_icon_broken.png
index 024cfc1..9020234 100644 (file)
Binary files a/res/images/U06_icon_Unknown.png and b/res/images/hd/U01_icon_broken.png differ
similarity index 62%
rename from res/images/U06_icon_ppt.png
rename to res/images/hd/U01_icon_drm.png
index 60341e3..06e682b 100644 (file)
Binary files a/res/images/U06_icon_ppt.png and b/res/images/hd/U01_icon_drm.png differ
similarity index 59%
rename from res/images/U06_icon_DRM.png
rename to res/images/hd/U01_icon_excel.png
index adb9254..6efd14a 100644 (file)
Binary files a/res/images/U06_icon_DRM.png and b/res/images/hd/U01_icon_excel.png differ
similarity index 53%
rename from res/images/U06_icon_Java.png
rename to res/images/hd/U01_icon_html.png
index 317be17..01260ba 100644 (file)
Binary files a/res/images/U06_icon_Java.png and b/res/images/hd/U01_icon_html.png differ
diff --git a/res/images/hd/U01_icon_pdf.png b/res/images/hd/U01_icon_pdf.png
new file mode 100644 (file)
index 0000000..3f8cda6
Binary files /dev/null and b/res/images/hd/U01_icon_pdf.png differ
diff --git a/res/images/hd/U01_icon_ppt.png b/res/images/hd/U01_icon_ppt.png
new file mode 100644 (file)
index 0000000..79302eb
Binary files /dev/null and b/res/images/hd/U01_icon_ppt.png differ
diff --git a/res/images/hd/U01_icon_swf.png b/res/images/hd/U01_icon_swf.png
new file mode 100644 (file)
index 0000000..39a49da
Binary files /dev/null and b/res/images/hd/U01_icon_swf.png differ
diff --git a/res/images/hd/U01_icon_text.png b/res/images/hd/U01_icon_text.png
new file mode 100644 (file)
index 0000000..5f8b3bd
Binary files /dev/null and b/res/images/hd/U01_icon_text.png differ
similarity index 50%
rename from res/images/U06_icon_html.png
rename to res/images/hd/U01_icon_tpk.png
index 72fed4a..796c788 100644 (file)
Binary files a/res/images/U06_icon_html.png and b/res/images/hd/U01_icon_tpk.png differ
diff --git a/res/images/hd/U01_icon_unkown.png b/res/images/hd/U01_icon_unkown.png
new file mode 100644 (file)
index 0000000..25a2801
Binary files /dev/null and b/res/images/hd/U01_icon_unkown.png differ
diff --git a/res/images/hd/U01_icon_vcs.png b/res/images/hd/U01_icon_vcs.png
new file mode 100644 (file)
index 0000000..72dbf76
Binary files /dev/null and b/res/images/hd/U01_icon_vcs.png differ
similarity index 57%
rename from res/images/U06_icon_excel.png
rename to res/images/hd/U01_icon_word.png
index 2ef1042..a45acd7 100644 (file)
Binary files a/res/images/U06_icon_excel.png and b/res/images/hd/U01_icon_word.png differ
diff --git a/res/images/hd/U01_list_icon_image.png b/res/images/hd/U01_list_icon_image.png
new file mode 100644 (file)
index 0000000..ebb2a3c
Binary files /dev/null and b/res/images/hd/U01_list_icon_image.png differ
diff --git a/res/images/hd/U01_list_icon_mp3.png b/res/images/hd/U01_list_icon_mp3.png
new file mode 100644 (file)
index 0000000..c5176be
Binary files /dev/null and b/res/images/hd/U01_list_icon_mp3.png differ
diff --git a/res/images/hd/U01_list_icon_mp4.png b/res/images/hd/U01_list_icon_mp4.png
new file mode 100644 (file)
index 0000000..2e3c87b
Binary files /dev/null and b/res/images/hd/U01_list_icon_mp4.png differ
diff --git a/res/images/hd/noti_download_complete.png b/res/images/hd/noti_download_complete.png
new file mode 100644 (file)
index 0000000..6171bd8
Binary files /dev/null and b/res/images/hd/noti_download_complete.png differ
diff --git a/res/images/hd/noti_download_failed.png b/res/images/hd/noti_download_failed.png
new file mode 100644 (file)
index 0000000..5eb122b
Binary files /dev/null and b/res/images/hd/noti_download_failed.png differ
diff --git a/res/images/wvga/B03_Processing_download_ani_06.png b/res/images/wvga/B03_Processing_download_ani_06.png
new file mode 100644 (file)
index 0000000..e0cc7b1
Binary files /dev/null and b/res/images/wvga/B03_Processing_download_ani_06.png differ
diff --git a/res/images/wvga/B03_Processing_download_failed.png b/res/images/wvga/B03_Processing_download_failed.png
new file mode 100644 (file)
index 0000000..11d34ab
Binary files /dev/null and b/res/images/wvga/B03_Processing_download_failed.png differ
diff --git a/res/images/wvga/download_manager_icon_broken.png b/res/images/wvga/download_manager_icon_broken.png
new file mode 100644 (file)
index 0000000..e5f9493
Binary files /dev/null and b/res/images/wvga/download_manager_icon_broken.png differ
diff --git a/res/images/wvga/download_manager_icon_date.png b/res/images/wvga/download_manager_icon_date.png
new file mode 100644 (file)
index 0000000..f1ff0f8
Binary files /dev/null and b/res/images/wvga/download_manager_icon_date.png differ
diff --git a/res/images/wvga/download_manager_icon_drm.png b/res/images/wvga/download_manager_icon_drm.png
new file mode 100644 (file)
index 0000000..7965232
Binary files /dev/null and b/res/images/wvga/download_manager_icon_drm.png differ
diff --git a/res/images/wvga/download_manager_icon_html.png b/res/images/wvga/download_manager_icon_html.png
new file mode 100644 (file)
index 0000000..f4a2bfc
Binary files /dev/null and b/res/images/wvga/download_manager_icon_html.png differ
diff --git a/res/images/wvga/download_manager_icon_img.png b/res/images/wvga/download_manager_icon_img.png
new file mode 100644 (file)
index 0000000..1c2f137
Binary files /dev/null and b/res/images/wvga/download_manager_icon_img.png differ
diff --git a/res/images/wvga/download_manager_icon_movie.png b/res/images/wvga/download_manager_icon_movie.png
new file mode 100644 (file)
index 0000000..5902a67
Binary files /dev/null and b/res/images/wvga/download_manager_icon_movie.png differ
diff --git a/res/images/wvga/download_manager_icon_music.png b/res/images/wvga/download_manager_icon_music.png
new file mode 100644 (file)
index 0000000..39f4c06
Binary files /dev/null and b/res/images/wvga/download_manager_icon_music.png differ
diff --git a/res/images/wvga/download_manager_icon_pdf.png b/res/images/wvga/download_manager_icon_pdf.png
new file mode 100644 (file)
index 0000000..96b1a9a
Binary files /dev/null and b/res/images/wvga/download_manager_icon_pdf.png differ
diff --git a/res/images/wvga/download_manager_icon_ppt.png b/res/images/wvga/download_manager_icon_ppt.png
new file mode 100644 (file)
index 0000000..29159cf
Binary files /dev/null and b/res/images/wvga/download_manager_icon_ppt.png differ
diff --git a/res/images/wvga/download_manager_icon_swf.png b/res/images/wvga/download_manager_icon_swf.png
new file mode 100644 (file)
index 0000000..b6335d7
Binary files /dev/null and b/res/images/wvga/download_manager_icon_swf.png differ
diff --git a/res/images/wvga/download_manager_icon_text.png b/res/images/wvga/download_manager_icon_text.png
new file mode 100644 (file)
index 0000000..0ad34ff
Binary files /dev/null and b/res/images/wvga/download_manager_icon_text.png differ
diff --git a/res/images/wvga/download_manager_icon_tpk.png b/res/images/wvga/download_manager_icon_tpk.png
new file mode 100644 (file)
index 0000000..58953be
Binary files /dev/null and b/res/images/wvga/download_manager_icon_tpk.png differ
diff --git a/res/images/wvga/download_manager_icon_unknown.png b/res/images/wvga/download_manager_icon_unknown.png
new file mode 100644 (file)
index 0000000..93babe9
Binary files /dev/null and b/res/images/wvga/download_manager_icon_unknown.png differ
diff --git a/res/images/wvga/download_manager_icon_word.png b/res/images/wvga/download_manager_icon_word.png
new file mode 100644 (file)
index 0000000..3218b53
Binary files /dev/null and b/res/images/wvga/download_manager_icon_word.png differ
diff --git a/res/images/wvga/download_manager_icon_xls.png b/res/images/wvga/download_manager_icon_xls.png
new file mode 100644 (file)
index 0000000..aeddf20
Binary files /dev/null and b/res/images/wvga/download_manager_icon_xls.png differ
diff --git a/res/images/wvga/download_manager_list_button_bg.png b/res/images/wvga/download_manager_list_button_bg.png
new file mode 100644 (file)
index 0000000..ff5d006
Binary files /dev/null and b/res/images/wvga/download_manager_list_button_bg.png differ
diff --git a/res/images/wvga/download_manager_list_icon_cancel.png b/res/images/wvga/download_manager_list_icon_cancel.png
new file mode 100644 (file)
index 0000000..a92b171
Binary files /dev/null and b/res/images/wvga/download_manager_list_icon_cancel.png differ
diff --git a/res/images/wvga/noti_download_complete.png b/res/images/wvga/noti_download_complete.png
new file mode 100644 (file)
index 0000000..d1f8ea7
Binary files /dev/null and b/res/images/wvga/noti_download_complete.png differ
diff --git a/res/images/wvga/noti_download_failed.png b/res/images/wvga/noti_download_failed.png
new file mode 100644 (file)
index 0000000..6516b9f
Binary files /dev/null and b/res/images/wvga/noti_download_failed.png differ
diff --git a/res/org.tizen.download-manager.png b/res/org.tizen.download-manager.png
new file mode 100644 (file)
index 0000000..98e1581
Binary files /dev/null and b/res/org.tizen.download-manager.png differ
index a1dd6be..b73b6c4 100644 (file)
@@ -1,11 +1,61 @@
 <?xml version="1.0" encoding="utf-8" ?>
        <manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.download-manager" version="0.0.1" install-location="internal-only">
-       <label>Download Manager</label>
        <author email="jungki.kwak@samsung.com" href="www.samsung.com">Jungki Kwak</author>
        <description>Download UI Application</description>
-       <ui-application appid="org.tizen.download-manager" exec="/opt/apps/org.tizen.download-manager/bin/download-manager" nodisplay="true" multiple="false" type="capp" taskmanage="false">
-               <label>Download Manager</label>
-               <label xml:lang="en-us">Download Manager</label>
+       <ui-application appid="org.tizen.download-manager" exec="/usr/apps/org.tizen.download-manager/bin/download-manager" nodisplay="true" multiple="false" type="capp" taskmanage="false" mainapp="true" component-type="svcapp">
+       <icon>org.tizen.download-manager.png</icon>
+               <label>Download manager</label>
+               <label xml:lang="ar-ae">مدير التحميل</label>
+               <label xml:lang="hy-am">Upravljanje skidanja</label>
+               <label xml:lang="az-az">Yükləmə meneceri</label>
+               <label xml:lang="eu-es">Deskargen kudeatzailea</label>
+               <label xml:lang="bg-bg">Диспечер на изтеглянето</label>
+               <label xml:lang="ca-es">Administrador de descàrregues</label>
+               <label xml:lang="zh-cn">下载管理器</label>
+               <label xml:lang="zh-hk">下載管理員</label>
+               <label xml:lang="zh-sg">下载管理器</label>
+               <label xml:lang="zh-tw">下載管理員</label>
+               <label xml:lang="hr-hr">Upravljanje skidanja</label>
+               <label xml:lang="cs-cz">Správce stahování</label>
+               <label xml:lang="da-dk">Downloadstyring</label>
+               <label xml:lang="nl-nl">Downloadmanager</label>
+               <label xml:lang="en-ph">Download manager</label>
+               <label xml:lang="en-gb">Download manager</label>
+               <label xml:lang="en-us">Download manager</label>
+               <label xml:lang="et-ee">Allalaadimishaldur</label>
+               <label xml:lang="fi-fi">Latauksen hallinta</label>
+               <label xml:lang="fr-fr">Gestionnaire de téléchargement</label>
+               <label xml:lang="fr-ca">Gestionnaire de téléchargement</label>
+               <label xml:lang="gl-es">Administrador de descargas</label>
+               <label xml:lang="ka-ge">ჩამოტვირთვების მმართველი</label>
+               <label xml:lang="de-de">Download-Manager</label>
+               <label xml:lang="el-gr">Διαχείριση λήψεων</label>
+               <label xml:lang="hi-in">डाउनलोड प्रबंधक</label>
+               <label xml:lang="hu-hu">Letöltéskezelő</label>
+               <label xml:lang="is-is">Stjórnun niðurhals</label>
+               <label xml:lang="ga-ie">Bainisteoir íoslódálacha</label>
+               <label xml:lang="it-it">Gestione download</label>
+               <label xml:lang="ja-jp">ダウンロードマネージャー</label>
+               <label xml:lang="kk-kz">Реттеушіні жүктеу</label>
+               <label xml:lang="ko-kr">다운로드 관리자</label>
+               <label xml:lang="lv-lv">Lejupielāžu pārvaldnieks</label>
+               <label xml:lang="lt-lt">Atsisiuntimų tvarkytuvė</label>
+               <label xml:lang="mk-mk">Уредување преземања</label>
+               <label xml:lang="nb-no">Nedlastingsbehandling</label>
+               <label xml:lang="pl-pl">Menedżer pobierania</label>
+               <label xml:lang="pt-pt">Gerenciador de download</label>
+               <label xml:lang="pt-br">Gestor de transferências</label>
+               <label xml:lang="ro-ro">Manager descărcare</label>
+               <label xml:lang="ru-ru">Диспетчер загрузки</label>
+               <label xml:lang="sr-rs">Menadžer preuzimanja</label>
+               <label xml:lang="sk-sk">Správca sťahovaní</label>
+               <label xml:lang="sl-si">Upravitelj prenosov</label>
+               <label xml:lang="es-es">Administrador de descarga</label>
+               <label xml:lang="es-mx">Administrador de descarga</label>
+               <label xml:lang="sv-se">Hämtningshanterare</label>
+               <label xml:lang="tr-tr">İndirme Yöneticisi</label>
+               <label xml:lang="uk-ua">Диспетчер завантажень</label>
+               <label xml:lang="uz-uz">Yuklab olish menejeri</label>
                <application-service>
                        <operation name="http://tizen.org/appcontrol/operation/download" />
                                <uri name="http" />
diff --git a/res/tables/wvga/org.tizen.download-manager_ChangeableColorInfo.xml b/res/tables/wvga/org.tizen.download-manager_ChangeableColorInfo.xml
new file mode 100644 (file)
index 0000000..6aa53dd
--- /dev/null
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ChangeableColorTables>
+       <ChangeableColorTable num="1">
+               <Theme style="Dark">
+                       <ChangeableColorInfo id="87A1L" inputColor="87A1L" hue="871" saturation="871" value="871" alpha="871" minHue="871" minSaturation="871" minValue="871" maxHue="871" maxSaturation="871" maxValue="871" />
+                       <ChangeableColorInfo id="99F2" inputColor="99F2" hue="992" saturation="992" value="992" alpha="992" minHue="992" minSaturation="992" minValue="992" maxHue="992" maxSaturation="992" maxValue="992" />
+                       <ChangeableColorInfo id="C9" inputColor="C9" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+                       <ChangeableColorInfo id="D0LEEbC2E" inputColor="D0LEEbC2E" hue="02" saturation="02" value="02" alpha="02" minHue="02" minSaturation="02" minValue="02" maxHue="02" maxSaturation="02" maxValue="02" />
+                       <ChangeableColorInfo id="D6CAC4" inputColor="D6CAC4" hue="64" saturation="64" value="64" alpha="64" minHue="64" minSaturation="64" minValue="64" maxHue="64" maxSaturation="64" maxValue="64" />
+                       <ChangeableColorInfo id="C8" inputColor="C8" hue="8" saturation="8" value="8" alpha="8" minHue="8" minSaturation="8" minValue="8" maxHue="8" maxSaturation="8" maxValue="8" />
+                       <ChangeableColorInfo id="9E9" inputColor="9E9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="8A" inputColor="8A" hue="8" saturation="8" value="8" alpha="8" minHue="8" minSaturation="8" minValue="8" maxHue="8" maxSaturation="8" maxValue="8" />
+                       <ChangeableColorInfo id="82FBa" inputColor="82FBa" hue="82" saturation="82" value="82" alpha="82" minHue="82" minSaturation="82" minValue="82" maxHue="82" maxSaturation="82" maxValue="82" />
+                       <ChangeableColorInfo id="89Y" inputColor="89Y" hue="89" saturation="89" value="89" alpha="89" minHue="89" minSaturation="89" minValue="89" maxHue="89" maxSaturation="89" maxValue="89" />
+                       <ChangeableColorInfo id="J98FEDAvE1KF6" inputColor="J98FEDAvE1KF6" hue="9816" saturation="9816" value="9816" alpha="9816" minHue="9816" minSaturation="9816" minValue="9816" maxHue="9816" maxSaturation="9816" maxValue="9816" />
+                       <ChangeableColorInfo id="HvEA9FMT" inputColor="HvEA9FMT" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+                       <ChangeableColorInfo id="C3" inputColor="C3" hue="3" saturation="3" value="3" alpha="3" minHue="3" minSaturation="3" minValue="3" maxHue="3" maxSaturation="3" maxValue="3" />
+                       <ChangeableColorInfo id="9DD9" inputColor="9DD9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="fA986A84" inputColor="fA986A84" hue="98684" saturation="98684" value="98684" alpha="98684" minHue="98684" minSaturation="98684" minValue="98684" maxHue="98684" maxSaturation="98684" maxValue="98684" />
+                       <ChangeableColorInfo id="D9EE9" inputColor="D9EE9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="HBAF0q80c" inputColor="HBAF0q80c" hue="080" saturation="080" value="080" alpha="080" minHue="080" minSaturation="080" minValue="080" maxHue="080" maxSaturation="080" maxValue="080" />
+                       <ChangeableColorInfo id="96" inputColor="96" hue="96" saturation="96" value="96" alpha="96" minHue="96" minSaturation="96" minValue="96" maxHue="96" maxSaturation="96" maxValue="96" />
+                       <ChangeableColorInfo id="B85B1" inputColor="B85B1" hue="851" saturation="851" value="851" alpha="851" minHue="851" minSaturation="851" minValue="851" maxHue="851" maxSaturation="851" maxValue="851" />
+                       <ChangeableColorInfo id="93" inputColor="93" hue="93" saturation="93" value="93" alpha="93" minHue="93" minSaturation="93" minValue="93" maxHue="93" maxSaturation="93" maxValue="93" />
+                       <ChangeableColorInfo id="D0EE" inputColor="D0EE" hue="0" saturation="0" value="0" alpha="0" minHue="0" minSaturation="0" minValue="0" maxHue="0" maxSaturation="0" maxValue="0" />
+                       <ChangeableColorInfo id="B3" inputColor="B3" hue="3" saturation="3" value="3" alpha="3" minHue="3" minSaturation="3" minValue="3" maxHue="3" maxSaturation="3" maxValue="3" />
+                       <ChangeableColorInfo id="D78u84DBF1JE2" inputColor="D78u84DBF1JE2" hue="788412" saturation="788412" value="788412" alpha="788412" minHue="788412" minSaturation="788412" minValue="788412" maxHue="788412" maxSaturation="788412" maxValue="788412" />
+                       <ChangeableColorInfo id="9F" inputColor="9F" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+               </Theme>
+               <Theme style="Light">
+                       <ChangeableColorInfo id="87A1L" inputColor="87A1L" hue="871" saturation="871" value="871" alpha="871" minHue="871" minSaturation="871" minValue="871" maxHue="871" maxSaturation="871" maxValue="871" />
+                       <ChangeableColorInfo id="99F2" inputColor="99F2" hue="992" saturation="992" value="992" alpha="992" minHue="992" minSaturation="992" minValue="992" maxHue="992" maxSaturation="992" maxValue="992" />
+                       <ChangeableColorInfo id="C9" inputColor="C9" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+                       <ChangeableColorInfo id="D0LEEbC2E" inputColor="D0LEEbC2E" hue="02" saturation="02" value="02" alpha="02" minHue="02" minSaturation="02" minValue="02" maxHue="02" maxSaturation="02" maxValue="02" />
+                       <ChangeableColorInfo id="D6CAC4" inputColor="D6CAC4" hue="64" saturation="64" value="64" alpha="64" minHue="64" minSaturation="64" minValue="64" maxHue="64" maxSaturation="64" maxValue="64" />
+                       <ChangeableColorInfo id="C8" inputColor="C8" hue="8" saturation="8" value="8" alpha="8" minHue="8" minSaturation="8" minValue="8" maxHue="8" maxSaturation="8" maxValue="8" />
+                       <ChangeableColorInfo id="9E9" inputColor="9E9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="8A" inputColor="8A" hue="8" saturation="8" value="8" alpha="8" minHue="8" minSaturation="8" minValue="8" maxHue="8" maxSaturation="8" maxValue="8" />
+                       <ChangeableColorInfo id="82FBa" inputColor="82FBa" hue="82" saturation="82" value="82" alpha="82" minHue="82" minSaturation="82" minValue="82" maxHue="82" maxSaturation="82" maxValue="82" />
+                       <ChangeableColorInfo id="89Y" inputColor="89Y" hue="89" saturation="89" value="89" alpha="89" minHue="89" minSaturation="89" minValue="89" maxHue="89" maxSaturation="89" maxValue="89" />
+                       <ChangeableColorInfo id="J98FEDAvE1KF6" inputColor="J98FEDAvE1KF6" hue="9816" saturation="9816" value="9816" alpha="9816" minHue="9816" minSaturation="9816" minValue="9816" maxHue="9816" maxSaturation="9816" maxValue="9816" />
+                       <ChangeableColorInfo id="HvEA9FMT" inputColor="HvEA9FMT" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+                       <ChangeableColorInfo id="C3" inputColor="C3" hue="3" saturation="3" value="3" alpha="3" minHue="3" minSaturation="3" minValue="3" maxHue="3" maxSaturation="3" maxValue="3" />
+                       <ChangeableColorInfo id="9DD9" inputColor="9DD9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="fA986A84" inputColor="fA986A84" hue="98684" saturation="98684" value="98684" alpha="98684" minHue="98684" minSaturation="98684" minValue="98684" maxHue="98684" maxSaturation="98684" maxValue="98684" />
+                       <ChangeableColorInfo id="D9EE9" inputColor="D9EE9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="HBAF0q80c" inputColor="HBAF0q80c" hue="080" saturation="080" value="080" alpha="080" minHue="080" minSaturation="080" minValue="080" maxHue="080" maxSaturation="080" maxValue="080" />
+                       <ChangeableColorInfo id="96" inputColor="96" hue="96" saturation="96" value="96" alpha="96" minHue="96" minSaturation="96" minValue="96" maxHue="96" maxSaturation="96" maxValue="96" />
+                       <ChangeableColorInfo id="B85B1" inputColor="B85B1" hue="851" saturation="851" value="851" alpha="851" minHue="851" minSaturation="851" minValue="851" maxHue="851" maxSaturation="851" maxValue="851" />
+                       <ChangeableColorInfo id="93" inputColor="93" hue="93" saturation="93" value="93" alpha="93" minHue="93" minSaturation="93" minValue="93" maxHue="93" maxSaturation="93" maxValue="93" />
+                       <ChangeableColorInfo id="D0EE" inputColor="D0EE" hue="0" saturation="0" value="0" alpha="0" minHue="0" minSaturation="0" minValue="0" maxHue="0" maxSaturation="0" maxValue="0" />
+                       <ChangeableColorInfo id="B3" inputColor="B3" hue="3" saturation="3" value="3" alpha="3" minHue="3" minSaturation="3" minValue="3" maxHue="3" maxSaturation="3" maxValue="3" />
+                       <ChangeableColorInfo id="D78u84DBF1JE2" inputColor="D78u84DBF1JE2" hue="788412" saturation="788412" value="788412" alpha="788412" minHue="788412" minSaturation="788412" minValue="788412" maxHue="788412" maxSaturation="788412" maxValue="788412" />
+                       <ChangeableColorInfo id="9F" inputColor="9F" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+               </Theme>
+       </ChangeableColorTable>
+       <ChangeableColorTable num="2">
+               <Theme style="Dark">
+                       <ChangeableColorInfo id="87A1L" inputColor="87A1L" hue="871" saturation="871" value="871" alpha="871" minHue="871" minSaturation="871" minValue="871" maxHue="871" maxSaturation="871" maxValue="871" />
+                       <ChangeableColorInfo id="99F2" inputColor="99F2" hue="992" saturation="992" value="992" alpha="992" minHue="992" minSaturation="992" minValue="992" maxHue="992" maxSaturation="992" maxValue="992" />
+                       <ChangeableColorInfo id="C9" inputColor="C9" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+                       <ChangeableColorInfo id="D0LEEbC2E" inputColor="D0LEEbC2E" hue="02" saturation="02" value="02" alpha="02" minHue="02" minSaturation="02" minValue="02" maxHue="02" maxSaturation="02" maxValue="02" />
+                       <ChangeableColorInfo id="D6CAC4" inputColor="D6CAC4" hue="64" saturation="64" value="64" alpha="64" minHue="64" minSaturation="64" minValue="64" maxHue="64" maxSaturation="64" maxValue="64" />
+                       <ChangeableColorInfo id="C8" inputColor="C8" hue="8" saturation="8" value="8" alpha="8" minHue="8" minSaturation="8" minValue="8" maxHue="8" maxSaturation="8" maxValue="8" />
+                       <ChangeableColorInfo id="9E9" inputColor="9E9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="8A" inputColor="8A" hue="8" saturation="8" value="8" alpha="8" minHue="8" minSaturation="8" minValue="8" maxHue="8" maxSaturation="8" maxValue="8" />
+                       <ChangeableColorInfo id="82FBa" inputColor="82FBa" hue="82" saturation="82" value="82" alpha="82" minHue="82" minSaturation="82" minValue="82" maxHue="82" maxSaturation="82" maxValue="82" />
+                       <ChangeableColorInfo id="89Y" inputColor="89Y" hue="89" saturation="89" value="89" alpha="89" minHue="89" minSaturation="89" minValue="89" maxHue="89" maxSaturation="89" maxValue="89" />
+                       <ChangeableColorInfo id="J98FEDAvE1KF6" inputColor="J98FEDAvE1KF6" hue="9816" saturation="9816" value="9816" alpha="9816" minHue="9816" minSaturation="9816" minValue="9816" maxHue="9816" maxSaturation="9816" maxValue="9816" />
+                       <ChangeableColorInfo id="HvEA9FMT" inputColor="HvEA9FMT" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+                       <ChangeableColorInfo id="C3" inputColor="C3" hue="3" saturation="3" value="3" alpha="3" minHue="3" minSaturation="3" minValue="3" maxHue="3" maxSaturation="3" maxValue="3" />
+                       <ChangeableColorInfo id="9DD9" inputColor="9DD9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="fA986A84" inputColor="fA986A84" hue="98684" saturation="98684" value="98684" alpha="98684" minHue="98684" minSaturation="98684" minValue="98684" maxHue="98684" maxSaturation="98684" maxValue="98684" />
+                       <ChangeableColorInfo id="D9EE9" inputColor="D9EE9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="HBAF0q80c" inputColor="HBAF0q80c" hue="080" saturation="080" value="080" alpha="080" minHue="080" minSaturation="080" minValue="080" maxHue="080" maxSaturation="080" maxValue="080" />
+                       <ChangeableColorInfo id="96" inputColor="96" hue="96" saturation="96" value="96" alpha="96" minHue="96" minSaturation="96" minValue="96" maxHue="96" maxSaturation="96" maxValue="96" />
+                       <ChangeableColorInfo id="B85B1" inputColor="B85B1" hue="851" saturation="851" value="851" alpha="851" minHue="851" minSaturation="851" minValue="851" maxHue="851" maxSaturation="851" maxValue="851" />
+                       <ChangeableColorInfo id="93" inputColor="93" hue="93" saturation="93" value="93" alpha="93" minHue="93" minSaturation="93" minValue="93" maxHue="93" maxSaturation="93" maxValue="93" />
+                       <ChangeableColorInfo id="D0EE" inputColor="D0EE" hue="0" saturation="0" value="0" alpha="0" minHue="0" minSaturation="0" minValue="0" maxHue="0" maxSaturation="0" maxValue="0" />
+                       <ChangeableColorInfo id="B3" inputColor="B3" hue="3" saturation="3" value="3" alpha="3" minHue="3" minSaturation="3" minValue="3" maxHue="3" maxSaturation="3" maxValue="3" />
+                       <ChangeableColorInfo id="D78u84DBF1JE2" inputColor="D78u84DBF1JE2" hue="788412" saturation="788412" value="788412" alpha="788412" minHue="788412" minSaturation="788412" minValue="788412" maxHue="788412" maxSaturation="788412" maxValue="788412" />
+                       <ChangeableColorInfo id="9F" inputColor="9F" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+               </Theme>
+               <Theme style="Light">
+                       <ChangeableColorInfo id="87A1L" inputColor="87A1L" hue="871" saturation="871" value="871" alpha="871" minHue="871" minSaturation="871" minValue="871" maxHue="871" maxSaturation="871" maxValue="871" />
+                       <ChangeableColorInfo id="99F2" inputColor="99F2" hue="992" saturation="992" value="992" alpha="992" minHue="992" minSaturation="992" minValue="992" maxHue="992" maxSaturation="992" maxValue="992" />
+                       <ChangeableColorInfo id="C9" inputColor="C9" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+                       <ChangeableColorInfo id="D0LEEbC2E" inputColor="D0LEEbC2E" hue="02" saturation="02" value="02" alpha="02" minHue="02" minSaturation="02" minValue="02" maxHue="02" maxSaturation="02" maxValue="02" />
+                       <ChangeableColorInfo id="D6CAC4" inputColor="D6CAC4" hue="64" saturation="64" value="64" alpha="64" minHue="64" minSaturation="64" minValue="64" maxHue="64" maxSaturation="64" maxValue="64" />
+                       <ChangeableColorInfo id="C8" inputColor="C8" hue="8" saturation="8" value="8" alpha="8" minHue="8" minSaturation="8" minValue="8" maxHue="8" maxSaturation="8" maxValue="8" />
+                       <ChangeableColorInfo id="9E9" inputColor="9E9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="8A" inputColor="8A" hue="8" saturation="8" value="8" alpha="8" minHue="8" minSaturation="8" minValue="8" maxHue="8" maxSaturation="8" maxValue="8" />
+                       <ChangeableColorInfo id="82FBa" inputColor="82FBa" hue="82" saturation="82" value="82" alpha="82" minHue="82" minSaturation="82" minValue="82" maxHue="82" maxSaturation="82" maxValue="82" />
+                       <ChangeableColorInfo id="89Y" inputColor="89Y" hue="89" saturation="89" value="89" alpha="89" minHue="89" minSaturation="89" minValue="89" maxHue="89" maxSaturation="89" maxValue="89" />
+                       <ChangeableColorInfo id="J98FEDAvE1KF6" inputColor="J98FEDAvE1KF6" hue="9816" saturation="9816" value="9816" alpha="9816" minHue="9816" minSaturation="9816" minValue="9816" maxHue="9816" maxSaturation="9816" maxValue="9816" />
+                       <ChangeableColorInfo id="HvEA9FMT" inputColor="HvEA9FMT" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+                       <ChangeableColorInfo id="C3" inputColor="C3" hue="3" saturation="3" value="3" alpha="3" minHue="3" minSaturation="3" minValue="3" maxHue="3" maxSaturation="3" maxValue="3" />
+                       <ChangeableColorInfo id="9DD9" inputColor="9DD9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="fA986A84" inputColor="fA986A84" hue="98684" saturation="98684" value="98684" alpha="98684" minHue="98684" minSaturation="98684" minValue="98684" maxHue="98684" maxSaturation="98684" maxValue="98684" />
+                       <ChangeableColorInfo id="D9EE9" inputColor="D9EE9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="HBAF0q80c" inputColor="HBAF0q80c" hue="080" saturation="080" value="080" alpha="080" minHue="080" minSaturation="080" minValue="080" maxHue="080" maxSaturation="080" maxValue="080" />
+                       <ChangeableColorInfo id="96" inputColor="96" hue="96" saturation="96" value="96" alpha="96" minHue="96" minSaturation="96" minValue="96" maxHue="96" maxSaturation="96" maxValue="96" />
+                       <ChangeableColorInfo id="B85B1" inputColor="B85B1" hue="851" saturation="851" value="851" alpha="851" minHue="851" minSaturation="851" minValue="851" maxHue="851" maxSaturation="851" maxValue="851" />
+                       <ChangeableColorInfo id="93" inputColor="93" hue="93" saturation="93" value="93" alpha="93" minHue="93" minSaturation="93" minValue="93" maxHue="93" maxSaturation="93" maxValue="93" />
+                       <ChangeableColorInfo id="D0EE" inputColor="D0EE" hue="0" saturation="0" value="0" alpha="0" minHue="0" minSaturation="0" minValue="0" maxHue="0" maxSaturation="0" maxValue="0" />
+                       <ChangeableColorInfo id="B3" inputColor="B3" hue="3" saturation="3" value="3" alpha="3" minHue="3" minSaturation="3" minValue="3" maxHue="3" maxSaturation="3" maxValue="3" />
+                       <ChangeableColorInfo id="D78u84DBF1JE2" inputColor="D78u84DBF1JE2" hue="788412" saturation="788412" value="788412" alpha="788412" minHue="788412" minSaturation="788412" minValue="788412" maxHue="788412" maxSaturation="788412" maxValue="788412" />
+                       <ChangeableColorInfo id="9F" inputColor="9F" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+               </Theme>
+       </ChangeableColorTable>
+       <ChangeableColorTable num="3">
+               <Theme style="Dark">
+                       <ChangeableColorInfo id="87A1L" inputColor="87A1L" hue="871" saturation="871" value="871" alpha="871" minHue="871" minSaturation="871" minValue="871" maxHue="871" maxSaturation="871" maxValue="871" />
+                       <ChangeableColorInfo id="99F2" inputColor="99F2" hue="992" saturation="992" value="992" alpha="992" minHue="992" minSaturation="992" minValue="992" maxHue="992" maxSaturation="992" maxValue="992" />
+                       <ChangeableColorInfo id="C9" inputColor="C9" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+                       <ChangeableColorInfo id="D0LEEbC2E" inputColor="D0LEEbC2E" hue="02" saturation="02" value="02" alpha="02" minHue="02" minSaturation="02" minValue="02" maxHue="02" maxSaturation="02" maxValue="02" />
+                       <ChangeableColorInfo id="D6CAC4" inputColor="D6CAC4" hue="64" saturation="64" value="64" alpha="64" minHue="64" minSaturation="64" minValue="64" maxHue="64" maxSaturation="64" maxValue="64" />
+                       <ChangeableColorInfo id="C8" inputColor="C8" hue="8" saturation="8" value="8" alpha="8" minHue="8" minSaturation="8" minValue="8" maxHue="8" maxSaturation="8" maxValue="8" />
+                       <ChangeableColorInfo id="9E9" inputColor="9E9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="8A" inputColor="8A" hue="8" saturation="8" value="8" alpha="8" minHue="8" minSaturation="8" minValue="8" maxHue="8" maxSaturation="8" maxValue="8" />
+                       <ChangeableColorInfo id="82FBa" inputColor="82FBa" hue="82" saturation="82" value="82" alpha="82" minHue="82" minSaturation="82" minValue="82" maxHue="82" maxSaturation="82" maxValue="82" />
+                       <ChangeableColorInfo id="89Y" inputColor="89Y" hue="89" saturation="89" value="89" alpha="89" minHue="89" minSaturation="89" minValue="89" maxHue="89" maxSaturation="89" maxValue="89" />
+                       <ChangeableColorInfo id="J98FEDAvE1KF6" inputColor="J98FEDAvE1KF6" hue="9816" saturation="9816" value="9816" alpha="9816" minHue="9816" minSaturation="9816" minValue="9816" maxHue="9816" maxSaturation="9816" maxValue="9816" />
+                       <ChangeableColorInfo id="HvEA9FMT" inputColor="HvEA9FMT" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+                       <ChangeableColorInfo id="C3" inputColor="C3" hue="3" saturation="3" value="3" alpha="3" minHue="3" minSaturation="3" minValue="3" maxHue="3" maxSaturation="3" maxValue="3" />
+                       <ChangeableColorInfo id="9DD9" inputColor="9DD9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="fA986A84" inputColor="fA986A84" hue="98684" saturation="98684" value="98684" alpha="98684" minHue="98684" minSaturation="98684" minValue="98684" maxHue="98684" maxSaturation="98684" maxValue="98684" />
+                       <ChangeableColorInfo id="D9EE9" inputColor="D9EE9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="HBAF0q80c" inputColor="HBAF0q80c" hue="080" saturation="080" value="080" alpha="080" minHue="080" minSaturation="080" minValue="080" maxHue="080" maxSaturation="080" maxValue="080" />
+                       <ChangeableColorInfo id="96" inputColor="96" hue="96" saturation="96" value="96" alpha="96" minHue="96" minSaturation="96" minValue="96" maxHue="96" maxSaturation="96" maxValue="96" />
+                       <ChangeableColorInfo id="B85B1" inputColor="B85B1" hue="851" saturation="851" value="851" alpha="851" minHue="851" minSaturation="851" minValue="851" maxHue="851" maxSaturation="851" maxValue="851" />
+                       <ChangeableColorInfo id="93" inputColor="93" hue="93" saturation="93" value="93" alpha="93" minHue="93" minSaturation="93" minValue="93" maxHue="93" maxSaturation="93" maxValue="93" />
+                       <ChangeableColorInfo id="D0EE" inputColor="D0EE" hue="0" saturation="0" value="0" alpha="0" minHue="0" minSaturation="0" minValue="0" maxHue="0" maxSaturation="0" maxValue="0" />
+                       <ChangeableColorInfo id="B3" inputColor="B3" hue="3" saturation="3" value="3" alpha="3" minHue="3" minSaturation="3" minValue="3" maxHue="3" maxSaturation="3" maxValue="3" />
+                       <ChangeableColorInfo id="D78u84DBF1JE2" inputColor="D78u84DBF1JE2" hue="788412" saturation="788412" value="788412" alpha="788412" minHue="788412" minSaturation="788412" minValue="788412" maxHue="788412" maxSaturation="788412" maxValue="788412" />
+                       <ChangeableColorInfo id="9F" inputColor="9F" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+               </Theme>
+               <Theme style="Light">
+                       <ChangeableColorInfo id="87A1L" inputColor="87A1L" hue="871" saturation="871" value="871" alpha="871" minHue="871" minSaturation="871" minValue="871" maxHue="871" maxSaturation="871" maxValue="871" />
+                       <ChangeableColorInfo id="99F2" inputColor="99F2" hue="992" saturation="992" value="992" alpha="992" minHue="992" minSaturation="992" minValue="992" maxHue="992" maxSaturation="992" maxValue="992" />
+                       <ChangeableColorInfo id="C9" inputColor="C9" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+                       <ChangeableColorInfo id="D0LEEbC2E" inputColor="D0LEEbC2E" hue="02" saturation="02" value="02" alpha="02" minHue="02" minSaturation="02" minValue="02" maxHue="02" maxSaturation="02" maxValue="02" />
+                       <ChangeableColorInfo id="D6CAC4" inputColor="D6CAC4" hue="64" saturation="64" value="64" alpha="64" minHue="64" minSaturation="64" minValue="64" maxHue="64" maxSaturation="64" maxValue="64" />
+                       <ChangeableColorInfo id="C8" inputColor="C8" hue="8" saturation="8" value="8" alpha="8" minHue="8" minSaturation="8" minValue="8" maxHue="8" maxSaturation="8" maxValue="8" />
+                       <ChangeableColorInfo id="9E9" inputColor="9E9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="8A" inputColor="8A" hue="8" saturation="8" value="8" alpha="8" minHue="8" minSaturation="8" minValue="8" maxHue="8" maxSaturation="8" maxValue="8" />
+                       <ChangeableColorInfo id="82FBa" inputColor="82FBa" hue="82" saturation="82" value="82" alpha="82" minHue="82" minSaturation="82" minValue="82" maxHue="82" maxSaturation="82" maxValue="82" />
+                       <ChangeableColorInfo id="89Y" inputColor="89Y" hue="89" saturation="89" value="89" alpha="89" minHue="89" minSaturation="89" minValue="89" maxHue="89" maxSaturation="89" maxValue="89" />
+                       <ChangeableColorInfo id="J98FEDAvE1KF6" inputColor="J98FEDAvE1KF6" hue="9816" saturation="9816" value="9816" alpha="9816" minHue="9816" minSaturation="9816" minValue="9816" maxHue="9816" maxSaturation="9816" maxValue="9816" />
+                       <ChangeableColorInfo id="HvEA9FMT" inputColor="HvEA9FMT" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+                       <ChangeableColorInfo id="C3" inputColor="C3" hue="3" saturation="3" value="3" alpha="3" minHue="3" minSaturation="3" minValue="3" maxHue="3" maxSaturation="3" maxValue="3" />
+                       <ChangeableColorInfo id="9DD9" inputColor="9DD9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="fA986A84" inputColor="fA986A84" hue="98684" saturation="98684" value="98684" alpha="98684" minHue="98684" minSaturation="98684" minValue="98684" maxHue="98684" maxSaturation="98684" maxValue="98684" />
+                       <ChangeableColorInfo id="D9EE9" inputColor="D9EE9" hue="99" saturation="99" value="99" alpha="99" minHue="99" minSaturation="99" minValue="99" maxHue="99" maxSaturation="99" maxValue="99" />
+                       <ChangeableColorInfo id="HBAF0q80c" inputColor="HBAF0q80c" hue="080" saturation="080" value="080" alpha="080" minHue="080" minSaturation="080" minValue="080" maxHue="080" maxSaturation="080" maxValue="080" />
+                       <ChangeableColorInfo id="96" inputColor="96" hue="96" saturation="96" value="96" alpha="96" minHue="96" minSaturation="96" minValue="96" maxHue="96" maxSaturation="96" maxValue="96" />
+                       <ChangeableColorInfo id="B85B1" inputColor="B85B1" hue="851" saturation="851" value="851" alpha="851" minHue="851" minSaturation="851" minValue="851" maxHue="851" maxSaturation="851" maxValue="851" />
+                       <ChangeableColorInfo id="93" inputColor="93" hue="93" saturation="93" value="93" alpha="93" minHue="93" minSaturation="93" minValue="93" maxHue="93" maxSaturation="93" maxValue="93" />
+                       <ChangeableColorInfo id="D0EE" inputColor="D0EE" hue="0" saturation="0" value="0" alpha="0" minHue="0" minSaturation="0" minValue="0" maxHue="0" maxSaturation="0" maxValue="0" />
+                       <ChangeableColorInfo id="B3" inputColor="B3" hue="3" saturation="3" value="3" alpha="3" minHue="3" minSaturation="3" minValue="3" maxHue="3" maxSaturation="3" maxValue="3" />
+                       <ChangeableColorInfo id="D78u84DBF1JE2" inputColor="D78u84DBF1JE2" hue="788412" saturation="788412" value="788412" alpha="788412" minHue="788412" minSaturation="788412" minValue="788412" maxHue="788412" maxSaturation="788412" maxValue="788412" />
+                       <ChangeableColorInfo id="9F" inputColor="9F" hue="9" saturation="9" value="9" alpha="9" minHue="9" minSaturation="9" minValue="9" maxHue="9" maxSaturation="9" maxValue="9" />
+               </Theme>
+       </ChangeableColorTable>
+</ChangeableColorTables>
diff --git a/res/tables/wvga/org.tizen.download-manager_ChangeableFontInfo.xml b/res/tables/wvga/org.tizen.download-manager_ChangeableFontInfo.xml
new file mode 100644 (file)
index 0000000..573b1b7
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<FontInfoTable>
+</FontInfoTable>
old mode 100644 (file)
new mode 100755 (executable)
index 44a8cf3..43cfbe3
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * @brief      data and utility APIs for Date and Time
  */
 
+#include <string>
+#include <stdlib.h>
 #include "runtime_info.h"
 #include "download-manager-dateTime.h"
 
-#define MAX_SKELETON_BUFFER_LEN 8
-#define MAX_PATTERN_BUFFER_LEN 128
+#define MAX_SKELETON_BUFFER_LEN 16
+#define MAX_PATTERN_BUFFER_LEN 64
+#define MAX_STR_LEN 256
+/* requested by capi-base-utils-i18n team */
+#define DM_UDAT_PATTERN (I18N_UDATE_NONE - 1)
 
-DateGroup::DateGroup()
-       : count(0)
-       , type(DATETIME::DATE_TYPE_NONE)
-       , m_glGroupItem(NULL)
-{
-}
-
-DateGroup::~DateGroup()
-{
-}
-
-void DateGroup::initData()
-{
-       count = 0;
-       m_glGroupItem = NULL;
-}
 
 DateUtil::DateUtil()
-       : m_todayStandardTime(0)
-       , dateShortFormat(NULL)
-       , dateMediumFormat(NULL)
-       , dateFullFormat(NULL)
+       : dateShortFormat(NULL)
        , timeFormat12H(NULL)
        , timeFormat24H(NULL)
 {
@@ -55,38 +41,20 @@ DateUtil::DateUtil()
 
 DateUtil::~DateUtil()
 {
+       DM_LOGD("");
        deinitLocaleData();
 }
 
 void DateUtil::deinitLocaleData()
 {
-       if (dateShortFormat)
-               udat_close(dateShortFormat);
-       if (dateMediumFormat)
-               udat_close(dateMediumFormat);
-       if (dateFullFormat)
-               udat_close(dateFullFormat);
-       if (timeFormat12H)
-               udat_close(timeFormat12H);
-       if (timeFormat24H)
-               udat_close(timeFormat24H);
+       i18n_udate_destroy(dateShortFormat);
+       i18n_udate_destroy(timeFormat12H);
+       i18n_udate_destroy(timeFormat24H);
        dateShortFormat = NULL;
-       dateMediumFormat = NULL;
-       dateFullFormat = NULL;
        timeFormat12H = NULL;
        timeFormat24H = NULL;
 }
 
-int DateUtil::getDiffDaysFromToday()
-{
-       time_t now = time(NULL);
-       DP_LOGD("todayStandardTime[%ld]", m_todayStandardTime);
-       if (m_todayStandardTime == 0)
-               return 0;
-       else
-               return getDiffDays(now, m_todayStandardTime);
-}
-
 int DateUtil::getDiffDays(time_t nowTime,time_t refTime)
 {
        int diffDays = 0;
@@ -101,9 +69,12 @@ int DateUtil::getDiffDays(time_t nowTime,time_t refTime)
        refYday = finishedDate->tm_yday;
        refYear = finishedDate->tm_year;
        diffDays = nowYday - refYday;
-       /*DP_LOGD("refDate[%d/%d/%d]refTime[%ld]yday[%d]",
+       DM_LOGV("refDate[%d/%d/%d]refTime[%ld]yday[%d]",
                (finishedDate->tm_year + 1900), (finishedDate->tm_mon + 1),
-               finishedDate->tm_mday, refTime, refYday);*/
+               finishedDate->tm_mday, refTime, refYday);
+       DM_LOGV("nowDate[%d/%d/%d]",
+                       (nowDate->tm_year + 1900), (nowDate->tm_mon + 1),
+                       nowDate->tm_mday);
        if ((nowYear-refYear)>0 && diffDays < 0) {
                int year = nowDate->tm_year;
                diffDays = diffDays + 365;
@@ -111,78 +82,91 @@ int DateUtil::getDiffDays(time_t nowTime,time_t refTime)
                if ((year%4 == 0 && year%100 != 0) || year%400 == 0)
                        diffDays++;
        }
-       DP_LOGD("diffDays[%d]",diffDays);
+       DM_LOGD("diffDays[%d]",diffDays);
        return diffDays;
 }
 
-UDateFormat *DateUtil::getBestPattern(const char *patternStr,
-       UDateTimePatternGenerator *generator, const char *locale)
+i18n_udate_format_h DateUtil::getBestPattern(const char *formatString,
+               i18n_udatepg_h patternGenerator, const char *locale)
 {
-       UDateFormat *format = NULL;
-       UChar customSkeleton[MAX_SKELETON_BUFFER_LEN] = {0,};
-       UChar bestPattern[MAX_PATTERN_BUFFER_LEN] = {0,};
-       UErrorCode status = U_ZERO_ERROR;
-       int32_t patternLen = 0;
-
-       if (patternStr) {
-               u_uastrncpy(customSkeleton, patternStr, strlen(patternStr));
-               patternLen = udatpg_getBestPattern(generator, customSkeleton,
-               u_strlen(customSkeleton), bestPattern, MAX_PATTERN_BUFFER_LEN,
-                       &status);
-               DP_LOGD("udatpg_getBestPattern status[%d] bestPattern[%s]", status,
-                       bestPattern);
-               if (patternLen < 1) {
-                       format = udat_open(UDAT_SHORT, UDAT_NONE, locale, NULL, -1,
-                               NULL, -1, &status);
-                       return format;
-               }
+       int ret = I18N_ERROR_NONE;
+       i18n_udate_format_h format = NULL;
+       i18n_uchar uchCustomFormat[MAX_SKELETON_BUFFER_LEN] = {0,};
+       i18n_uchar bestPattern[MAX_PATTERN_BUFFER_LEN] = {0,};
+       int pattrenLength;
+       int bestPatternLength;
+
+       i18n_ustring_copy_ua(uchCustomFormat, formatString);
+       pattrenLength = i18n_ustring_get_length(uchCustomFormat);
+
+       // gets the best pattern that matches the given custom_format
+       ret = i18n_udatepg_get_best_pattern(patternGenerator, uchCustomFormat,
+               pattrenLength, bestPattern, MAX_PATTERN_BUFFER_LEN, &bestPatternLength);
+       if (ret != I18N_ERROR_NONE) {
+               DM_LOGE("failed to generate pattren, error [%d]", ret);
+       }
+
+       if (bestPatternLength < 1) {
+               ret = i18n_udate_create(I18N_UDATE_SHORT, I18N_UDATE_NONE, locale, NULL, -1,
+                       NULL, -1, &format);
+       } else {
+               ret = i18n_udate_create((i18n_udate_format_style_e)DM_UDAT_PATTERN,
+                               (i18n_udate_format_style_e)DM_UDAT_PATTERN, locale, NULL, -1,
+                               bestPattern, -1, &format);
        }
-       format = udat_open(UDAT_IGNORE, UDAT_NONE, locale, NULL, -1,
-               bestPattern, -1, &status);
        return format;
 }
 
 void DateUtil::updateLocale()
 {
-       UDateTimePatternGenerator *generator = NULL;
-       UErrorCode status = U_ZERO_ERROR;
+       DM_LOGD("");
+       int ret = I18N_ERROR_NONE;
        const char *locale = NULL;
-
-       DP_LOGD_FUNC();
-
+       i18n_udatepg_h patternGenerator = NULL;
+       locale = getenv("LC_TIME");
+       if (strlen(locale) > MAX_STR_LEN) {
+               DM_LOGE("Size of locale is greater than MAX STR LEN");
+               return;
+       }
+       DM_LOGD("locale : %s", locale);
        deinitLocaleData();
+       // open a pattern generator according to a given locale
+       ret = i18n_udatepg_create(locale, &patternGenerator);
 
-       uloc_setDefault(getenv("LC_TIME"), &status);
-       DP_LOGD("uloc_setDefault status[%d]",status);
+       if(!patternGenerator) {
+               DM_LOGE("i18n_udatpg_open fail errot %d", ret);
+               return;
+       }
 
-       locale = uloc_getDefault();
-       generator = udatpg_open(locale,&status);
-       DP_LOGD("udatpg_open status[%d]",status);
+       ret = i18n_ulocale_set_default(locale);
+       if (ret != I18N_ERROR_NONE) {
+               DM_LOGE("unable to set default locale error [%d]", ret);
+       }
 
-       timeFormat12H = getBestPattern("hm", generator, locale);
-       timeFormat24H = getBestPattern("Hm", generator, locale);
+       ret = i18n_ulocale_get_default(&locale);
+       if (ret != I18N_ERROR_NONE) {
+               DM_LOGE("unable to get default locale error [%d]", ret);
+       }
 
-       dateShortFormat = udat_open(UDAT_NONE, UDAT_SHORT, locale, NULL, -1, NULL,
-               -1, &status);
-       dateMediumFormat = udat_open(UDAT_NONE, UDAT_MEDIUM, locale, NULL, -1, NULL,
-               -1, &status);
-       dateFullFormat = getBestPattern("yMMMEEEd", generator, locale);
-       udatpg_close(generator);
+       timeFormat12H = getBestPattern("hh:mm", patternGenerator, locale);
+       timeFormat24H = getBestPattern("HH:mm", patternGenerator, locale);
+       dateShortFormat = getBestPattern("MMMd", patternGenerator, locale);
+       i18n_udatepg_destroy(patternGenerator);
 }
 
-void DateUtil::getDateStr(int style, double time, string &outBuf)
+void DateUtil::getDateStr(double finishTime, string &outBuf)
 {
-       UDateFormat *format = NULL;
-       UErrorCode status = U_ZERO_ERROR;
-       UChar str[MAX_BUF_LEN] = {0,};
+       int ret = I18N_ERROR_NONE;
        bool value = false;
+       int diffDay = 0;
+       i18n_udate_format_h format = NULL;
 
-       DP_LOGD_FUNC();
-       switch (style) {
-       case LOCALE_STYLE::TIME:
+       double nowTime = time(NULL);
+       diffDay = getDiffDays((time_t)nowTime, (time_t)finishTime);
+       if (diffDay == 0 || diffDay == 1) {
                if (runtime_info_get_value_bool(
-                               RUNTIME_INFO_KEY_24HOUR_CLOCK_FORMAT_ENABLED,&value) != 0) {
-                       DP_LOGE("runtime_info_get_value_bool is failed");
+                               RUNTIME_INFO_KEY_24HOUR_CLOCK_FORMAT_ENABLED, &value) != 0) {
+                       DM_LOGE("Fail to get runtime_info_get_value_bool");
                        format = timeFormat12H;
                } else {
                        if (value)
@@ -190,30 +174,23 @@ void DateUtil::getDateStr(int style, double time, string &outBuf)
                        else
                                format = timeFormat12H;
                }
-               break;
-       case LOCALE_STYLE::SHORT_DATE:
+       } else {
                format = dateShortFormat;
-               break;
-       case LOCALE_STYLE::MEDIUM_DATE:
-               format = dateMediumFormat;
-               break;
-       case LOCALE_STYLE::FULL_DATE:
-               format = dateFullFormat;
-               break;
-       default :
-               DP_LOGE("Critical: cannot enter here");
-               format = timeFormat12H;
-               break;
        }
        if (format) {
-               char tempBuf[MAX_BUF_LEN] = {0,};
-               udat_format(format, time, str, MAX_BUF_LEN - 1, NULL, &status);
-               DP_LOGD("udat_format : status[%d]", status);
-               u_austrncpy(tempBuf, str, MAX_BUF_LEN-1);
-               outBuf = string(tempBuf);
+               int formattedLength;
+               i18n_uchar formatted[MAX_BUF_LEN] = {0,};
+               char result[MAX_BUF_LEN] = {0,};
+               ret = i18n_udate_format_date(format, (finishTime * 1000), formatted,
+                               MAX_BUF_LEN, NULL, &formattedLength);
+               if (ret != I18N_ERROR_NONE)
+                       DM_LOGE("i18n_udate_format_date failed : ret [%d]", ret);
+               i18n_ustring_copy_au_n(result, formatted, MAX_BUF_LEN);
+               result[MAX_BUF_LEN - 1] = '\0';
+               outBuf = string(result);
        } else {
-               DP_LOGE("Critical: fail to get time value");
-               outBuf = string(S_("IDS_COM_POP_ERROR"));
+               DM_LOGE("Fail to get time value");
+               outBuf = string(DM_POP_TEXT_ERROR);
        }
 }
 
old mode 100644 (file)
new mode 100755 (executable)
index e7b87a7..69bce9f
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * @brief      download item class for interface of download agent
  */
 
-#include <Ecore.h>
 #include <iostream>
+#ifdef _ENABLE_OMA_DOWNLOAD
+#include <unistd.h>
+#include <string.h>
+#include <errno.h>
+#include "curl/curl.h"
+#include "download-manager-network.h"
+#endif
 #include "download-manager-downloadItem.h"
 #include "download-manager-common.h"
-#include "app_service.h"
+#include "download-manager-util.h"
+
+#ifdef _ENABLE_OMA_DOWNLOAD
+#define DD_MIME_STR "application/vnd.oma.dd+xml"
+#endif
 
 static Ecore_Pipe *ecore_pipe = NULL;
 static void __ecore_cb_pipe_update(void *data, void *buffer, unsigned int nbyte);
 
+#define CONV_STR(NAME) (#NAME)
+static const char *__convertErrToString(int err)
+{
+       const char *str = NULL;
+       switch(err) {
+       case DOWNLOAD_ERROR_NONE:
+               str = CONV_STR(DOWNLOAD_ERROR_NONE);
+               break;
+       case DOWNLOAD_ERROR_INVALID_PARAMETER:
+               str = CONV_STR(DOWNLOAD_ERROR_INVALID_PARAMETER);
+               break;
+       case DOWNLOAD_ERROR_OUT_OF_MEMORY:
+               str = CONV_STR(DOWNLOAD_ERROR_OUT_OF_MEMORY);
+               break;
+       case DOWNLOAD_ERROR_NETWORK_UNREACHABLE:
+               str = CONV_STR(DOWNLOAD_ERROR_NETWORK_UNREACHABLE);
+               break;
+       case DOWNLOAD_ERROR_CONNECTION_TIMED_OUT:
+               str = CONV_STR(DOWNLOAD_ERROR_CONNECTION_TIMED_OUT);
+               break;
+       case DOWNLOAD_ERROR_NO_SPACE:
+               str = CONV_STR(DOWNLOAD_ERROR_NO_SPACE);
+               break;
+       case DOWNLOAD_ERROR_FIELD_NOT_FOUND:
+               str = CONV_STR(DOWNLOAD_ERROR_FIELD_NOT_FOUND);
+               break;
+       case DOWNLOAD_ERROR_INVALID_STATE:
+               str = CONV_STR(DOWNLOAD_ERROR_INVALID_STATE);
+               break;
+       case DOWNLOAD_ERROR_CONNECTION_FAILED:
+               str = CONV_STR(DOWNLOAD_ERROR_CONNECTION_FAILED);
+               break;
+       case DOWNLOAD_ERROR_INVALID_URL:
+               str = CONV_STR(DOWNLOAD_ERROR_INVALID_URL);
+               break;
+       case DOWNLOAD_ERROR_INVALID_DESTINATION:
+               str = CONV_STR(DOWNLOAD_ERROR_INVALID_DESTINATION);
+               break;
+       case DOWNLOAD_ERROR_TOO_MANY_DOWNLOADS:
+               str = CONV_STR(DOWNLOAD_ERROR_TOO_MANY_DOWNLOADS);
+               break;
+       case DOWNLOAD_ERROR_QUEUE_FULL:
+               str = CONV_STR(DOWNLOAD_ERROR_QUEUE_FULL);
+               break;
+       case DOWNLOAD_ERROR_ALREADY_COMPLETED:
+               str = CONV_STR(DOWNLOAD_ERROR_ALREADY_COMPLETED);
+               break;
+       case DOWNLOAD_ERROR_FILE_ALREADY_EXISTS:
+               str = CONV_STR(DOWNLOAD_ERROR_FILE_ALREADY_EXISTS);
+               break;
+       case DOWNLOAD_ERROR_CANNOT_RESUME:
+               str = CONV_STR(DOWNLOAD_ERROR_CANNOT_RESUME);
+               break;
+       case DOWNLOAD_ERROR_TOO_MANY_REDIRECTS:
+               str = CONV_STR(DOWNLOAD_ERROR_TOO_MANY_REDIRECTS);
+               break;
+       case DOWNLOAD_ERROR_UNHANDLED_HTTP_CODE:
+               str = CONV_STR(DOWNLOAD_ERROR_UNHANDLED_HTTP_CODE);
+               break;
+       case DOWNLOAD_ERROR_REQUEST_TIMEOUT:
+               str = CONV_STR(DOWNLOAD_ERROR_REQUEST_TIMEOUT);
+               break;
+       case DOWNLOAD_ERROR_RESPONSE_TIMEOUT:
+               str = CONV_STR(DOWNLOAD_ERROR_RESPONSE_TIMEOUT);
+               break;
+       case DOWNLOAD_ERROR_SYSTEM_DOWN:
+               str = CONV_STR(DOWNLOAD_ERROR_SYSTEM_DOWN);
+               break;
+       case DOWNLOAD_ERROR_ID_NOT_FOUND:
+               str = CONV_STR(DOWNLOAD_ERROR_ID_NOT_FOUND);
+               break;
+       case DOWNLOAD_ERROR_NO_DATA:
+               str = CONV_STR(DOWNLOAD_ERROR_NO_DATA);
+               break;
+       case DOWNLOAD_ERROR_IO_ERROR:
+               str = CONV_STR(DOWNLOAD_ERROR_IO_ERROR);
+               break;
+       default:
+               str = "Unknown Error";
+               break;
+       }
+       return str;
+}
+
 namespace DA_CB {
 enum TYPE {
        STARTED = 1,
        PROGRESS,
        PAUSED,
        COMPLETED,
-       STOPPED
+       CANCELED,
+       FAILED
 };
 }
 
 class CbData {
 public:
-       CbData() {}
+       CbData();
        ~CbData() {}
 
        void updateDownloadItem();
+       int updateStartedItem();
+       void updateCompletedItem();
 
        inline void setType(DA_CB::TYPE type) { m_type = type; }
        inline void setUserData(void *userData) { m_userData = userData; }
-       inline void setDownloadHandle(url_download_h handle) { m_download_handle = handle; }
-       inline void setReceivedFileSize(unsigned long int size) { m_receivedFileSize = size; }
-       inline void setFileSize(unsigned long int size) { m_fileSize = size; }
-       inline void setContentName(const char *name) { if (name) m_contentName = name; }
-       inline void setRegisteredFilePath(const char *path) { if (path) m_registeredFilePath = path; }
-       inline void setMimeType(const char *mime) { m_mimeType = mime; }
-       inline void setErrorCode(int err) { m_error = err;      }
+       inline void setDownloadId(int id) { m_download_id = id; }
+       inline void setReceivedFileSize(unsigned long long size) { m_receivedFileSize = size; }
 
-private:
        DA_CB::TYPE m_type;
+private:
        void *m_userData;
-       url_download_h m_download_handle;
-       int m_error;
-       unsigned long int m_receivedFileSize;
-       unsigned long int m_fileSize;
-       string m_contentName;
-       string m_registeredFilePath;
-       string m_mimeType;
+       int m_download_id;
+       unsigned long long m_receivedFileSize;
 };
 
 struct pipe_data_t {
        CbData *cbData;
 };
 
+CbData::CbData()
+       :m_type(DA_CB::STARTED)
+       ,m_userData(NULL)
+       ,m_download_id(-1)
+       ,m_receivedFileSize(0)
+{
+}
+
 DownloadEngine::DownloadEngine()
 {
 }
 
 DownloadEngine::~DownloadEngine()
 {
-       DP_LOG_FUNC();
+       DM_LOGD("");
 }
 
 void DownloadEngine::initEngine(void)
@@ -88,65 +183,354 @@ void DownloadEngine::initEngine(void)
 
 void DownloadEngine::deinitEngine(void)
 {
-       DP_LOG_FUNC();
+       DM_LOGD("");
        if (ecore_pipe) {
                ecore_pipe_del(ecore_pipe);
                ecore_pipe = NULL;
        }
 }
 
+int CbData::updateStartedItem()
+{
+       unsigned long long contentSize = 0;
+       char *contentName = NULL;
+       char *mimeType = NULL;
+       char *tempPath = NULL;
+       char *etag = NULL;
+       string name;
+       int ret = 0;
+       DownloadItem *downloadItem = static_cast<DownloadItem*>(m_userData);
+
+       downloadItem->setState(DL_ITEM::STARTED);
+       ret = download_get_content_size(m_download_id, &contentSize);
+       if (ret != DOWNLOAD_ERROR_NONE) {
+               DM_LOGE("Fail to get content size:id[%d] err[%s]",
+                       m_download_id, __convertErrToString(ret));
+               downloadItem->setState(DL_ITEM::FAILED);
+               downloadItem->setErrorCode(ERROR::ENGINE_FAIL);
+               download_cancel(m_download_id);
+               return -1;
+       }
+       DM_SLOGI("content size[%llu]", contentSize);
+       /* In case of second download of OMA download, the size form server may be not set
+        * At that case, the size from dd file should not changed.*/
+       if (contentSize > 0)
+               downloadItem->setFileSize((unsigned long long)contentSize);
+       ret = download_get_content_name(m_download_id, &contentName);
+       if (ret != DOWNLOAD_ERROR_NONE) {
+               if (ret == DOWNLOAD_ERROR_NO_DATA) {
+                       DM_LOGI("No content name. Set default name.");
+                       name = string(DM_BODY_TEXT_NO_NAME);
+               } else {
+                       DM_LOGE("Fail to get content name:id[%d] err[%s]",
+                               m_download_id, __convertErrToString(ret));
+                       downloadItem->setState(DL_ITEM::FAILED);
+                       downloadItem->setErrorCode(ERROR::ENGINE_FAIL);
+                       download_cancel(m_download_id);
+                       free(contentName);
+                       return -1;
+               }
+       }
+       if (contentName)
+               name = string(contentName);
+       DM_SLOGI("content name[%s]", contentName);
+       downloadItem->setContentName(name);
+       free(contentName);
+       ret = download_get_mime_type(m_download_id, &mimeType);
+       if (ret != DOWNLOAD_ERROR_NONE) {
+               if (ret == DOWNLOAD_ERROR_NO_DATA) {
+                       DM_LOGI("Allow empty content type");
+               } else {
+                       DM_LOGE("Fail to get mime type:id[%d] err[%s]",
+                               m_download_id, __convertErrToString(ret));
+                       downloadItem->setState(DL_ITEM::FAILED);
+                       downloadItem->setErrorCode(ERROR::ENGINE_FAIL);
+                       download_cancel(m_download_id);
+                       free(mimeType);
+               }
+               return -1;
+       }
+       if (mimeType) {
+               string mime = string(mimeType);
+               DM_SLOGI("mime type[%s]", mimeType);
+               downloadItem->setMimeType(mime);
+#ifdef _ENABLE_OMA_DOWNLOAD
+               if (downloadItem->isOMADownloadCase()) {
+                       DM_SLOGI("mime type from dd[%s]",
+                                       downloadItem->getMimeFromOmaItem().c_str());
+                       if (downloadItem->isNeededTocheckMimeTypeFromDD(mimeType)) {
+                               if (downloadItem->getMimeFromOmaItem().compare(mimeType))
+                                       downloadItem->cancelWithcontentTypeErr();
+                       }
+               }
+#endif
+               free(mimeType);
+       }
+       ret = download_get_temp_path(m_download_id, &tempPath);
+       if (ret != DOWNLOAD_ERROR_NONE) {
+               DM_LOGE("Fail to get temp path:id[%d] err[%s]",
+                       m_download_id, __convertErrToString(ret));
+               downloadItem->setState(DL_ITEM::FAILED);
+               downloadItem->setErrorCode(ERROR::ENGINE_FAIL);
+               download_cancel(m_download_id);
+               free(tempPath);
+               return -1;
+       }
+       if (tempPath) {
+               DM_SLOGI("temp path[%s]", tempPath);
+               downloadItem->setFilePath(tempPath);
+               free(tempPath);
+       }
+       ret = download_get_etag(m_download_id, &etag);
+       if (ret != DOWNLOAD_ERROR_NONE) {
+               DM_LOGE("Fail to get etag :id[%d] err[%s]",
+                       m_download_id, __convertErrToString(ret));
+       }
+       if (etag) {
+               DM_LOGD("etag[%s]", etag);
+               downloadItem->setEtag(etag);
+               free(etag);
+       }
+#ifdef _ENABLE_OMA_DOWNLOAD
+                       if (downloadItem->isOMAMime())
+                               return -2;
+#endif
+       return 0;
+}
+
+void CbData::updateCompletedItem()
+{
+       int status = 0;
+       char *savedPath = NULL;
+       int ret = 0;
+       DownloadItem *downloadItem = static_cast<DownloadItem*>(m_userData);
+
+       downloadItem->setState(DL_ITEM::FINISHED);
+       ret = download_get_downloaded_file_path(m_download_id, &savedPath);
+       if (ret != DOWNLOAD_ERROR_NONE) {
+               DM_LOGE("Fail to get downloaded file path:id[%d] err[%s]",
+                       m_download_id, __convertErrToString(ret));
+               downloadItem->setState(DL_ITEM::FAILED);
+               downloadItem->setErrorCode(ERROR::ENGINE_FAIL);
+               if (savedPath)
+                       free(savedPath);
+               return;
+       }
+       ret = download_get_http_status(m_download_id, &status);
+       if (ret != DOWNLOAD_ERROR_NONE) {
+               DM_LOGE("Fail to get downloaded status:id[%d] err[%s]",
+                       m_download_id, __convertErrToString(ret));
+               downloadItem->setState(DL_ITEM::FAILED);
+               downloadItem->setErrorCode(ERROR::ENGINE_FAIL);
+               if (savedPath)
+                       free(savedPath);
+               return;
+       }
+       DM_SLOGI("http status code [%d]", status);
+       if (savedPath) {
+               string path = string(savedPath);
+               DM_SLOGI("saved path[%s]", savedPath);
+               downloadItem->setRegisteredFilePath(path);
+               free(savedPath);
+       }
+#ifdef _ENABLE_OMA_DOWNLOAD
+       if (downloadItem->isOMAMime()) {
+               int ret = 0;
+               int err = 0;
+               dd_oma1_t *dd_info = NULL;
+               FileUtility fileObj;
+               string  registeredFilePath = downloadItem->getRegisteredFilePath();
+               ret = op_parse_dd_file(registeredFilePath.c_str(),
+                               (void **)&dd_info, &err);
+               if (ret != OP_TRUE || dd_info == NULL) {
+                       downloadItem->setState(DL_ITEM::FAILED);
+                       downloadItem->setErrorCode(ERROR::PARSING_FAIL);
+                       DM_LOGE("Fail to parsing dd:err[%d]", err);
+                       if (dd_info) {
+                               /* When parsing dd is failed, if the install notify url is existed,
+                                *      it shoud send the result to the server*/
+                               if (dd_info->install_notify_uri) {
+                                       auto_ptr<OmaItem> omaItem;
+                                       omaItem = auto_ptr<OmaItem> (new OmaItem(dd_info));
+                                       downloadItem->setOmaItem(omaItem);
+                                       downloadItem->sendInstallNotification(906);
+                               }
+                               op_free_dd_info(dd_info);
+                       }
+                       if (fileObj.deleteFile(registeredFilePath))
+                               DM_LOGD("The dd file deleted successfully.");
+                       downloadItem->destroyId();
+               }
+               else if (!fileObj.checkAvailableMemory(dd_info->size)) {
+                       downloadItem->setState(DL_ITEM::FAILED);
+                       downloadItem->setErrorCode(ERROR::NOT_ENOUGH_MEMORY);
+                       if (dd_info->install_notify_uri) {
+                               auto_ptr<OmaItem> omaItem;
+                               omaItem = auto_ptr<OmaItem> (new OmaItem(dd_info));
+                               downloadItem->setOmaItem(omaItem);
+                               downloadItem->sendInstallNotification(901);
+                       }
+                       op_free_dd_info(dd_info);
+                       if (fileObj.deleteFile(registeredFilePath))
+                               DM_LOGD("The dd file deleted successfully.");
+                       downloadItem->destroyId();
+               } else {
+                       if (dd_info->major_version > 1) {
+                               downloadItem->setState(DL_ITEM::FAILED);
+                               downloadItem->setErrorCode(ERROR::PARSING_FAIL);
+                               if (dd_info->install_notify_uri) {
+                                       auto_ptr<OmaItem> omaItem;
+                                       omaItem = auto_ptr<OmaItem> (new OmaItem(dd_info));
+                                       downloadItem->setOmaItem(omaItem);
+                                       downloadItem->sendInstallNotification(951);
+                               }
+                               op_free_dd_info(dd_info);
+                               return;
+                       }
+                       downloadItem->setState(DL_ITEM::REQUEST_USER_CONFIRM);
+                       if (strlen(dd_info->type) > 0)
+                               downloadItem->setMimeType(dd_info->type);
+                       if (strlen(dd_info->name) > 0) {
+                               string name = string(dd_info->name);
+                               downloadItem->setContentName(name);
+                       }
+                       downloadItem->setFileSize(dd_info->size);
+                       auto_ptr<OmaItem> omaItem;
+                       omaItem = auto_ptr<OmaItem> (new OmaItem(dd_info));
+                       downloadItem->setOmaItem(omaItem);
+                       /* for extracting title */
+                       downloadItem->setReceivedFileSize(0);
+                       if (unlink(registeredFilePath.c_str()) < 0)
+                               DM_LOGE("Fail to unlink the dd file:err[%s]",
+                                               strerror(errno));
+                       string emptyStr = string();
+                       downloadItem->setRegisteredFilePath(emptyStr);
+                       op_free_dd_info(dd_info);
+               }
+       } else {
+               if (downloadItem->isOMADownloadCase()) {
+                       downloadItem->setState(DL_ITEM::NOTIFYING);
+               }
+       }
+#endif
+       downloadItem->destroyId();
+}
+
 void CbData::updateDownloadItem()
 {
-//     DP_LOGD_FUNC();
+       int ret = 0;
 
        if (!m_userData) {
-               DP_LOGE("download item is NULL");
+               DM_LOGE("NULL Check:download item");
                return;
        }
 
        DownloadItem *downloadItem = static_cast<DownloadItem*>(m_userData);
-       if (downloadItem->state() == DL_ITEM::FAILED) {
-               DP_LOGE("download item is already failed");
+       if (downloadItem->getState() == DL_ITEM::FAILED) {
+               DM_LOGE("Fail to get download item");
+#ifdef _ENABLE_OMA_DOWNLOAD
+               if (downloadItem->isOMADownloadCase()) {
+                       FileUtility fileObj;
+                       if (!fileObj.deleteFile(downloadItem->getFilePath()))
+                               DM_SLOGE("Failed to remove[%s]", downloadItem->getFilePath().c_str());
+               }
+#endif
                return;
        }
-       downloadItem->setDownloadHandle(m_download_handle);
+       downloadItem->setDownloadId(m_download_id);
 
        switch(m_type) {
        case DA_CB::STARTED:
-               downloadItem->setState(DL_ITEM::STARTED);
-               //downloadItem->setFileSize(m_fileSize);
-               if (!m_contentName.empty())
-                       downloadItem->setContentName(m_contentName);
-               if (!m_mimeType.empty())
-                       downloadItem->setMimeType(m_mimeType);
+       {
+               if(updateStartedItem() == -2)
+                       return;
                break;
+       }
        case DA_CB::PROGRESS:
+       {
                downloadItem->setState(DL_ITEM::UPDATING);
-               downloadItem->setFileSize(m_fileSize);
                downloadItem->setReceivedFileSize(m_receivedFileSize);
+#ifdef _ENABLE_OMA_DOWNLOAD
+               if (downloadItem->isOMAMime())
+                       return;
+#endif
                break;
+       }
        case DA_CB::PAUSED:
+       {
                downloadItem->setState(DL_ITEM::SUSPENDED);
-               downloadItem->setFileSize(m_fileSize);
-               downloadItem->setReceivedFileSize(m_receivedFileSize);
                break;
+       }
        case DA_CB::COMPLETED:
-               downloadItem->setState(DL_ITEM::FINISHED);
-               if (!m_registeredFilePath.empty()) {
-                       DP_LOGD("registeredFilePath[%s]", m_registeredFilePath.c_str());
-                       downloadItem->setRegisteredFilePath(m_registeredFilePath);
-               }
-               downloadItem->destroyHandle();
+       {
+               updateCompletedItem();
                break;
-       case DA_CB::STOPPED:
-               if (m_error != URL_DOWNLOAD_ERROR_NONE) {
+       }
+       case DA_CB::CANCELED:
+       {
+               download_error_e error = DOWNLOAD_ERROR_NONE;
+#ifdef _ENABLE_OMA_DOWNLOAD
+               if (downloadItem->isOMADownloadCase()) {
+                       downloadItem->sendInstallNotification(902);
+                       FileUtility fileObj;
+                       if (!fileObj.deleteFile(downloadItem->getFilePath()))
+                               DM_SLOGE("Failed to remove[%s]", downloadItem->getFilePath().c_str());
+               }
+#endif
+               ret = download_get_error(m_download_id, &error);
+               if (ret != DOWNLOAD_ERROR_NONE) {
+                       DM_LOGE("Fail to get downloaded error:id[%d] err[%s]",
+                               m_download_id, __convertErrToString(ret));
+                       downloadItem->setState(DL_ITEM::FAILED);
+                       downloadItem->setErrorCode(ERROR::ENGINE_FAIL);
+                       break;
+               }
+               if (downloadItem->getState() == DL_ITEM::CANCELED) {
+                       DM_LOGI("Already update cancel UI");
+                       downloadItem->destroyId();
+                       return;
+               }
+               if (error != DOWNLOAD_ERROR_NONE) {
+                       DM_LOGE("Cancel error:err[%d]", error);
                        downloadItem->setState(DL_ITEM::FAILED);
-                       downloadItem->setErrorCode(downloadItem->_convert_error(m_error));
+                       downloadItem->setErrorCode(ERROR::ENGINE_FAIL);
                } else {
+                       /* In case the content server request cancel */
                        downloadItem->setState(DL_ITEM::CANCELED);
                }
-               downloadItem->destroyHandle();
+               downloadItem->destroyId();
                break;
+       }
+       case DA_CB::FAILED:
+       {
+               download_error_e error = DOWNLOAD_ERROR_NONE;
+               ret = download_get_error(m_download_id, &error);
+               if (ret != DOWNLOAD_ERROR_NONE) {
+                       DM_LOGE("Fail to get download error:id[%d] err[%s]",
+                               m_download_id, __convertErrToString(ret));
+                       downloadItem->setState(DL_ITEM::FAILED);
+                       downloadItem->setErrorCode(ERROR::ENGINE_FAIL);
+                       break;
+               }
+
+               if (error != DOWNLOAD_ERROR_NONE) {
+                       downloadItem->setState(DL_ITEM::FAILED);
+                       downloadItem->setErrorCode(downloadItem->_convert_error(error));
+#ifdef _ENABLE_OMA_DOWNLOAD
+                       if (downloadItem->isOMADownloadCase()) {
+                               int status = downloadItem->convertInstallStatus(error);
+                               downloadItem->sendInstallNotification(status);
+                               FileUtility fileObj;
+                               if (!fileObj.deleteFile(downloadItem->getFilePath()))
+                                       DM_SLOGE("Failed to remove[%s]", downloadItem->getFilePath().c_str());
+                       }
+#endif
+               } else {
+                       DM_LOGE("Cannot enter here!!:err[%d]", error);
+               }
+               downloadItem->destroyId();
+               break;
+       }
        default:
                break;
        }
@@ -155,8 +539,6 @@ void CbData::updateDownloadItem()
 
 void __ecore_cb_pipe_update(void *data, void *buffer, unsigned int nbyte)
 {
-//     DP_LOGD_FUNC();
-
        if (!buffer)
                return;
        pipe_data_t *pipe_data = static_cast<pipe_data_t *>(buffer);
@@ -169,7 +551,7 @@ void __ecore_cb_pipe_update(void *data, void *buffer, unsigned int nbyte)
 }
 
 DownloadItem::DownloadItem()
-       : m_download_handle(NULL)
+       : m_download_id(-1)
        , m_state(DL_ITEM::IGNORE)
        , m_errorCode(ERROR::NONE)
        , m_receivedFileSize(0)
@@ -180,7 +562,7 @@ DownloadItem::DownloadItem()
 
 DownloadItem::DownloadItem(auto_ptr<DownloadRequest> request)
        : m_aptr_request(request)
-       , m_download_handle(NULL)
+       , m_download_id(-1)
        , m_state(DL_ITEM::IGNORE)
        , m_errorCode(ERROR::NONE)
        , m_receivedFileSize(0)
@@ -189,271 +571,354 @@ DownloadItem::DownloadItem(auto_ptr<DownloadRequest> request)
 {
 }
 
-void DownloadItem::createHandle()
+int DownloadItem::createId(int id)
 {
-       int ret = url_download_create(&m_download_handle);
-       if (ret != URL_DOWNLOAD_ERROR_NONE) {
-               DP_LOGE("Fail to create download handle : [%d]", ret);
-               return;
-       }
-       DP_LOGD("URL download handle : [%p]", m_download_handle);
-       ret = url_download_set_started_cb(m_download_handle, started_cb, static_cast<void*>(this));
-       if (ret != URL_DOWNLOAD_ERROR_NONE) {
-               DP_LOGE("Fail to set started callback : [%d]", ret);
-               return;
+       FileUtility fileObj;
+       int ret = download_create(&m_download_id);
+       if (ret != DOWNLOAD_ERROR_NONE) {
+               DM_LOGE("Fail to create download id:[%s]", __convertErrToString(ret));
+               return ret;
        }
+       DM_LOGV("URL download id : [%d]", m_download_id);
 
-       ret = url_download_set_completed_cb(m_download_handle, completed_cb, static_cast<void*>(this));
-       if (ret != URL_DOWNLOAD_ERROR_NONE) {
-               DP_LOGE("Fail to set completed cb : [%d]", ret);
-               return;
+       ret = download_set_state_changed_cb(m_download_id, state_changed_cb, static_cast<void*>(this));
+       if (ret != DOWNLOAD_ERROR_NONE) {
+               DM_LOGE("Fail to set state changed cb:[%s]", __convertErrToString(ret));
+               return ret;
        }
 
-       ret = url_download_set_paused_cb(m_download_handle, paused_cb, static_cast<void*>(this));
-       if (ret != URL_DOWNLOAD_ERROR_NONE) {
-               DP_LOGE("Fail to set paused cb : [%d]", ret);
-               return;
+       ret = download_set_progress_cb(m_download_id, progress_cb, static_cast<void*>(this));
+       if (ret != DOWNLOAD_ERROR_NONE) {
+               DM_LOGE("Fail to set progress cb:[%s]", __convertErrToString(ret));
+               return ret;
        }
+       if (!fileObj.checkTempDir(m_aptr_request->getInstallDir()))
+               return ret;
 
-       ret = url_download_set_stopped_cb(m_download_handle, stopped_cb, static_cast<void*>(this));
-       if (ret != URL_DOWNLOAD_ERROR_NONE) {
-               DP_LOGE("Fail to set stopped cb : [%d]", ret);
-               return;
-       }
-
-       ret = url_download_set_progress_cb(m_download_handle, progress_cb, static_cast<void*>(this));
-       if (ret != URL_DOWNLOAD_ERROR_NONE) {
-               DP_LOGE("Fail to set progress cb : [%d]", ret);
-               return;
-       }
-
-       service_h service_handle;
-       ret = service_create(&service_handle);
-       if (ret < 0) {
-               DP_LOGE("Fail to create service handle");
-               return;
-       }
-
-       ret = service_set_package(service_handle, PACKAGE_NAME);
-       if (ret < 0) {
-               DP_LOGE("Fail to set package name");
-               return;
-       }
-       ret = url_download_set_notification(m_download_handle, service_handle);
-       if (ret != URL_DOWNLOAD_ERROR_NONE) {
-               DP_LOGE("Fail to set notification : [%d]", ret);
-               return;
-       }
-       ret = service_destroy(service_handle);
-       if (ret < 0) {
-               DP_LOGE("Fail to create service handle");
-               return;
-       }
+       return ret;
 }
 
 DownloadItem::~DownloadItem()
 {
-       DP_LOGD_FUNC();
-       destroyHandle();
+       destroyId();
 }
 
-void DownloadItem::destroyHandle()
+void DownloadItem::destroyId()
 {
-       if (!m_download_handle)
+       if (m_download_id < 0)
                return;
-       DP_LOGD("download handle[%p]", m_download_handle);
-       url_download_unset_started_cb(m_download_handle);
-       url_download_unset_completed_cb(m_download_handle);
-       url_download_unset_paused_cb(m_download_handle);
-       url_download_unset_stopped_cb(m_download_handle);
-       url_download_unset_progress_cb(m_download_handle);
-       url_download_destroy(m_download_handle);
-       m_download_handle = NULL;
-}
-
-void DownloadItem::started_cb(url_download_h download, const char *name,
-       const char *mime, void *user_data)
-{
-
-       CbData *cbData = new CbData();
-       cbData->setType(DA_CB::STARTED);
-       cbData->setDownloadHandle(download);
-       cbData->setUserData(user_data);
-       if (name)
-               cbData->setContentName(name);
-       if (mime)
-               cbData->setMimeType(mime);
-
-       pipe_data_t pipe_data;
-       pipe_data.cbData = cbData;
-       ecore_pipe_write(ecore_pipe, &pipe_data, sizeof(pipe_data_t));
-}
-
-void DownloadItem::paused_cb(url_download_h download, void *user_data)
-{
-       CbData *cbData = new CbData();
-       cbData->setType(DA_CB::PAUSED);
-       cbData->setDownloadHandle(download);
-       cbData->setUserData(user_data);
-
-       pipe_data_t pipe_data;
-       pipe_data.cbData = cbData;
-       ecore_pipe_write(ecore_pipe, &pipe_data, sizeof(pipe_data_t));
+       DM_LOGI("download id[%d]", m_download_id);
+       download_unset_state_changed_cb(m_download_id);
+       download_unset_progress_cb(m_download_id);
+       download_destroy(m_download_id);
+       m_download_id = -1;
 }
 
-void DownloadItem::completed_cb(url_download_h download, const char *path,
+void DownloadItem::state_changed_cb(int download_id, download_state_e state,
        void *user_data)
 {
        CbData *cbData = new CbData();
-       cbData->setType(DA_CB::COMPLETED);
-       cbData->setDownloadHandle(download);
+       cbData->setDownloadId(download_id);
        cbData->setUserData(user_data);
-       cbData->setRegisteredFilePath(path);
-
+       switch(state) {
+       /* The state callback is called when the state value is changed.
+          So, it means that the download is started when the downloading state is received */
+       case DOWNLOAD_STATE_DOWNLOADING:
+               cbData->setType(DA_CB::STARTED);
+               break;
+       case DOWNLOAD_STATE_PAUSED:
+               cbData->setType(DA_CB::PAUSED);
+               break;
+       case DOWNLOAD_STATE_COMPLETED:
+               cbData->setType(DA_CB::COMPLETED);
+               break;
+       case DOWNLOAD_STATE_FAILED:
+               cbData->setType(DA_CB::FAILED);
+               break;
+       case DOWNLOAD_STATE_CANCELED:
+               cbData->setType(DA_CB::CANCELED);
+               break;
+       default:
+               DM_LOGI("Ignore state:[%d]", state);
+               delete cbData;
+               return;
+       }
        pipe_data_t pipe_data;
        pipe_data.cbData = cbData;
        ecore_pipe_write(ecore_pipe, &pipe_data, sizeof(pipe_data_t));
 }
-
-void DownloadItem::stopped_cb(url_download_h download, url_download_error_e error,
+void DownloadItem::progress_cb(int download_id, unsigned long long received,
        void *user_data)
 {
        CbData *cbData = new CbData();
-       cbData->setType(DA_CB::STOPPED);
-       cbData->setDownloadHandle(download);
-       cbData->setUserData(user_data);
-       cbData->setErrorCode(error);
-
-       pipe_data_t pipe_data;
-       pipe_data.cbData = cbData;
-       ecore_pipe_write(ecore_pipe, &pipe_data, sizeof(pipe_data_t));
-}
-
-void DownloadItem::progress_cb(url_download_h download, unsigned long long received,
-       unsigned long long total, void *user_data)
-{
-       CbData *cbData = new CbData();
        cbData->setType(DA_CB::PROGRESS);
-       cbData->setDownloadHandle(download);
+       cbData->setDownloadId(download_id);
        cbData->setUserData(user_data);
-       cbData->setFileSize(total);
        cbData->setReceivedFileSize(received);
-// need to tmp path??
 
        pipe_data_t pipe_data;
        pipe_data.cbData = cbData;
        ecore_pipe_write(ecore_pipe, &pipe_data, sizeof(pipe_data_t));
 }
 
-void DownloadItem::start(bool isRetry)
+bool DownloadItem::start(int id)
 {
        int ret = 0;
-       DP_LOGD_FUNC();
-       if (m_download_handle) {
-               destroyHandle();
+       string url;
+       DM_LOGD("");
+       if (m_download_id > 0) {
+               destroyId();
+       }
+       if ((ret = createId(id)) != DOWNLOAD_ERROR_NONE) {
+               if (ret == DOWNLOAD_ERROR_TOO_MANY_DOWNLOADS) {
+                       m_state = DL_ITEM::QUEUED;
+                       m_errorCode = ERROR::NONE;
+               } else {
+                       m_state = DL_ITEM::FAILED;
+                       m_errorCode = ERROR::ENGINE_FAIL;
+               }
+               notify();
+               return false;
        }
-       createHandle();
 
-       ret = url_download_set_url(m_download_handle,
-                       m_aptr_request->getUrl().c_str());
-       if (ret != URL_DOWNLOAD_ERROR_NONE) {
-               DP_LOGE("Fail to set url : [%d]", ret);
+#ifdef _ENABLE_OMA_DOWNLOAD
+       if (m_oma_item.get())
+               url = m_oma_item.get()->getObjectUri();
+       else
+               url = m_aptr_request->getUrl();
+#else
+       url = m_aptr_request->getUrl();
+#endif
+       ret = download_set_url(m_download_id, url.c_str());
+       if (ret != DOWNLOAD_ERROR_NONE) {
+               DM_LOGE("Fail to set url:[%s]", __convertErrToString(ret));
                m_state = DL_ITEM::FAILED;
                m_errorCode = ERROR::ENGINE_FAIL;
                notify();
-               return;
+               return false;
        }
-       if (!m_aptr_request->getCookie().empty()) {
-               ret = url_download_add_http_header_field(m_download_handle,
-                               "Cookie", m_aptr_request->getCookie().c_str());
-               if (ret != URL_DOWNLOAD_ERROR_NONE) {
-                       DP_LOGE("Fail to set cookie : [%d]", ret);
+       if (!m_aptr_request->getReqHeaderField().empty() &&
+                       !m_aptr_request->getReqHeaderValue().empty()) {
+               ret = download_add_http_header_field(m_download_id,
+                               m_aptr_request->getReqHeaderField().c_str(),
+                               m_aptr_request->getReqHeaderValue().c_str());
+               if (ret != DOWNLOAD_ERROR_NONE) {
+                       DM_LOGE("Fail to set request header:[%s]", __convertErrToString(ret));
                        m_state = DL_ITEM::FAILED;
                        m_errorCode = ERROR::ENGINE_FAIL;
                        notify();
-                       return;
+                       return false;
                }
        }
-       ret = url_download_start(m_download_handle, &m_download_id);
-       DP_LOGD("URL download handle : handle[%p]id[%d]", m_download_handle, m_download_id);
+       string eTag = m_aptr_request->getEtag();
+       string path = m_aptr_request->getTempFilePath();
+       FileUtility fileUtilityObj;
+
+       //The case is for retry of old download
+       if(id > -1 && !eTag.empty() &&
+                       !path.empty() &&
+                       fileUtilityObj.isExistedFile(path, false)) {
+               char downloaded_data_size_to_str[32] = { 0, };
+               long size = 0;
+
+               download_set_temp_file_path(m_download_id, (char *)path.c_str());
+               size = FileUtility::getFileSize(path);
+               snprintf(downloaded_data_size_to_str, sizeof(downloaded_data_size_to_str),
+                       "bytes=%ld-", size);
+               DM_SLOGD("etag = %s, Temp file path = %s, downloaded size = %s",
+                       eTag.c_str(), path.c_str(), downloaded_data_size_to_str);
+
+               int ret = download_add_http_header_field(m_download_id,
+                               "If-Range", eTag.c_str());
+               if (ret != DOWNLOAD_ERROR_NONE)
+                       DM_LOGE("download_add_http_header_field() call failed");
 
-       if (ret != URL_DOWNLOAD_ERROR_NONE) {
+               ret = download_add_http_header_field(m_download_id,
+                               "Range", downloaded_data_size_to_str);
+               if (ret != DOWNLOAD_ERROR_NONE)
+                       DM_LOGE("download_add_http_header_field() call failed");
+       } else {
+               if(!path.empty() && fileUtilityObj.isExistedFile(path, false)) {
+                       fileUtilityObj.deleteFile(path);
+               }
+               if (!m_aptr_request->getInstallDir().empty()) {
+                       string tempDir = m_aptr_request->getInstallDir();
+                       tempDir.append(DM_TEMP_DIR_NAME);
+                       ret = download_set_destination(m_download_id, tempDir.c_str());
+               } else {
+                       string dirPath = FileUtility::getDefaultPath(true);
+                       ret = download_set_destination(m_download_id, dirPath.c_str());
+               }
+               if (ret != DOWNLOAD_ERROR_NONE) {
+                       DM_LOGE("Fail to set destination[%s]", __convertErrToString(ret));
+                       m_state = DL_ITEM::FAILED;
+                       m_errorCode = ERROR::ENGINE_FAIL;
+                       notify();
+                       return false;
+               }
+
+               if (!m_aptr_request->getFileName().empty()) {
+                       string userWantedFileName = m_aptr_request->getFileName();
+                       ret = download_set_file_name(m_download_id, userWantedFileName.c_str());
+               }
+               if (ret != DOWNLOAD_ERROR_NONE) {
+                       DM_LOGE("Fail to set destination[%s]", __convertErrToString(ret));
+                       m_state = DL_ITEM::FAILED;
+                       m_errorCode = ERROR::ENGINE_FAIL;
+                       notify();
+                       return false;
+               }
+       }
+
+       ret = download_start(m_download_id);
+       DM_LOGI("URL download id:[%d] ret[%d]", m_download_id, ret);
+       
+
+       if (ret != DOWNLOAD_ERROR_NONE) {
+               DM_LOGE("Fail to start:[%s]", __convertErrToString(ret));
                m_state = DL_ITEM::FAILED;
                m_errorCode = ERROR::ENGINE_FAIL;
                notify();
+               return false;
        }
+       return true;
 }
 
 ERROR::CODE DownloadItem::_convert_error(int err)
 {
-       DP_LOGD("download module error[%d]", err);
+       DM_LOGI("Error from download service:[%d]", err);
 
        switch (err) {
-       /*
-       case URL_DOWNLOAD_ERROR_NONE:
-       case URL_DOWNLOAD_ERROR_INVALID_PARAMETER:
-       case URL_DOWNLOAD_ERROR_OUT_OF_MEMORY:
-       case URL_DOWNLOAD_ERROR_IO_ERROR:
-       case URL_DOWNLOAD_ERROR_FIELD_NOT_FOUND:
-       case URL_DOWNLOAD_ERROR_INVALID_STATE:
-       case URL_DOWNLOAD_ERROR_INVALID_DESTINATION:
-       case URL_DOWNLOAD_ERROR_TOO_MANY_DOWNLOADS:
-*/
-       case URL_DOWNLOAD_ERROR_NETWORK_UNREACHABLE:
-       case URL_DOWNLOAD_ERROR_CONNECTION_TIMED_OUT:
-       case URL_DOWNLOAD_ERROR_CONNECTION_FAILED:
+       case DOWNLOAD_ERROR_NETWORK_UNREACHABLE:
+       case DOWNLOAD_ERROR_CONNECTION_TIMED_OUT:
+       case DOWNLOAD_ERROR_CONNECTION_FAILED:
                return ERROR::NETWORK_FAIL;
 
-       case URL_DOWNLOAD_ERROR_INVALID_URL:
+       case DOWNLOAD_ERROR_INVALID_URL:
                return ERROR::INVALID_URL;
 
-       case URL_DOWNLOAD_ERROR_NO_SPACE:
+       case DOWNLOAD_ERROR_NO_SPACE:
                return ERROR::NOT_ENOUGH_MEMORY;
-
-//             return ERROR::FAIL_TO_INSTALL;
        default :
                return ERROR::UNKNOWN;
        }
 
 }
+#ifdef _ENABLE_OMA_DOWNLOAD
+int DownloadItem::convertInstallStatus(int err)
+{
+       DM_LOGI("Error from download service:[%d]", err);
+
+       switch (err) {
+       case DOWNLOAD_ERROR_NETWORK_UNREACHABLE:
+       case DOWNLOAD_ERROR_CONNECTION_TIMED_OUT:
+       case DOWNLOAD_ERROR_CONNECTION_FAILED:
+       case DOWNLOAD_ERROR_INVALID_URL:
+               return 954;
+       case DOWNLOAD_ERROR_NO_SPACE:
+               return 901;
+       case DOWNLOAD_ERROR_IO_ERROR:
+       default :
+               return 952;
+       }
+}
+#endif
 
 void DownloadItem::cancel()
 {
-       DP_LOGD("DownloadItem::cancel");
+       DM_LOGI("");
        if (m_state == DL_ITEM::CANCELED) {
-               DP_LOGD("It is already canceled");
+               DM_LOGI("It is already canceled");
                notify();
                return;
        }
-       int ret = url_download_stop(m_download_handle);
-       if (ret != URL_DOWNLOAD_ERROR_NONE) {
-               DP_LOGE("Fail to cancel download : handle[%p]  reason[%d]",
-                       m_download_handle, ret);
+       int ret = download_cancel(m_download_id);
+       if (ret != DOWNLOAD_ERROR_NONE) {
+               DM_LOGE("Fail to cancel download:id[%d] reason[%s]",
+                       m_download_id, __convertErrToString(ret));
                m_state = DL_ITEM::FAILED;
                m_errorCode = ERROR::ENGINE_FAIL;
                notify();
        }
+       m_state = DL_ITEM::CANCELED;
+       notify();
        return;
 }
 
-void DownloadItem::retry()
+#ifdef _ENABLE_OMA_DOWNLOAD
+bool DownloadItem::isNeededTocheckMimeTypeFromDD(const char *mimeType)
 {
-       DP_LOGD_FUNC();
-//     m_download_handle = NULL;
+       DM_LOGD("");
+       if (getMimeFromOmaItem().empty())
+               return false;
+
+       if (strncmp(mimeType, DM_DRM_MIME_STR, strlen(DM_DRM_MIME_STR)) == 0 ||
+                       strncmp(mimeType, DM_DCF_MIME_STR, strlen(DM_DCF_MIME_STR)) == 0)
+               return false;
+       return true;
+}
+
+void DownloadItem::cancelWithcontentTypeErr()
+{
+       DM_LOGI("");
+       if (m_state == DL_ITEM::CANCELED) {
+               DM_LOGI("It is already canceled");
+               notify();
+               return;
+       }
+       int ret = download_cancel(m_download_id);
+       if (ret != DOWNLOAD_ERROR_NONE) {
+               DM_LOGE("Fail to cancel download:id[%d] reason[%s]",
+                       m_download_id, __convertErrToString(ret));
+               m_state = DL_ITEM::FAILED;
+               m_errorCode = ERROR::ENGINE_FAIL;
+               notify();
+       }
+       sendInstallNotification(905);
+       m_state = DL_ITEM::FAILED;
+       m_errorCode = ERROR::PARSING_FAIL;
+       notify();
+       return;
+}
+#endif
+
+bool DownloadItem::retry(int id, unsigned long long fileSize)
+{
+       DM_LOGD("");
+       FileUtility util;
+       string path = m_aptr_request->getTempFilePath();
+       unsigned long long tempFileSize = 0;
+       if (util.isExistedFile(path, false))
+               tempFileSize =  util.getFileSize(path);
+       if (tempFileSize != 0 && tempFileSize == fileSize) {
+               DM_LOGI("Download was finished last time before cancel");
+               setRegisteredFilePath(path);
+               m_state = DL_ITEM::FINISHED;
+               m_errorCode = ERROR::NONE;
+               notify();
+               return false;
+       }
        m_state = DL_ITEM::IGNORE;
        m_errorCode = ERROR::NONE;
        m_receivedFileSize = 0;
        m_fileSize = 0;
        m_downloadType = DL_TYPE::HTTP_DOWNLOAD;
-       start(true);
+       if (!m_registeredFilePath.empty())
+               m_registeredFilePath.clear();
+#ifdef _ENABLE_OMA_DOWNLOAD
+       if (m_oma_item.get())
+               m_oma_item.release();
+#endif
+       return start(id);
 }
 
 void DownloadItem::suspend()
 {
-       int ret = url_download_pause(m_download_handle);
-       if (ret != URL_DOWNLOAD_ERROR_NONE) {
-               DP_LOGE("Fail to suspend download : handle[%p] err[%d]",
-                       m_download_handle, ret);
+       int ret = download_pause(m_download_id);
+       if (ret != DOWNLOAD_ERROR_NONE) {
+               DM_LOGE("Fail to suspend download:id[%d] err[%s]",
+                       m_download_id, __convertErrToString(ret));
+               download_cancel(m_download_id);
                m_state = DL_ITEM::FAILED;
                m_errorCode = ERROR::ENGINE_FAIL;
                notify();
@@ -462,12 +927,348 @@ void DownloadItem::suspend()
 
 void DownloadItem::resume()
 {
-       int ret = url_download_start(m_download_handle, &m_download_id);
-       if (ret != URL_DOWNLOAD_ERROR_NONE) {
-               DP_LOGE("Fail to resume download : handle[%p] err[%d]",
-                       m_download_handle, ret);
+       int ret = DOWNLOAD_ERROR_NONE;
+
+       ret = download_start(m_download_id);
+       if (ret != DOWNLOAD_ERROR_NONE) {
+               DM_LOGE("Fail to resume download:id[%d] err[%s]",
+                       m_download_id, __convertErrToString(ret));
+               download_cancel(m_download_id);
                m_state = DL_ITEM::FAILED;
                m_errorCode = ERROR::ENGINE_FAIL;
                notify();
        }
 }
+
+#ifdef _ENABLE_OMA_DOWNLOAD
+string DownloadItem::getUserMessage(void)
+{
+       if (m_oma_item.get())
+               return m_oma_item->getUserMessage();
+       else
+               return string();
+}
+
+bool DownloadItem::isNotifyFiinished(void)
+{
+       if (m_oma_item.get())
+                       return m_oma_item->isNotifyFiinished();
+               else
+                       return true;
+}
+
+bool DownloadItem::isOMAMime()
+{
+       if (m_mimeType.empty())
+               return false;
+       if (m_mimeType.compare(DD_MIME_STR) == 0)
+               return true;
+       return false;
+}
+
+OmaItem::OmaItem()
+       : size(0)
+       , status(900)
+       , retryCount(0)
+       , th(NULL)
+       , notifyFinished(false)
+{
+}
+
+OmaItem::OmaItem(dd_oma1_t *dd_info)
+{
+       retryCount = 0;
+       th = NULL;
+       notifyFinished = false;
+       if (dd_info) {
+               if (strlen(dd_info->name)>0)
+                       name = string(dd_info->name);
+               if (dd_info->major_version>0 || dd_info->minor_version) {
+                       char buf[256] = {0,};
+                       sprintf(buf, "%d.%d", dd_info->major_version, dd_info->minor_version);
+                       buf[255] = '\0';
+                       version = string(buf);
+               }
+               if (strlen(dd_info->object_uri) > 0)
+                       objectUri = string(dd_info->object_uri);
+               if (dd_info->vendor)
+                       vendor = string(dd_info->vendor);
+               if (dd_info->install_notify_uri)
+                       installUri = string(dd_info->install_notify_uri);
+               if (dd_info->description)
+                       description = string(dd_info->description);
+               if (dd_info->icon_uri)
+                       iconUri = string(dd_info->icon_uri);
+               if (dd_info->next_url)
+                       nextUri = string(dd_info->next_url);
+               if (strlen(dd_info->type) > 1)
+                       contentType = string(dd_info->type);
+               if (dd_info->install_param)
+                       installParam = string(dd_info->install_param);
+               if (dd_info->size > 0)
+                       size = dd_info->size;
+       }
+       status = 900;
+}
+
+OmaItem::~OmaItem()
+{
+       if (th)
+               ecore_thread_cancel(th);
+}
+
+string OmaItem::getUserMessage()
+{
+       string buf = string();
+       if (!name.empty()) {
+               buf.append("Name : ");
+               buf.append(name);
+               buf.append("<br>");
+       }
+
+       buf.append("Size : ");
+       buf.append(getBytesStr(size));
+
+       if (!contentType.empty()) {
+               buf.append("<br>");
+               buf.append("Mime : ");
+               buf.append(contentType);
+       }
+
+       if (!version.empty()) {
+               buf.append("<br>");
+               buf.append("Version : ");
+               buf.append(version);
+       }
+       if (!vendor.empty()) {
+               buf.append("<br>");
+               buf.append("Vendor : ");
+               buf.append(vendor);
+       }
+       if (!description.empty()) {
+               buf.append("<br>");
+               buf.append("Description : ");
+               buf.append(description);
+       }
+#ifdef _ENABLE_OMA_UNSUPPROTED_CONTENT
+       DownloadUtil &utilObj = DownloadUtil::getInstance();
+       if (!contentType.empty() && !utilObj.isSupportedMIMEType(contentType)) {
+               buf.append("<br>");
+               buf.append(DM_BODY_TEXT_UNSUPPORTED_FILE_TYPE);
+       }
+#endif
+       return buf;
+}
+
+/* FIXME later : this function is same to getHumanFriendlyBytesStr() method
+   This should move to util class */
+string OmaItem::getBytesStr(unsigned long long bytes)
+{
+       double doubleTypeBytes = 0.0;
+       const char *unitStr[4] = {"B", "KB", "MB", "GB"};
+       int unit = 0;
+       unsigned long long unitBytes = bytes;
+
+       /* using bit operation to avoid floating point arithmetic */
+       for (unit = 0; (unitBytes > 1024 && unit < 4) ; unit++) {
+               unitBytes = unitBytes >> 10;
+       }
+
+       unitBytes = 1 << (10 * unit);
+       doubleTypeBytes = ((double)bytes / (double)(unitBytes));
+       // FIXME following code should be broken into another function, but leave it now to save function call time.s
+       char str[64] = {0};
+
+       if (unit > 3)
+               unit = 3;
+
+       if (unit == 0)
+               snprintf(str, sizeof(str)-1, "%llu %s", bytes, unitStr[unit]);
+       else
+               snprintf(str, sizeof(str)-1, "%.2f %s", doubleTypeBytes, unitStr[unit]);
+       str[63] = '\0';
+       string temp = string(str);
+       return temp;
+}
+
+string OmaItem::getMessageForInstallNotification(int statusCode)
+{
+       string msg = string();
+       switch(statusCode) {
+       case 900:
+               msg = "900 Success";
+               break;
+       case 901:
+               msg = "901 Insufficient memory";
+               break;
+       case 902:
+               msg = "902 User Cancelled";
+               break;
+       case 903:
+               msg = "903 Loss of Service";
+               break;
+       case 905:
+               msg = "905 Attribute mismatch";
+               break;
+       case 906:
+               msg = "906 Invalid descriptor";
+               break;
+       case 951:
+               msg = "951 Invalid DDVersion";
+               break;
+       case 952:
+               msg = "952 Device Aborted";
+               break;
+       case 953:
+               msg = "953 Non-Acceptable Content";
+               break;
+       case 954:
+               msg = "954 Loader Error";
+               break;
+       default :
+               msg = string();
+               break;
+       }
+       return msg;
+}
+
+int myTrace(CURL *handle, curl_infotype type, char *data, size_t size, void *user)
+{
+       switch(type) {
+       case CURLINFO_TEXT:
+               if (data)
+                       DM_LOGV("[curl] Info:%s", data);
+               break;
+       case CURLINFO_HEADER_OUT:
+               DM_LOGV("[curl] Send header");
+               if (data)
+                       DM_LOGV("[curl] %s", data);
+               break;
+       case CURLINFO_DATA_OUT:
+               DM_LOGD("[curl] Send data");
+               if (data)
+                       DM_SLOGD("[curl] %s", data);
+               break;
+       case CURLINFO_SSL_DATA_OUT:
+               DM_SLOGD("[curl] Send SSL data");
+               break;
+       case CURLINFO_HEADER_IN:
+               DM_SLOGD("[curl] Recv header");
+               if (data)
+                       DM_SLOGD("[curl] %s", data);
+               break;
+       case CURLINFO_DATA_IN:
+               DM_SLOGD("[curl] Recv data");
+               if (data)
+                       DM_SLOGD("[curl] %s", data);
+               break;
+       case CURLINFO_SSL_DATA_IN:
+               DM_SLOGD("[curl] Recv SSL data");
+               break;
+       default:
+               return 0;
+       }
+       return 0;
+}
+
+void OmaItem::sendInstallNotification(int s)
+{
+       status = s;
+       th = ecore_thread_run(sendInstallNotifyCB, threadEndCB,
+                       threadCancelCB, this);
+}
+
+void OmaItem::sendInstallNotification(int s, string url)
+{
+       status = s;
+       installUri = url;
+       th = ecore_thread_run(sendInstallNotifyCB, threadEndCB,
+                       threadCancelCB, this);
+}
+
+void OmaItem::sendInstallNotifyCB(void *data, Ecore_Thread *th)
+{
+       CURL *curl;
+       CURLcode res;
+       string msg = string();
+       OmaItem *item = (OmaItem *)data;
+       struct curl_slist *header = NULL;
+       long httpCode = 0;
+       string proxyAddr = string();
+       string userAgent;
+       DownloadUtil &utilObj = DownloadUtil::getInstance();
+
+       if (!data) {
+               DM_LOGE("[CRITICAL]NULL Check: oma item");
+               return;
+       }
+
+       item->retryCount++;
+       DM_LOGI("try[%d]", item->retryCount);
+       proxyAddr = NetMgr::getInstance().getProxy();
+       userAgent = utilObj.getUserAgent();
+       curl_global_init(CURL_GLOBAL_ALL);
+       curl = curl_easy_init();
+       msg = item->getMessageForInstallNotification(item->getStatus());
+       if (curl) {
+               curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
+               curl_easy_setopt(curl, CURLOPT_URL, item->getInstallUri().c_str());
+               DM_SLOGD("install notify url[%s]",item->getInstallUri().c_str());
+               if (!userAgent.empty())
+                       curl_easy_setopt(curl, CURLOPT_USERAGENT, userAgent.c_str());
+               curl_easy_setopt(curl, CURLOPT_POSTFIELDS, msg.c_str());
+               curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, msg.length() + 1);
+               if (!proxyAddr.empty())
+                       curl_easy_setopt(curl, CURLOPT_PROXY, proxyAddr.c_str());
+               else
+                       DM_LOGI("proxy is not set");
+               /* debug */
+               curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, myTrace);
+       }
+       res = curl_easy_perform(curl);
+       if (res != CURLE_OK) {
+               DM_LOGE("Fail to send install notification[%s]", curl_easy_strerror(res));
+               if (!ecore_thread_reschedule(th))
+                       DM_LOGE("Fail to ecore_thread_reschedule");
+       } else {
+               res = curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &httpCode);
+               if (res != CURLE_OK) {
+                       if (!ecore_thread_reschedule(th))
+                               DM_LOGE("Fail to ecore_thread_reschedule");
+               } else {
+                       DM_LOGI("Response Http Status code[%d]", (int)httpCode);
+                       if (httpCode != 200)
+                               if (!ecore_thread_reschedule(th))
+                                       DM_LOGE("Fail to ecore_thread_reschedule");
+               }
+       }
+       curl_easy_cleanup(curl);
+       curl_slist_free_all(header);
+       if (item->retryCount > 2) {
+               ecore_thread_cancel(th);
+       }
+       return;
+}
+void OmaItem::threadEndCB(void *data, Ecore_Thread *th)
+{
+       OmaItem *item = (OmaItem *)data;
+       if (!data) {
+               DM_LOGE("[CRITICAL]NULL Check: oma item");
+               return;
+       }
+       item->setNotifyFinished(true);
+       item->setThreadData(NULL);
+}
+
+void OmaItem::threadCancelCB(void *data, Ecore_Thread *th)
+{
+       OmaItem *item = (OmaItem *)data;
+       if (!data) {
+               DM_LOGE("[CRITICAL]NULL Check: oma item");
+               return;
+       }
+       item->setNotifyFinished(true);
+       item->setThreadData(NULL);
+}
+
+#endif
old mode 100644 (file)
new mode 100755 (executable)
index 06269b6..90022f1
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  */
 #include "download-manager-downloadRequest.h"
 
-/*DownloadRequest::DownloadRequest()
-       : m_url(NULL)
-       , m_cookie(NULL)
-{
-}*/
-
-DownloadRequest::DownloadRequest(string url, string cookie)
+DownloadRequest::DownloadRequest(string url, string reqHeaderField, string reqHeaderValue,
+               string installDir, string fileName)
        : m_url(url)
-       , m_cookie(cookie)
+       , m_reqHeaderField(reqHeaderField)
+       , m_reqHeaderValue(reqHeaderValue)
+       , m_installDir(installDir)
+       , m_fileName(fileName)
 {
 }
 
 DownloadRequest::DownloadRequest(DownloadRequest &rRequest)
 {
        m_url.assign(rRequest.getUrl());
-       m_cookie.assign(rRequest.getCookie());
+       m_reqHeaderField.assign(rRequest.getReqHeaderField());
+       m_reqHeaderValue.assign(rRequest.getReqHeaderValue());
+       m_installDir.assign(rRequest.getInstallDir());
+       m_fileName.assign(rRequest.getFileName());
+       m_tempFilePath.assign(rRequest.getTempFilePath());
+       m_etag.assign(rRequest.getEtag());
+       extractSenderName();
 }
 
 DownloadRequest::~DownloadRequest()
 {
-//     DP_LOG_FUNC();
 }
 
-string &DownloadRequest::getUrl()
+string DownloadRequest::getUrl()
 {
        return m_url;
 }
 
-string &DownloadRequest::getCookie()
+string DownloadRequest::getSender()
+{
+       return m_sender;
+}
+
+string DownloadRequest::getReqHeaderField()
+{
+       return m_reqHeaderField;
+}
+
+string DownloadRequest::getReqHeaderValue()
 {
-       return m_cookie;
+       return m_reqHeaderValue;
 }
 
-bool DownloadRequest::isUrlEmpty()
+string DownloadRequest::getInstallDir()
 {
-       return m_url.empty();
+       return m_installDir;
 }
 
-bool DownloadRequest::isCookieEmpty()
+string DownloadRequest::getFileName()
 {
-       return m_cookie.empty();
+       return m_fileName;
+}
+
+string DownloadRequest::getTempFilePath()
+{
+       return m_tempFilePath;
+}
+
+string DownloadRequest::getEtag()
+{
+       return m_etag;
 }
 
 void DownloadRequest::setUrl(string url)
 {
        m_url.assign(url);
+       extractSenderName();
+}
+
+void DownloadRequest::setReqHeaderField(string reqHeaderField)
+{
+       m_reqHeaderField.assign(reqHeaderField);
+}
+
+void DownloadRequest::setReqHeaderValue(string reqHeaderValeu)
+{
+       m_reqHeaderValue.assign(reqHeaderValeu);
+}
+
+void DownloadRequest::setInstallDir(string installDir)
+{
+       m_installDir.assign(installDir);
+}
+
+void DownloadRequest::setFileName(string fileName)
+{
+       m_fileName.assign(fileName);
+}
+
+void DownloadRequest::setTempFilePath(string tempFilePath)
+{
+       m_tempFilePath.assign(tempFilePath);
+}
+
+void DownloadRequest::setEtag(string etag)
+{
+       m_etag.assign(etag);
 }
 
-void DownloadRequest::setCookie(string cookie)
+void DownloadRequest::extractSenderName()
 {
-       m_cookie.assign(cookie);
+       size_t found;
+       size_t found1;
+       string temp;
+       if (m_url.empty()) {
+               m_sender = string();
+               return;
+       }
+       found = m_url.find("://");
+       if (found != string::npos) {
+               temp = m_url.substr(found + 3);
+       } else {
+               temp = m_url;
+       }
+       found = temp.find("/");
+       if (found != string::npos) {
+               m_sender = temp.substr(0, found);
+       } else {
+               m_sender = temp;
+       }
+       // For credential URL
+       found = m_sender.find("@");
+       found1 = m_sender.find(":");
+       if (found != string::npos && found1 != string::npos &&
+                       found1 < found) {
+               string tmp = m_sender.substr(found + 1, m_sender.length());
+               m_sender.assign(tmp);
+       }
 }
old mode 100644 (file)
new mode 100755 (executable)
index 5e710f6..bcef09b
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
@@ -48,7 +48,7 @@ void Subject::notify(void)
        while (it < _observers.end()) {
                curObserver = *it;
 
-               DP_LOGD("[%s] Call Update",curObserver->name().c_str());
+               DM_LOGV("[%s]Call Update",curObserver->name().c_str());
                (*it)->update(this);
 
                if (curObserver != *it)
old mode 100644 (file)
new mode 100755 (executable)
index 3766584..042fbe6
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 #include "download-manager-history-db.h"
 
 #define FINALIZE_ON_ERROR( stmt ) { \
-       DP_LOG("SQL error: %d", ret);\
+       DM_LOGE("SQL error:%d[%s]", ret, sqlite3_errmsg(historyDb));\
        if (sqlite3_finalize(stmt) != SQLITE_OK)\
-               DP_LOGE("sqlite3_finalize is failed.");\
-       close();\
+               DM_LOGE("sqlite3_finalize is failed");\
+       closeDB();\
        return false; \
 }
 
@@ -42,96 +42,562 @@ DownloadHistoryDB::~DownloadHistoryDB()
 {
 }
 
-bool DownloadHistoryDB::open()
+bool DownloadHistoryDB::openDB()
 {
+       DM_LOGV("");
        int ret = 0;
+       if (historyDb == NULL) {
+               DM_LOGD("TRY to open [%s]", DBDATADIR"/"HISTORYDB);
+               if (sqlite3_open_v2(DBDATADIR"/"HISTORYDB, &historyDb,
+                               SQLITE_OPEN_READWRITE, NULL) != SQLITE_OK) {
+                       DM_LOGD("[ERROR][%s][%s]", DBDATADIR"/"HISTORYDB,
+                               sqlite3_errmsg(historyDb));
+
+                       int errorcode = sqlite3_errcode(historyDb);
+                       closeDB();
+                       if (errorcode == SQLITE_CORRUPT) {
+                               DM_LOGD("unlink [%s]", DBDATADIR"/"HISTORYDB);
+                               unlink(DBDATADIR"/"HISTORYDB);
+                               errorcode = SQLITE_CANTOPEN;
+                       }
 
-       DP_LOGD_FUNC();
-
-       close();
-
-       ret = db_util_open(DBDATADIR"/"HISTORYDB, &historyDb,
-               DB_UTIL_REGISTER_HOOK_METHOD);
-
-       if (ret != SQLITE_OK) {
-               DP_LOGE("open fail");
-               db_util_close(historyDb);
-               historyDb = NULL;
-               return false;
+                       if (errorcode == SQLITE_CANTOPEN) {
+                               DM_LOGD("Error :: CANTOPEN");
+                               int trycount = 0;
+                               while ((loadSqlSchema() == false) && (++trycount <= 3));
+                               if (trycount > 3)
+                                       DM_LOGD("[ERROR] Could not restore DB");
+                               return isOpen();
+                       }
+                       return false;
+               }
+               ret = sqlite3_exec(historyDb, "PRAGMA journal_mode=PERSIST;", 0, 0, 0);
+               if (SQLITE_OK != ret)
+                       return false;
        }
 
        return isOpen();
 }
 
-void DownloadHistoryDB::close()
+void DownloadHistoryDB::closeDB()
 {
-       DP_LOGD_FUNC();
+       DM_LOGV("");
        if (historyDb) {
-               db_util_close(historyDb);
+               sqlite3_close(historyDb);
                historyDb = NULL;
        }
 }
 
+bool DownloadHistoryDB::createItemToDB(Item *item)
+{
+       int ret = 0;
+       sqlite3_stmt *stmt = NULL;
+
+       DM_LOGV("");
+
+       if (!item) {
+               DM_LOGE("NULL Check:Item");
+               return false;
+       }
+
+       if (item->getHistoryId() < 1) {
+               DM_LOGE("Cannot add to DB. Because historyId is invaild");
+               return false;
+       }
+
+       if (!openDB()) {
+               DM_LOGE("NULL Check:historyDB");
+               return false;
+       }
+
+       const string statement = "insert into history (historyid, \
+               downloadtype, contenttype, state, name, url, filename, \
+               headerfield, headervalue, installdir, date) \
+               values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
+
+       ret = sqlite3_prepare_v2(historyDb, statement.c_str(), -1, &stmt, NULL);
+
+       if (ret != SQLITE_OK)
+               FINALIZE_ON_ERROR(stmt);
+       /* binding values */
+       if (sqlite3_bind_int(stmt, 1, item->getHistoryId()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int(stmt, 2, item->getDownloadType()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int(stmt, 3, item->getContentType()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int(stmt, 4, item->getState()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_text(stmt, 5, item->getContentName().c_str(), -1, NULL) !=
+                       SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_text(stmt, 6, item->getUrl().c_str(), -1, NULL) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_text(stmt, 7, item->getFileName().c_str(), -1, NULL) !=
+                       SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_text(stmt, 8, item->getReqHeaderField().c_str(), -1, NULL) !=
+                       SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_text(stmt, 9, item->getReqHeaderValue().c_str(), -1, NULL) !=
+                       SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_text(stmt, 10, item->getInstallDir().c_str(), -1, NULL) !=
+                       SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_double(stmt, 11, time(NULL)) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_double:%s",
+                               sqlite3_errmsg(historyDb));
+               return false;
+       }
+
+       ret = sqlite3_step(stmt);
+
+       DM_LOGD("SQL return:%s",
+                       (ret == SQLITE_DONE || ret == SQLITE_OK)?"Success":"Fail");
+
+       if (sqlite3_finalize(stmt) != SQLITE_OK)
+               DM_LOGE("Fail to call sqlite3_finalize:%s", sqlite3_errmsg(historyDb));
+
+       return (ret == SQLITE_DONE || ret == SQLITE_OK);
+}
+
 /* FIXME : Hitory entry limitation ?? */
-bool DownloadHistoryDB::addToHistoryDB(Item *item)
+bool DownloadHistoryDB::updateHistoryToDB(Item *item)
+{
+       int ret = 0;
+       sqlite3_stmt *stmt = NULL;
+
+       DM_LOGV("");
+
+       if (!item) {
+               DM_LOGE("NULL Check:Item");
+               return false;
+       }
+
+       if (item->getHistoryId() < 1) {
+               DM_LOGE("Cannot add to DB. Because historyId is invaild");
+               return false;
+       }
+
+       if (!openDB()) {
+               DM_LOGE("NULL Check:historyDB");
+               return false;
+       }
+       const string statement = "update history set downloadtype=?,\
+               contenttype=?, state=?, err=?, name=?, path=?, url=?, filename=?,\
+               headerfield=?, headervalue=?, installdir=?, date=? where historyid = ?";
+
+       ret = sqlite3_prepare_v2(historyDb, statement.c_str(), -1, &stmt, NULL);
+
+       if (ret != SQLITE_OK)
+               FINALIZE_ON_ERROR(stmt);
+       /* binding values */
+       if (sqlite3_bind_int(stmt, 1, item->getDownloadType()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int(stmt, 2, item->getContentType()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int(stmt, 3, item->getState()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int(stmt, 4, item->getErrorCode()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_text(stmt, 5, item->getTitle().c_str(), -1, NULL) !=
+                       SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_text(stmt, 6, item->getRegisteredFilePath().c_str(),
+                       -1, NULL) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_text(stmt, 7, item->getUrl().c_str(), -1, NULL) !=
+                       SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_text(stmt, 8, item->getFileName().c_str(), -1, NULL) !=
+                       SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_text(stmt, 9, item->getReqHeaderField().c_str(), -1, NULL) !=
+                       SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_text(stmt, 10, item->getReqHeaderValue().c_str(), -1, NULL) !=
+                       SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_text(stmt, 11, item->getInstallDir().c_str(), -1, NULL) !=
+                       SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_double(stmt, 12, item->getFinishedTime()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_double:%s",
+                               sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int(stmt, 13, item->getHistoryId()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       ret = sqlite3_step(stmt);
+
+       DM_LOGD("SQL return: %s",
+                       (ret == SQLITE_DONE || ret == SQLITE_OK)?"Success":"Fail");
+
+       if (sqlite3_finalize(stmt) != SQLITE_OK)
+               DM_LOGE("Fail to call sqlite3_finalize:%s", sqlite3_errmsg(historyDb));
+
+       return (ret == SQLITE_DONE || ret == SQLITE_OK);
+}
+
+bool DownloadHistoryDB::updateCanceledItemToDB(Item *item)
 {
        int ret = 0;
        sqlite3_stmt *stmt = NULL;
 
-       DP_LOG_FUNC();
+       DM_LOGV("");
 
        if (!item) {
-               DP_LOGE("Item is NULL");
+               DM_LOGE("NULL Check:Item");
                return false;
        }
 
-       if (item->historyId() < 0) {
-               DP_LOGE("Cannot add to DB. Because historyId is invaild");
+       if (item->getHistoryId() < 1) {
+               DM_LOGE("Cannot add to DB. Because historyId is invaild");
                return false;
        }
 
-       if (!open()) {
-               DP_LOGE("historyDB is NULL");
+       if (!openDB()) {
+               DM_LOGE("NULL Check:historyDB");
                return false;
        }
+       const string statement = "update history set state=?, err=?, \
+               date=? where historyid = ?";
 
-       const string statement = "insert into history (historyid, downloadtype,\
-               contenttype, state, err, name, path, url, cookie, date) \
-               values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
+       ret = sqlite3_prepare_v2(historyDb, statement.c_str(), -1, &stmt, NULL);
+
+       if (ret != SQLITE_OK)
+               FINALIZE_ON_ERROR(stmt);
+       /* binding values */
+       if (sqlite3_bind_int(stmt, 1, item->getState()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int(stmt, 2, item->getErrorCode()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_double(stmt, 3, item->getFinishedTime()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_double:%s",
+                               sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int(stmt, 4, item->getHistoryId()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       ret = sqlite3_step(stmt);
+
+       DM_LOGD("SQL return: %s",
+                       (ret == SQLITE_DONE || ret == SQLITE_OK)?"Success":"Fail");
+
+       if (sqlite3_finalize(stmt) != SQLITE_OK)
+               DM_LOGE("Fail to call sqlite3_finalize:%s", sqlite3_errmsg(historyDb));
+
+       return (ret == SQLITE_DONE || ret == SQLITE_OK);
+}
+
+#ifdef _ENABLE_OMA_DOWNLOAD
+bool DownloadHistoryDB::updateNotiUrlToHistoryDB(Item *item)
+{
+       int ret = 0;
+       sqlite3_stmt *stmt = NULL;
+
+       DM_LOGV("");
+
+       if (!item) {
+               DM_LOGE("NULL Check:Item");
+               return false;
+       }
+
+       if (item->getHistoryId() < 1) {
+               DM_LOGE("Cannot add to DB. Because historyId is invaild");
+               return false;
+       }
+
+       if (!openDB()) {
+               DM_LOGE("NULL Check:historyDB");
+               return false;
+       }
+       const string statement = "update history set installnotifyurl=? where historyid = ?";
 
        ret = sqlite3_prepare_v2(historyDb, statement.c_str(), -1, &stmt, NULL);
 
        if (ret != SQLITE_OK)
                FINALIZE_ON_ERROR(stmt);
        /* binding values */
-       if (sqlite3_bind_int(stmt, 1, item->historyId()) != SQLITE_OK)
-               DP_LOGE("sqlite3_bind_int is failed.");
-       if (sqlite3_bind_int(stmt, 2, item->downloadType()) != SQLITE_OK)
-               DP_LOGE("sqlite3_bind_int is failed.");
-       if (sqlite3_bind_int(stmt, 3, item->contentType()) != SQLITE_OK)
-               DP_LOGE("sqlite3_bind_int is failed.");
-       if (sqlite3_bind_int(stmt, 4, item->state()) != SQLITE_OK)
-               DP_LOGE("sqlite3_bind_int is failed.");
-       if (sqlite3_bind_int(stmt, 5, item->errorCode()) != SQLITE_OK)
-               DP_LOGE("sqlite3_bind_int is failed.");
-       if (sqlite3_bind_text(stmt, 6, item->title().c_str(), -1, NULL) != SQLITE_OK)
-               DP_LOGE("sqlite3_bind_text is failed.");
-       if (sqlite3_bind_text(
-                       stmt, 7, item->registeredFilePath().c_str(), -1, NULL) != SQLITE_OK)
-               DP_LOGE("sqlite3_bind_text is failed.");
-       if (sqlite3_bind_text(stmt, 8, item->url().c_str(), -1, NULL) != SQLITE_OK)
-               DP_LOGE("sqlite3_bind_text is failed.");
-       if (sqlite3_bind_text(stmt, 9, item->cookie().c_str(), -1, NULL) != SQLITE_OK)
-               DP_LOGE("sqlite3_bind_text is failed.");
-       if (sqlite3_bind_double(stmt, 10, item->finishedTime()) != SQLITE_OK)
-               DP_LOGE("sqlite3_bind_double is failed.");
+
+       if (sqlite3_bind_text(stmt, 1, item->installNotifyUrl().c_str(), -1, NULL) !=
+               SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int(stmt, 2, item->getHistoryId()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
        ret = sqlite3_step(stmt);
 
-       DP_LOGD("SQL return: %s", (ret == SQLITE_ROW || ret == SQLITE_OK)?"Success":"Fail");
+       DM_LOGD("SQL return: %s",
+                       (ret == SQLITE_DONE || ret == SQLITE_OK)?"Success":"Fail");
 
-       close();
+       if (sqlite3_finalize(stmt) != SQLITE_OK)
+               DM_LOGE("Fail to call sqlite3_finalize:%s", sqlite3_errmsg(historyDb));
 
-       return ret == SQLITE_DONE;
+       return (ret == SQLITE_DONE || ret == SQLITE_OK);
+}
+#endif
+
+bool DownloadHistoryDB::updateDownloadInfoToDB(Item *item)
+{
+       int ret = 0;
+       sqlite3_stmt *stmt = NULL;
+
+       DM_LOGV("");
+
+       if (!item) {
+               DM_LOGE("NULL Check:Item ");
+               return false;
+       }
+
+       if (item->getHistoryId() < 1) {
+               DM_LOGE("Cannot add to DB. Because historyId is invaild");
+               return false;
+       }
+
+       if (!openDB()) {
+               DM_LOGE("NULL Check:historyDB");
+               return false;
+       }
+#ifdef _ENABLE_OMA_DOWNLOAD
+       const string statement = "update history set downloadtype=?,\
+               contenttype=?, state=?, name=?, etag=?, tempfilepath=?,\
+               installnotifyurl=?, date=?, filesize=? where historyid = ?";
+#else
+       const string statement = "update history set downloadtype=?,\
+               contenttype=?, state=?, name=?, etag=?, tempfilepath=?,\
+               date=?, filesize=? where historyid = ?";
+#endif
+       ret = sqlite3_prepare_v2(historyDb, statement.c_str(), -1, &stmt, NULL);
+
+       if (ret != SQLITE_OK)
+               FINALIZE_ON_ERROR(stmt);
+       /* binding values */
+       if (sqlite3_bind_int(stmt, 1, item->getDownloadType()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int(stmt, 2, item->getContentType()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int(stmt, 3, item->getState()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_text(stmt, 4, item->getTitle().c_str(), -1, NULL) !=
+                       SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_text(stmt, 5, item->getEtag().c_str(), -1, NULL) !=
+                       SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_text(stmt, 6, item->getTempPath().c_str(), -1, NULL) !=
+                       SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+#ifdef _ENABLE_OMA_DOWNLOAD
+       if (sqlite3_bind_text(stmt, 7, item->installNotifyUrl().c_str(), -1, NULL) !=
+                       SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_text:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_double(stmt, 8, time(NULL)) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_double:%s",
+                               sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int64(stmt, 9, (sqlite_int64)item->getFileSize()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int64:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int(stmt, 10, item->getHistoryId()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+#else
+       if (sqlite3_bind_double(stmt, 7, time(NULL)) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_double:%s",
+                               sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int64(stmt, 8, (sqlite_int64)item->getFileSize()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int64:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int(stmt, 9, item->getHistoryId()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+#endif
+       ret = sqlite3_step(stmt);
+
+       DM_LOGD("SQL return: %s",
+                       (ret == SQLITE_DONE || ret == SQLITE_OK)?"Success":"Fail");
+
+       if (sqlite3_finalize(stmt) != SQLITE_OK)
+               DM_LOGE("Fail to call sqlite3_finalize:%s", sqlite3_errmsg(historyDb));
+
+       return (ret == SQLITE_DONE || ret == SQLITE_OK);
+}
+
+bool DownloadHistoryDB::updateStateToDB(Item *item)
+{
+       int ret = 0;
+       sqlite3_stmt *stmt = NULL;
+
+       DM_LOGV("");
+
+       if (!item) {
+               DM_LOGE("NULL Check:Item");
+               return false;
+       }
+
+       if (item->getHistoryId() < 1) {
+               DM_LOGE("Cannot add to DB. Because historyId is invaild");
+               return false;
+       }
+
+       if (!openDB()) {
+               DM_LOGE("NULL Check:historyDB");
+               return false;
+       }
+
+       const string statement = "update history set state=? \
+               where historyid = ?";
+
+       ret = sqlite3_prepare_v2(historyDb, statement.c_str(), -1, &stmt, NULL);
+
+       if (ret != SQLITE_OK)
+               FINALIZE_ON_ERROR(stmt);
+       /* binding values */
+       if (sqlite3_bind_int(stmt, 1, item->getState()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int(stmt, 2, item->getHistoryId()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+
+       ret = sqlite3_step(stmt);
+
+       DM_LOGD("SQL return: %s",
+                       (ret == SQLITE_DONE || ret == SQLITE_OK)?"Success":"Fail");
+
+       if (sqlite3_finalize(stmt) != SQLITE_OK)
+               DM_LOGE("Fail to call sqlite3_finalize:%s", sqlite3_errmsg(historyDb));
+
+       return (ret == SQLITE_DONE || ret == SQLITE_OK);
+}
+
+
+bool DownloadHistoryDB::updateDownloadIdToDB(Item *item)
+{
+       int ret = 0;
+       sqlite3_stmt *stmt = NULL;
+
+       DM_LOGV("");
+
+       if (!item) {
+               DM_LOGE("NULL Check:Item");
+               return false;
+       }
+
+       if (item->getHistoryId() < 1) {
+               DM_LOGE("Cannot add to DB. Because historyId is invaild");
+               return false;
+       }
+
+       if (!openDB()) {
+               DM_LOGE("NULL Check:historyDB");
+               return false;
+       }
+
+       const string statement = "update history set downloadid=? \
+               where historyid = ?";
+
+       ret = sqlite3_prepare_v2(historyDb, statement.c_str(), -1, &stmt, NULL);
+
+       if (ret != SQLITE_OK)
+               FINALIZE_ON_ERROR(stmt);
+       /* binding values */
+       if (sqlite3_bind_int(stmt, 1, item->getId()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+       if (sqlite3_bind_int(stmt, 2, item->getHistoryId()) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s", sqlite3_errmsg(historyDb));
+               return false;
+       }
+
+       ret = sqlite3_step(stmt);
+
+       DM_LOGD("SQL return: %s",
+                       (ret == SQLITE_DONE || ret == SQLITE_OK)?"Success":"Fail");
+
+       if (sqlite3_finalize(stmt) != SQLITE_OK)
+               DM_LOGE("Fail to call sqlite3_finalize:%s", sqlite3_errmsg(historyDb));
+
+       return (ret == SQLITE_DONE || ret == SQLITE_OK);
 }
 
 bool DownloadHistoryDB::getCountOfHistory(int *count)
@@ -139,10 +605,10 @@ bool DownloadHistoryDB::getCountOfHistory(int *count)
        int ret = 0;
        sqlite3_stmt *stmt = NULL;
 
-       DP_LOG_FUNC();
+       DM_LOGV("");
 
-       if (!open()) {
-               DP_LOGE("historyDB is NULL");
+       if (!openDB()) {
+               DM_LOGE("NULL Check:historyDB");
                return false;
        }
        ret = sqlite3_prepare_v2(historyDb, "select COUNT(*) from history", -1, &stmt, NULL);
@@ -150,18 +616,18 @@ bool DownloadHistoryDB::getCountOfHistory(int *count)
                FINALIZE_ON_ERROR(stmt);
 
        ret = sqlite3_step(stmt);
-       DP_LOGD("SQL return: %s", (ret == SQLITE_ROW || ret == SQLITE_OK)?"Success":"Fail");
+       DM_LOGD("SQL return: %s",
+                       (ret == SQLITE_ROW || ret == SQLITE_OK)?"Success":"Fail");
        if (ret == SQLITE_ROW) {
                *count = sqlite3_column_int(stmt,0);
-               DP_LOGD("count[%d]",*count);
+               DM_LOGI("count[%d]",*count);
        } else {
-               DP_LOGE("SQL query error");
+               DM_LOGE("SQL query error:%s", sqlite3_errmsg(historyDb));
                *count = 0;
        }
 
        if (sqlite3_finalize(stmt) != SQLITE_OK)
-               DP_LOGE("sqlite3_finalize is failed.");
-       close();
+               DM_LOGE("Fail to call sqlite3_finalize:%s", sqlite3_errmsg(historyDb));
        return true;
 }
 
@@ -173,17 +639,25 @@ bool DownloadHistoryDB::createRemainedItemsFromHistoryDB(int limit, int offset)
        sqlite3_stmt *stmt = NULL;
        string tmp;
 
-       DP_LOG_FUNC();
+       DM_LOGV("");
 
-       if (!open()) {
-               DP_LOGE("historyDB is NULL");
+       if (!openDB()) {
+               DM_LOGE("NULL Check:historyDB");
                return false;
        }
        limitStr << limit;
        offsetStr << offset;
 
-       tmp.append("select historyid, downloadtype, contenttype, state, err, ");
-       tmp.append("name, path, url, cookie, date from history order by ");
+       tmp.append("select historyid, downloadid, downloadtype, contenttype, \
+                       state, err, ");
+#ifdef _ENABLE_OMA_DOWNLOAD
+       tmp.append("name, path, url, filename, headerfield, headervalue, \
+                       installdir, etag, tempfilepath, installnotifyurl, date, filesize \
+                       from history order by ");
+#else
+       tmp.append("name, path, url, filename, headerfield, headervalue, \
+                       installdir, etag, tempfilepath, date, filesize from history order by ");
+#endif
        tmp.append("date DESC limit ");
        tmp.append(limitStr.str());
        tmp.append(" offset ");
@@ -196,55 +670,97 @@ bool DownloadHistoryDB::createRemainedItemsFromHistoryDB(int limit, int offset)
                ret = sqlite3_step(stmt);
                if (ret == SQLITE_ROW) {
                        const char *tempStr = NULL;
-                       string arg;
-                       string url;
-                       string cookie;
+                       string arg = string();
+                       string url = string();
+                       string fileName = string();
+                       string reqHeaderField = string();
+                       string reqHeaderValue = string();
+                       string installDir = string();
+                       string tempFilePath = string();
+                       string etag = string();
                        Item *item = Item::createHistoryItem();
                        if (!item) {
-                               DP_LOGE("Fail to create item");
+                               DM_LOGE("Fail to create item");
                                break;
                        }
-                       item->setHistoryId(sqlite3_column_int(stmt,0));
-                       item->setDownloadType((DL_TYPE::TYPE)sqlite3_column_int(stmt,1));
-                       item->setContentType(sqlite3_column_int(stmt,2));
-                       item->setState((ITEM::STATE)sqlite3_column_int(stmt,3));
-                       item->setErrorCode((ERROR::CODE)sqlite3_column_int(stmt,4));
-                       tempStr = (const char *)(sqlite3_column_text(stmt,5));
+                       item->setHistoryId(sqlite3_column_int(stmt, 0));
+                       item->setId(sqlite3_column_int(stmt, 1));
+                       item->setDownloadType((DL_TYPE::TYPE)sqlite3_column_int(stmt, 2));
+                       item->setContentType(sqlite3_column_int(stmt, 3));
+                       item->setState((ITEM::STATE)sqlite3_column_int(stmt, 4));
+                       item->setErrorCode((ERROR::CODE)sqlite3_column_int(stmt, 5));
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 6));
                        if (tempStr)
                                arg = tempStr;
                        else
                                arg = string();
                        item->setTitle(arg);
-                       tempStr = (const char *)(sqlite3_column_text(stmt,6));
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 7));
                        if (tempStr)
                                arg = tempStr;
                        else
                                arg = string();
                        item->setRegisteredFilePath(arg);
-                       tempStr = (const char *)(sqlite3_column_text(stmt,7));
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 8));
                        if (tempStr)
                                url = tempStr;
                        else
                                url = string();
-                       tempStr = (const char *)(sqlite3_column_text(stmt,8));
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 9));
+                       if (tempStr)
+                               fileName = tempStr;
+                       else
+                               fileName = string();
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 10));
                        if (tempStr)
-                               cookie = tempStr;
+                               reqHeaderField = tempStr;
                        else
-                               cookie = string();
-                       item->setFinishedTime(sqlite3_column_double(stmt,9));
+                               reqHeaderField = string();
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 11));
+                       if (tempStr)
+                               reqHeaderValue = tempStr;
+                       else
+                               reqHeaderValue = string();
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 12));
+                       if (tempStr)
+                               installDir = tempStr;
+                       else
+                               installDir = string();
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 13));
+                       if (tempStr)
+                               etag = tempStr;
+                       else
+                               etag = string();
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 14));
+                       if (tempStr)
+                               tempFilePath = tempStr;
+                       else
+                               tempFilePath = string();
+#ifdef _ENABLE_OMA_DOWNLOAD
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 15));
+                       if (tempStr) {
+                               string tempStrObj = string(tempStr);
+                               item->setInstallNotifyUrl(tempStrObj);
+                       }
+                       item->setFinishedTime(sqlite3_column_double(stmt, 16));
+                       item->setFileSize((unsigned long long)sqlite3_column_int64(stmt, 17));
+#else
+                       item->setFinishedTime(sqlite3_column_double(stmt, 15));
+                       item->setFileSize((unsigned long long)sqlite3_column_int64(stmt, 16));
+#endif
                        item->attachHistoryItem();
-                       item->setRetryData(url, cookie);
+                       item->setRetryData(url, reqHeaderField, reqHeaderValue,
+                                       installDir, fileName, tempFilePath, etag);
                } else
                        break;
        }
-       DP_LOGD("SQL error: %d", ret);
+       DM_LOGD("SQL return: %s",
+                               (ret == SQLITE_ROW || ret == SQLITE_OK)?"Success":"Fail");
 
        if (sqlite3_finalize(stmt) != SQLITE_OK)
-               DP_LOGE("sqlite3_finalize is failed.");
+               DM_LOGE("sqlite3_finalize is failed:[%s]", sqlite3_errmsg(historyDb));
 
-       close();
-
-       if (ret == SQLITE_DONE || ret == SQLITE_ROW)
+       if (ret == SQLITE_DONE || ret == SQLITE_OK)
                return true;
        else
                return false;
@@ -257,15 +773,21 @@ bool DownloadHistoryDB::createItemsFromHistoryDB()
        string tmp;
        stringstream limitStr;
 
-       DP_LOG_FUNC();
+       DM_LOGV("");
 
-       if (!open()) {
-               DP_LOGE("historyDB is NULL");
+       if (!openDB()) {
+               DM_LOGE("NULL check:historyDB");
                return false;
        }
        limitStr << LOAD_HISTORY_COUNT;
-       tmp.append("select historyid, downloadtype, contenttype, state, err, ");
-       tmp.append("name, path, url, cookie, date from history order by ");
+       tmp.append("select historyid, downloadid, downloadtype, contenttype, state, err, ");
+#ifdef _ENABLE_OMA_DOWNLOAD
+       tmp.append("name, path, url, filename, headerfield, headervalue, installdir, \
+                       etag, tempfilepath, installnotifyurl, date, filesize from history order by ");
+#else
+       tmp.append("name, path, url, filename, headerfield, headervalue, \
+                       installdir, etag, tempfilepath, date, filesize from history order by ");
+#endif
        tmp.append("date DESC limit ");
        tmp.append(limitStr.str());
        ret = sqlite3_prepare_v2(historyDb, tmp.c_str(), -1, &stmt, NULL);
@@ -278,45 +800,77 @@ bool DownloadHistoryDB::createItemsFromHistoryDB()
                        const char *tempStr = NULL;
                        string arg = string();
                        string url = string();
-                       string cookie = string();
+                       string fileName = string();
+                       string reqHeaderField = string();
+                       string reqHeaderValue = string();
+                       string installDir = string();
+                       string tempFilePath = string();
+                       string etag = string();
                        Item *item = Item::createHistoryItem();
                        if (!item) {
-                               DP_LOGE("Fail to create item");
+                               DM_LOGE("Fail to create item");
                                break;
                        }
-                       item->setHistoryId(sqlite3_column_int(stmt,0));
-                       item->setDownloadType((DL_TYPE::TYPE)sqlite3_column_int(stmt,1));
-                       item->setContentType(sqlite3_column_int(stmt,2));
-                       item->setState((ITEM::STATE)sqlite3_column_int(stmt,3));
-                       item->setErrorCode((ERROR::CODE)sqlite3_column_int(stmt,4));
-                       tempStr = (const char *)(sqlite3_column_text(stmt,5));
+                       item->setHistoryId(sqlite3_column_int(stmt, 0));
+                       item->setId(sqlite3_column_int(stmt, 1));
+                       item->setDownloadType((DL_TYPE::TYPE)sqlite3_column_int(stmt, 2));
+                       item->setContentType(sqlite3_column_int(stmt, 3));
+                       item->setState((ITEM::STATE)sqlite3_column_int(stmt, 4));
+                       item->setErrorCode((ERROR::CODE)sqlite3_column_int(stmt, 5));
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 6));
                        if (tempStr) {
                                arg = tempStr;
                                item->setTitle(arg);
                        }
-                       tempStr = (const char *)(sqlite3_column_text(stmt,6));
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 7));
                        if (tempStr)
                                arg = tempStr;
                        item->setRegisteredFilePath(arg);
-                       tempStr = (const char *)(sqlite3_column_text(stmt,7));
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 8));
                        if (tempStr)
                                url = tempStr;
-                       tempStr = (const char *)(sqlite3_column_text(stmt,8));
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 9));
+                       if (tempStr)
+                               fileName = tempStr;
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 10));
+                       if (tempStr)
+                               reqHeaderField = tempStr;
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 11));
+                       if (tempStr)
+                               reqHeaderValue = tempStr;
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 12));
                        if (tempStr)
-                               cookie = tempStr;
-                       item->setFinishedTime(sqlite3_column_double(stmt,9));
+                               installDir = tempStr;
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 13));
+                       if (tempStr)
+                               etag = tempStr;
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 14));
+                       if (tempStr)
+                               tempFilePath = tempStr;
+#ifdef _ENABLE_OMA_DOWNLOAD
+                       tempStr = (const char *)(sqlite3_column_text(stmt, 15));
+                       if (tempStr) {
+                               string tempStrObj = string(tempStr);
+                               item->setInstallNotifyUrl(tempStrObj);
+                       }
+                       item->setFinishedTime(sqlite3_column_double(stmt, 16));
+                       item->setFileSize((unsigned long long)sqlite3_column_int64(stmt, 17));
+#else
+                       item->setFinishedTime(sqlite3_column_double(stmt, 15));
+                       item->setFileSize((unsigned long long)sqlite3_column_int64(stmt, 16));
+#endif
                        item->attachHistoryItem();
-                       item->setRetryData(url, cookie);
+                       item->setRetryData(url, reqHeaderField, reqHeaderValue,
+                                       installDir, fileName, tempFilePath, etag);
                } else
                        break;
        }
-       DP_LOGD("SQL error: %d", ret);
 
        if (sqlite3_finalize(stmt) != SQLITE_OK)
-               DP_LOGE("sqlite3_finalize is failed.");
-       close();
+               DM_LOGE("Fail to call sqlite3_finalize:%s",
+                               sqlite3_errmsg(historyDb));
 
-       if (ret == SQLITE_DONE || ret == SQLITE_ROW)
+       if (ret == SQLITE_DONE || ret == SQLITE_OK)
                return true;
        else
                return false;
@@ -327,10 +881,10 @@ bool DownloadHistoryDB::deleteItem(unsigned int historyId)
        int ret = 0;
        sqlite3_stmt *stmt = NULL;
 
-       DP_LOG_FUNC();
+       DM_LOGV("");
 
-       if (!open()) {
-               DP_LOGE("historyDB is NULL");
+       if (!openDB()) {
+               DM_LOGE("NULL Check:historyDB");
                return false;
        }
 
@@ -339,15 +893,18 @@ bool DownloadHistoryDB::deleteItem(unsigned int historyId)
 
        if (ret != SQLITE_OK)
                FINALIZE_ON_ERROR(stmt);
-       if (sqlite3_bind_int(stmt, 1, historyId) != SQLITE_OK)
-               DP_LOGE("sqlite3_bind_int is failed.");
+       if (sqlite3_bind_int(stmt, 1, historyId) != SQLITE_OK) {
+               DM_LOGE("Fail to call sqlite3_bind_int:%s",
+                               sqlite3_errmsg(historyDb));
+               return false;
+       }
        ret = sqlite3_step(stmt);
        if (ret != SQLITE_OK && ret != SQLITE_DONE)
                FINALIZE_ON_ERROR(stmt);
 
        if (sqlite3_finalize(stmt) != SQLITE_OK)
-               DP_LOGE("sqlite3_finalize is failed.");
-       close();
+               DM_LOGE("Fail to call sqlite3_finalize:%s",
+                               sqlite3_errmsg(historyDb));
        return true;
 }
 
@@ -358,10 +915,10 @@ bool DownloadHistoryDB::deleteMultipleItem(queue <unsigned int> &q)
        sqlite3_stmt *stmt = NULL;
        char *errmsg = NULL;
 
-       DP_LOG_FUNC();
+       DM_LOGV("");
 
-       if (!open()) {
-               DP_LOGE("historyDB is NULL");
+       if (!openDB()) {
+               DM_LOGE("NULL Check:historyDB");
                return false;
        }
        ret = sqlite3_exec(historyDb, "PRAGMA synchronous=OFF;\
@@ -369,11 +926,10 @@ bool DownloadHistoryDB::deleteMultipleItem(queue <unsigned int> &q)
                NULL, NULL, &errmsg);
        if (SQLITE_OK != ret) {
                sqlite3_free(errmsg);
-               close();
                return false;
        }
 
-       DP_LOGD("queue size[%d]",q.size());
+       DM_LOGI("queue size[%d]",q.size());
        while (!q.empty()) {
                ret = sqlite3_prepare_v2(historyDb, "delete from history where historyid=?",
                        -1, &stmt, NULL);
@@ -381,16 +937,19 @@ bool DownloadHistoryDB::deleteMultipleItem(queue <unsigned int> &q)
                        FINALIZE_ON_ERROR(stmt);
                historyId = q.front();
                q.pop();
-               if (sqlite3_bind_int(stmt, 1, historyId) != SQLITE_OK)
-                       DP_LOGE("sqlite3_bind_int is failed.");
+               if (sqlite3_bind_int(stmt, 1, historyId) != SQLITE_OK) {
+                       DM_LOGE("Fail to call sqlite3_bind_int:%s",
+                                       sqlite3_errmsg(historyDb));
+                       return false;
+               }
                ret = sqlite3_step(stmt);
                if (ret != SQLITE_OK && ret != SQLITE_DONE)
                        FINALIZE_ON_ERROR(stmt);
        }
 
        if (sqlite3_finalize(stmt) != SQLITE_OK)
-               DP_LOGE("sqlite3_finalize is failed.");
-       close();
+               DM_LOGE("Fail to call sqlite3_finalize:%s",
+                               sqlite3_errmsg(historyDb));
        return true;
 }
 
@@ -399,10 +958,10 @@ bool DownloadHistoryDB::clearData(void)
        int ret = 0;
        sqlite3_stmt *stmt = NULL;
 
-       DP_LOG_FUNC();
+       DM_LOGD("");
 
-       if (!open()) {
-               DP_LOGE("historyDB is NULL");
+       if (!openDB()) {
+               DM_LOGE("NULL Check:historyDB");
                return false;
        }
 
@@ -411,12 +970,42 @@ bool DownloadHistoryDB::clearData(void)
                FINALIZE_ON_ERROR(stmt);
 
        ret = sqlite3_step(stmt);
-       if (ret != SQLITE_DONE)
+       if (ret != SQLITE_OK && ret != SQLITE_DONE)
                FINALIZE_ON_ERROR(stmt);
 
        if (sqlite3_finalize(stmt) != SQLITE_OK)
-               DP_LOGE("sqlite3_finalize is failed.");
-       close();
+               DM_LOGE("Fail to call sqlite3_finalize:%s",
+                               sqlite3_errmsg(historyDb));
+       return true;
+}
+
+bool DownloadHistoryDB::loadSqlSchema(void)
+{
+       if (sqlite3_open_v2(DBDATADIR"/"HISTORYDB, &historyDb,
+                               SQLITE_OPEN_READWRITE |SQLITE_OPEN_CREATE, NULL) != SQLITE_OK) {
+               DM_LOGD("[ERROR][%s][%s]", DBDATADIR"/"HISTORYDB,
+                               sqlite3_errmsg(historyDb));
+               closeDB();
+               return false;
+       }
+
+       char *error_msg = NULL;
+       int ret = 0;
+       ret = sqlite3_exec(historyDb, REBUILD_QUERY, 0, 0, &error_msg);
+       if((error_msg != NULL) || (SQLITE_OK != ret)) {
+               DM_LOGD("SQL error :: [%s]",error_msg);
+               sqlite3_free(error_msg);
+               error_msg = NULL;
+               closeDB();
+               return false;
+       }
+
+       ret = sqlite3_exec(historyDb, REBUILD_QUERY_INDEX, 0, 0, &error_msg);
+       if((error_msg != NULL) || (SQLITE_OK != ret)) {
+               DM_LOGD("SQL error :: [%s]",error_msg);
+               sqlite3_free(error_msg);
+               error_msg = NULL;
+       }
        return true;
 }
 
old mode 100644 (file)
new mode 100755 (executable)
index 912a499..e84fcfb
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 #include "download-manager-viewItem.h"
 #include "download-manager-history-db.h"
 #include "download-manager-network.h"
+#include "download-manager-notification.h"
 
 Item::Item()
        : m_state(ITEM::IDLE)
        , m_errorCode(ERROR::NONE)
        , m_historyId(-1)
-       , m_contentType(DP_CONTENT_UNKOWN)
+       , m_id(-1)
+       , m_contentType(DM_CONTENT_UNKOWN)
+       , m_fileSize(0)
        , m_finishedTime(0)
        , m_downloadType(DL_TYPE::TYPE_NONE)
+#ifdef _ENABLE_OMA_DOWNLOAD
+       , m_notifyIdler(NULL)
+#endif
+#ifdef _ENABLE_WAITING_RO
+       , m_waitingRoTimer(NULL)
+       , m_timerCount(0)
+#endif
        , m_gotFirstData(false)
 {
 // FIXME Later : init private members
@@ -45,45 +55,60 @@ Item::Item(DownloadRequest &rRequest)
        : m_state(ITEM::IDLE)
        , m_errorCode(ERROR::NONE)
        , m_historyId(-1)
-       , m_contentType(DP_CONTENT_UNKOWN)
+       , m_contentType(DM_CONTENT_UNKOWN)
+       , m_fileSize(0)
        , m_finishedTime(0)
        , m_downloadType(DL_TYPE::TYPE_NONE)
+#ifdef _ENABLE_OMA_DOWNLOAD
+       , m_notifyIdler(NULL)
+#endif
+#ifdef _ENABLE_WAITING_RO
+       , m_waitingRoTimer(NULL)
+       , m_timerCount(0)
+#endif
        , m_gotFirstData(false)
 {
-       m_title = S_("IDS_COM_BODY_NO_NAME");
-       m_iconPath = DP_UNKNOWN_ICON_PATH;
-       m_aptr_request = auto_ptr<DownloadRequest>(new DownloadRequest(rRequest));      // FIXME ???
+       m_title = string();
+       m_iconPath = DM_UNKNOWN_ICON_PATH;
+       m_aptr_request = auto_ptr<DownloadRequest>(new DownloadRequest(rRequest));
+       m_aptr_noti = auto_ptr<DownloadNoti>(new DownloadNoti(this));
+#ifdef _ENABLE_OMA_DOWNLOAD
+       m_installNotifyUrl = string();
+#endif
 }
 
 Item::~Item()
 {
-       DP_LOGD_FUNC();
+       DM_LOGD("");
 }
 
 void Item::create(DownloadRequest &rRequest)
 {
-//     DP_LOGD_FUNC();
-
        Item *newItem = new Item(rRequest);
-
+       newItem->createHistoryId();
        Items &items = Items::getInstance();
        items.attachItem(newItem);
 
        ViewItem::create(newItem);
-       DP_LOGD("newItem[%p]",newItem);
+       DM_LOGV("newItem[%p]",newItem);
 
        newItem->download();
+       newItem->notify();
 }
 
 Item *Item::createHistoryItem()
 {
        string url = string();
-       string cookie = string();
-       DownloadRequest request(url,cookie);
+       string fileName = string();
+       string reqHeaderField = string();
+       string reqHeaderValue = string();
+       string installDir = string();
+       DownloadRequest request(url, reqHeaderField, reqHeaderValue,
+                       installDir, fileName);
+
        Item *newItem = new Item(request);
-//     DP_LOGD_FUNC();
 
-       DP_LOGD("new History Item[%p]",newItem);
+       DM_LOGV("new History Item[%p]",newItem);
 
        return newItem;
 }
@@ -92,35 +117,64 @@ void Item::attachHistoryItem()
 {
        Items &items = Items::getInstance();
 
-       DP_LOGD("attach History Item[%p]",this);
+       DM_LOGI("attach History Item[%p] state[%d]",this, getState());
        items.attachItem(this);
+       if (!isFinished()) {
+               DM_LOGI("Change downloading state to fail state");
+               setState(ITEM::FAIL_TO_DOWNLOAD);
+               setErrorCode(ERROR::ENGINE_FAIL);
+#ifdef _ENABLE_OMA_DOWNLOAD
+               if (!m_installNotifyUrl.empty()) {
+                       OmaItem *omaItem = new OmaItem();
+                       omaItem->sendInstallNotification(952, m_installNotifyUrl);
+               }
+#endif
+               //for notification
+               notify();
+       }
        ViewItem::create(this);
        extractIconPath();
 }
 
 void Item::destroy()
 {
-//     DP_LOG_FUNC();
+       DM_LOGD("");
+       FileUtility fileObj;
        // FIXME prohibit to destroy if downloading
        if (!isFinished()) {
-               DP_LOGE("Cannot delete this item. State[%d]",m_state);
+               DM_LOGE("Cannot delete this item:state[%d]",m_state);
                return;
        }
-       DP_LOGD("Item::destroy() notify()");
 
+       if (isFinishedWithErr()) {
+               DM_LOGI("Delete failed notification message");
+               deleteCompleteNoti();
+       }
+
+       fileObj.deleteFile(getTempPath());
        setState(ITEM::DESTROY);
        notify();
-//     DP_LOG("Item::destroy() notify()... END");
+
        m_aptr_downloadItem->deSubscribe(m_aptr_downloadObserver.get());
        if (m_aptr_downloadObserver.get())
                m_aptr_downloadObserver->clear();
        else
-               DP_LOGE("download observer pointer is NULL");
-       /* When deleting item after download is failed */
-       if (m_aptr_netEventObserver.get()) {
-               NetMgr &netMgrInstance = NetMgr::getInstance();
-               netMgrInstance.deSubscribe(m_aptr_netEventObserver.get());
+               DM_LOGE("NULL Check:download observer");
+
+#ifdef _ENABLE_OMA_DOWNLOAD
+       if (m_notifyIdler) {
+               ecore_idler_del(m_notifyIdler);
+               m_notifyIdler = NULL;
+       }
+#endif
+
+#ifdef _ENABLE_WAITING_RO
+       if (m_waitingRoTimer) {
+               ecore_timer_del(m_waitingRoTimer);
+               m_waitingRoTimer = NULL;
        }
+#endif
+
        Items::getInstance().detachItem(this);
 }
 
@@ -131,20 +185,22 @@ void Item::deleteFromDB()
 
 void Item::download()
 {
-       NetMgr &netMgrInstance = NetMgr::getInstance();
-
-//     DP_LOGD_FUNC();
-
        setState(ITEM::REQUESTING);
 
        createSubscribeData();
 
-       netMgrInstance.subscribe(m_aptr_netEventObserver.get());
+       DownloadHistoryDB::createItemToDB(this);
 
-       m_aptr_downloadItem->start(false);
+       m_aptr_downloadItem->start(-1);
+       m_id = getId();
+       DownloadHistoryDB::updateDownloadIdToDB(this);
+}
 
-       DP_LOG("Item::download() notify()");
-       notify();
+void Item::downloadFromQueuedState()
+{
+       m_aptr_downloadItem->start(-1);
+       m_id = getId();
+       DownloadHistoryDB::updateDownloadIdToDB(this);
 }
 
 void Item::createSubscribeData() // autoptr's variable of this class.
@@ -155,7 +211,7 @@ void Item::createSubscribeData() // autoptr's variable of this class.
                new Observer(netEventCBObserver, this, "netMgrObserver"));
        m_aptr_downloadItem = auto_ptr<DownloadItem>(new DownloadItem(m_aptr_request));
        if (!m_aptr_downloadItem.get()) {
-               DP_LOGE("Fail to create download item");
+               DM_LOGE("Fail to create download item");
                return;
        }
        m_aptr_downloadItem->subscribe(m_aptr_downloadObserver.get());
@@ -165,36 +221,151 @@ void Item::startUpdate(void)
 {
        if (m_gotFirstData) {
                setState(ITEM::DOWNLOADING);
-               if (!registeredFilePath().empty())
+               if (!getRegisteredFilePath().empty())
                        /* need to parse title again, because installed path can be changed */
                        extractTitle();
                return;
        }
 
-       DP_LOGD_FUNC();
+       DM_LOGD("");
 
        if (!m_aptr_downloadItem.get()) {
-               DP_LOGE("Fail to get download item");
+               DM_LOGE("Fail to get download item");
                return;
        }
        m_gotFirstData = true;
+       setFileSize(m_aptr_downloadItem->getFileSize());
 //     setState(ITEM::DOWNLOADING);
        setState(ITEM::RECEIVING_DOWNLOAD_INFO);
 
        extractTitle();
        DownloadUtil &util = DownloadUtil::getInstance();
        m_contentType = util.getContentType(
-               m_aptr_downloadItem->mimeType().c_str(), filePath().c_str());
+               m_aptr_downloadItem->getMimeType().c_str(), getFilePath().c_str());
+       extractIconPath();
+       DownloadHistoryDB::updateDownloadInfoToDB(this);
+}
+
+void Item::failCaseUpdate(void)
+{
+       FileUtility fileObj;
+       DM_LOGD("");
+       if (m_title.empty() && !getContentName().empty())
+               extractTitle();
        extractIconPath();
+       if (getErrorCode() == ERROR::NOT_ENOUGH_MEMORY) {
+               if(fileObj.deleteFile(getFilePath()))
+                       DM_SLOGE("File %s is removed", getFilePath().c_str());
+       }
+       if (fileObj.deleteFile(getRegisteredFilePath()))
+               DM_SLOGE("File %s is removed", getRegisteredFilePath().c_str());
+}
+
+#ifdef _ENABLE_OMA_DOWNLOAD
+#ifdef _ENABLE_WAITING_RO
+void Item::sendInstallNotification(int status)
+{
+       if (m_aptr_downloadItem.get())
+               m_aptr_downloadItem->sendInstallNotification(status);
+       return;
 }
+Eina_Bool Item::waitingRoForOmaCB(void *data)
+{
+       Item *item = (Item*)data;
+       return waitingRo(item, true);
+}
+#endif
+#endif
+
+#ifdef _ENABLE_WAITING_RO
+Eina_Bool Item::waitingRo(Item *item, bool isOmaCase)
+{
+       DownloadDrm &drmObj = DownloadDrm::getInstance();
+
+       if (!item) {
+               DM_LOGE("[CRITICAL]NULL Check:item");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if(drmObj.validRo(item->getRegisteredFilePath().c_str()) ||
+                       item->timerCount() >= WAITING_RO_MAX_SECONDS) {
+               DownloadUtil &util = DownloadUtil::getInstance();
+               DM_LOGI("Valid RO or Timeout");
+               if (!util.registerContent(item->getRegisteredFilePath(),
+                               item->getThumbnailPath())) {
+                       item->setState(ITEM::FAIL_TO_DOWNLOAD);
+                       item->setErrorCode(ERROR::FAIL_TO_INSTALL);
+                       if (isOmaCase)
+                               item->sendInstallNotification(952);
+                       item->failCaseUpdate();
+                       item->handleFinishedItem();
+               } else {
+                       if (isOmaCase) {
+                               if (!item->isExistedInstallNotifyUri()) {
+                                       item->setState(ITEM::FINISH_DOWNLOAD);
+                                       item->handleFinishedItem();
+                               } else {
+                                       item->setState(ITEM::NOTIFYING);
+                                       item->sendInstallNotification(900);
+                               }
+                       } else {
+                               item->setState(ITEM::FINISH_DOWNLOAD);
+                               item->handleFinishedItem();
+                       }
+               }
+               if (isOmaCase && item->isExistedInstallNotifyUri()) {
+                       Ecore_Idler *idler = NULL;
+                       idler = ecore_idler_add(checkInstallNotifyCB, item);
+                       item->setNotifyIdler(idler);
+               } else {
+                       item->setNotifyIdler(NULL);
+               }
+               DM_LOGI("Item[%p]::updateAfterCheckRo() notify() state[%d]",
+                               item, item->getState());
+               item->notify();
+               item->initTimerCount();
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       item->increaseTimerCount();
+       DM_LOGI("Check again RO Timer count[%d]", item->timerCount());
+       item->setState(ITEM::WAITING_RO);
+       item->notify();
+       return ECORE_CALLBACK_RENEW;
+}
+
+Eina_Bool Item::waitingRoCB(void *data)
+{
+       Item *item = (Item*)data;
+       return waitingRo(item, false);
+}
+#endif
 
 void Item::updateFromDownloadItem(void)
 {
-//     DP_LOGD_FUNC();
+       string finalPath;
        DownloadUtil &util = DownloadUtil::getInstance();
 
-       switch (m_aptr_downloadItem->state()) {
+       if (isFinished()) {
+               /* When user canceled item,
+                * the cancel operation is not operated in download daemon at once due to timing issue
+                * The canceled state is updated later.
+                * It is necessary to check queued time for that case.*/
+               if (m_aptr_downloadItem->getState() == DL_ITEM::CANCELED) {
+                       checkQueuedItem();
+               }
+               DM_LOGI("Already finished. Ignored. dl_state[%d], state[%d]",
+                               m_aptr_downloadItem->getState(), getState());
+               return;
+       }
+
+       switch (m_aptr_downloadItem->getState()) {
        case DL_ITEM::STARTED:
+#ifdef _ENABLE_OMA_DOWNLOAD
+               if (getState() == ITEM::REQUEST_USER_CONFIRM)
+                       setState(ITEM::REQUESTING);
+#endif
+               DownloadHistoryDB::updateStateToDB(this);
                break;
        case DL_ITEM::UPDATING:
                startUpdate();
@@ -205,134 +376,243 @@ void Item::updateFromDownloadItem(void)
        case DL_ITEM::SUSPENDED:
                setState(ITEM::SUSPENDED);
                m_aptr_downloadItem->resume();
+               DownloadHistoryDB::updateStateToDB(this);
                break;
        case DL_ITEM::RESUMED:
                //setState(ITEM::RESUMED);
                break;
        case DL_ITEM::FINISHED:
                setState(ITEM::FINISH_DOWNLOAD);
+               finalPath = util.saveContent(getRegisteredFilePath(), getInstallDir());
+               if (finalPath.empty()) {
+                       setState(ITEM::FAIL_TO_DOWNLOAD);
+                       setErrorCode(ERROR::FAIL_TO_INSTALL);
+                       failCaseUpdate();
+                       handleFinishedItem();
+                       break;
+               }
+               setRegisteredFilePath(finalPath);
                /* need to parse title again, because installed path can be changed */
                extractTitle();
+#ifdef _ENABLE_WAITING_RO
+               if (getContentType() == DM_CONTENT_SD_DRM) {
+                       if (m_waitingRoTimer)
+                               ecore_timer_del(m_waitingRoTimer);
+                       m_waitingRoTimer = ecore_timer_add(1, waitingRoCB, this);
+                       return;
+               }
+#endif
+               if (!util.registerContent(getRegisteredFilePath(), getThumbnailPath())) {
+                       setState(ITEM::FAIL_TO_DOWNLOAD);
+                       setErrorCode(ERROR::FAIL_TO_INSTALL);
+                       failCaseUpdate();
+                       handleFinishedItem();
+                       break;
+               }
                handleFinishedItem();
-               util.registerContent(registeredFilePath());
                break;
        case DL_ITEM::CANCELED:
+               /* Due to async callback,
+                * the content name and mime are received when the cancel event is received */
                setState(ITEM::CANCEL);
+               failCaseUpdate();
                handleFinishedItem();
                break;
        case DL_ITEM::FAILED:
+               /* Due to async callback,
+                * the content name and mime are received when the fail event is received */
                setState(ITEM::FAIL_TO_DOWNLOAD);
-               setErrorCode(m_aptr_downloadItem->errorCode());
+               setErrorCode(m_aptr_downloadItem->getErrorCode());
+               failCaseUpdate();
                handleFinishedItem();
                break;
+#ifdef _ENABLE_OMA_DOWNLOAD
+       case DL_ITEM::NOTIFYING:
+               setState(ITEM::NOTIFYING);
+               finalPath = util.saveContent(getRegisteredFilePath(), getInstallDir());
+               if (finalPath.empty()) {
+                       setState(ITEM::FAIL_TO_DOWNLOAD);
+                       setErrorCode(ERROR::FAIL_TO_INSTALL);
+                       m_aptr_downloadItem->sendInstallNotification(952);
+                       failCaseUpdate();
+                       handleFinishedItem();
+                       break;
+               }
+               setRegisteredFilePath(finalPath);
+               extractTitle();
+#ifdef _ENABLE_WAITING_RO
+               if (getContentType() == DM_CONTENT_SD_DRM) {
+                       if (m_waitingRoTimer)
+                               ecore_timer_del(m_waitingRoTimer);
+                       // this is necessary in OMA download case. Because there are two download event.
+                       initTimerCount();
+                       m_waitingRoTimer = ecore_timer_add(1, waitingRoForOmaCB, this);
+                       return;
+               }
+#endif
+               if (!util.registerContent(getRegisteredFilePath(), getThumbnailPath())) {
+                       setState(ITEM::FAIL_TO_DOWNLOAD);
+                       setErrorCode(ERROR::FAIL_TO_INSTALL);
+                       m_aptr_downloadItem->sendInstallNotification(952);
+                       failCaseUpdate();
+                       handleFinishedItem();
+                       break;
+               }
+               if (!m_aptr_downloadItem->isExistedInstallNotifyUri()) {
+                       DM_LOGI("No install notify URI");
+                       setState(ITEM::FINISH_DOWNLOAD);
+                       handleFinishedItem();
+                       notify();
+               } else {
+                       m_aptr_downloadItem->sendInstallNotification(900);
+                       m_notifyIdler = ecore_idler_add(checkInstallNotifyCB, this);
+               }
+               return;
+//             break;
+       case DL_ITEM::REQUEST_USER_CONFIRM:
+               DM_LOGD("DL_ITEM:REQUEST_USER_CONFIRM");
+               DownloadHistoryDB::updateNotiUrlToHistoryDB(this);
+               setState(ITEM::REQUEST_USER_CONFIRM);
+               break;
+#endif
+       case DL_ITEM::QUEUED:
+               DM_LOGD("DL_ITEM:QUEUED");
+               setState(ITEM::QUEUED);
+               break;
        default:
                break;
        }
-
-       DP_LOGD("Item[%p]::updateFromDownloadItem() notify() dl_state[%d]state[%d]", this, m_aptr_downloadItem->state(), state());
+       DM_LOGV("Item[%p]::updateFromDownloadItem() notify() dl_state[%d]state[%d]",
+                       this, m_aptr_downloadItem->getState(), getState());
        notify();
 }
-void Item::handleFinishedItem()
+
+#ifdef _ENABLE_OMA_DOWNLOAD
+void Item::doneNotifyFinished()
 {
-       createHistoryId();
-       m_finishedTime = time(NULL);
-       DownloadHistoryDB::addToHistoryDB(this);
-       /* If download is finished, it is not need to get network event */
-       if (m_aptr_netEventObserver.get()) {
-               NetMgr &netMgrInstance = NetMgr::getInstance();
-               netMgrInstance.deSubscribe(m_aptr_netEventObserver.get());
-       }
+       /* For destroying item */
+       DM_LOGD("");
+       setState(ITEM::FINISH_DOWNLOAD);
+       handleFinishedItem();
+       notify();
 }
 
-const char *Item::getErrorMessage(void)
+Eina_Bool Item::checkInstallNotifyCB(void *data)
 {
-       switch (m_errorCode) {
-       case ERROR::NETWORK_FAIL:
-               return S_("IDS_COM_POP_CONNECTION_FAILED");
+       Item *item = (Item *)data;
+       if (!data) {
+               DM_LOGE("[CRITICAL]NULL Check:item");
+               return ECORE_CALLBACK_CANCEL;
+       }
+       if (item->isNotifyFiinished()) {
+               item->doneNotifyFinished();
+               item->setNotifyIdler(NULL);
+               return ECORE_CALLBACK_CANCEL;
+       } else {
+               return ECORE_CALLBACK_RENEW;
+       }
 
-       case ERROR::INVALID_URL:
-               return S_("IDS_COM_POP_INVALID_URL");
+}
+#endif
 
-       case ERROR::NOT_ENOUGH_MEMORY:
-               return S_("IDS_COM_POP_NOT_ENOUGH_MEMORY");
+void Item::handleFinishedItem()
+{
+       //createHistoryId();
+       m_finishedTime = time(NULL);
+       if (this->m_state == ITEM::CANCEL)
+               DownloadHistoryDB::updateCanceledItemToDB(this);
+       else
+               DownloadHistoryDB::updateHistoryToDB(this);
+       /* Check QUEUED item and try to satrt downlaod it */
+       checkQueuedItem();
+}
 
-       case ERROR::FAIL_TO_INSTALL:
-               return S_("IDS_COM_POP_SAVING_FAILED");
-       case ERROR::UNKNOWN:
-       default:
-               return S_("IDS_COM_POP_FAILED") ;
+void Item::checkQueuedItem()
+{
+       Items &items = Items::getInstance();
+       int queudItemCount = 0;
+       queudItemCount = items.checkQueuedItem();
+       if (queudItemCount > 0) {
+               DM_LOGI("Remained Queued Count[%d]", queudItemCount);
        }
 }
 
 void Item::extractTitle(void)
 {
        if (!m_aptr_downloadItem.get()) {
-               DP_LOGE("Fail to get download item");
+               DM_LOGE("Fail to get download item");
                return;
        }
        size_t found = 0;
-       string path;
-       if (!registeredFilePath().empty()) {
-               path = registeredFilePath();
+       string path = getRegisteredFilePath();
+       if (!path.empty()) {
                found = path.find_last_of("/");
                if (found != string::npos)
                        m_title = path.substr(found+1);
-       } else if (!contentName().empty()){
-               m_title = contentName();
+       } else if (!getContentName().empty()){
+               m_title = getContentName();
        }
-       DP_LOGD("title [%s] contentName [%s]", m_title.c_str(),contentName().c_str());
+       DM_SLOGD("title [%s] contentName [%s]", m_title.c_str(),
+                       getContentName().c_str());
 }
 
 void Item::extractIconPath()
 {
+       if (isFinishedWithErr()) {
+               m_iconPath = DM_FAILED_ICON_PATH;
+               return;
+       }
        // FIXME Later : change 2 dimension array??
        switch(m_contentType) {
-       case DP_CONTENT_IMAGE :
-               m_iconPath = DP_IMAGE_ICON_PATH;
+       case DM_CONTENT_IMAGE :
+               m_iconPath = DM_IMAGE_ICON_PATH;
                break;
-       case DP_CONTENT_VIDEO :
-               m_iconPath = DP_VIDEO_ICON_PATH;
+       case DM_CONTENT_VIDEO :
+               m_iconPath = DM_VIDEO_ICON_PATH;
                break;
-       case DP_CONTENT_MUSIC:
-               m_iconPath = DP_MUSIC_ICON_PATH;
+       case DM_CONTENT_MUSIC:
+               m_iconPath = DM_MUSIC_ICON_PATH;
                break;
-       case DP_CONTENT_PDF:
-               m_iconPath = DP_PDF_ICON_PATH;
+       case DM_CONTENT_PDF:
+               m_iconPath = DM_PDF_ICON_PATH;
                break;
-       case DP_CONTENT_WORD:
-               m_iconPath = DP_WORD_ICON_PATH;
+       case DM_CONTENT_WORD:
+               m_iconPath = DM_WORD_ICON_PATH;
                break;
-       case DP_CONTENT_PPT:
-               m_iconPath = DP_PPT_ICON_PATH;
+       case DM_CONTENT_PPT:
+               m_iconPath = DM_PPT_ICON_PATH;
                break;
-       case DP_CONTENT_EXCEL:
-               m_iconPath = DP_EXCEL_ICON_PATH;
+       case DM_CONTENT_EXCEL:
+               m_iconPath = DM_EXCEL_ICON_PATH;
                break;
-       case DP_CONTENT_HTML:
-               m_iconPath = DP_HTML_ICON_PATH;
+       case DM_CONTENT_HTML:
+               m_iconPath = DM_HTML_ICON_PATH;
                break;
-       case DP_CONTENT_TEXT:
-               m_iconPath = DP_TEXT_ICON_PATH;
+       case DM_CONTENT_TEXT:
+               m_iconPath = DM_TEXT_ICON_PATH;
                break;
-       case DP_CONTENT_RINGTONE:
-               m_iconPath = DP_RINGTONE_ICON_PATH;
+       case DM_CONTENT_SD_DRM:
+       case DM_CONTENT_DRM:
+               m_iconPath = DM_DRM_ICON_PATH;
                break;
-       case DP_CONTENT_DRM:
-               m_iconPath = DP_DRM_ICON_PATH;
+       case DM_CONTENT_FLASH:
+               m_iconPath = DM_FLASH_ICON_PATH;
                break;
-       case DP_CONTENT_JAVA:
-               m_iconPath = DP_JAVA_ICON_PATH;
+       case DM_CONTENT_TPK:
+               m_iconPath = DM_TPK_ICON_PATH;
                break;
-       case DP_CONTENT_UNKOWN:
+       case DM_CONTENT_VCAL:
+               m_iconPath = DM_VCAL_ICON_PATH;
+               break;
+       case DM_CONTENT_UNKOWN:
        default:
-               m_iconPath = DP_UNKNOWN_ICON_PATH;
+               m_iconPath = DM_UNKNOWN_ICON_PATH;
                break;
        }
 }
 
 void Item::updateCBForDownloadObserver(void *data)
 {
-       DP_LOGD_FUNC();
        if (data)
                static_cast<Item*>(data)->updateFromDownloadItem();
 }
@@ -343,20 +623,25 @@ void Item::netEventCBObserver(void *data)
         * If other network evnet is added,
         * it is needed to add function accroding to what kinds of network event is
        **/
-       DP_LOG_FUNC();
+       DM_LOGD("");
        if (data)
                static_cast<Item*>(data)->suspend();
 }
 
+bool Item::isExistedFile()
+{
+       return m_fileObj.isExistedFile(getRegisteredFilePath(), false);
+}
+
 bool Item::play()
 {
-       return m_fileOpener.openFile(registeredFilePath(), m_contentType);
+       return m_fileObj.openFile(getRegisteredFilePath(), m_contentType);
 }
 
 /* Test code */
 const char *Item::stateStr(void)
 {
-       switch((int)state()) {
+       switch((int)getState()) {
        case ITEM::IDLE:
                return "IDLE";
        case ITEM::REQUESTING:
@@ -371,10 +656,20 @@ const char *Item::stateStr(void)
                return "REGISTERING_TO_SYSTEM";
        case ITEM::SUSPENDED:
                return "SUSPENDED";
+#ifdef _ENABLE_WAITING_RO
+       case ITEM::WAITING_RO:
+               return "WAITING_RO";
+#endif
        case ITEM::FINISH_DOWNLOAD:
                return "FINISH_DOWNLOAD";
        case ITEM::FAIL_TO_DOWNLOAD:
                return "FAIL_TO_DOWNLOAD";
+#ifdef _ENABLE_OMA_DOWNLOAD
+       case ITEM::REQUEST_USER_CONFIRM:
+               return "REQUEST_USER_CONFIRM";
+       case ITEM::NOTIFYING:
+               return "NOTIFYING";
+#endif
        case ITEM::CANCEL:
                return "CANCEL";
        case ITEM::PLAY:
@@ -385,54 +680,89 @@ const char *Item::stateStr(void)
        return "Unknown State";
 }
 
-DL_TYPE::TYPE Item::downloadType()
+DL_TYPE::TYPE Item::getDownloadType()
 {
        if (m_downloadType == DL_TYPE::TYPE_NONE) {
                if (!m_aptr_downloadItem.get()) {
-                       DP_LOGE("Fail to get download item");
+                       DM_LOGE("Fail to get download item");
                        return DL_TYPE::TYPE_NONE;
                }
-               m_downloadType = m_aptr_downloadItem->downloadType();
+               m_downloadType = m_aptr_downloadItem->getDownloadType();
        }
        return m_downloadType;
 }
 
-string &Item::registeredFilePath()
+string &Item::getRegisteredFilePath()
 {
        if (m_registeredFilePath.empty()) {
                if (!m_aptr_downloadItem.get()) {
-                       DP_LOGE("Fail to get download item");
+                       DM_LOGE("Fail to get download item");
                        return m_emptyString;
                }
-               m_registeredFilePath = m_aptr_downloadItem->registeredFilePath();
+               m_registeredFilePath = m_aptr_downloadItem->getRegisteredFilePath();
        }
        return m_registeredFilePath;
 }
 
-string &Item::url()
+string Item::getUrl()
 {
        if (m_url.empty()) {
                if (!m_aptr_downloadItem.get()) {
-                       DP_LOGE("Fail to get download item");
+                       DM_LOGE("Fail to get download item");
                        return m_emptyString;
                }
-               m_url = m_aptr_downloadItem->url();
+               m_url = m_aptr_downloadItem->getUrl();
        }
        return m_url;
 }
 
-string &Item::cookie()
+string Item::getReqHeaderField()
+{
+       if (m_reqHeaderField.empty()) {
+               if (!m_aptr_downloadItem.get()) {
+                       DM_LOGE("Fail to get download item");
+                       return m_emptyString;
+               }
+               m_reqHeaderField = m_aptr_downloadItem->getReqHeaderField();
+       }
+       return m_reqHeaderField;
+}
+
+string Item::getReqHeaderValue()
+{
+       if (m_reqHeaderValue.empty()) {
+               if (!m_aptr_downloadItem.get()) {
+                       DM_LOGE("Fail to get download item");
+                       return m_emptyString;
+               }
+               m_reqHeaderValue = m_aptr_downloadItem->getReqHeaderValue();
+       }
+       return m_reqHeaderValue;
+}
+
+string Item::getInstallDir()
 {
-       if (m_cookie.empty()) {
+       if (m_installDir.empty()) {
                if (!m_aptr_downloadItem.get()) {
-                       DP_LOGE("Fail to get download item");
+                       DM_LOGE("Fail to get download item");
                        return m_emptyString;
                }
-               m_cookie = m_aptr_downloadItem->cookie();
+               m_installDir = m_aptr_downloadItem->getInstallDir();
        }
-       return m_cookie;
+       return m_installDir;
 }
 
+string Item::getFileName()
+{
+       if (m_fileName.empty()) {
+               if (!m_aptr_downloadItem.get()) {
+                       DM_LOGE("Fail to get download item");
+                       return m_emptyString;
+               }
+               m_fileName = m_aptr_downloadItem->getFileName();
+       }
+       return m_fileName;
+}
 
 void Item::createHistoryId()
 {
@@ -443,11 +773,11 @@ void Item::createHistoryId()
                tempId = rand();
                count++;
                if (count > 100) {
-                       DP_LOGE("Fail to create unique ID");
+                       DM_LOGE("Fail to create unique ID");
                        tempId = -1;
                        break;
                }
-               DP_LOGD("random historyId[%ld]", m_historyId);
+               DM_LOGD("Random historyId[%ld]", m_historyId);
        }
        m_historyId = tempId;
 }
@@ -458,29 +788,52 @@ bool Item::isExistedHistoryId(unsigned int id)
        return items.isExistedHistoryId(id);
 }
 
-void Item::setRetryData(string &url, string &cookie)
+void Item::setRetryData(string url, string reqHeaderField, string reqHeaderValue,
+               string installDir, string fileName, string tempFilePath, string etag)
 {
-
        m_url = url;
-       m_cookie = cookie;
+       m_reqHeaderField = reqHeaderField;
+       m_reqHeaderValue = reqHeaderValue;
+       m_installDir = installDir;
+       m_fileName = fileName;
+       m_tempFilePath = tempFilePath;
+       m_etag = etag;
        m_aptr_request->setUrl(url);
-       m_aptr_request->setCookie(cookie);
-
+       m_aptr_request->setReqHeaderField(reqHeaderField);
+       m_aptr_request->setReqHeaderValue(reqHeaderValue);
+       m_aptr_request->setInstallDir(installDir);
+       m_aptr_request->setFileName(fileName);
+       m_aptr_request->setTempFilePath(tempFilePath);
+       m_aptr_request->setEtag(etag);
        createSubscribeData();
+}
+
+void Item::deleteCompleteNoti()
+{
+       if (m_aptr_noti.get())
+               m_aptr_noti->deleteCompleteNoti();
+}
 
+void Item::suspend()
+{
+       if (!isCompletedDownload() && !isPreparingDownload())
+               m_aptr_downloadItem->suspend();
+       else
+               DM_LOGI("Cannot suspend due to invalid state[%d]", getState());
 }
 
 bool Item::retry()
 {
-       DP_LOG_FUNC();
+       DM_LOGD("");
        if (m_aptr_downloadItem.get()) {
-               NetMgr &netMgrInstance = NetMgr::getInstance();
                setState(ITEM::PREPARE_TO_RETRY);
+               if (!m_aptr_noti.get()) {
+                       m_aptr_noti = auto_ptr<DownloadNoti>(new DownloadNoti(this));
+               }
                notify();
-               DownloadHistoryDB::deleteItem(m_historyId);
-               netMgrInstance.subscribe(m_aptr_netEventObserver.get());
-               m_historyId = -1;
-               m_aptr_downloadItem->retry();
+               /* Donot delete db, just update db. */
+               if (m_aptr_downloadItem->retry(m_id, m_fileSize))
+                       setState(ITEM::REQUESTING);
                return true;
        } else {
                m_state = ITEM::FAIL_TO_DOWNLOAD;
@@ -492,11 +845,33 @@ void Item::clearForRetry()
 {
        m_state = ITEM::IDLE;
        m_errorCode = ERROR::NONE;
-       m_contentType = DP_CONTENT_UNKOWN;
+       m_contentType = DM_CONTENT_UNKOWN;
        m_finishedTime = 0;
        m_downloadType = DL_TYPE::TYPE_NONE;
        m_gotFirstData = false;
+       m_iconPath = m_iconPath.assign(DM_UNKNOWN_ICON_PATH);
+       if (!m_registeredFilePath.empty())
+               m_registeredFilePath.clear();
+}
+
+#ifdef _ENABLE_OMA_DOWNLOAD
+void Item::handleUserConfirm(bool res)
+{
+       if (res) {
+               m_aptr_downloadItem->start(-1);
+               m_id = getId();
+               DownloadHistoryDB::updateDownloadIdToDB(this);
+       } else {
+               m_state = ITEM::CANCEL;
+               failCaseUpdate();
+               m_aptr_downloadItem->sendInstallNotification(902);
+               handleFinishedItem();
+               notify();
+
+       }
+
 }
+#endif
 
 bool Item::isFinished()
 {
@@ -538,6 +913,10 @@ bool Item::isPreparingDownload()
        case ITEM::IDLE:
        case ITEM::REQUESTING:
        case ITEM::PREPARE_TO_RETRY:
+#ifdef _ENABLE_OMA_DOWNLOAD
+       case ITEM::REQUEST_USER_CONFIRM:
+#endif
+       case ITEM::QUEUED:
                ret = true;
                break;
        default:
@@ -550,10 +929,16 @@ bool Item::isPreparingDownload()
 
 bool Item::isCompletedDownload()
 {
-       if (isPreparingDownload() ||
-                       m_state == ITEM::DOWNLOADING)
-               return false;
-       else
+       if (isFinished())
+               return true;
+#ifdef _ENABLE_OMA_DOWNLOAD
+       if (m_state == ITEM::NOTIFYING)
+               return true;
+#endif
+#ifdef _ENABLE_WAITING_RO
+       if (m_state == ITEM::WAITING_RO)
                return true;
+#endif
+       return false;
 }
 
old mode 100644 (file)
new mode 100755 (executable)
index e29879c..32ff334
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
@@ -28,11 +28,12 @@ void Items::attachItem(Item *item)
 
 void Items::detachItem(Item *item)
 {
-       vector<Item *>::iterator it;
-       for (it = m_items.begin(); it < m_items.end(); it++) {
+       vector <Item *>::iterator it;
+       for (it = m_items.begin(); it != m_items.end(); ++it) {
                if (*it == item) {
                        delete item;
                        m_items.erase(it);
+                       return;
                }
        }
 }
@@ -40,13 +41,26 @@ void Items::detachItem(Item *item)
 bool Items::isExistedHistoryId(unsigned int id)
 {
        vector <Item *>::iterator it;
-       for (it = m_items.begin(); it < m_items.end(); it++) {
-               if ((*it)->historyId() == id ) {
-                       DP_LOGD("historyId[%ld],title[%s]",
-                               (*it)->historyId(), (*it)->title().c_str());
+       for (it = m_items.begin(); it != m_items.end(); ++it) {
+               if ((*it)->getHistoryId() == id ) {
+                       DM_SLOGD("historyId[%ld],title[%s]",
+                               (*it)->getHistoryId(), (*it)->getTitle().c_str());
                        return true;
                }
        }
        return false;
 }
 
+int Items::checkQueuedItem()
+{
+       int count = 0;
+       vector <Item *>::iterator it;
+       for (it = m_items.begin(); it != m_items.end(); ++it) {
+               if ((*it)->getState() == ITEM::QUEUED ) {
+                       (*it)->downloadFromQueuedState();
+                       count++;
+               }
+       }
+       return count;
+}
+
old mode 100644 (file)
new mode 100755 (executable)
index 859f7b2..fa371dc
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 #include "download-manager-common.h"
 #include "download-manager-network.h"
 
-enum {
-       NET_INACTIVE = 0,
-       NET_WIFI_ACTIVE,
-       NET_CELLULAR_ACTIVE
-};
+#include "net_connection.h"
 
 NetMgr::NetMgr()
-       :m_handle(NULL)
 {
 }
 
@@ -38,241 +33,34 @@ NetMgr::~NetMgr()
 {
 }
 
-void NetMgr::initNetwork()
-{
-       if (connection_create(&m_handle) < 0) {
-               DP_LOGE("Fail to create network handle");
-               return;
-       }
-
-       if (connection_set_type_changed_cb(m_handle, netTypeChangedCB, NULL)
-                       < 0) {
-               DP_LOGE("Fail to register network state changed cb");
-               return;
-       }
-       if (connection_set_ip_address_changed_cb(m_handle, netConfigChangedCB, NULL)
-                       < 0) {
-               DP_LOGE("Fail to register ip address changed cb");
-               return;
-       }
-}
-
-void NetMgr::deinitNetwork()
-{
-       if (connection_unset_type_changed_cb(m_handle) < 0) {
-               DP_LOGE("Fail to unregister network state changed cb");
-       }
-       if (connection_unset_ip_address_changed_cb(m_handle) < 0) {
-               DP_LOGE("Fail to unregister ip address changed cb");
-       }
-       if (connection_destroy(m_handle) < 0) {
-               DP_LOGE("Fail to destroy network handle");
-       }
-}
-
-int NetMgr::getConnectionState()
-{
-       connection_type_e type = CONNECTION_TYPE_DISCONNECTED;
-       int ret = 0;
-
-       if (!m_handle) {
-               DP_LOGE("handle is NULL");
-               return NET_INACTIVE;
-       }
-       if (connection_get_type(m_handle, &type) < 0) {
-               DP_LOGE(" Fail to get network status");
-               return NET_INACTIVE;
-       }
-
-       switch (type) {
-       case CONNECTION_TYPE_DISCONNECTED:
-               DP_LOG("CONNECTION_NETWORK_STATE_DISCONNECTED");
-               ret = NET_INACTIVE;
-               break;
-       case CONNECTION_TYPE_WIFI:
-               DP_LOG("CONNECTION_NETWORK_STATE_WIFI");
-               ret = getCellularStatus();
-               break;
-       case CONNECTION_TYPE_CELLULAR:
-               DP_LOG("CONNECTION_NETWORK_STATE_CELLULAR");
-               ret = getWifiStatus();
-               break;
-       default:
-               DP_LOGE("Cannot enter here");
-               ret = NET_INACTIVE;
-               break;
-       }
-       return ret;
-}
-
-int NetMgr::getCellularStatus()
-{
-       connection_cellular_state_e status = CONNECTION_CELLULAR_STATE_OUT_OF_SERVICE;
-       int ret = 0;
-
-       if (!m_handle) {
-               DP_LOGE("handle is NULL");
-               return NET_INACTIVE;
-       }
-
-       if (connection_get_cellular_state(m_handle, &status) < 0) {
-               DP_LOGE(" Fail to get cellular status");
-               return NET_INACTIVE;
-       }
-
-       switch(status) {
-       case CONNECTION_CELLULAR_STATE_AVAILABLE:
-               DP_LOG("CONNECTION_CELLULAR_STATE_AVAILABLE");
-               ret = NET_CELLULAR_ACTIVE;
-               break;
-       case CONNECTION_CELLULAR_STATE_OUT_OF_SERVICE:
-               DP_LOG("CONNECTION_CELLULAR_STATE_OUT_OF_SERVICE");
-               ret = NET_INACTIVE;
-               break;
-       case CONNECTION_CELLULAR_STATE_FLIGHT_MODE:
-               DP_LOG("CONNECTION_CELLULAR_STATE_FLIGHT_MODE");
-               ret = NET_INACTIVE;
-               break;
-       case CONNECTION_CELLULAR_STATE_ROAMING_OFF:
-               DP_LOG("CONNECTION_CELLULAR_STATE_ROAMING_OFF");
-               ret = NET_INACTIVE;
-               break;
-       case CONNECTION_CELLULAR_STATE_CALL_ONLY_AVAILABLE:
-               DP_LOG("CONNECTION_CELLULAR_STATE_CALL_ONLY_AVAILABLE");
-               ret = NET_INACTIVE;
-               break;
-       default:
-               DP_LOGE("Cannot enter here");
-               ret = NET_INACTIVE;
-               break;
-       }
-       return ret;
-
-}
-
-int NetMgr::getWifiStatus()
-{
-       connection_wifi_state_e status = CONNECTION_WIFI_STATE_DEACTIVATED;
-       int ret = 0;
-
-       if (!m_handle) {
-               DP_LOGE("handle is NULL");
-               return NET_INACTIVE;
-       }
-
-       if (connection_get_wifi_state(m_handle, &status) < 0) {
-               DP_LOGE(" Fail to get wifi status");
-               return NET_INACTIVE;
-       }
-
-       switch(status) {
-       case CONNECTION_WIFI_STATE_CONNECTED:
-               DP_LOG("CONNECTION_WIFI_STATE_CONNECTED");
-               ret = NET_WIFI_ACTIVE;
-               break;
-       case CONNECTION_WIFI_STATE_DISCONNECTED:
-               DP_LOG("CONNECTION_WIFI_STATE_DISCONNECTED");
-               ret = NET_INACTIVE;
-               break;
-       case CONNECTION_WIFI_STATE_DEACTIVATED:
-               DP_LOG("CONNECTION_WIFI_STATE_DEACTIVATED");
-               ret = NET_INACTIVE;
-               break;
-       default:
-               DP_LOGE("Cannot enter here");
-               ret = NET_INACTIVE;
-               break;
-       }
-       return ret;
-}
-
-void NetMgr::netTypeChanged()
-{
-       int changedStatus = NET_INACTIVE;
-       changedStatus = getConnectionState();
-       DP_LOG("Previous[%d] Changed[%d]", m_netStatus, changedStatus);
-       if (m_netStatus != changedStatus) {
-               if (changedStatus == NET_INACTIVE)
-                       DP_LOG("Netowrk is disconnected");
-               else
-                       DP_LOG("Network is connected");
-               m_netStatus = changedStatus;
-       } else {
-               DP_LOG("Network berer type is changed. ex.3G->WIFI");
-       }
-}
-
-/* This routine should be operated in case of downloading state.
- * After the download is finished, network event handler should be removed.
- */
-void NetMgr::netConfigChanged(string ipAddr)
-{
-
-       DP_LOG_FUNC();
-
-       if (ipAddr.length() > 1) {/* network is connected */
-               getProxy();
-               getIPAddress();
-               /* This notify is only for suspend event.
-                * If othere network event is added, it is needed to save event types
-                * and get function for it
-               **/
-               notify();
-       } else {
-               DP_LOGE("Network connection is disconnected");
-       }
-}
-
-void NetMgr::getProxy()
+string NetMgr::getProxy()
 {
+       connection_h handle;
        char *proxy = NULL;
+       string proxyStr = string();
        connection_address_family_e family = CONNECTION_ADDRESS_FAMILY_IPV4;
 
-       if (!m_handle) {
-               DP_LOGE("handle is NULL");
-               return;
+       if (connection_create(&handle) < 0) {
+               DM_LOGE("Fail to create network handle");
+               return proxyStr;
        }
-       if (connection_get_proxy(m_handle, family, &proxy) < 0) {
-               DP_LOGE("Fail to get ip address");
-               return;
+       if (connection_get_proxy(handle, family, &proxy) < 0) {
+               DM_LOGE("Fail to get ip address");
+               if (connection_destroy(handle) < 0) {
+                       DM_LOGE("Fail to destroy network handle");
+               }
+               return proxyStr;
        }
        if (proxy) {
-               DP_LOG("===== Proxy address[%s] =====", proxy);
+               DM_SLOGI("Proxy address[%s]", proxy);
+               proxyStr.assign(proxy);
                free(proxy);
                proxy = NULL;
        }
-}
-
-void NetMgr::getIPAddress()
-{
-       char *ipAddr = NULL;
-       connection_address_family_e family = CONNECTION_ADDRESS_FAMILY_IPV4;
-       if (!m_handle) {
-               DP_LOGE("handle is NULL");
-               return;
-       }
-       if (connection_get_ip_address(m_handle, family, &ipAddr) < 0) {
-               DP_LOGE("Fail to get ip address");
-               return;
-       }
-       if (ipAddr) {
-               DP_LOG("===== IP address[%s] =====", ipAddr);
-               free(ipAddr);
-               ipAddr= NULL;
+       if (connection_destroy(handle) < 0) {
+               DM_LOGE("Fail to destroy network handle");
        }
+       return proxyStr;
 }
 
-void NetMgr::netTypeChangedCB(connection_type_e state, void *data)
-{
-       NetMgr inst = NetMgr::getInstance();
-       inst.netTypeChanged();
-}
-
-void NetMgr::netConfigChangedCB(const char *ip, const char *ipv6,
-               void *data)
-{
-       string ipAddr = ip;
-       NetMgr inst = NetMgr::getInstance();
-       inst.netConfigChanged(ipAddr);
-}
 
diff --git a/src/download-manager-notification.cpp b/src/download-manager-notification.cpp
new file mode 100755 (executable)
index 0000000..8b6bba9
--- /dev/null
@@ -0,0 +1,673 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file       download-manager-notification.cpp
+ * @author     Jungki Kwak (jungki.kwak@samsung.com)
+ * @brief   Noti APIs and interface
+ */
+
+#include <stdio.h>
+#include <vector>
+
+#include "app_control.h"
+#include "app_control_internal.h"
+#include "download-manager-notification.h"
+
+DownloadNoti::DownloadNoti(Item *item)
+       : m_notiId(0)
+       , m_notiHandle(NULL)
+       , m_item(item)
+{
+       DM_LOGD("");
+
+       if (item) {
+               m_aptr_observer = auto_ptr<Observer>(
+                       new Observer(updateCB, this, "notiObserver"));
+               item->subscribe(m_aptr_observer.get());
+       }
+}
+
+DownloadNoti::~DownloadNoti()
+{
+       DM_LOGD("");
+}
+
+void DownloadNoti::updateCB(void *data)
+{
+       if (data)
+               static_cast<DownloadNoti*>(data)->updateFromItem();
+}
+
+void DownloadNoti::updateFromItem()
+{
+       string msg;
+       if (!m_item)
+               return;
+
+       DM_LOGV("state:[%d]", m_item->getState());
+       switch(m_item->getState()) {
+       case ITEM::REQUESTING:
+       case ITEM::QUEUED:
+               DM_LOGD("REQUESTING or QUEUED");
+               if (m_notiId <= 0)
+                       addOngoingNoti();
+               break;
+       case ITEM::PREPARE_TO_RETRY:
+               DM_LOGD("PREPARE_TO_RETRY");
+               /* In case of retry, previous noti is deletead and
+                * will add ongoing notification */
+               deleteCompleteNoti();
+               addOngoingNoti();
+               break;
+       case ITEM::RECEIVING_DOWNLOAD_INFO:
+               DM_LOGD("RECEIVING_DOWNLOAD_INFO");
+#ifdef _ENABLE_OMA_DOWNLOAD
+               if (!m_item->isOMAMime())
+#endif
+                       updateTitleOngoingNoti();
+               break;
+       case ITEM::DOWNLOADING:
+               updateOngoingNoti();
+               break;
+       case ITEM::CANCEL:
+               DM_LOGD("CANCEL");
+               if (m_notiHandle) {
+                       freeNotiData(m_notiHandle);
+                       m_notiHandle = NULL;
+               }
+               addFailedNoti();
+               break;
+       case ITEM::REGISTERING_TO_SYSTEM:
+               DM_LOGD("REGISTERING_TO_SYSTEM");
+               break;
+       case ITEM::FAIL_TO_DOWNLOAD:
+               DM_LOGD("FAIL_TO_DOWNLOAD");
+               if (m_notiHandle) {
+                       freeNotiData(m_notiHandle);
+                       m_notiHandle = NULL;
+               }
+               addFailedNoti();
+               break;
+       case ITEM::FINISH_DOWNLOAD:
+               DM_LOGD("FINISH_DOWNLOAD");
+               if (m_notiHandle) {
+                       freeNotiData(m_notiHandle);
+                       m_notiHandle = NULL;
+               }
+               addCompleteNoti();
+               break;
+       case ITEM::DESTROY:
+               DM_LOGD("DESTROY");
+               if (m_item)
+                       m_item->deSubscribe(m_aptr_observer.get());
+               m_aptr_observer->clear();
+               break;
+       default:
+               break;
+       }
+}
+
+void DownloadNoti::freeNotiData(notification_h notiHandle)
+{
+       DM_LOGV("");
+       int err = NOTIFICATION_ERROR_NONE;
+
+       if (notiHandle) {
+               err = notification_free(notiHandle);
+               if (err != NOTIFICATION_ERROR_NONE)
+                       DM_LOGE("Fail to free noti data [%d]",err);
+               notiHandle = NULL;
+       }
+}
+
+void DownloadNoti::addOngoingNoti()
+{
+       notification_h notiHandle = NULL;
+       int err = NOTIFICATION_ERROR_NONE;
+       int privId = 0;
+       bundle *b = NULL;
+       app_control_h handle;
+
+       if (!m_item) {
+               DM_LOGE("NULL Check:item");
+               return;
+       }
+       DM_LOGV("downloadId[%d]", m_item->getId());
+       DM_SLOGD("title[%s]", m_item->getTitle().c_str());
+
+       notiHandle = notification_create(NOTIFICATION_TYPE_ONGOING);
+
+       if (!notiHandle) {
+               DM_LOGE("Fail to create notification handle");
+               return;
+       }
+       string tmpStr;
+       if (m_item->getTitle().empty()) {
+               tmpStr = string(DM_BODY_TEXT_NO_NAME);
+       } else {
+               tmpStr = m_item->getTitle();
+       }
+
+       err = notification_set_text(notiHandle, NOTIFICATION_TEXT_TYPE_TITLE,
+                       tmpStr.c_str(), NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set title [%d]", err);
+               freeNotiData(notiHandle);
+               return;
+       }
+
+       err = notification_set_image(notiHandle, NOTIFICATION_IMAGE_TYPE_ICON,
+                       DM_NOTI_ONGOING_ICON_PATH);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set icon [%d]", err);
+               freeNotiData(notiHandle);
+               return;
+       }
+
+       err = notification_set_property(notiHandle, NOTIFICATION_PROP_DISABLE_TICKERNOTI);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set property [%d]", err);
+               freeNotiData(notiHandle);
+               return;
+       }
+
+       err = notification_set_image(notiHandle, NOTIFICATION_IMAGE_TYPE_ICON_FOR_INDICATOR,
+                       DM_NOTI_DOWNLOADING_ICON_PATH);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("[FAIL] set icon indicator [%d]", err);
+               freeNotiData(notiHandle);
+               return;
+       }
+
+       err = notification_set_display_applist(notiHandle, NOTIFICATION_DISPLAY_APP_ALL);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set disable icon [%d]", err);
+               freeNotiData(notiHandle);
+               return;
+       }
+
+       if (app_control_create(&handle) != APP_CONTROL_ERROR_NONE) {
+               DM_LOGE("Fail to create app_control");
+               freeNotiData(notiHandle);
+               return;
+       }
+
+       if (app_control_set_app_id(handle, PACKAGE_NAME) !=
+                       APP_CONTROL_ERROR_NONE) {
+               DM_LOGE("Fail to app_control set pkgname");
+               app_control_destroy(handle);
+               freeNotiData(notiHandle);
+               return;
+       }
+       char buff[MAX_BUF_LEN] = {0,};
+       snprintf(buff, MAX_BUF_LEN, "%u", m_item->getHistoryId());
+       if (app_control_add_extra_data(handle, KEY_DOWNLOADING_HISTORYID,
+                       (const char *)buff) != APP_CONTROL_ERROR_NONE) {
+                               DM_LOGE("Fail to app_control set extra param data");
+                               app_control_destroy(handle);
+                               freeNotiData(notiHandle);
+                               return;
+       }
+       if (app_control_export_as_bundle(handle, &b) != APP_CONTROL_ERROR_NONE) {
+               DM_LOGE("Fail to convert app_control to bundle");
+               app_control_destroy(handle);
+               freeNotiData(notiHandle);
+               return;
+       }
+       if (b == NULL) {
+               DM_LOGE("Bundle is NULL");
+               app_control_destroy(handle);
+               freeNotiData(notiHandle);
+               return;
+       }
+       err = notification_set_execute_option(notiHandle,
+                       NOTIFICATION_EXECUTE_TYPE_SINGLE_LAUNCH, "Launch", NULL, b);
+
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set apps [%d]", err);
+               freeNotiData(notiHandle);
+               app_control_destroy(handle);
+               bundle_free(b);
+               return;
+       }
+       if (app_control_destroy(handle) != APP_CONTROL_ERROR_NONE)
+               DM_LOGE("Failed to destroy the app_control");
+       bundle_free(b);
+
+       err = notification_insert(notiHandle, &privId);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to insert [%d]", err);
+               freeNotiData(notiHandle);
+               return;
+       }
+
+       m_notiId = privId;
+       m_notiHandle = notiHandle;
+       DM_LOGI("m_notiId [%d]", m_notiId);
+
+       return;
+}
+
+void DownloadNoti::updateTitleOngoingNoti()
+{
+       DM_LOGD("");
+       if (m_notiHandle) {
+               string tmpStr = m_item->getTitle();
+               int err = NOTIFICATION_ERROR_NONE;
+               DM_SLOGD("title[%s]", m_item->getTitle().c_str());
+               err = notification_set_text(m_notiHandle, NOTIFICATION_TEXT_TYPE_TITLE,
+                               tmpStr.c_str(), NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+               if (err != NOTIFICATION_ERROR_NONE) {
+                       DM_LOGE("Fail to set title [%d]", err);
+                       freeNotiData(m_notiHandle);
+                       m_notiHandle = NULL;
+                       return;
+               }
+               err = notification_update(m_notiHandle);
+               if (err != NOTIFICATION_ERROR_NONE) {
+                       DM_LOGE("Fail to update [%d]", err);
+                       freeNotiData(m_notiHandle);
+                       m_notiHandle = NULL;
+                       return;
+               }
+       }
+}
+
+void DownloadNoti::updateOngoingNoti(void)
+{
+       int err = NOTIFICATION_ERROR_NONE;
+       if (m_item->getFileSize() > 0) {
+               double progress = (double)m_item->getReceivedFileSize() / (double)m_item->getFileSize();
+               err = notification_update_progress(NULL, m_notiId, progress);
+               if (err != NOTIFICATION_ERROR_NONE)
+                       DM_LOGE("Fail to update noti progress[%d]", err);
+       } else {
+               err = notification_update_size(NULL, m_notiId, m_item->getReceivedFileSize());
+               if (err != NOTIFICATION_ERROR_NONE)
+                       DM_LOGE("Fail to update noti progress[%d]", err);
+       }
+}
+
+string DownloadNoti::convertSizeStr(unsigned long long size)
+{
+       const char *unitStr[4] = {"B", "KB", "MB", "GB"};
+       double doubleTypeBytes = 0.0;
+       int unit = 0;
+       unsigned long long bytes = size;
+       unsigned long long unitBytes = bytes;
+       string temp;
+
+       /* using bit operation to avoid floating point arithmetic */
+       for (unit = 0; (unitBytes > 1024 && unit < 4); unit++) {
+               unitBytes = unitBytes >> 10;
+       }
+       unitBytes = 1 << (10 * unit);
+
+       if (unit > 3)
+               unit = 3;
+
+       char str[64] = {0};
+       if (unit == 0) {
+               snprintf(str, sizeof(str), "%llu %s", bytes, unitStr[unit]);
+       } else {
+               doubleTypeBytes = ((double)bytes / (double)unitBytes);
+               snprintf(str, sizeof(str), "%.2f %s", doubleTypeBytes, unitStr[unit]);
+       }
+
+       str[63] = '\0';
+       temp = string(str);
+       DM_LOGV("size[%ld]",size);
+       return temp;
+}
+
+notification_h DownloadNoti::createNoti(NOTIFICATION_TYPE::TYPE type)
+{
+       notification_h notiHandle = NULL;
+       int err = NOTIFICATION_ERROR_NONE;
+       const char *fileName = NULL;
+       const char *statusText = NULL;
+       const char *statusTextId = NULL;
+
+       DM_LOGI("historyId [%d], downloadId[%d]",
+                       m_item->getHistoryId(), m_item->getId());
+       DM_SLOGD("title[%s]", m_item->getTitle().c_str());
+
+       /*If setting complete noti Remove ongoing noti first */
+       err = notification_delete_by_priv_id(NULL, NOTIFICATION_TYPE_ONGOING,
+                       m_notiId);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to delete ongoing noti [%d]", err);
+       }
+       m_notiId = 0;
+
+       notiHandle = notification_create(NOTIFICATION_TYPE_NOTI);
+       if (!notiHandle) {
+               DM_LOGE("Fail to insert notification");
+               return NULL;
+       }
+
+       err = notification_set_layout(notiHandle, NOTIFICATION_LY_NOTI_EVENT_SINGLE);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set notification layout [%d]", err);
+               freeNotiData(notiHandle);
+               return NULL;
+       }
+
+       err = notification_set_text_domain(notiHandle, DM_DOMAIN, DM_LOCALEDIR);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set text domain [%d]", err);
+               freeNotiData(notiHandle);
+               return NULL;
+       }
+
+       if (m_item->getTitle().empty())
+               fileName = DM_BODY_TEXT_NO_NAME;
+       else
+               fileName = m_item->getTitle().c_str();
+
+       if (NOTIFICATION_TYPE::NOTI_COMPLETED == type) {
+               statusText = DM_POP_TEXT_DOWNLOAD_COMPLETE;
+               statusTextId = DM_DOWNLOAD_COMPLETE_STRING_ID;
+       } else if (NOTIFICATION_TYPE::NOTI_FAILED == type) {
+               statusText = DM_POP_TEXT_DOWNLOAD_FAILED;
+               statusTextId = DM_DOWNLOAD_FAILED_STRING_ID;
+       }
+
+#ifdef _TIZEN_2_3_UX
+       err = notification_set_text(notiHandle, NOTIFICATION_TEXT_TYPE_TITLE,
+                       fileName, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set status [%d]", err);
+               freeNotiData(notiHandle);
+               return NULL;
+       }
+
+       err = notification_set_text(notiHandle, NOTIFICATION_TEXT_TYPE_CONTENT,
+                               statusText, statusTextId, NOTIFICATION_VARIABLE_TYPE_NONE);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set content name [%d]", err);
+               freeNotiData(notiHandle);
+               return NULL;
+       }
+#else
+       err = notification_set_text(notiHandle, NOTIFICATION_TEXT_TYPE_CONTENT,
+                       fileName, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set status [%d]", err);
+               freeNotiData(notiHandle);
+               return NULL;
+       }
+
+       err = notification_set_text(notiHandle, NOTIFICATION_TEXT_TYPE_TITLE,
+                               statusText, statusTextId, NOTIFICATION_VARIABLE_TYPE_NONE);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set content name [%d]", err);
+               freeNotiData(notiHandle);
+               return NULL;
+       }
+#endif
+       err = notification_set_time(notiHandle, (time_t)(m_item->getFinishedTime()));
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set time [%d]", err);
+               freeNotiData(notiHandle);
+               return NULL;
+       }
+       return notiHandle;
+}
+
+void DownloadNoti::addCompleteNoti()
+{
+       notification_h notiHandle = NULL;
+       int err = NOTIFICATION_ERROR_NONE;
+       int privId = 0;
+       bundle *b = NULL;
+       app_control_h handle;
+
+       if (!m_item) {
+               DM_LOGE("m_item is NULL");
+               return;
+       }
+       if((notiHandle = createNoti(NOTIFICATION_TYPE::NOTI_COMPLETED)) == NULL) {
+               DM_LOGD("Failed to create noti");
+               return;
+       }
+
+       if (!m_item->getThumbnailPath().empty()) {
+               err = notification_set_image(notiHandle,
+                               NOTIFICATION_IMAGE_TYPE_ICON,
+                               m_item->getThumbnailPath().c_str());
+               if (err != NOTIFICATION_ERROR_NONE) {
+                       DM_LOGE("Fail to set thumbnail image [%d]", err);
+                       freeNotiData(notiHandle);
+                       return;
+               }
+       } else {
+               err = notification_set_image(notiHandle,
+                               NOTIFICATION_IMAGE_TYPE_ICON, m_item->getIconPath().c_str());
+               if (err != NOTIFICATION_ERROR_NONE) {
+                       DM_LOGE("Fail to set icon [%d]", err);
+                       freeNotiData(notiHandle);
+                       return;
+               }
+       }
+
+       err = notification_set_image(notiHandle, NOTIFICATION_IMAGE_TYPE_ICON_FOR_INDICATOR,
+                       DM_NOTI_COMPLETED_INDICATOR_ICON_PATH);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set icon [%d]", err);
+               freeNotiData(notiHandle);
+               return;
+       }
+
+       if (app_control_create(&handle) != APP_CONTROL_ERROR_NONE) {
+               DM_LOGE("Fail to create app_control");
+               freeNotiData(notiHandle);
+               return;
+       }
+
+       if (app_control_set_operation(handle, APP_CONTROL_OPERATION_VIEW) !=
+                       APP_CONTROL_ERROR_NONE) {
+               DM_LOGE("Fail to app_control set operation");
+               app_control_destroy(handle);
+               freeNotiData(notiHandle);
+               return;
+       }
+       if (app_control_set_uri(handle, m_item->getRegisteredFilePath().c_str()) !=
+                       APP_CONTROL_ERROR_NONE) {
+               DM_LOGE("Fail to app_control set uri");
+               app_control_destroy(handle);
+               freeNotiData(notiHandle);
+               return;
+       }
+       if (app_control_export_as_bundle(handle, &b) != APP_CONTROL_ERROR_NONE) {
+               DM_LOGE("Fail to convert app_control to bundle");
+               app_control_destroy(handle);
+               freeNotiData(notiHandle);
+               return;
+       }
+       if (b == NULL) {
+               DM_LOGE("Bundle is NULL");
+               app_control_destroy(handle);
+               freeNotiData(notiHandle);
+               return;
+       }
+       err = notification_set_execute_option(notiHandle,
+                       NOTIFICATION_EXECUTE_TYPE_SINGLE_LAUNCH, "View", NULL, b);
+
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set apps [%d]", err);
+               freeNotiData(notiHandle);
+               app_control_destroy(handle);
+               bundle_free(b);
+               return;
+       }
+       if (app_control_destroy(handle) != APP_CONTROL_ERROR_NONE)
+               DM_LOGE("Failed to destroy the app_control");
+       bundle_free(b);
+
+       err = notification_set_property(notiHandle,
+                       NOTIFICATION_PROP_DISABLE_TICKERNOTI);
+
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set property [%d]", err);
+               freeNotiData(notiHandle);
+               return;
+       }
+
+       err = notification_insert(notiHandle, &privId);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to insert [%d]", err);
+               freeNotiData(notiHandle);
+               return;
+       }
+
+       DM_LOGI("priv id [%d]", privId);
+       m_notiId = privId;
+
+       freeNotiData(notiHandle);
+}
+
+void DownloadNoti::addFailedNoti()
+{
+       notification_h notiHandle = NULL;
+       int err = NOTIFICATION_ERROR_NONE;
+       int privId = 0;
+       bundle *b = NULL;
+       app_control_h handle;
+
+       if (!m_item) {
+               DM_LOGE("m_item is NULL");
+               return;
+       }
+       if((notiHandle = createNoti(NOTIFICATION_TYPE::NOTI_FAILED)) == NULL) {
+               DM_LOGD("Failed to create noti");
+               return;
+       }
+
+       err = notification_set_image(notiHandle,
+                       NOTIFICATION_IMAGE_TYPE_ICON, DM_NOTI_FAILED_ICON_PATH);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set icon [%d]", err);
+               freeNotiData(notiHandle);
+               return;
+       }
+       err = notification_set_image(notiHandle, NOTIFICATION_IMAGE_TYPE_ICON_FOR_INDICATOR,
+                       DM_NOTI_FAILED_INDICATOR_ICON_PATH);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set icon [%d]", err);
+               freeNotiData(notiHandle);
+               return;
+       }
+
+       if (app_control_create(&handle) != APP_CONTROL_ERROR_NONE) {
+               DM_LOGE("Fail to create app_control");
+               freeNotiData(notiHandle);
+               return;
+       }
+       char buff[MAX_BUF_LEN] = {0,};
+       if (app_control_set_app_id(handle, PACKAGE_NAME) !=
+                       APP_CONTROL_ERROR_NONE) {
+               DM_LOGE("Fail to app_control set pkgname");
+               app_control_destroy(handle);
+               freeNotiData(notiHandle);
+               return;
+       }
+       snprintf(buff, MAX_BUF_LEN, "%u", m_item->getHistoryId());
+       if (app_control_add_extra_data(handle, KEY_FAILED_HISTORYID,
+                       (const char *)buff) != APP_CONTROL_ERROR_NONE) {
+               DM_LOGE("Fail to app_control set extra param data");
+               app_control_destroy(handle);
+               freeNotiData(notiHandle);
+               return;
+       }
+       if (app_control_export_as_bundle(handle, &b) != APP_CONTROL_ERROR_NONE) {
+               DM_LOGE("Fail to convert app_control to bundle");
+               app_control_destroy(handle);
+               freeNotiData(notiHandle);
+               return;
+       }
+       if (b == NULL) {
+               DM_LOGE("Bundle is NULL");
+               app_control_destroy(handle);
+               freeNotiData(notiHandle);
+               return;
+       }
+       err = notification_set_execute_option(notiHandle,
+                       NOTIFICATION_EXECUTE_TYPE_SINGLE_LAUNCH, "Launch", NULL, b);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set apps [%d]", err);
+               freeNotiData(notiHandle);
+               app_control_destroy(handle);
+               bundle_free(b);
+               return;
+       }
+       if (app_control_destroy(handle) != APP_CONTROL_ERROR_NONE)
+               DM_LOGE("Failed to destroy the app_control");
+       bundle_free(b);
+
+       err = notification_set_property(notiHandle,
+                       NOTIFICATION_PROP_DISABLE_TICKERNOTI |
+                       NOTIFICATION_PROP_DISABLE_AUTO_DELETE);
+
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to set property [%d]", err);
+               freeNotiData(notiHandle);
+               return;
+       }
+
+       err = notification_insert(notiHandle, &privId);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to insert [%d]", err);
+               freeNotiData(notiHandle);
+               return;
+       }
+
+       DM_LOGI("priv id [%d]", privId);
+       m_notiId = privId;
+
+       freeNotiData(notiHandle);
+}
+
+void DownloadNoti::deleteCompleteNoti()
+{
+       int err = NOTIFICATION_ERROR_NONE;
+       if (!m_item) {
+               DM_LOGE("m_item is NULL");
+               return;
+       }
+       err = notification_delete_by_priv_id(NULL, NOTIFICATION_TYPE_NOTI,
+                       m_notiId);
+
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to delete [%d]", err);
+       }
+       DM_LOGI("delete historyID[%d] m_id[%d]", m_item->getHistoryId(), m_notiId);
+       m_notiId = 0;
+}
+
+void DownloadNoti::clearOngoingNoti()
+{
+       DM_LOGD("");
+
+       /* If the application was terminated abnormaly before or
+           when the application is terminated
+          NULL (first param) means caller process */
+       int err = NOTIFICATION_ERROR_NONE;
+       err = notification_delete_all_by_type(NULL, NOTIFICATION_TYPE_ONGOING);
+       if (err != NOTIFICATION_ERROR_NONE) {
+               DM_LOGE("Fail to clear notificaton [%d]", err);
+       }
+}
old mode 100644 (file)
new mode 100755 (executable)
index 1b09d7e..6f0ad11
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 #include <stdio.h>
 #include <string.h>
 #include <dlfcn.h>
-#include "aul.h"
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <dirent.h>
+#include <storage.h>
 #include "xdgmime.h"
-#include "app_service.h"
+#include "app_control.h"
 #include "media_content.h"
 #include "media_info.h"
+#ifdef _ENABLE_WAITING_RO
+#include "drm_client.h"
+#endif
+#include "vconf.h"
+#include "mime_type.h"
 
 #include "download-manager-util.h"
 
@@ -37,7 +48,8 @@ struct MimeTableType
        int contentType;
 };
 
-#define MAX_MIME_TABLE_NUM 22
+#define MAX_SUFFIX_COUNT               1000000000
+#define MAX_MIME_TABLE_NUM     15
 const char *ambiguousMIMETypeList[] = {
                "text/plain",
                "application/octet-stream"
@@ -45,89 +57,334 @@ const char *ambiguousMIMETypeList[] = {
 
 struct MimeTableType MimeTable[]={
                // PDF
-               {"application/pdf",DP_CONTENT_PDF},
+               {"application/pdf",DM_CONTENT_PDF},
                // word
-               {"application/msword",DP_CONTENT_WORD},
-               {"application/vnd.openxmlformats-officedocument.wordprocessingml.document",DP_CONTENT_WORD},
+               {"application/msword",DM_CONTENT_WORD},
+               {"application/vnd.openxmlformats-officedocument.wordprocessingml.document",DM_CONTENT_WORD},
                // ppt
-               {"application/vnd.ms-powerpoint",DP_CONTENT_PPT},
-               {"application/vnd.openxmlformats-officedocument.presentationml.presentation",DP_CONTENT_PPT},
+               {"application/vnd.ms-powerpoint",DM_CONTENT_PPT},
+               {"application/vnd.openxmlformats-officedocument.presentationml.presentation",DM_CONTENT_PPT},
                // excel
-               {"application/vnd.ms-excel",DP_CONTENT_EXCEL},
-               {"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",DP_CONTENT_EXCEL},
+               {"application/vnd.ms-excel",DM_CONTENT_EXCEL},
+               {"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",DM_CONTENT_EXCEL},
                // html
-               {"text/html",DP_CONTENT_HTML},
+               {"text/html",DM_CONTENT_HTML},
                // txt
-               {"text/txt",DP_CONTENT_TEXT},
-               {"text/palin",DP_CONTENT_TEXT},
-               // ringtone
-               {"text/x-iMelody",DP_CONTENT_RINGTONE},//10
-               {"application/x-smaf",DP_CONTENT_RINGTONE},
-               {"audio/midi",DP_CONTENT_RINGTONE},
-               {"audio/AMR",DP_CONTENT_RINGTONE},
-               {"audio/AMR-WB",DP_CONTENT_RINGTONE},
-               {"audio/x-xmf",DP_CONTENT_RINGTONE},
+               {"text/txt",DM_CONTENT_TEXT},
+               {"text/plain",DM_CONTENT_TEXT},
                // DRM
-               {"application/vnd.oma.drm.content",DP_CONTENT_DRM},
-               {"application/vnd.oma.drm.message",DP_CONTENT_DRM},
-               // JAVA
-               {"application/x-java-archive",DP_CONTENT_JAVA},
-               {"application/java-archive",DP_CONTENT_JAVA},
-               // SVG
-               {"image/svg+xml",DP_CONTENT_SVG}, //20
-               // FLASH
-               {"application/x-shockwave-flash",DP_CONTENT_FLASH}
+               {"application/vnd.oma.drm.content",DM_CONTENT_SD_DRM},
+               {"application/vnd.oma.drm.message",DM_CONTENT_DRM},
+               {"application/x-shockwave-flash", DM_CONTENT_FLASH},
+               {"application/vnd.tizen.package", DM_CONTENT_TPK},
+               {"text/calendar",DM_CONTENT_VCAL},
 };
 
-bool FileOpener::openFile(string &path, int contentType)
+void FileUtility::cleanTempDir()
 {
-       service_h handle = NULL;
+       struct dirent *dirInfo = NULL;
+       DIR *dir;
+       string filePath = string();
+       string defTempPath = FileUtility::getDefaultPath(true);
+
+       if(isExistedFile(defTempPath, true)) {
+               dir = opendir(defTempPath.c_str());
+               if(dir == NULL) {
+                       DM_LOGE("Fail to call opendir");
+                       return;
+               } else {
+                       while(NULL != (dirInfo = readdir(dir))) {
+                               DM_SLOGD("%s",dirInfo->d_name);
+                               if (0 == strncmp(dirInfo->d_name,".",strlen(".")) ||
+                                               0 == strncmp(dirInfo->d_name,"..",strlen("..")))
+                                       continue;
+                               filePath.append(defTempPath);
+                               filePath.append("/");
+                               filePath.append(dirInfo->d_name);
+                               /* The sub-directory should not be created under temporary directory */
+                               if (isExistedFile(filePath, false)) {
+                                       if (remove(filePath.c_str())<0)
+                                               DM_LOGE("Fail to Remove[%s]",strerror(errno));
+                               } else {
+                                       DM_LOGE("Cannot enter here type[%d]", dirInfo->d_type);
+                               }
+                               filePath.clear();
+                       }
+                       closedir(dir);
+               }
+       }
+}
+
+bool FileUtility::isExistedFile(string path, bool isDir)
+{
+       struct stat fileState;
+       int stat_ret;
+
+//     DM_LOGD("");
+
+       if (path.empty())
+               return false;
+       stat_ret = stat(path.c_str(), &fileState);
+       if (stat_ret != 0)
+               return false;
+
+       if (isDir) {
+               if (!S_ISDIR(fileState.st_mode)) {
+                       DM_LOGE("The directory is not existed");
+                       return false;
+               }
+       } else {
+               if (!S_ISREG(fileState.st_mode)) {
+                       DM_LOGE("The file is not existed");
+                       return false;
+               }
+       }
+       return true;
+}
+
+bool FileUtility::renameFile(string from, string to)
+{
+       const char *fromStr = from.c_str();
+       const char *toStr = to.c_str();
+       if (rename(fromStr, toStr) != 0 ) {
+               DM_LOGE("rename failed:err[%s]", strerror(errno));
+               if (errno == EXDEV) {
+                       DM_LOGE("File system is diffrent. Try to copy a file");
+                       if (copyFile(from, to)) {
+                               unlink(fromStr);
+                               return true;
+                       } else {
+                               if(isExistedFile(to, false))
+                                       unlink(toStr);
+                       }
+                       return false;
+               }
+               return false;
+       }
+       return true;
+}
+
+bool FileUtility::deleteFile(string filePath)
+{
+       if (filePath.empty())
+               return false;
+       if (isExistedFile(filePath, false)) {
+               if (unlink(filePath.c_str()) < 0) {
+                       DM_LOGE("Fail to Remove file err[%s]", strerror(errno));
+                       return false;
+               }
+       } else {
+               DM_LOGE("File does not exist");
+               return false;
+       }
+       return true;
+}
+
+bool FileUtility::checkAvailableMemory(unsigned long long size)
+{
+       struct statvfs file_info;
+       unsigned long long avail;
+       int r = storage_get_internal_memory_size(&file_info);
+       if (r < 0) {
+               DM_LOGE("storage_get_internal_memory_size API failed");
+               return false;
+       } else {
+               avail = (unsigned long long)file_info.f_bsize * file_info.f_bavail;
+               DM_SLOGD("avail: %llu, size: %llu", avail, size);
+               if (size < avail)
+                       return true;
+               else
+                       return false;
+       }
+}
+
+bool FileUtility::copyFile(string from, string to)
+{
+       FILE *fs = NULL;
+       FILE *fd = NULL;
+       int readNum = 0;
+       int writeNum = 0;
+       char buff[4096] = {0};
+       char *validate_path = NULL;
+
+       validate_path = strpbrk((char *)from.c_str(), DM_INVALID_PATH_STRING);
+       if (validate_path != NULL) {
+               DM_LOGE("Invalid source Path");
+               return false;
+       }
+
+       validate_path = strpbrk((char *)to.c_str(), DM_INVALID_PATH_STRING);
+       if (validate_path != NULL){
+               DM_LOGE("Invalid destination Path");
+               return false;
+       }
+
+       fs = fopen(from.c_str(), "rb");
+       if (!fs) {
+               DM_LOGE("Fail to open src file");
+               return false;
+       }
+
+       fd = fopen(to.c_str(), "wb");
+       if (!fd) {
+               DM_LOGE("Fail to open dest file");
+               fclose(fs);
+               return false;
+       }
+
+       while (!feof(fs)) {
+               memset(buff, 0x00, 4096);
+               readNum = fread(buff, sizeof(char), sizeof(buff), fs);
+               if (readNum > 0) {
+                       writeNum = fwrite(buff, sizeof(char), readNum, fd);
+                       if (writeNum <= 0) {
+                               DM_LOGE("written:err[%s]",strerror(errno));
+                               break;
+                       }
+               } else {
+                       DM_LOGV("read[%d]", readNum);
+                       break;
+               }
+       }
+       fclose(fd);
+       fclose(fs);
+       return true;
+}
+
+
+bool FileUtility::openFile(string path, int contentType)
+{
+       app_control_h handle = NULL;
        string filePath;
-       DP_LOG_FUNC();
 
        if (path.empty())
                return false;
 
-       DP_LOG("path [%s]", path.c_str());
-       if (service_create(&handle) < 0) {
-               DP_LOGE("Fail to create service handle");
+       DM_SLOGD("path [%s]", path.c_str());
+       if (app_control_create(&handle) < 0) {
+               DM_LOGE("Fail to create app_control handle");
                return false;
        }
 
        if (!handle) {
-               DP_LOGE("service handle is null");
+               DM_LOGE("NULL Check: app_control handle");
                return false;
        }
 
-       if (service_set_operation(handle, SERVICE_OPERATION_VIEW) < 0) {
-               DP_LOGE("Fail to set service operation");
-               service_destroy(handle);
+       if (app_control_set_operation(handle, APP_CONTROL_OPERATION_VIEW) < 0) {
+               DM_LOGE("Fail to set app_control operation");
+               app_control_destroy(handle);
                return false;
        }
 
-       if (contentType == DP_CONTENT_HTML) {
+       if (contentType == DM_CONTENT_HTML || contentType == DM_CONTENT_TEXT) {
                filePath = "file://";
                filePath.append(path.c_str());
+               if (app_control_set_mime(handle, "text/html") < 0) {
+                       DM_LOGE("Fail to set mime");
+                       app_control_destroy(handle);
+                       return false;
+               }
        } else {
                filePath = path;
        }
-       if (service_set_uri(handle, filePath.c_str()) < 0) {
-               DP_LOGE("Fail to set uri");
-               service_destroy(handle);
+       if (app_control_set_uri(handle, filePath.c_str()) < 0) {
+               DM_LOGE("Fail to set uri");
+               app_control_destroy(handle);
                return false;
        }
 
-       if (service_send_launch_request(handle, NULL, NULL) < 0) {
-               DP_LOGE("Fail to launch service");
-               service_destroy(handle);
+       if (app_control_send_launch_request(handle, NULL, NULL) < 0) {
+               DM_LOGE("Fail to launch app_control");
+               app_control_destroy(handle);
                return false;
        }
 
-       service_destroy(handle);
+       app_control_destroy(handle);
 
        return true;
 }
 
+void FileUtility::openMyFilesApp()
+{
+       app_control_h handle = NULL;
+       DM_LOGD("");
+
+       if (app_control_create(&handle) < 0) {
+               DM_LOGE("Fail to create app_control handle");
+               return;
+       }
+
+       if (!handle) {
+               DM_LOGE("NULL Check: app_control handle");
+               return;
+       }
+
+       if (app_control_set_app_id(handle, MYFILE_PKG_NAME) < 0) {
+               DM_LOGE("Fail to set app_control operation");
+               app_control_destroy(handle);
+               return;
+       }
+
+       if (app_control_send_launch_request(handle, NULL, NULL) < 0) {
+               DM_LOGE("Fail to launch app_control");
+               app_control_destroy(handle);
+               return;
+       }
+       app_control_destroy(handle);
+       return;
+}
+
+bool FileUtility::checkTempDir(string userInstallDir)
+{
+       string defaultDir;
+       DM_LOGV("");
+       if (userInstallDir.empty()) {
+               defaultDir = FileUtility::getDefaultPath(true);
+       } else {
+               defaultDir = userInstallDir;
+               defaultDir.append(DM_TEMP_DIR_NAME);
+       }
+
+       DM_SLOGD("temp dir:[%s]", defaultDir.c_str());
+       if (!isExistedFile(defaultDir, true)) {
+               if (mkdir(defaultDir.c_str(), S_IRWXU | S_IRWXG | S_IRWXO)) {
+                       DM_LOGE("Fail to create directory [%s]", strerror(errno));
+                       return false;
+               } else {
+                       DM_SLOGI("[%s] is created!", defaultDir.c_str());
+               }
+       }
+       return true;
+}
+
+string FileUtility::getDefaultPath(bool optionTempDir)
+{
+       string path;
+
+       if (optionTempDir)
+               path.assign(DM_DEFAULT_PHONE_TEMP_DIR);
+       else
+               path.assign(DM_DEFAULT_PHONE_INSTALL_DIR);
+
+   return path;
+}
+
+unsigned long long FileUtility::getFileSize(string filePath)
+{
+       struct stat st;
+       int ret = 0;
+       if (filePath.empty())
+               return 0;
+
+       ret = stat(filePath.c_str(), &st);
+       if(ret != 0) {
+               DM_LOGE("stat error:%s[%d]", strerror(errno), errno);
+               return 0;
+       }
+       return (unsigned long long)st.st_size;
+}
+
 DownloadUtil::DownloadUtil()
 {
 }
@@ -135,30 +392,33 @@ DownloadUtil::DownloadUtil()
 int DownloadUtil::getContentType(const char *mime, const char *filePath)
 {
        int i = 0;
-       int type = DP_CONTENT_UNKOWN;
-       int ret = 0;
-       char tempMime[MAX_FILE_PATH_LEN] = {0,};
-       DP_LOGD_FUNC();
+       int type = DM_CONTENT_UNKOWN;
+       char *tempMime = NULL;
+       DM_LOGV("");
        if (mime == NULL || strlen(mime) < 1)
-               return DP_CONTENT_UNKOWN;
-
-       DP_LOG("mime[%s]",mime);
-       strncpy(tempMime, mime, MAX_FILE_PATH_LEN-1);
-       if (isAmbiguousMIMEType(mime)) {
-               if (filePath) {
-                       memset(tempMime, 0x00, MAX_FILE_PATH_LEN);
-                       ret = aul_get_mime_from_file(filePath,tempMime,sizeof(tempMime));
-                       if (ret < AUL_R_OK )
-                               strncpy(tempMime, mime, MAX_FILE_PATH_LEN-1);
-                       else
-                               DP_LOG("mime from extension name[%s]",tempMime);
+               return DM_CONTENT_UNKOWN;
+
+       if ((filePath != NULL) && (strlen(filePath) > 0) &&
+                       isAmbiguousMIMEType(mime)) {
+               const char *ext = strrchr(filePath, '.');
+               if (ext == NULL) {
+                       DM_LOGE("File Extension is NULL");
+                       return type;
+               }
+               mime_type_get_mime_type(ext + 1, &tempMime);
+       }
+       if (tempMime == NULL) {
+               tempMime = (char *)calloc(1, MAX_FILE_PATH_LEN);
+               if (tempMime == NULL) {
+                       DM_LOGE("Fail to call calloc");
+                       return type;
                }
+               strncpy(tempMime, mime, MAX_FILE_PATH_LEN - 1);
        }
+       DM_SLOGD("mime type [%s]", tempMime);
 
        /* Search a content type from mime table. */
-       for (i = 0; i < MAX_MIME_TABLE_NUM; i++)
-       {
-               //DP_LOG("TableMime[%d][%s]",i,MimeTable[i].mime);
+       for (i = 0; i < MAX_MIME_TABLE_NUM; i++) {
                if (strncmp(MimeTable[i].mime, tempMime, strlen(tempMime)) == 0){
                        type = MimeTable[i].contentType;
                        break;
@@ -167,23 +427,23 @@ int DownloadUtil::getContentType(const char *mime, const char *filePath)
        /* If there is no mime at mime table, check the category with the first
         *   domain of mime string
         * ex) video/... => video type */
-       if (type == DP_CONTENT_UNKOWN)
-       {
+       if (type == DM_CONTENT_UNKOWN) {
                const char *unaliasedMime = NULL;
                /* unaliased_mimetype means representative mime among similar types */
                unaliasedMime = xdg_mime_unalias_mime_type(tempMime);
 
                if (unaliasedMime != NULL) {
-                       DP_LOG("unaliased mime type[%s]\n",unaliasedMime);
+                       DM_SLOGD("unaliased mime type[%s]",unaliasedMime);
                        if (strstr(unaliasedMime,"video/") != NULL)
-                               type = DP_CONTENT_VIDEO;
+                               type = DM_CONTENT_VIDEO;
                        else if (strstr(unaliasedMime,"audio/") != NULL)
-                               type = DP_CONTENT_MUSIC;
+                               type = DM_CONTENT_MUSIC;
                        else if (strstr(unaliasedMime,"image/") != NULL)
-                               type = DP_CONTENT_IMAGE;
+                               type = DM_CONTENT_IMAGE;
                }
        }
-       DP_LOG("type[%d]\n",type);
+       free(tempMime);
+       DM_LOGV("type[%d]",type);
        return type;
 }
 
@@ -198,7 +458,7 @@ bool DownloadUtil::isAmbiguousMIMEType(const char *mimeType)
        for (index = 0; index < listSize; index++) {
                if (0 == strncmp(mimeType, ambiguousMIMETypeList[index],
                                strlen(ambiguousMIMETypeList[index]))) {
-                       DP_LOG("It is ambiguous! [%s]", ambiguousMIMETypeList[index]);
+                       DM_LOGV("It is ambiguous");
                        return true;
                }
        }
@@ -206,35 +466,194 @@ bool DownloadUtil::isAmbiguousMIMEType(const char *mimeType)
        return false;
 }
 
-void DownloadUtil::registerContent(string filePath)
+string DownloadUtil::saveContent(string filePath, string userInstallDir)
+{
+       string finalPath = string();
+       string dirPath;
+       size_t found1 = string::npos;
+       size_t found2= string::npos;
+       size_t len = string::npos;
+       string str1 = ".temp_download";
+       string contentName;
+       string extensionName;
+       string countStr;
+       int count = 0;
+       char tempStr[10] = {0};
+       FileUtility fileObj;
+
+       if (userInstallDir.empty()) {
+               dirPath = FileUtility::getDefaultPath(false);
+       } else {
+               dirPath = userInstallDir;
+       }
+
+       found1 = filePath.rfind("/");
+       if (found1 == string::npos)
+               return finalPath;
+       string tempContentName = filePath.substr(found1, filePath.length());
+       found2 = tempContentName.rfind(".");
+       if (found2 == string::npos) {
+               extensionName = string();
+       } else {
+               len = tempContentName.length() - found2;
+               extensionName = tempContentName.substr(found2, len);
+       }
+       len = filePath.length() - found1 - 1; // -1 means"/"
+       if (!extensionName.empty())
+               len = len - extensionName.length();// -1 means "."
+       contentName = filePath.substr(found1 + 1, len);
+
+       if (!extensionName.empty())
+               finalPath = dirPath + contentName + extensionName;
+       else
+               finalPath = dirPath + contentName;
+
+       while(fileObj.isExistedFile(finalPath, false)) {
+               count++;
+               snprintf(tempStr, 10, "_%d", count);
+               countStr.assign(tempStr);
+               finalPath.clear();
+               if (!extensionName.empty())
+                       finalPath = dirPath + contentName + countStr + extensionName;
+               else
+                       finalPath = dirPath + contentName + countStr;
+
+               if (count > MAX_SUFFIX_COUNT) {
+                       finalPath.clear();
+                       break;
+               }
+               memset(tempStr, 0, 10);
+       }
+
+       DM_SLOGI("finalPath[%s]", finalPath.c_str());
+       if (!fileObj.renameFile(filePath, finalPath))
+               finalPath.clear();
+
+       return finalPath;
+}
+
+bool DownloadUtil::registerContent(string filePath, string &thumbnailPath)
 {
        int ret = -1;
        media_info_h info = NULL;
-
+       char *tempPath = NULL;
        if (filePath.empty()) {
-               DP_LOGE("file path is NULL");
-               return;
+               DM_LOGE("file path is NULL");
+               return false;
        }
 
-       DP_LOG("Register file [%s]", filePath.c_str());
+       thumbnailPath = string();
+       DM_SLOGD("Register file [%s]", filePath.c_str());
 
        ret = media_content_connect();
        if (ret != MEDIA_CONTENT_ERROR_NONE) {
-               DP_LOGE("Fail to connect media db");
-               return;
+               DM_LOGE("Fail to connect media db");
+               return false;
        }
-
        ret = media_info_insert_to_db(filePath.c_str(), &info);
+       if (ret != MEDIA_CONTENT_ERROR_NONE || info == NULL) {
+               DM_LOGE("Fail to insert media db [%d]", ret);
+               media_content_disconnect();
+               if (info)
+                       media_info_destroy(info);
+               return false;
+       }
+       DM_LOGD("insert DB Done");
+       ret = media_info_get_thumbnail_path(info, &tempPath);
        if (ret != MEDIA_CONTENT_ERROR_NONE) {
-               DP_LOGE("Fail to insert media db [%d]", ret);
+               DM_LOGE("Fail to insert media db [%d]", ret);
+               media_info_destroy(info);
                media_content_disconnect();
-               return;
+               return false;
        }
-
+       if (tempPath) {
+               thumbnailPath.assign(tempPath);
+               free(tempPath);
+       }
+       media_info_destroy(info);
        ret = media_content_disconnect();
        if (ret != MEDIA_CONTENT_ERROR_NONE) {
-               DP_LOGE("Fail to connect media db");
+               DM_LOGE("Fail to connect media db");
        }
-       return;
+       DM_LOGD("Register file Done");
+       return true;
+}
+
+string DownloadUtil::getUserAgent()
+{
+       string userAgentStr = string();
+       char *str = NULL;
+
+       str = vconf_get_str(VCONFKEY_BROWSER_USER_AGENT);
+       if (str) {
+               DM_SLOGD("User agent str[%s]", str);
+               userAgentStr.assign(str);
+       }
+       free(str);
+       return userAgentStr;
+}
+
+#ifdef _ENABLE_OMA_UNSUPPROTED_CONTENT
+/* If the error is happened, the true is returned */
+bool app_matched_cb(app_control_h handle, const char *appid, void *user_data)
+{
+       int *count = NULL;
+       count = (int *)user_data;
+       if (appid) {
+               DM_SLOGD("appid[%s]",appid);
+               *count = *count + 1;
+       }
+       return true;
+}
+
+bool DownloadUtil::isSupportedMIMEType(string mime)
+{
+       app_control_h handle = NULL;
+       int count = 0;
+       if (mime.empty())
+               return true;
+
+       if (app_control_create(&handle) != APP_CONTROL_ERROR_NONE) {
+               DM_LOGE("Fail to app_control create");
+               return true;
+       }
+       if (app_control_set_operation(handle, APP_CONTROL_OPERATION_VIEW) !=
+                       APP_CONTROL_ERROR_NONE) {
+               DM_LOGE("Fail to app_control set operation");
+               app_control_destroy(handle);
+               return true;
+       }
+       if (app_control_set_mime(handle, mime.c_str()) != APP_CONTROL_ERROR_NONE) {
+               DM_LOGE("Fail to app_control set mime");
+               app_control_destroy(handle);
+               return true;
+       }
+       if (app_control_foreach_app_matched(handle, app_matched_cb, &count) != APP_CONTROL_ERROR_NONE) {
+               DM_LOGE("Fail to app_control set mime");
+               app_control_destroy(handle);
+               return true;
+       }
+       DM_LOGV("Available application list count[%d]", count);
+       app_control_destroy(handle);
+       if (count > 0)
+               return true;
+       else
+               return false;
+}
+#endif
+
+#ifdef _ENABLE_WAITING_RO
+bool DownloadDrm::validRo(const char *filePath)
+{
+       int ret = 0;
+       drm_permission_type_e permType = DRM_PERMISSION_TYPE_PLAY;
+       drm_license_status_e status = DRM_LICENSE_STATUS_UNDEFINED;
+       ret = drm_get_license_status(filePath, permType, &status);
+       if (ret != DRM_RETURN_SUCCESS)
+               return false;
+       if (status == DRM_LICENSE_STATUS_VALID)
+               return true;
+       return false;
 }
+#endif
 
old mode 100644 (file)
new mode 100755 (executable)
index 8bdf93f..262b1a3
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  */
 #include <sstream>
 #include <queue>
+#include "utilX.h"
+#include "efl_assist.h"
+
 #include "download-manager-view.h"
 #include "download-manager-history-db.h"
-#include "download-manager-downloadItem.h"
+#include "download-manager-dateTime.h"
 
 static void destroy_window_cb(void *data, Evas_Object *obj, void *event);
 
@@ -34,139 +37,311 @@ enum {
 
 DownloadView::DownloadView(void)
        : eoWindow(NULL)
+#ifndef _TIZEN_2_3_UX
+       , eoIndicatorBackground(NULL)
+#endif
        , eoBackground(NULL)
+       , eoConform(NULL)
        , eoLayout(NULL)
+       , eoEmptyNoContent(NULL)
        , eoNaviBar(NULL)
        , eoNaviBarItem(NULL)
-       , eoBackBtn(NULL)
-       , eoControlBar(NULL)
-       , eoCbItemDelete(NULL)
-       , eoCbItemCancel(NULL)
-       , eoCbItemEmpty(NULL)
-       , eoNotifyTimer(NULL)
-       , eoBoxLayout(NULL)
+#ifndef _TIZEN_2_3_UX
+       , eoToolBar(NULL)
+       , eoToolBarItem(NULL)
+#endif
        , eoBox(NULL)
        , eoDldList(NULL)
        , eoPopup(NULL)
+#ifdef _TIZEN_2_3_UX
+       , m_theme(NULL)
+       , eoMoreMenu(NULL)
        , eoSelectAllLayout(NULL)
-       , eoAllCheckedBox(NULL)
-       , eoNotifyInfoLayout(NULL)
+       , m_isEditMode(false)
+#endif
        , m_allChecked(EINA_FALSE)
-#ifndef _TIZEN_PUBLIC
-       , m_sweepedItem(NULL)
+#ifdef _ENABLE_OMA_DOWNLOAD
+       , prevOmaViewItem(NULL)
 #endif
+       , m_pauseTimer(NULL)
        , m_viewItemCount(0)
-{
+       , m_selectedItemsCount(0)
+       , m_silentMode(false)
+       , m_activatedLockScreen(false)
+{
+       m_groupTitle[VIEWITEM_GROUP::TODAY].subItemsCount = 0;
+       m_groupTitle[VIEWITEM_GROUP::TODAY].viewItem = NULL;
+       m_groupTitle[VIEWITEM_GROUP::YESTERDAY].subItemsCount = 0;
+       m_groupTitle[VIEWITEM_GROUP::YESTERDAY].viewItem = NULL;
+       m_groupTitle[VIEWITEM_GROUP::OLDER].subItemsCount = 0;
+       m_groupTitle[VIEWITEM_GROUP::OLDER].viewItem = NULL;
+       m_viewLastRefreshTime = time(NULL);
 // FIXME Later : init private members
        DownloadEngine &engine = DownloadEngine::getInstance();
        engine.initEngine();
        DateUtil &inst = DateUtil::getInstance();
        inst.updateLocale();
-       dldGenlistGroupStyle.item_style = "grouptitle";
-       dldGenlistGroupStyle.func.text_get = getGenlistGroupLabelCB;
-       dldGenlistGroupStyle.func.content_get = NULL;
-       dldGenlistGroupStyle.func.state_get = NULL;
-       dldGenlistGroupStyle.func.del = NULL;
-
-       m_today.setType(DATETIME::DATE_TYPE_TODAY);
-       m_yesterday.setType(DATETIME::DATE_TYPE_YESTERDAY);
-       m_previousDay.setType(DATETIME::DATE_TYPE_PREVIOUS);
+#ifdef _TIZEN_2_3_UX
+       m_theme = elm_theme_new();
+       elm_theme_ref_set(m_theme, NULL);
+       elm_theme_extension_add(m_theme, EDJEDIR"/download-manager-view.edj");
+#endif
 }
 
 DownloadView::~DownloadView()
 {
-       DP_LOG_FUNC();
-//     DownloadEngine &engine = DownloadEngine::getInstance();
-//     engine.deinitEngine();
+       DM_LOGD("");
+#ifdef _TIZEN_2_3_UX
+       elm_theme_extension_del(m_theme, EDJEDIR"/download-manager-view.edj");
+       elm_theme_free(m_theme);
+#endif
 }
 
 Evas_Object *DownloadView::create(void)
 {
        Evas_Object *window = NULL;
-       window = createWindow(PACKAGE);
+       Evas_Object *conformant = NULL;
+       FileUtility fileObj;
+       window = createWindow(PACKAGE_NAME);
        if (!window)
                return NULL;
 
+       if (elm_win_wm_rotation_supported_get(window)) {
+               int rots[4] = {0, 90, 180, 270};
+               elm_win_wm_rotation_available_rotations_set(window, rots, 4);
+       }
+       /* If there are some job when the rotation event is happened, please enable this.
+        * It is handled to rotate of a window by window manager. Please don't care it */
+//     evas_object_smart_callback_add(window, "wm,rotation,changed", _rot_changed_cb, NULL);
+
+       conformant = createConformant(window);
        createBackground(window);
-       createLayout(window);
+       createLayout(conformant);
        setIndicator(window);
        createView();
-
+       fileObj.cleanTempDir();
        return window;
 }
 
 void DownloadView::destroy()
 {
+       Elm_Object_Item *it = NULL;
+       ViewItem *item = NULL;
        DownloadEngine &engine = DownloadEngine::getInstance();
+
+       if (vconf_ignore_key_changed(
+                       VCONFKEY_IDLE_LOCK_STATE, lockStateChangedCB) != 0) {
+               DM_LOGE("Fail to vconf_ignore_key_changed");
+       }
+       if(eoDldList)
+               it = elm_genlist_first_item_get(eoDldList);
+
+       while (it) {
+               item = (ViewItem *)elm_object_item_data_get(it);
+               it = elm_genlist_item_next_get(it);
+               if (item && item->isGroupTitle() == false) {
+                       if (item->getState() < ITEM::FINISH_DOWNLOAD)
+                               item->cancel();
+                       item->destroy();
+               }
+       }
        engine.deinitEngine();
-       ecore_timer_del(eoNotifyTimer);
+       if (isGenlistEditMode()) {
+               hideGenlistEditMode();
+       }
+       removePopup();
+       if(eoEmptyNoContent) {
+               evas_object_del(eoEmptyNoContent);
+               eoEmptyNoContent = NULL;
+       }
+       if(eoDldList)
+               elm_genlist_clear(eoDldList);
+       if(eoDldList) {
+               evas_object_del(eoDldList);
+               eoDldList = NULL;
+       }
+#ifndef _TIZEN_2_3_UX
+       if(eoToolBar) {
+               evas_object_del(eoToolBar);
+               eoToolBar = NULL;
+       }
+#endif
+       if(eoBox) {
+               evas_object_del(eoBox);
+               eoBox = NULL;
+       }
+       if(eoNaviBar) {
+               evas_object_del(eoNaviBar);
+               eoNaviBar = NULL;
+       }
+       if(eoLayout) {
+               evas_object_del(eoLayout);
+               eoLayout = NULL;
+       }
+       if(eoConform) {
+               evas_object_del(eoConform);
+               eoConform = NULL;
+       }
+#ifndef _TIZEN_2_3_UX
+       if(eoIndicatorBackground) {
+               evas_object_del(eoIndicatorBackground);
+               eoIndicatorBackground = NULL;
+       }
+#endif
+       if(eoBackground) {
+               evas_object_del(eoBackground);
+               eoBackground = NULL;
+       }
+       if(eoWindow) {
+               evas_object_del(eoWindow);
+               eoWindow = NULL;
+       }
+       if(m_pauseTimer) {
+               ecore_timer_del(m_pauseTimer);
+               m_pauseTimer = NULL;
+       }
 }
 
+
 void DownloadView::show()
 {
-       DP_LOG_FUNC();
-#ifdef _SILENT_LAUNCH
-       evas_object_show(eoWindow);
-#endif
-       elm_win_raise(eoWindow);
-       handleUpdateDateGroupType(NULL);
+       DM_LOGI("");
+       if (!m_silentMode) {
+               evas_object_show(eoWindow);
+               elm_win_activate(eoWindow);
+       }
+
+       /* FIXME later : For performance, this is re-considered later
+        * This is added to update date information when system time is changed by user*/
+       update();
 }
 
 void DownloadView::hide()
 {
-       DP_LOG_FUNC();
+       DM_LOGI("");
        removePopup();
-#ifndef _TIZEN_PUBLIC
-       cancelSweepEvent();
-#endif
-       destroyNotifyInfo();
        if (isGenlistEditMode()) {
                hideGenlistEditMode();
        }
-#ifdef _SILENT_LAUNCH
        evas_object_hide(eoWindow);
-#endif
        elm_win_lower(eoWindow);
 }
 
-void DownloadView::activateWindow()
+void DownloadView::lockStateChangedCB(keynode_t *node, void *user_data)
 {
-       if (!eoWindow)
-               create();
+       DownloadView *view = NULL;
+       if (!user_data) {
+               DM_LOGE("NULL Check:user_data");
+               return;
+       }
+       if (!node) {
+               DM_LOGE("NULL Check:node");
+               return;
+       }
+       if (node->keyname)
+               DM_LOGV("keyname:%s", node->keyname);
+       DM_LOGI("value:%d", node->value.i);
+       if (node->value.i == VCONFKEY_IDLE_LOCK) {
+               view = (DownloadView *)user_data;
+               view->setActivatedLockScreen(true);
+               DM_LOGV("Activated Lock Screen");
+       }
+}
 
-       show();
+void DownloadView::checkEditMode()
+{
+       DM_LOGD("");
+       if (isGenlistEditMode() && !m_activatedLockScreen) {
+               DM_LOGI("Clear genlist mode");
+               hideGenlistEditMode();
+       }
 }
 
-#ifndef _TIZEN_PUBLIC
-void DownloadView::rotateWindow(int angle)
+Eina_Bool DownloadView::pauseTimerCB(void *data)
 {
-       if (angle >= 0)
-               elm_win_rotation_with_resize_set(eoWindow, angle);
+       DM_LOGD("");
+       DownloadView &view = DownloadView::getInstance();
+       view.m_pauseTimer = NULL;
+       return ECORE_CALLBACK_CANCEL;
+}
+
+void DownloadView::pause()
+{
+       DM_LOGI("");
+//     removePopup();
+
+       if (vconf_notify_key_changed(
+                       VCONFKEY_IDLE_LOCK_STATE, lockStateChangedCB, this) != 0) {
+               DM_LOGE("Fail to vconf_notify_key_changed");
+       }
+       m_pauseTimer = ecore_timer_add(0.2, pauseTimerCB, NULL);
 }
-#endif
 
-void DownloadView::showViewItem(int id, const char *title)
+void DownloadView::resume()
 {
-       DP_LOG_FUNC();
+       DM_LOGI("");
+       if (vconf_ignore_key_changed(
+                       VCONFKEY_IDLE_LOCK_STATE, lockStateChangedCB) != 0) {
+               DM_LOGD("Fail to vconf_ignore_key_changed");
+       }
+       // one more check if the vconf value of lock state has not been changed due to some error
+       m_activatedLockScreen = false;
+       DateUtil &util = DateUtil::getInstance();
+       int diffDays = util.getDiffDays(time(NULL),(time_t)m_viewLastRefreshTime);
+       if (diffDays > 0) {
+               if (m_viewItemCount > 0)
+                       update(diffDays);
+               m_viewLastRefreshTime = time(NULL);
+       }
+}
+
+void DownloadView::activateWindow()
+{
+       if (!eoWindow)
+               create();
+       else
+               resume();
+       show();
 }
 
-/* This is called by AUL view mode */
-void DownloadView::playContent(int id, const char *title)
+void DownloadView::clickedItemFromNoti(unsigned id, NOTIFICATION_TYPE::TYPE type)
 {
-       DP_LOG_FUNC();
+       Elm_Object_Item *it = NULL;
+       ViewItem *item = NULL;
+       it = elm_genlist_first_item_get(eoDldList);
+       while (it) {
+               item = (ViewItem *)elm_object_item_data_get(it);
+               /* elm_genlist_item_select_mode_get is needed to check group item */
+               if (item && item->isGroupTitle() == false && item->getHistoryId() == id) {
+                       elm_genlist_item_bring_in(it, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+                       if (type == NOTIFICATION_TYPE::NOTI_FAILED) {
+                               string msg[2];
+                               msg[0] = __("IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB");
+#ifdef _TIZEN_2_3_UX
+                               msg[1] = __("IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN");
+#else
+                               msg[1] = __("IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q");
+#endif
+                               item->setIsClickedFromNoti(true);
+                               showRetryPopup(item, msg);
+                       }
+                       break;
+               }
+               it = elm_genlist_item_next_get(it);
+       }
 }
 
 void DownloadView::setIndicator(Evas_Object *window)
 {
        elm_win_indicator_mode_set(window, ELM_WIN_INDICATOR_SHOW);
+       elm_win_indicator_opacity_set(window, ELM_WIN_INDICATOR_OPAQUE);
 }
 
 Evas_Object *DownloadView::createWindow(const char *windowName)
 {
        eoWindow = elm_win_add(NULL, windowName, ELM_WIN_BASIC);
        if (eoWindow) {
-               elm_win_title_set(eoWindow, __("IDS_BR_HEADER_DOWNLOAD_MANAGER"));
-               elm_win_borderless_set(eoWindow, EINA_TRUE);
+               elm_win_title_set(eoWindow, __("IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"));
                elm_win_conformant_set(eoWindow, 1);
                evas_object_smart_callback_add(eoWindow, "delete,request",
                                destroy_window_cb,      static_cast<void*>(this));
@@ -178,130 +353,407 @@ Evas_Object *DownloadView::createBackground(Evas_Object *window)
 {
        if (!window)
                return NULL;
-
+#ifndef _TIZEN_2_3_UX
+       eoIndicatorBackground = elm_bg_add(window);
+       if (eoIndicatorBackground) {
+               evas_object_size_hint_weight_set(eoIndicatorBackground, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_object_style_set(eoIndicatorBackground, "indicator/headerbg");
+               elm_object_part_content_set(eoConform, "elm.swallow.indicator_bg", eoIndicatorBackground);
+       }
+#endif
        eoBackground = elm_bg_add(window);
        if (eoBackground) {
                evas_object_size_hint_weight_set(eoBackground, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-               elm_win_resize_object_add(window, eoBackground);
+#ifdef _TIZEN_2_3_UX
+               elm_bg_color_set(eoBackground, 255, 255, 255);
+#endif
                evas_object_show(eoBackground);
        } else {
-               DP_LOGE("Fail to create bg object");
+               DM_LOGE("Fail to create bg object");
        }
        return eoBackground;
 }
 
+Evas_Object *DownloadView::createConformant(Evas_Object *window)
+{
+       DM_LOGD("");
+       if (!window)
+               return NULL;
+       eoConform = elm_conformant_add(window);
+       if (eoConform) {
+               evas_object_size_hint_weight_set(eoConform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_win_resize_object_add(window, eoConform);
+       }
+       if (!eoConform) {
+               DM_LOGE("Fail to create conformant object");
+               return NULL;
+       }
+       evas_object_show(eoConform);
+       return eoConform;
+}
+
 Evas_Object *DownloadView::createLayout(Evas_Object *parent)
 {
        if (!parent) {
-               DP_LOGE("Invalid Paramter");
+               DM_LOGE("Invalid Paramter");
                return NULL;
        }
 
        eoLayout = elm_layout_add(parent);
        if (eoLayout) {
                if (!elm_layout_theme_set(eoLayout, "layout", "application", "default" ))
-                       DP_LOGE("Fail to set elm_layout_theme_set");
+                       DM_LOGE("Fail to set elm_layout_theme_set");
 
                evas_object_size_hint_weight_set(eoLayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-               elm_win_resize_object_add(parent, eoLayout);
-
-               edje_object_signal_emit(elm_layout_edje_get(eoLayout), "elm,state,show,indicator", "elm");
+               elm_object_content_set(parent, eoLayout);
+#ifdef _TIZEN_2_3_UX
+               elm_object_part_content_set(eoLayout, "elm.swallow.bg", eoBackground);
+#endif
                evas_object_show(eoLayout);
        } else {
-               DP_LOGE("Fail to create layout");
+               DM_LOGE("Fail to create layout");
        }
        return eoLayout;
 }
 
 void DownloadView::createView()
 {
-       DP_LOG_FUNC();
+       DM_LOGD("");
        createNaviBar();
-       createList();
        if (m_viewItemCount < 1)
                showEmptyView();
+       else
+               createList();
 }
 
 void DownloadView::createNaviBar()
 {
-       DP_LOGD_FUNC();
+       DM_LOGD("");
        eoNaviBar = elm_naviframe_add(eoLayout);
+       if (!eoNaviBar) {
+               DM_LOGE("Null Check:eoNaviBar");
+       }
+
        elm_object_part_content_set(eoLayout, "elm.swallow.content", eoNaviBar);
-       createBackBtn();
+       elm_naviframe_prev_btn_auto_pushed_set(eoNaviBar, EINA_FALSE);
+       ea_object_event_callback_add(eoNaviBar, EA_CALLBACK_BACK,
+                       ea_naviframe_back_cb, NULL);
        createBox();
        eoNaviBarItem = elm_naviframe_item_push(eoNaviBar,
-               __("IDS_BR_HEADER_DOWNLOAD_MANAGER"),eoBackBtn, NULL, eoBoxLayout, NULL);
-       createControlBar();
+               __("IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"),NULL, NULL, eoBox, NULL);
+       if (!eoNaviBarItem)
+               DM_LOGE("Null Check:eoNaviBarItem");
+#ifdef _TIZEN_2_3_UX
+       ea_object_event_callback_add(eoNaviBar, EA_CALLBACK_MORE, moreKeyCB, NULL);
+#else
+       createDeleteBtn();
+#endif
+
+       elm_naviframe_item_pop_cb_set(eoNaviBarItem, popCB, NULL);
        evas_object_show(eoNaviBar);
 }
 
-void DownloadView::createBackBtn()
+void DownloadView::deletePopupDeleteCB(void *data, Evas_Object *obj, void *event_info)
+{
+       DownloadView& view = DownloadView::getInstance();
+       view.destroyCheckedItem();
+       view.removePopup();
+       Evas_Object *navi_it_access_obj = elm_object_item_access_object_get(view.eoNaviBarItem);
+       elm_access_highlight_set(navi_it_access_obj);
+}
+
+void DownloadView::showDeletePopup()
+{
+       Evas_Object *btn1 = NULL;
+       Evas_Object *btn2 = NULL;
+       char buff[MAX_BUF_LEN] = {0,};
+
+       DM_LOGI("");
+
+       /* If another popup is shown, delete it*/
+       removePopup();
+       eoPopup = elm_popup_add(eoWindow);
+       elm_popup_align_set(eoPopup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(eoPopup, EVAS_HINT_EXPAND,
+                       EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(eoPopup, EVAS_HINT_FILL,
+               EVAS_HINT_FILL);
+#ifdef _TIZEN_2_3_UX
+       snprintf(buff, MAX_BUF_LEN, "%s%s%s", "<align=left>",
+               DM_OPT_TEXT_DELETE, "</align>");
+       elm_object_part_text_set(eoPopup, "title,text", buff);
+
+       if (m_selectedItemsCount == 1) {
+               snprintf(buff, MAX_BUF_LEN, "%s", __("IDS_DM_BODY_1_ITEM_WILL_BE_DELETED"));
+       } else {
+               const char *format_str = __("IDS_DM_BODY_PD_ITEMS_WILL_BE_DELETED");
+               snprintf(buff, MAX_BUF_LEN, format_str, m_selectedItemsCount);
+       }
+#else
+       elm_object_part_text_set(eoPopup, "title,text", __("IDS_DM_HEADER_DELETE_FILE"));
+
+       if (m_selectedItemsCount == 1) {
+               snprintf(buff, MAX_BUF_LEN, "%s", __("IDS_DM_POP_DELETE_Q"));
+       } else {
+               const char *format_str = __("IDS_DM_POP_DELETE_PD_FILES_Q");
+               snprintf(buff, MAX_BUF_LEN, format_str, m_selectedItemsCount);
+       }
+#endif
+       elm_object_text_set(eoPopup, buff);
+       btn1 = elm_button_add(eoPopup);
+       elm_object_style_set(btn1, "popup");
+       elm_object_text_set(btn1, DM_SK_TEXT_CANCEL);
+       elm_object_part_content_set(eoPopup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", popupBackCB,
+                       NULL);
+       btn2 = elm_button_add(eoPopup);
+       elm_object_style_set(btn2, "popup");
+       elm_object_text_set(btn2, DM_OPT_TEXT_DELETE);
+       elm_object_part_content_set(eoPopup, "button2", btn2);
+       evas_object_smart_callback_add(btn2, "clicked", deletePopupDeleteCB,
+                       NULL);
+       ea_object_event_callback_add(eoPopup, EA_CALLBACK_BACK, popupBackCB, NULL);
+       evas_object_show(eoPopup);
+}
+
+void DownloadView::deleteToolBarBtnCB(void *data, Evas_Object *obj, void *event_info)
 {
-       DP_LOGD_FUNC();
-       eoBackBtn = elm_button_add(eoNaviBar);
-       elm_object_style_set(eoBackBtn, "naviframe/end_btn/default");
-       evas_object_smart_callback_add(eoBackBtn, "clicked", backBtnCB,NULL);
-       evas_object_show(eoBackBtn);
+       DM_LOGI("");
+       DownloadView& view = DownloadView::getInstance();
+       view.showDeletePopup();
 }
 
-void DownloadView::createControlBar()
+#ifdef _TIZEN_2_3_UX
+void DownloadView::moreKeyCB(void *data, Evas_Object *obj, void *event_info)
 {
-       DP_LOGD_FUNC();
+       DM_LOGD("");
+       DownloadView &view = DownloadView::getInstance();
+       view.createContextPopup();
+}
 
-       eoControlBar = elm_toolbar_add(eoNaviBar);
-       if (eoControlBar == NULL)
+void DownloadView::rotateContextPopupCB(void *data, Evas_Object *obj, void *event_info)
+{
+       DM_LOGD("");
+       DownloadView &view = DownloadView::getInstance();
+       view.moveContextPopup();
+}
+
+void DownloadView::contextPopupDismissedCB(void *data, Evas_Object *obj, void *event_info)
+{
+       DM_LOGD("");
+       DownloadView &view = DownloadView::getInstance();
+       view.deleteContextPopup();
+}
+
+void DownloadView::tabBarCancelButtonCB(void *data, Evas_Object *obj, void *event_info)
+{
+       DM_LOGD("");
+       DownloadView &view = DownloadView::getInstance();
+       view.hideGenlistEditMode();
+}
+
+
+void DownloadView::createContextPopup()
+{
+       DM_LOGD("");
+
+       if (isGenlistEditMode() || eoEmptyNoContent)
                return;
-       elm_toolbar_shrink_mode_set(eoControlBar, ELM_TOOLBAR_SHRINK_EXPAND);
-       eoCbItemDelete = elm_toolbar_item_append(eoControlBar, NULL,
-               S_("IDS_COM_OPT_DELETE"), cbItemDeleteCB, eoNaviBar);
-       eoCbItemEmpty = elm_toolbar_item_append(eoControlBar, NULL, NULL, NULL, NULL);
-       elm_object_item_part_content_set(eoNaviBarItem, "controlbar",
-               eoControlBar);
-       elm_object_item_disabled_set(eoCbItemDelete, EINA_TRUE);
-       elm_object_item_disabled_set(eoCbItemEmpty, EINA_TRUE);
-       evas_object_show(eoControlBar);
+
+       Evas_Object *moreMenu = elm_ctxpopup_add(eoWindow);
+       if (!moreMenu) {
+               DM_LOGE("elm_ctxpopup_add failed");
+               return;
+       }
+       elm_object_style_set(moreMenu, "more/default");
+       elm_ctxpopup_direction_priority_set(moreMenu, ELM_CTXPOPUP_DIRECTION_UP,
+                       ELM_CTXPOPUP_DIRECTION_UNKNOWN, ELM_CTXPOPUP_DIRECTION_UNKNOWN,
+                       ELM_CTXPOPUP_DIRECTION_UNKNOWN);
+
+       evas_object_size_hint_weight_set(moreMenu, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_smart_callback_add(moreMenu, "dismissed", contextPopupDismissedCB, this);
+       elm_ctxpopup_auto_hide_disabled_set(moreMenu, EINA_TRUE);
+       evas_object_smart_callback_add(elm_object_top_widget_get(moreMenu),
+                       "rotation,changed", rotateContextPopupCB, this);
+       ea_object_event_callback_add(moreMenu, EA_CALLBACK_BACK,
+                       ea_ctxpopup_back_cb, NULL);
+       ea_object_event_callback_add(moreMenu, EA_CALLBACK_MORE,
+                       ea_ctxpopup_back_cb, NULL);
+       Elm_Object_Item *item = elm_ctxpopup_item_append(moreMenu,
+                       DM_OPT_TEXT_DELETE, NULL, deleteBtnCB, NULL);
+       if (m_viewItemCount < 1)
+               elm_object_item_disabled_set(item, EINA_TRUE);
+
+       eoMoreMenu = moreMenu;
+       moveContextPopup();
+       evas_object_show(moreMenu);
 }
 
-void DownloadView::createBox()
+void DownloadView::deleteContextPopup()
+{
+       DM_LOGD("");
+       evas_object_smart_callback_del(eoWindow,
+                       "rotation,changed", rotateContextPopupCB);
+       evas_object_del(eoMoreMenu);
+       eoMoreMenu = NULL;
+}
+
+void DownloadView::moveContextPopup()
 {
-       DP_LOGD_FUNC();
-       eoBoxLayout = elm_layout_add(eoNaviBar);
-       elm_layout_file_set(eoBoxLayout,
-               "/opt/apps/org.tizen.download-manager/res/edje/download-manager.edj",
-               "download/selectioninfo");
+       DM_LOGD("");
+       if (!eoMoreMenu) {
+               DM_LOGE("Null Check:eoMoreMenu");
+               return;
+       }
+       Evas_Coord w, h;
+       int pos = -1;
+
+       elm_win_screen_size_get(eoWindow, NULL, NULL, &w, &h);
+       pos = elm_win_rotation_get(eoWindow);
+       switch (pos) {
+               case 0:
+               case 180:
+                       evas_object_move(eoMoreMenu, (w/2), h);
+                       break;
+               case 90:
+                       evas_object_move(eoMoreMenu, (h/2), w);
+                       break;
+               case 270:
+                       evas_object_move(eoMoreMenu, (h/2), w);
+                       break;
+       }
+}
+#else
 
-       evas_object_size_hint_weight_set(eoBoxLayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_align_set(eoBoxLayout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+void DownloadView::createToolBar()
+{
+       DM_LOGD("");
+       eoToolBar = elm_toolbar_add(eoNaviBar);
+       if(!eoToolBar) {
+               DM_LOGE("Null Check:eoDeleteBtn");
+               return;
+       }
+       elm_object_style_set(eoToolBar, "default");
+       elm_toolbar_shrink_mode_set(eoToolBar, ELM_TOOLBAR_SHRINK_EXPAND);
+       elm_toolbar_select_mode_set(eoToolBar, ELM_OBJECT_SELECT_MODE_NONE);
+       elm_toolbar_transverse_expanded_set(eoToolBar, EINA_TRUE);
+       eoToolBarItem = elm_toolbar_item_append(eoToolBar, NULL,
+                       DM_OPT_TEXT_DELETE, deleteToolBarBtnCB, NULL);
+       if (eoNaviBarItem)
+               elm_object_item_part_content_set(eoNaviBarItem, "toolbar", eoToolBar);
+       evas_object_show(eoToolBar);
+}
+
+void DownloadView::destroyToolBar()
+{
+       if(eoToolBar) {
+               evas_object_del(eoToolBar);
+               eoToolBar = NULL;
+               eoToolBarItem = NULL;
+       }
+       if (eoNaviBarItem)
+               elm_object_item_part_content_unset(eoNaviBarItem, "toolbar");
+}
 
-       eoBox = elm_box_add(eoBoxLayout);
-       elm_object_part_content_set(eoBoxLayout, "gen.swallow.contents", eoBox);
+void DownloadView::createDeleteBtn()
+{
+       Evas_Object *icon = NULL;
+       Evas_Object *button = elm_button_add(eoNaviBar);
+       if (!button) {
+               DM_LOGE("Null Check:eoNaviBarItem");
+               return;
+       }
+       elm_object_style_set(button, "naviframe/title_icon");
+       icon = elm_image_add(eoNaviBar);
+       elm_image_file_set(icon, DM_DELETE_ICON_PATH, NULL);
+       elm_image_resizable_set(icon, EINA_TRUE, EINA_TRUE);
+       elm_access_info_set(button, ELM_ACCESS_INFO, S_("IDS_COM_SK_DELETE"));
+       elm_object_part_content_set(button, "icon", icon);
+       evas_object_smart_callback_add(button, "clicked", deleteBtnCB, NULL);
+       elm_object_item_part_content_set(eoNaviBarItem, "title_right_btn",      button);
+}
+
+void DownloadView::destroyDeleteBtn()
+{
+       Evas_Object *button = NULL;
+       if (eoNaviBarItem) {
+               button = elm_object_item_part_content_get(eoNaviBarItem, "title_right_btn");
+               if(button) {
+                       evas_object_del(button);
+               }
+               elm_object_item_part_content_unset(eoNaviBarItem, "title_right_btn");
+       }
+}
+#endif
 
+void DownloadView::deleteBtnCB(void *data, Evas_Object *obj, void *event_info)
+{
+       DM_LOGI("");
+       DownloadView& view = DownloadView::getInstance();
+       view.showGenlistEditMode();
+}
+
+void DownloadView::createBox()
+{
+       DM_LOGD("");
+
+       eoBox = elm_box_add(eoNaviBar);
+       evas_object_size_hint_weight_set(eoBox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(eoBox, EVAS_HINT_FILL, EVAS_HINT_FILL);
        evas_object_show(eoBox);
-       evas_object_show(eoBoxLayout);
+}
+
+void DownloadView::realizedCB(void *data, Evas_Object *obj,
+       void *event_info) {
+       Elm_Object_Item *it = NULL;
+       Elm_Object_Item *nextIt = NULL;
+       ViewItem *item = NULL;
+       if (!event_info) {
+               DM_LOGE("NULL Check:event_info");
+               return;
+       }
+       if (!obj) {
+               DM_LOGE("NULL Check:obj");
+               return;
+       }
+       it = (Elm_Object_Item *)event_info;
+       if (it != elm_genlist_last_item_get(obj))
+               nextIt = elm_genlist_item_next_get(it);
+       if (nextIt) {
+               item = (ViewItem *)elm_object_item_data_get(nextIt);
+               if (item && item->isGroupTitle()) {
+                       elm_object_item_signal_emit(it, "elm,state,bottomline,hide", "");
+               }
+       }
 }
 
 void DownloadView::createList()
 {
-       //DP_LOGD_FUNC();
-       eoDldList = elm_genlist_add(eoBoxLayout);
-       DP_LOGD("create::eoDldList[%p]",eoDldList);
+       eoDldList = elm_genlist_add(eoLayout);
+       DM_LOGTEST("CREATE:eoDldList[%p]",eoDldList);
 /* When using ELM_LIST_LIMIT, the window size is broken at the landscape mode */
+       evas_object_smart_callback_add(eoDldList, "language,changed", changedGenlistLanguage, NULL);
        evas_object_size_hint_weight_set(eoDldList, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        evas_object_size_hint_align_set(eoDldList, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_smart_callback_add(eoDldList, "realized", realizedCB, NULL);
        elm_genlist_homogeneous_set(eoDldList, EINA_TRUE);
-       elm_genlist_block_count_set(eoDldList,8);
-
-#ifndef _TIZEN_PUBLIC
-       evas_object_smart_callback_add(eoDldList, "drag,start,right", sweepRightCB, NULL);
-       evas_object_smart_callback_add(eoDldList, "drag,start,left", sweepLeftCB, NULL);
+       elm_genlist_mode_set(eoDldList, ELM_LIST_COMPRESS);
+#ifdef _TIZEN_2_3_UX
+       elm_object_theme_set(eoDldList, m_theme);
 #endif
+       elm_genlist_block_count_set(eoDldList,8);
        elm_box_pack_end(eoBox, eoDldList);
        evas_object_show(eoDldList);
 }
 
+void DownloadView::changedGenlistLanguage(void *data, Evas_Object *obj, void *event_info)
+{
+       elm_genlist_realized_items_update(obj);
+}
+
 void destroy_window_cb(void *data, Evas_Object *obj, void *event)
 {
-       DP_LOG_FUNC();
+       DM_LOGI("");
        elm_exit();
 }
 
@@ -314,10 +766,17 @@ void DownloadView::changedRegion()
 
 void DownloadView::attachViewItem(ViewItem *viewItem)
 {
-       DP_LOG_FUNC();
+       DM_LOGD("");
        if (m_viewItemCount < 1) {
                hideEmptyView();
                createList();
+#ifndef _TIZEN_2_3_UX
+               if (eoNaviBarItem)
+                       if (!elm_object_item_part_content_get(eoNaviBarItem,
+                                       "title_right_btn")) {
+                               createDeleteBtn();
+                       }
+#endif
        }
        if (viewItem) {
                addViewItemToGenlist(viewItem);
@@ -327,27 +786,33 @@ void DownloadView::attachViewItem(ViewItem *viewItem)
 
 void DownloadView::detachViewItem(ViewItem *viewItem)
 {
-       DP_LOG("delete viewItem[%p]",viewItem);
-       if (viewItem) {
-               delete viewItem;
+       DM_LOGI("delete viewItem[%p]",viewItem);
+       if (viewItem && viewItem->isGroupTitle() == false) {
+               groupTitleType &groupTitleItem = m_groupTitle[viewItem->getItemGroup()];
                m_viewItemCount--;
+               groupTitleItem.subItemsCount--;
+               elm_object_item_del(viewItem->genlistItem());
+               if (groupTitleItem.subItemsCount == 0) {
+                       elm_object_item_del(groupTitleItem.viewItem->genlistItem());
+                       groupTitleItem.viewItem = NULL;
+               }
        }
-       if (!isGenlistEditMode() &&
-                       (m_viewItemCount < 1))
+       if (m_viewItemCount < 1 && !isGenlistEditMode())
                showEmptyView();
 }
 
 void DownloadView::update()
 {
        Elm_Object_Item *it = NULL;
-       DP_LOG_FUNC();
+       DM_LOGD("");
        if (!eoDldList) {
-               DP_LOGE("download list is NULL");
+               DM_LOGI("download list is NULL");
                return;
        }
+
        it = elm_genlist_first_item_get(eoDldList);
        while (it) {
-               DP_LOGD("glItem[%p]",it);
+               DM_LOGD("glItem[%p]",it);
                elm_genlist_item_update(it);
                it = elm_genlist_item_next_get(it);
        }
@@ -358,7 +823,7 @@ void DownloadView::update(ViewItem *viewItem)
        if (!viewItem)
                return;
 
-       DP_LOG("DownloadView::update viewItem [%p]", viewItem);
+       DM_LOGI("viewItem [%p]", viewItem);
        elm_genlist_item_update(viewItem->genlistItem());
 }
 
@@ -367,92 +832,239 @@ void DownloadView::update(Elm_Object_Item *glItem)
        if (!glItem)
                return;
 
-       DP_LOG("DownloadView::update glItem [%p]", glItem);
+       DM_LOGI("glItem [%p]", glItem);
        elm_genlist_item_update(glItem);
 }
 
-#ifndef _TIZEN_PUBLIC
-ViewItem *DownloadView::findViewItemForGenlistItem(Elm_Object_Item *glItem)
-{
-       Elm_Object_Item *it = NULL;
+void DownloadView::update(int diffDays)
+{
+       DM_LOGD("");
+       groupTitleType &todayGroupTitle = m_groupTitle[VIEWITEM_GROUP::TODAY];
+       groupTitleType &yesterdayGroupTitle = m_groupTitle[VIEWITEM_GROUP::YESTERDAY];
+       groupTitleType &olderGroupTitle = m_groupTitle[VIEWITEM_GROUP::OLDER];
+       Elm_Object_Item *lastItem = NULL;
+
+       if (diffDays == 1) {
+               Elm_Object_Item *yesterdayLastItem = NULL;
+               if (yesterdayGroupTitle.viewItem) {
+                       if (olderGroupTitle.viewItem) {
+                               yesterdayLastItem = elm_genlist_item_prev_get(
+                                               olderGroupTitle.viewItem->genlistItem());
+                               elm_object_item_del(olderGroupTitle.viewItem->genlistItem());
+                               if (yesterdayLastItem)
+                                       elm_object_item_signal_emit(
+                                                       yesterdayLastItem, "elm,state,bottomline,show", "");
+                       } else {
+                               yesterdayLastItem = elm_genlist_last_item_get(eoDldList);
+                       }
+                       olderGroupTitle.subItemsCount += yesterdayGroupTitle.subItemsCount;
+                       olderGroupTitle.viewItem = yesterdayGroupTitle.viewItem;
+                       olderGroupTitle.viewItem->setItemGroup(VIEWITEM_GROUP::OLDER);
+                       yesterdayGroupTitle.viewItem = NULL;
+                       yesterdayGroupTitle.subItemsCount = 0;
+               }
+               if (todayGroupTitle.viewItem) {
+                       yesterdayGroupTitle.viewItem = todayGroupTitle.viewItem;
+                       yesterdayGroupTitle.subItemsCount = todayGroupTitle.subItemsCount;
+                       yesterdayGroupTitle.viewItem->setItemGroup(VIEWITEM_GROUP::YESTERDAY);
+                       todayGroupTitle.viewItem = NULL;
+                       todayGroupTitle.subItemsCount = 0;
+               }
+               lastItem = yesterdayLastItem;
+       } else {
+               Elm_Object_Item *todayLastItem = NULL;
+               Elm_Object_Item *yesterdayLastItem = NULL;
+               int itemsCount = olderGroupTitle.subItemsCount;
+               bool flag = false;
+
+               if (todayGroupTitle.viewItem) {
+                       if (yesterdayGroupTitle.viewItem) {
+                               todayLastItem = elm_genlist_item_prev_get(
+                                       yesterdayGroupTitle.viewItem->genlistItem());
+                               flag = true;
+                       } else if (olderGroupTitle.viewItem) {
+                               todayLastItem = elm_genlist_item_prev_get(
+                                       olderGroupTitle.viewItem->genlistItem());
+                               flag = true;
+                       } else {
+                               todayLastItem = elm_genlist_last_item_get(eoDldList);
+                       }
+                       if (flag && todayLastItem)
+                               elm_object_item_signal_emit(
+                                               todayLastItem, "elm,state,bottomline,show", "");
+                       lastItem = todayLastItem;
+               }
+               if (yesterdayGroupTitle.viewItem) {
+                       if (olderGroupTitle.viewItem) {
+                               yesterdayLastItem = elm_genlist_item_prev_get(
+                                                       olderGroupTitle.viewItem->genlistItem());
+                               if (yesterdayLastItem)
+                                       elm_object_item_signal_emit(
+                                               yesterdayLastItem, "elm,state,bottomline,show", "");
+                       } else {
+                               yesterdayLastItem = elm_genlist_last_item_get(eoDldList);
+                       }
+                       lastItem = yesterdayLastItem;
+               }
+               flag = false;
+               if (todayGroupTitle.viewItem) {
+                       itemsCount += todayGroupTitle.subItemsCount;
+                       if (olderGroupTitle.viewItem)
+                               elm_object_item_del(olderGroupTitle.viewItem->genlistItem());
+                       olderGroupTitle.viewItem = todayGroupTitle.viewItem;
+                       olderGroupTitle.viewItem->setItemGroup(VIEWITEM_GROUP::OLDER);
+                       todayGroupTitle.viewItem = NULL;
+                       todayGroupTitle.subItemsCount = 0;
+                       flag = true;
+               }
+               if (yesterdayGroupTitle.viewItem) {
+                       itemsCount += yesterdayGroupTitle.subItemsCount;
+                       if (flag)
+                               elm_object_item_del(yesterdayGroupTitle.viewItem->genlistItem());
+                       else {
+                               if (olderGroupTitle.viewItem)
+                                       elm_object_item_del(olderGroupTitle.viewItem->genlistItem());
+                               olderGroupTitle.viewItem = yesterdayGroupTitle.viewItem;
+                               olderGroupTitle.viewItem->setItemGroup(VIEWITEM_GROUP::OLDER);
+                       }
+                       yesterdayGroupTitle.subItemsCount = 0;
+                       yesterdayGroupTitle.viewItem = NULL;
+               }
+               olderGroupTitle.subItemsCount = itemsCount;
+       }
        ViewItem *viewItem = NULL;
-       if (!eoDldList) {
-               DP_LOGE("download list is NULL");
-               return NULL;
+       Elm_Object_Item *item1 = NULL;
+       Elm_Object_Item *item2 = NULL;
+       if (yesterdayGroupTitle.viewItem)
+               item1 = yesterdayGroupTitle.viewItem->genlistItem();
+       if (olderGroupTitle.viewItem)
+               item2 = olderGroupTitle.viewItem->genlistItem();
+       /* Update the viewItem group of all the Items moved to Yesterday group */
+       while(item1 && item1 != item2) {
+               viewItem = (ViewItem *)elm_object_item_data_get(item1);
+               if (viewItem)
+                       viewItem->setItemGroup(VIEWITEM_GROUP::YESTERDAY);
+               item1 = elm_genlist_item_next_get(item1);
        }
-       it = elm_genlist_first_item_get(eoDldList);
-       while (it) {
-               /* don't search group item */
-               if (elm_genlist_item_select_mode_get(it) !=
-                               ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY && it == glItem) {
-                       viewItem = (ViewItem *)elm_object_item_data_get(it);
-                       break;
+       /* Update time field of genlist Item and viewItem group
+       for all the Items moved to Older Group
+       */
+       if (lastItem) {
+               item1 = item2;
+               while(item1) {
+#ifdef _TIZEN_2_3_UX
+                       elm_genlist_item_fields_update(item1 , "elm.text.sub.right.bottom",
+                                       ELM_GENLIST_ITEM_FIELD_TEXT);
+#else
+                       elm_genlist_item_fields_update(item1 , "elm.text.3",
+                                       ELM_GENLIST_ITEM_FIELD_TEXT);
+#endif
+                       viewItem = (ViewItem *)elm_object_item_data_get(item1);
+                       if (viewItem)
+                               viewItem->setItemGroup(VIEWITEM_GROUP::OLDER);
+                       if (item1 == lastItem)
+                               break;
+                       item1 = elm_genlist_item_next_get(item1);
                }
-               it = elm_genlist_item_next_get(it);
        }
-
-       return viewItem;
-}
+       update(todayGroupTitle.viewItem);
+       update(yesterdayGroupTitle.viewItem);
+       update(olderGroupTitle.viewItem);
+}
+
+void DownloadView::updateLang()
+{
+       DM_LOGD("");
+       if (eoNaviBarItem) {
+               if (isGenlistEditMode()) {
+#ifdef _TIZEN_2_3_UX
+                       if (eoSelectAllLayout)
+                               elm_object_part_text_set(eoSelectAllLayout, "elm.text.main",
+                                       DM_BODY_TEXT_SELECT_ALL);
+                       showSelectedNotify(m_selectedItemsCount);
+#else
+                       if (eoToolBarItem)
+                               elm_object_item_text_set(eoToolBarItem, DM_OPT_TEXT_DELETE);
+                       elm_object_item_text_set(eoNaviBarItem, __("IDS_DM_HEADER_SELECT_ITEMS"));
+#endif
+               } else {
+#ifndef _TIZEN_2_3_UX
+                       Evas_Object *buttonObj = NULL;
+                       buttonObj = elm_object_item_part_content_get(eoNaviBarItem, "title_right_btn");
+                       elm_object_text_set(buttonObj, DM_OPT_TEXT_DELETE);
 #endif
+                       elm_object_item_text_set(eoNaviBarItem,
+                                       __("IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"));
+               }
+       }
+       if (eoEmptyNoContent) {
+               elm_object_part_text_set(eoEmptyNoContent, "elm.text",
+                               __("IDS_DM_BODY_NO_DOWNLOADS"));
+               elm_object_part_text_set(eoEmptyNoContent, "elm.help.text",
+                                       __("IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"));
+       }
+}
 
 void DownloadView::addViewItemToGenlist(ViewItem *viewItem)
 {
-       DP_LOG_FUNC();
-       handleUpdateDateGroupType(viewItem);
+       DM_LOGD("");
        createGenlistItem(viewItem);
 }
 
 void DownloadView::createGenlistItem(ViewItem *viewItem)
 {
+       DM_LOGTEST("CreateItem:eoDldList[%p]", eoDldList);
+       int diffDays = 0;
+       ViewItem *parentItem = NULL;
        Elm_Object_Item *glItem = NULL;
-       Elm_Object_Item *glGroupItem = NULL;
-       /* EAPI Elm_Object_Item *elm_genlist_item_prepend(
-        *      Evas_Object *obj,
-        *      const Elm_Genlist_Item_Class *itc,
-        *      const void *data,
-        *      Elm_Object_Item *parent,
-        *      Elm_Genlist_Item_Type flags,
-        *      Evas_Smart_Cb func,
-        *      const void *func_data) EINA_ARG_NONNULL(1); */
-       glGroupItem = getGenlistGroupItem(viewItem->dateGroupType());
-       DP_LOGD("group item[%p]",glGroupItem);
-       if (!glGroupItem) {
-               DateGroup *dateGrpObj = getDateGroupObj(viewItem->dateGroupType());
-               if (!viewItem->isFinished()) {
-                       glGroupItem = elm_genlist_item_prepend(
+       VIEWITEM_GROUP::GROUP group;
+       double finishedTime = viewItem->getFinishedTime();
+       if (finishedTime == 0)
+               diffDays = 0;
+       else {
+               DateUtil &inst = DateUtil::getInstance();
+               diffDays = inst.getDiffDays(time(NULL),(time_t)finishedTime);
+       }
+
+       if (diffDays < 1)
+               group = VIEWITEM_GROUP::TODAY;
+       else if (diffDays < 2)
+               group = VIEWITEM_GROUP::YESTERDAY;
+       else
+               group = VIEWITEM_GROUP::OLDER;
+       groupTitleType &groupTitleItem = m_groupTitle[group];
+       if (!groupTitleItem.viewItem)
+               groupTitleItem.viewItem = new ViewItem(group);
+       parentItem = groupTitleItem.viewItem;
+
+       if (groupTitleItem.subItemsCount == 0) {
+               if (group == VIEWITEM_GROUP::TODAY) {
+                       glItem = elm_genlist_item_prepend(
                                eoDldList,
-                               &dldGenlistGroupStyle,
-                               static_cast<const void*>(dateGrpObj),
+                               parentItem->elmGenlistStyle(),
+                               static_cast<const void*>(parentItem),
                                NULL,
-                               ELM_GENLIST_ITEM_GROUP,
-                               NULL,
-                               NULL);
+                               ELM_GENLIST_ITEM_NONE,
+                               NULL, NULL);
                } else {
-                       /* Download History Item */
-                       glGroupItem = elm_genlist_item_append(
+                       glItem = elm_genlist_item_append(
                                eoDldList,
-                               &dldGenlistGroupStyle,
-                               static_cast<const void*>(dateGrpObj),
-                               NULL,
-                               ELM_GENLIST_ITEM_GROUP,
+                               parentItem->elmGenlistStyle(),
+                               static_cast<const void*>(parentItem),
                                NULL,
-                               NULL);
+                               ELM_GENLIST_ITEM_NONE,
+                               NULL, NULL);
                }
-               if (!glGroupItem)
-                       DP_LOGE("Fail to add a genlist group item");
-               else
-                       elm_genlist_item_select_mode_set(glGroupItem,
-                               ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
-               setGenlistGroupItem(viewItem->dateGroupType(), glGroupItem);
+               elm_genlist_item_select_mode_set(glItem, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+               parentItem->setGenlistItem(glItem);
        }
-       increaseGenlistGroupCount(viewItem->dateGroupType());
-       if (!viewItem->isFinished()) {
+       if (viewItem->getInsertAtFirst()) {
                glItem = elm_genlist_item_insert_after(
                        eoDldList,
                        viewItem->elmGenlistStyle(),
                        static_cast<const void*>(viewItem),
-                       glGroupItem,
-                       glGroupItem,
+                       NULL,
+                       parentItem->genlistItem(),
                        ELM_GENLIST_ITEM_NONE,
                        genlistClickCB,
                        static_cast<const void*>(viewItem));
@@ -462,105 +1074,180 @@ void DownloadView::createGenlistItem(ViewItem *viewItem)
                        eoDldList,
                        viewItem->elmGenlistStyle(),
                        static_cast<const void*>(viewItem),
-                       glGroupItem,
+                       NULL,
                        ELM_GENLIST_ITEM_NONE,
                        genlistClickCB,
                        static_cast<const void*>(viewItem));
        }
        if (!glItem)
-               DP_LOGE("Fail to add a genlist item");
+               DM_LOGE("Fail to add a genlist item");
+       else {
+               viewItem->setItemGroup(group);
+               viewItem->setGenlistItem(glItem);
+               groupTitleItem.subItemsCount++;
+       }
 
-       DP_LOGD("genlist groupItem[%p] item[%p] viewItem[%p]", glGroupItem, glItem, viewItem);
-       viewItem->setGenlistItem(glItem);
+       DM_LOGTEST("CreateItem:genlist item[%p] viewItem[%p]", glItem, viewItem);
        /* Move scrollbar to top.
         * When groupItem means today group in case of addtion of download link item
        **/
        if (!viewItem->isFinished())
-               elm_genlist_item_show(glGroupItem, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+               elm_genlist_item_show(glItem, ELM_GENLIST_ITEM_SCROLLTO_TOP);
 }
 
 void DownloadView::showEmptyView()
 {
-       DP_LOGD_FUNC();
+       DM_LOGD("");
        if (!eoEmptyNoContent) {
                eoEmptyNoContent = elm_layout_add(eoLayout);
-               elm_layout_theme_set(eoEmptyNoContent, "layout", "nocontents", "text");
+               elm_layout_theme_set(eoEmptyNoContent, "layout", "nocontents", "default");
                evas_object_size_hint_weight_set(eoEmptyNoContent, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
                evas_object_size_hint_align_set(eoEmptyNoContent, EVAS_HINT_FILL, EVAS_HINT_FILL);
+#ifndef _TIZEN_2_3_UX
+               Evas_Object *icon = elm_image_add(eoEmptyNoContent);
+               elm_image_file_set(icon, DM_NO_CONTENT_ICON_PATH, NULL);
+               elm_object_part_content_set(eoEmptyNoContent, "nocontents.image", icon);
+#endif
                elm_object_part_text_set(eoEmptyNoContent, "elm.text",
-                       __("IDS_DL_BODY_NO_DOWNLOADS"));
-               evas_object_size_hint_weight_set (eoEmptyNoContent,
-                       EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
+                       __("IDS_DM_BODY_NO_DOWNLOADS"));
+               elm_object_part_text_set(eoEmptyNoContent, "elm.help.text",
+                       __("IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"));
+#ifndef _TIZEN_2_3_UX
+               Evas_Object *accessObject = NULL;
+               Evas_Object *noContentAccess = (Evas_Object *)edje_object_part_object_get(_EDJ(eoEmptyNoContent), "elm.text");
+               accessObject = elm_access_object_register(noContentAccess, eoEmptyNoContent);
+               elm_object_focus_custom_chain_append(eoEmptyNoContent, accessObject, NULL);
+               elm_access_info_set(accessObject, ELM_ACCESS_INFO, __("IDS_DM_BODY_NO_DOWNLOADS"));
+               Evas_Object *noContentHelpAccess = (Evas_Object *)edje_object_part_object_get(_EDJ(eoEmptyNoContent), "elm.help.text");
+               accessObject = elm_access_object_register(noContentHelpAccess, eoEmptyNoContent);
+               elm_object_focus_custom_chain_append(eoEmptyNoContent, accessObject, NULL);
+               elm_access_info_set(accessObject, ELM_ACCESS_INFO,
+                                       __("IDS_DM_BODY_AFTER_YOU_DOWNLOAD_ITEMS_THEY_WILL_BE_SHOWN_HERE"));
+#endif
+               elm_layout_signal_emit(eoEmptyNoContent, "align.center", "elm");
                if (eoDldList) {
                        elm_box_unpack(eoBox,eoDldList);
                        /* Detection code */
-                       DP_LOGD("del::eoDldList[%p]",eoDldList);
+                       DM_LOGI("del::eoDldList[%p]",eoDldList);
                        evas_object_del(eoDldList);
                        eoDldList = NULL;
                }
                elm_box_pack_start(eoBox, eoEmptyNoContent);
        }
        evas_object_show(eoEmptyNoContent);
-       elm_object_item_disabled_set(eoCbItemDelete, EINA_TRUE);
+#ifndef _TIZEN_2_3_UX
+       destroyDeleteBtn();
+#endif
 }
 
 void DownloadView::hideEmptyView()
 {
-       DP_LOGD_FUNC();
+       DM_LOGI("");
        if(eoEmptyNoContent) {
                elm_box_unpack(eoBox, eoEmptyNoContent);
                evas_object_del(eoEmptyNoContent);
                eoEmptyNoContent = NULL;
        }
-       elm_object_item_disabled_set(eoCbItemDelete, EINA_FALSE);
 }
 
 bool DownloadView::isGenlistEditMode()
 {
-       return (bool)elm_genlist_decorate_mode_get(eoDldList);
+#ifdef _TIZEN_2_3_UX
+       return m_isEditMode;
+#else
+       if (eoDldList)
+               return (bool)elm_genlist_decorate_mode_get(eoDldList);
+       else
+               return false;
+#endif
 }
 
-#ifndef _TIZEN_PUBLIC
-void DownloadView::cancelSweepEvent()
+#ifdef _TIZEN_2_3_UX
+void DownloadView::createSelectAllLayout()
 {
-       DP_LOGD_FUNC();
-       if (m_sweepedItem) {
-               m_sweepedItem->sweepLeft();
-               m_sweepedItem = NULL;
+       DM_LOGD("");
+       eoSelectAllLayout = elm_layout_add(eoBox);
+       if (!eoSelectAllLayout) {
+               DM_LOGE("elm_layout_add is failed");
+               return;
        }
+
+       elm_object_focus_allow_set(eoSelectAllLayout, EINA_TRUE);
+
+       elm_layout_theme_set(eoSelectAllLayout, "genlist", "item", "select_all/default");
+       evas_object_size_hint_weight_set(eoSelectAllLayout, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
+       evas_object_size_hint_align_set(eoSelectAllLayout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       Evas_Object *check = elm_check_add(eoSelectAllLayout);
+       evas_object_propagate_events_set(check, EINA_TRUE);
+       elm_object_part_content_set(eoSelectAllLayout, "elm.icon", check);
+       elm_object_part_text_set(eoSelectAllLayout, "elm.text.main", DM_BODY_TEXT_SELECT_ALL);
+       evas_object_show(eoSelectAllLayout);
+       elm_box_pack_start(eoBox, eoSelectAllLayout);
+
+       evas_object_event_callback_add(eoSelectAllLayout, EVAS_CALLBACK_MOUSE_DOWN,
+                       selectAllChangedCB, this);
+
+       Evas_Object *cancelButton = elm_button_add(eoNaviBar);
+       if (!cancelButton) return;
+       elm_object_style_set(cancelButton, "naviframe/title_cancel");
+       evas_object_smart_callback_add(cancelButton, "clicked", tabBarCancelButtonCB, NULL);
+       elm_object_item_part_content_set(eoNaviBarItem, "title_left_btn", cancelButton);
+       DM_LOGD("");
+       Evas_Object *doneButton = elm_button_add(eoNaviBar);
+       if (!doneButton) return;
+       elm_object_style_set(doneButton, "naviframe/title_done");
+       evas_object_smart_callback_add(doneButton, "clicked", deleteToolBarBtnCB, this);
+       elm_object_item_part_content_set(eoNaviBarItem, "title_right_btn", doneButton);
+       elm_object_disabled_set(doneButton, EINA_TRUE);
+       m_allChecked = EINA_FALSE;
 }
-#endif
 
-void DownloadView::createSelectAllLayout()
+void DownloadView::deleteSelectAllLayout()
 {
-       eoSelectAllLayout = elm_layout_add(eoBox);
-       elm_layout_theme_set(eoSelectAllLayout, "genlist", "item",
-               "select_all/default");
-       evas_object_size_hint_weight_set(eoSelectAllLayout, EVAS_HINT_EXPAND,
-               EVAS_HINT_FILL);
-       evas_object_size_hint_align_set(eoSelectAllLayout, EVAS_HINT_FILL,
-               EVAS_HINT_FILL);
-       evas_object_event_callback_add(eoSelectAllLayout, EVAS_CALLBACK_MOUSE_DOWN,
-               selectAllClickedCB, NULL);
-       eoAllCheckedBox = elm_check_add(eoSelectAllLayout);
-       elm_check_state_pointer_set(eoAllCheckedBox, &m_allChecked);
-       evas_object_smart_callback_add(eoAllCheckedBox, "changed",
-               selectAllChangedCB, NULL);
-       evas_object_propagate_events_set(eoAllCheckedBox, EINA_FALSE);
-       elm_object_part_content_set(eoSelectAllLayout, "elm.icon", eoAllCheckedBox);
-       elm_object_text_set(eoSelectAllLayout, S_("IDS_COM_BODY_SELECT_ALL"));
-       elm_box_pack_start(eoBox, eoSelectAllLayout);
-       evas_object_show(eoSelectAllLayout);
+       if (eoSelectAllLayout) {
+               elm_box_unpack(eoBox, eoSelectAllLayout);
+               evas_object_del(eoSelectAllLayout);
+               eoSelectAllLayout = NULL;
+       }
+       Evas_Object *cancelButton = elm_object_item_part_content_unset(
+                       eoNaviBarItem, "title_left_btn");
+       evas_object_hide(cancelButton);
+       Evas_Object *doneButton = elm_object_item_part_content_unset(
+                       eoNaviBarItem, "title_right_btn");
+       evas_object_hide(doneButton);
        m_allChecked = EINA_FALSE;
 }
+#else
+void DownloadView::changeSelectAll()
+{
+       Evas_Object *icon = NULL;
+       Evas_Object *button = NULL;
+       button = elm_object_item_part_content_get(eoNaviBarItem, "title_right_btn");
+       icon = elm_object_part_content_get(button, "icon");
+       elm_image_file_set(icon, DM_SELECT_ALL_ICON_PATH, NULL);
+       evas_object_smart_callback_del(button, "clicked", deleteBtnCB);
+       evas_object_smart_callback_add(button, "clicked", selectAllChangedCB, NULL);
+       evas_object_show(button);
+       m_allChecked = EINA_FALSE;
+       elm_access_info_set(button, ELM_ACCESS_INFO, DM_BODY_TEXT_SELECT_ALL);
+}
 
-void DownloadView::changeAllCheckedValue()
+void DownloadView::restoreDeleteBtn()
 {
-       m_allChecked = !m_allChecked;
-       elm_check_state_pointer_set(eoAllCheckedBox, &m_allChecked);
-       handleChangedAllCheckedState();
+       Evas_Object *icon = NULL;
+       Evas_Object *button = NULL;
+       button = elm_object_item_part_content_get(eoNaviBarItem, "title_right_btn");
+       icon = elm_object_part_content_get(button, "icon");
+       elm_image_file_set(icon, DM_DELETE_ICON_PATH, NULL);
+       elm_image_resizable_set(icon, EINA_TRUE, EINA_TRUE);
+       elm_access_info_set(button, ELM_ACCESS_INFO, S_("IDS_COM_SK_DELETE"));
+       evas_object_smart_callback_del(button, "clicked", selectAllChangedCB);
+       evas_object_smart_callback_add(button, "clicked", deleteBtnCB, NULL);
+       evas_object_show(button);
+       m_allChecked = EINA_FALSE;
 }
+#endif
 
 void DownloadView::destroyCheckedItem()
 {
@@ -570,30 +1257,26 @@ void DownloadView::destroyCheckedItem()
        int checkedCount = 0;
        queue <unsigned int> deleteQueue;
 
-       DP_LOGD_FUNC();
-
        it = elm_genlist_first_item_get(eoDldList);
 
        while (it) {
                item = (ViewItem *)elm_object_item_data_get(it);
                /* elm_genlist_item_select_mode_get is needed to check group item */
-               if (elm_genlist_item_select_mode_get(it) !=
-                               ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY &&
-                               item && item->checkedValue()) {
+               if (item && item->checkedValue()) {
                        list = eina_list_append(list, it);
                }
                it = elm_genlist_item_next_get(it);
        }
 
        if (!list) {
-               DP_LOGD("There is no delete item");
+               DM_LOGI("There is no delete item");
                return;
        }
 
        checkedCount = eina_list_count(list);
        if (checkedCount < 1)
                return;
-       DP_LOGD("checkedCount[%d]", checkedCount);
+       DM_LOGD("checkedCount[%d]", checkedCount);
 
        for (int i = 0; i < checkedCount; i++)
        {
@@ -601,100 +1284,101 @@ void DownloadView::destroyCheckedItem()
                if (it)
                        item = (ViewItem *)elm_object_item_data_get(it);
                else
-                       DP_LOGE("genlist item is null");
+                       DM_LOGE("NULL Check:genlist item");
                list = eina_list_next(list);
                if (item) {
-                       deleteQueue.push(item->historyId());
+                       deleteQueue.push(item->getHistoryId());
                        item->destroy();
                } else {
-                       DP_LOGE("viewItem is null");
+                       DM_LOGE("NULL Check:viewItem");
                }
        }
        if (list)
                eina_list_free(list);
 
        DownloadHistoryDB::deleteMultipleItem(deleteQueue);
-       showNotifyInfo(DOWNLOAD_NOTIFY_DELETED, checkedCount);
        hideGenlistEditMode();
 }
 
 void DownloadView::showGenlistEditMode()
 {
-       DP_LOG_FUNC();
-#ifndef _TIZEN_PUBLIC
-       cancelSweepEvent();
-#endif
+       DM_LOGD("");
+
+#ifdef _TIZEN_2_3_UX
+       deleteContextPopup();
+       showSelectedNotify(0);
+       m_isEditMode = true;
+       createSelectAllLayout();
+//     elm_genlist_select_mode_set(eoDldList, ELM_OBJECT_SELECT_MODE_ALWAYS);
+#else
        /* Initialize notify info widget */
-       destroyNotifyInfo();
-       elm_object_item_text_set(eoNaviBarItem, S_("IDS_COM_OPT_DELETE"));
+       elm_object_item_text_set(eoNaviBarItem, __("IDS_DM_HEADER_SELECT_ITEMS"));
        /* Change layoutbackground color to edit mode color */
        elm_object_style_set(eoBackground, "edit_mode");
-       /* Disable the back button of control bar */
-       elm_object_item_part_content_unset(eoNaviBarItem, "prev_btn");
-       destroyEvasObj(eoBackBtn);
 
-       if (eoCbItemEmpty)
-               elm_object_item_del(eoCbItemEmpty);
-       eoCbItemCancel = elm_toolbar_item_append(eoControlBar, NULL,
-               S_("IDS_COM_SK_CANCEL"), cbItemCancelCB, eoNaviBar);
+       createToolBar();
 
        /* Append 'Select All' layout */
-       createSelectAllLayout();
+       changeSelectAll();
        /* Set reorder end edit mode */
-       elm_genlist_reorder_mode_set(eoDldList, EINA_TRUE);
        elm_genlist_decorate_mode_set(eoDldList, EINA_TRUE);
        /* This means even if the ouside of checked box is selected,
           it is same to click a check box. */
        elm_genlist_select_mode_set(eoDldList, ELM_OBJECT_SELECT_MODE_ALWAYS);
-
+#endif
        Elm_Object_Item *it = NULL;
+       Elm_Object_Item *prev = NULL;
        ViewItem *viewItem = NULL;
+       int finishedCount = 0;
        it = elm_genlist_first_item_get(eoDldList);
        while (it) {
                viewItem = (ViewItem *)elm_object_item_data_get(it);
-               if (elm_genlist_item_select_mode_get(it) !=
-                               ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY &&
-                               viewItem && !(viewItem->isFinished()))
-                       elm_object_item_disabled_set(it, EINA_TRUE);
+               if (viewItem) {
+                       if (!(viewItem->isFinished()))
+                               elm_object_item_disabled_set(it, EINA_TRUE);
+                       else
+                               finishedCount++;
+                       if (viewItem->isGroupTitle() && prev) {
+                               elm_object_item_signal_emit(prev,
+                                       "elm,state,bottomline,hide", "");
+                       }
+               }
+               prev = it;
                it = elm_genlist_item_next_get(it);
        }
-       elm_object_item_disabled_set(eoCbItemDelete, EINA_TRUE);
+
+
+#ifdef _TIZEN_2_3_UX
+       /* Update all the realized Items */
+       if (m_viewItemCount > 0)
+               elm_genlist_realized_items_update(eoDldList);
+#else
+       elm_object_item_disabled_set(eoToolBarItem, EINA_TRUE);
+#endif
 }
 
 void DownloadView::hideGenlistEditMode()
 {
-       DP_LOG_FUNC();
-
-       elm_object_item_text_set(eoNaviBarItem, __("IDS_BR_HEADER_DOWNLOAD_MANAGER"));
-       elm_object_style_set(eoBackground, "default");
-
-       /* Recreate back button */
-       createBackBtn();
-       elm_object_item_part_content_set(eoNaviBarItem, "prev_btn", eoBackBtn);
-
-       if (eoCbItemCancel) {
-               elm_object_item_del(eoCbItemCancel);
-               eoCbItemCancel = NULL;
-       }
-       eoCbItemEmpty = elm_toolbar_item_append(eoControlBar, NULL, NULL, NULL, NULL);
-       elm_object_item_disabled_set(eoCbItemEmpty, EINA_TRUE);
-
-       elm_box_unpack(eoBox, eoSelectAllLayout);
+       Elm_Object_Item *it = NULL;
+       ViewItem *viewItem = NULL;
 
-       destroyEvasObj(eoAllCheckedBox);
-       destroyEvasObj(eoSelectAllLayout);
+       DM_LOGD("");
 
-       elm_genlist_reorder_mode_set(eoDldList, EINA_FALSE);
+       removePopup();
+       elm_object_item_text_set(eoNaviBarItem,
+                       __("IDS_DM_HEADER_DOWNLOAD_MANAGER_ABB"));
+#ifdef _TIZEN_2_3_UX
+       m_isEditMode = false;
+       deleteSelectAllLayout();
+#else
+       elm_object_style_set(eoBackground, "default");
        elm_genlist_decorate_mode_set(eoDldList, EINA_FALSE);
        elm_genlist_select_mode_set(eoDldList, ELM_OBJECT_SELECT_MODE_DEFAULT);
-
-       Elm_Object_Item *it = NULL;
-       ViewItem *viewItem = NULL;
+#endif
        it = elm_genlist_first_item_get(eoDldList);
        while (it) {
                viewItem = (ViewItem *)elm_object_item_data_get(it);
-               if (elm_genlist_item_select_mode_get(it) !=
-                               ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY && viewItem) {
+               if (viewItem) {
                        if (elm_object_item_disabled_get(it))
                                elm_object_item_disabled_set(it, EINA_FALSE);
                        viewItem->setCheckedValue(EINA_FALSE);
@@ -702,14 +1386,18 @@ void DownloadView::hideGenlistEditMode()
                }
                it = elm_genlist_item_next_get(it);
        }
-
-       m_allChecked = EINA_FALSE;
+#ifdef _TIZEN_2_3_UX
+       /* Update all the realized Items */
+       if (m_viewItemCount > 0)
+               elm_genlist_realized_items_update(eoDldList);
+#else
+       destroyToolBar();
+       restoreDeleteBtn();
+#endif
 
        if (m_viewItemCount < 1) {
-               elm_object_item_disabled_set(eoCbItemDelete, EINA_TRUE);
                showEmptyView();
-       } else
-               elm_object_item_disabled_set(eoCbItemDelete, EINA_FALSE);
+       }
 }
 
 void DownloadView::handleChangedAllCheckedState()
@@ -718,13 +1406,19 @@ void DownloadView::handleChangedAllCheckedState()
        Elm_Object_Item *it = NULL;
        ViewItem *viewItem = NULL;
        it = elm_genlist_first_item_get(eoDldList);
+       m_allChecked = !m_allChecked;
        while (it) {
                viewItem = (ViewItem *)elm_object_item_data_get(it);
-               if (elm_genlist_item_select_mode_get(it) !=
-                       ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY && viewItem) {
+               if (viewItem) {
                        if (viewItem->isFinished()) {
                                viewItem->setCheckedValue(m_allChecked);
-                               viewItem->updateCheckedBtn();
+#ifdef _TIZEN_2_3_UX
+                               elm_genlist_item_fields_update(it, "elm.icon.2",
+                                       ELM_GENLIST_ITEM_FIELD_CONTENT);
+#else
+                               elm_genlist_item_fields_update(it, "elm.edit.icon.1",
+                                       ELM_GENLIST_ITEM_FIELD_CONTENT);
+#endif
                                checkedCount++;
                        }
                }
@@ -732,11 +1426,28 @@ void DownloadView::handleChangedAllCheckedState()
        }
 
        if (m_allChecked && checkedCount > 0) {
-               elm_object_item_disabled_set(eoCbItemDelete, EINA_FALSE);
-               showNotifyInfo(DOWNLOAD_NOTIFY_SELECTED, checkedCount);
+#ifdef _TIZEN_2_3_UX
+               Evas_Object *doneButton = elm_object_part_content_get(eoNaviBar, "title_right_btn");
+               elm_object_disabled_set(doneButton, EINA_FALSE);
+               Evas_Object *checkBox = elm_object_part_content_get(eoSelectAllLayout, "elm.icon");
+               if (checkBox)
+                       elm_check_state_set(checkBox, m_allChecked);
+#else
+               elm_object_item_disabled_set(eoToolBarItem, EINA_FALSE);
+#endif
+               showSelectedNotify(checkedCount);
        } else {
-               elm_object_item_disabled_set(eoCbItemDelete, EINA_TRUE);
-               showNotifyInfo(DOWNLOAD_NOTIFY_SELECTED, 0);
+               m_allChecked = EINA_FALSE;
+               showSelectedNotify(0);
+#ifdef _TIZEN_2_3_UX
+               Evas_Object *doneButton = elm_object_part_content_get(eoNaviBar, "title_right_btn");
+               elm_object_disabled_set(doneButton, EINA_TRUE);
+               Evas_Object *checkBox = elm_object_part_content_get(eoSelectAllLayout, "elm.icon");
+               if (checkBox)
+                       elm_check_state_set(checkBox, m_allChecked);
+#else
+               elm_object_item_disabled_set(eoToolBarItem, EINA_TRUE);
+#endif
        }
 }
 
@@ -745,15 +1456,14 @@ void DownloadView::handleCheckedState()
        int checkedCount = 0;
        int deleteAbleTotalCount = 0;
 
-       DP_LOGD_FUNC();
+       DM_LOGD("");
 
        Elm_Object_Item *it = NULL;
        ViewItem *viewItem = NULL;
        it = elm_genlist_first_item_get(eoDldList);
        while (it) {
                viewItem = (ViewItem *)elm_object_item_data_get(it);
-               if (elm_genlist_item_select_mode_get(it) !=
-                       ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY && viewItem) {
+               if (viewItem) {
                        if (viewItem->checkedValue())
                                checkedCount++;
                        if (viewItem->isFinished())
@@ -766,489 +1476,383 @@ void DownloadView::handleCheckedState()
                m_allChecked = EINA_TRUE;
        else
                m_allChecked = EINA_FALSE;
-       elm_check_state_pointer_set(eoAllCheckedBox, &m_allChecked);
-
-       if (checkedCount == 0) {
-               elm_object_item_disabled_set(eoCbItemDelete, EINA_TRUE);
-               destroyNotifyInfo();
-       } else
-               elm_object_item_disabled_set(eoCbItemDelete, EINA_FALSE);
-       showNotifyInfo(DOWNLOAD_NOTIFY_SELECTED, checkedCount);
-}
-void DownloadView::createNotifyInfo()
-{
-       DP_LOGD_FUNC();
-       eoNotifyInfoLayout = elm_layout_add(eoBoxLayout);
-       elm_object_part_content_set(eoBoxLayout, "sel.swallow.contents",
-                       eoNotifyInfoLayout);
-       evas_object_size_hint_weight_set(eoNotifyInfoLayout,
-                       EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_align_set(eoNotifyInfoLayout,
-                       EVAS_HINT_FILL, EVAS_HINT_FILL);
-}
-
-void DownloadView::showNotifyInfo(int type, int selectedCount)
-{
-       string buf;
-       DP_LOGD_FUNC();
 
-       if (selectedCount == 0) {
-               destroyNotifyInfo();
-               return;
+#ifdef _TIZEN_2_3_UX
+       if (eoSelectAllLayout) {
+               Evas_Object *checkBox = elm_object_part_content_get(eoSelectAllLayout, "elm.icon");
+               if (checkBox)
+                       elm_check_state_set(checkBox, m_allChecked);
        }
+       Evas_Object *doneButton = elm_object_part_content_get(eoNaviBar, "title_right_btn");
+#endif
 
-       if (!eoNotifyInfoLayout)
-               createNotifyInfo();
-
-       elm_layout_theme_set(eoNotifyInfoLayout, "standard", "selectioninfo",
-                       "default");
-       buf.append(" ");
-       if (type == DOWNLOAD_NOTIFY_SELECTED) {
-               stringstream countStr;
-               countStr << selectedCount;
-               buf = S_("IDS_COM_BODY_SELECTED");
-               buf.append(" (");
-               buf.append(countStr.str());
-               buf.append(")");
-       } else if (type == DOWNLOAD_NOTIFY_DELETED) {
-               buf = S_("IDS_COM_POP_DELETED");
-               if (eoNotifyTimer) {
-                       ecore_timer_del(eoNotifyTimer);
-                       eoNotifyTimer = NULL;
-               }
-               eoNotifyTimer = ecore_timer_add(3, deletedNotifyTimerCB, NULL);
-       }
-       elm_object_part_text_set(eoNotifyInfoLayout, "elm.text", buf.c_str());
-       elm_object_signal_emit(eoBoxLayout, "show,selection,info", "elm");
-       evas_object_show(eoNotifyInfoLayout);
-}
 
-Eina_Bool DownloadView::deletedNotifyTimerCB(void *data)
-{
-       DownloadView& view = DownloadView::getInstance();
-       view.destroyNotifyInfo();
-       return ECORE_CALLBACK_RENEW;
+       if (checkedCount == 0) {
+#ifdef _TIZEN_2_3_UX
+               elm_object_disabled_set(doneButton, EINA_TRUE);
+#else
+               elm_object_item_disabled_set(eoToolBarItem, EINA_TRUE);
+#endif
+       } else {
+#ifdef _TIZEN_2_3_UX
+               elm_object_disabled_set(doneButton, EINA_FALSE);
+#else
+               elm_object_item_disabled_set(eoToolBarItem, EINA_FALSE);
+#endif
+       }
+       showSelectedNotify(checkedCount);
 }
 
-void DownloadView::destroyNotifyInfo()
+void DownloadView::showSelectedNotify(int selectedCount)
 {
-       DP_LOGD_FUNC();
-       destroyEvasObj(eoNotifyInfoLayout);
-       eoNotifyInfoLayout = NULL;
-}
+       char buff[MAX_BUF_LEN] = {0,};
 
-/* Static callback function */
-void DownloadView::showNotifyInfoCB(void *data, Evas *evas, Evas_Object *obj,
-       void *event)
-{
-       Evas_Object *layout = (Evas_Object *)data;
-       if (!data) {
-               DP_LOGE("data is NULL");
+       DM_LOGD("");
+#ifndef _TIZEN_2_3_UX
+       if (selectedCount <= 0) {
+               elm_object_item_text_set(eoNaviBarItem, __("IDS_DM_HEADER_SELECT_ITEMS"));
                return;
        }
-       edje_object_signal_emit(_EDJ(layout), "elm,layout,content,bottom_padding",
-               "layout");
-}
+#endif
+       m_selectedItemsCount = selectedCount;
+       const char *format_str = DM_BODY_TEXT_PD_SELECTED;
+       snprintf(buff, MAX_BUF_LEN, format_str, selectedCount);
 
-void DownloadView::hideNotifyInfoCB(void *data, Evas *evas, Evas_Object *obj,
-       void *event)
-{
-       Evas_Object *layout = (Evas_Object *)data;
-       if (!data) {
-               DP_LOGE("data is NULL");
-               return;
-       }
-       edje_object_signal_emit(_EDJ(layout), "elm,layout,content,default", "layout");
+       elm_object_item_text_set(eoNaviBarItem, buff);
 }
 
-void DownloadView::selectAllClickedCB(void *data, Evas *evas, Evas_Object *obj,
+#ifdef _TIZEN_2_3_UX
+void DownloadView::selectAllChangedCB(void *data, Evas *e, Evas_Object *obj,
        void *event_info)
 {
+       DM_LOGD("");
        DownloadView &view = DownloadView::getInstance();
-       DP_LOGD_FUNC();
-       view.changeAllCheckedValue();
+       view.handleChangedAllCheckedState();
 }
-
+#else
 void DownloadView::selectAllChangedCB(void *data, Evas_Object *obj,
        void *event_info)
 {
        DownloadView &view = DownloadView::getInstance();
-       DP_LOGD_FUNC();
+       DM_LOGD("");
        view.handleChangedAllCheckedState();
 }
+#endif
 
-#ifndef _TIZEN_PUBLIC
-void DownloadView::sweepRightCB(void *data, Evas_Object *obj, void *event_info)
+Eina_Bool DownloadView::popCB(void *data, Elm_Object_Item *it)
 {
        DownloadView& view = DownloadView::getInstance();
-       DP_LOGD_FUNC();
-       if (!obj || !event_info) {
-               DP_LOGE("obj or event_info is NULL");
-               return;
+       DM_LOGI("");
+       if (view.isGenlistEditMode()) {
+               view.hideGenlistEditMode();
+               return EINA_FALSE;
+       } else {
+               view.hide();
+               return EINA_FALSE;
        }
-       if (!elm_genlist_decorate_mode_get(obj)) {
-               Elm_Object_Item *glItem = (Elm_Object_Item *)event_info;
-               ViewItem *viewItem = view.findViewItemForGenlistItem(glItem);
-               if (viewItem) {
-                       if (viewItem->isFinished()) {
-                               if (view.sweepedItem())
-                                       view.sweepedItem()->sweepLeft();
-                               viewItem->sweepRight();
-                               view.setSweepedItem(viewItem);
-                       }
-               } else {
-                       DP_LOGE("Fail to find view item at sweep mode");
-               }
-       } else
-               DP_LOGD("Unable to sweep right");
 }
 
-void DownloadView::sweepLeftCB(void *data, Evas_Object *obj, void *event_info)
+void DownloadView::genlistClickCB(void *data, Evas_Object *obj, void *event_info)
 {
-       DownloadView& view = DownloadView::getInstance();
-       DP_LOGD_FUNC();
-       if (!obj || !event_info) {
-               DP_LOGE("obj or event_info is NULL");
+       ViewItem *item = reinterpret_cast<ViewItem *>(data);
+       DM_LOGD("");
+       if (!data) {
+               DM_LOGE("NULL Check:data");
                return;
        }
-
-       if (!elm_genlist_decorate_mode_get(obj)) {
-               Elm_Object_Item *glItem = (Elm_Object_Item *)event_info;
-               ViewItem *viewItem = view.findViewItemForGenlistItem(glItem);
-               if (viewItem) {
-                       if (viewItem->isFinished()) {
-                               viewItem->sweepLeft();
-                               view.setSweepedItem(NULL);
-                       }
-               } else {
-                       DP_LOGE("Fail to find view item at sweep mode");
-               }
-       } else
-               DP_LOGD("Unable to sweep left");
+       item->clickedGenlistItem();
 }
-#endif
 
-void DownloadView::backBtnCB(void *data, Evas_Object *obj, void *event_info)
+void DownloadView::showRetryPopup(ViewItem *viewItem, string *msg)
 {
-       DownloadView& view = DownloadView::getInstance();
-       view.hide();
-}
+       Evas_Object *btn1 = NULL;
+       Evas_Object *btn2 = NULL;
 
-void DownloadView::cbItemDeleteCB(void *data, Evas_Object *obj, void *event_info)
-{
+       DM_LOGI("");
+       if (!viewItem)
+               return;
+       /* If another popup is shown, delete it*/
+       removePopup();
+       eoPopup = elm_popup_add(eoWindow);
+       elm_popup_align_set(eoPopup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(eoPopup, EVAS_HINT_EXPAND,
+                       EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(eoPopup, EVAS_HINT_FILL,
+               EVAS_HINT_FILL);
 
-       DownloadView& view = DownloadView::getInstance();
-       if (!view.isGenlistEditMode())
-               view.showGenlistEditMode();
-       else
-               view.destroyCheckedItem();
-}
+#ifdef _TIZEN_2_3_UX
+       string titleText = "<align=left>" + msg[0] + "</align>";
+       elm_object_part_text_set(eoPopup, "title,text", titleText.c_str());
+#else
+       elm_object_part_text_set(eoPopup, "title,text", msg[0].c_str());
+#endif
+       elm_object_text_set(eoPopup, msg[1].c_str());
+       btn1 = elm_button_add(eoPopup);
+       elm_object_style_set(btn1, "popup");
+       elm_object_text_set(btn1, DM_SK_TEXT_CANCEL);
+       elm_object_part_content_set(eoPopup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", retryPopupCancelCB,
+                       viewItem);
+       btn2 = elm_button_add(eoPopup);
+       elm_object_style_set(btn2, "popup");
+#ifdef _TIZEN_2_3_UX
+               elm_object_text_set(btn2, DM_SK_TEXT_DOWNLOAD);
+#else
+               elm_object_text_set(btn2, S_("IDS_COM_SK_RETRY"));
+#endif
 
-void DownloadView::cbItemCancelCB(void *data, Evas_Object *obj, void *event_info)
-{
-       DownloadView& view = DownloadView::getInstance();
-       view.destroyNotifyInfo();
-       view.hideGenlistEditMode();
+       elm_object_part_content_set(eoPopup, "button2", btn2);
+       evas_object_smart_callback_add(btn2, "clicked", retryPopupRetryCB,
+                       viewItem);
+       ea_object_event_callback_add(eoPopup, EA_CALLBACK_BACK, popupBackCB, NULL);
+       evas_object_show(eoPopup);
 }
 
-void DownloadView::genlistClickCB(void *data, Evas_Object *obj, void *event_info)
-{
-       ViewItem *item = reinterpret_cast<ViewItem *>(data);
-       DP_LOGD_FUNC();
-       if (!data) {
-               DP_LOGE("data is NULL");
-               return;
-       }
-       item->clickedGenlistItem();
-}
 
-void DownloadView::cancelClickCB(void *data, Evas_Object *obj, void *event_info)
+void DownloadView::showMemoryFullPopup(string &msg)
 {
-       ViewItem *item = NULL;
+       Evas_Object *btn1 = NULL;
+       Evas_Object *btn2 = NULL;
+       char buff[MAX_BUF_LEN] = {0,};
 
-       DP_LOGD_FUNC();
+       DM_LOGI("");
 
-       if (!data) {
-               DP_LOGE("data is NULL");
-               return;
+       if (m_silentMode) {
+               DM_LOGI("silent mode");
+               evas_object_show(eoWindow);
+               elm_win_activate(eoWindow);
        }
-       item = reinterpret_cast<ViewItem *>(data);
-       item->requestCancel();
 
+       /* If another popup is shown, delete it*/
+       removePopup();
+       eoPopup = elm_popup_add(eoWindow);
+       elm_popup_align_set(eoPopup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(eoPopup, EVAS_HINT_EXPAND,
+                       EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(eoPopup, EVAS_HINT_FILL,
+                       EVAS_HINT_FILL);
+
+#ifdef _TIZEN_2_3_UX
+       snprintf(buff, MAX_BUF_LEN, "%s%s%s", "<align=left>",
+               __("IDS_DM_HEADER_DEFAULT_STROAGE_FULL"), "</align>");
+       elm_object_part_text_set(eoPopup, "title,text", buff);
+#else
+       elm_object_part_text_set(eoPopup, "title,text",
+                       __("IDS_DM_HEADER_DEFAULT_STROAGE_FULL"));
+#endif
+       snprintf(buff, MAX_BUF_LEN, msg.c_str(), __("IDS_DM_BODY_STORAGE"));
+       elm_object_text_set(eoPopup, buff);
+       btn1 = elm_button_add(eoPopup);
+       elm_object_style_set(btn1, "popup");
+#ifdef _TIZEN_2_3_UX
+       elm_object_text_set(btn1, DM_SK_TEXT_CANCEL);
+#else
+       elm_object_text_set(btn1, DM_SK_TEXT_OK);
+#endif
+       elm_object_part_content_set(eoPopup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", memoryFullPopupCancelCB,
+                       NULL);
+       btn2 = elm_button_add(eoPopup);
+       elm_object_style_set(btn2, "popup");
+       elm_object_text_set(btn2, __("IDS_DM_BUTTON_GO_TO_STORAGE_ABB"));
+       elm_object_part_content_set(eoPopup, "button2", btn2);
+       evas_object_smart_callback_add(btn2, "clicked", memoryFullPopupMyFilesCB,
+                       NULL);
+       ea_object_event_callback_add(eoPopup, EA_CALLBACK_BACK, popupBackCB, NULL);
+       evas_object_show(eoPopup);
 }
 
-void DownloadView::showErrPopup(string &desc)
+void DownloadView::showErrPopup(string *desc)
 {
+       Evas_Object *btn1 = NULL;
+
+       if (m_silentMode) {
+               DM_LOGI("silent mode");
+               evas_object_show(eoWindow);
+               elm_win_activate(eoWindow);
+       }
+
        removePopup();
 
        eoPopup = elm_popup_add(eoWindow);
+       elm_popup_align_set(eoPopup, ELM_NOTIFY_ALIGN_FILL, 1.0);
        evas_object_size_hint_weight_set(eoPopup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       elm_object_text_set(eoPopup, desc.c_str());
-       elm_popup_timeout_set(eoPopup, 2);
-       evas_object_smart_callback_add(eoPopup, "response", errPopupResponseCB, NULL);
+#ifdef _TIZEN_2_3_UX
+       string titleText = "<align=left>" + desc[0] + "</align>";
+       elm_object_part_text_set(eoPopup, "title,text", titleText.c_str());
+#else
+       elm_object_part_text_set(eoPopup, "title,text", desc[0].c_str());
+#endif
+       elm_object_text_set(eoPopup, desc[1].c_str());
+       btn1 = elm_button_add(eoPopup);
+       elm_object_style_set(btn1, "popup");
+       elm_object_text_set(btn1, DM_SK_TEXT_OK);
+       elm_object_part_content_set(eoPopup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", errPopupResponseCB,
+                       NULL);
+       ea_object_event_callback_add(eoPopup, EA_CALLBACK_BACK, popupBackCB, NULL);
        evas_object_show(eoPopup);
 }
 
+
 void DownloadView::errPopupResponseCB(void *data, Evas_Object *obj, void *event_info)
 {
-       DP_LOGD_FUNC();
+       DM_LOGI("");
        DownloadView& view = DownloadView::getInstance();
        view.removePopup();
 }
 
-void DownloadView::removePopup()
-{
-       DP_LOGD_FUNC();
-       destroyEvasObj(eoPopup);
-}
 
-DateGroup *DownloadView::getDateGroupObj(int type)
+void DownloadView::memoryFullPopupCancelCB(void *data, Evas_Object *obj, void *event_info)
 {
-       DateGroup *obj = NULL;
-       switch (type) {
-       case DATETIME::DATE_TYPE_LATER:
-       case DATETIME::DATE_TYPE_TODAY:
-               obj = &m_today;
-               break;
-       case DATETIME::DATE_TYPE_YESTERDAY:
-               obj = &m_yesterday;
-               break;
-       case DATETIME::DATE_TYPE_PREVIOUS:
-               obj = &m_previousDay;
-               break;
-       default:
-               obj = NULL;
-               DP_LOGE("Cannot enter here");
-               break;
-       }
-       return obj;
+       DownloadView& view = DownloadView::getInstance();
+       view.removePopup();
 }
 
-Elm_Object_Item *DownloadView::getGenlistGroupItem(int type)
+void DownloadView::memoryFullPopupMyFilesCB(void *data, Evas_Object *obj, void *event_info)
 {
-       DateGroup *obj = getDateGroupObj(type);
-       if (!obj)
-               return NULL;
-       return obj->glGroupItem();
+       DM_LOGI("");
+       DownloadView& view = DownloadView::getInstance();
+       FileUtility fileObj;
+       fileObj.openMyFilesApp();
+       view.removePopup();
 }
 
-void DownloadView::setGenlistGroupItem(int type, Elm_Object_Item *item)
+void DownloadView::retryPopupCancelCB(void *data, Evas_Object *obj, void *event_info)
 {
-       DateGroup *obj = getDateGroupObj(type);
-       if (!obj)
-               return;
-       obj->setGlGroupItem(item);
+       ViewItem *viewItem = (ViewItem *)data;
+       DownloadView& view = DownloadView::getInstance();
+       if (viewItem)
+               viewItem->clickedCanceledRetryButton();
+       else
+               DM_LOGE("No viewItem");
+       view.removePopup();
 }
 
-void DownloadView::increaseGenlistGroupCount(int type)
+void DownloadView::retryPopupRetryCB(void *data, Evas_Object *obj, void *event_info)
 {
-       DateGroup *obj = getDateGroupObj(type);
-       if (!obj)
-               return;
-       if (type == DATETIME::DATE_TYPE_TODAY || type == DATETIME::DATE_TYPE_LATER) {
-               if (m_today.getCount() < 1) {
-                       DateUtil &inst = DateUtil::getInstance();
-                       inst.setTodayStandardTime();
-               }
-       }
-       obj->increaseCount();
-       DP_LOGD("increased count[%d]",obj->getCount());
-}
+       ViewItem *viewItem = (ViewItem *)data;
+       DownloadView& view = DownloadView::getInstance();
 
-int DownloadView::getGenlistGroupCount(int type)
-{
-       DateGroup *obj = getDateGroupObj(type);
-       if (!obj)
-               return 0;
-       DP_LOGD("Group count[%d]",obj->getCount());
-       return obj->getCount();
+       DM_LOGI("");
+       if (viewItem)
+               viewItem->clickedRetryButton();
+       else
+               DM_LOGE("No viewItem");
+       view.removePopup();
 }
 
-void DownloadView::handleGenlistGroupItem(int type)
+void DownloadView::removePopup()
 {
-       DateGroup *obj = getDateGroupObj(type);
-       if (!obj)
-               return;
-       obj->decreaseCount();
-       DP_LOGD("count[%d]type[%d]",obj->getCount(),type);
-       if (obj->getCount() < 1) {
-               //DP_LOGD("Group Item[%p][%d]", obj->glGroupItem(),type);
-               elm_object_item_del(obj->glGroupItem());
-               obj->setGlGroupItem(NULL);
+#ifdef _ENABLE_OMA_DOWNLOAD
+       if (eoPopup && prevOmaViewItem) {
+               DM_LOGI("Destroy oma popup and cancel oma download");
+               prevOmaViewItem->responseUserConfirm(false);
+               prevOmaViewItem = NULL;
+       } else {
+               prevOmaViewItem = NULL;
+       }
+#endif
+       if(eoPopup) {
+               DM_LOGD("Remove Popup");
+               evas_object_del(eoPopup);
+               eoPopup = NULL;
        }
 }
 
-void DownloadView::handleUpdateDateGroupType(ViewItem *viewItem)
+#ifdef _ENABLE_OMA_DOWNLOAD
+void DownloadView::removeOnlyPopupObj()
 {
-       int diffDays = 0;
-       DateUtil &inst = DateUtil::getInstance();
-       DP_LOGD_FUNC();
-       diffDays = inst.getDiffDaysFromToday();
-       if (viewItem) {
-       /* Update a view item which is added now
-        * This should be only called when attaching item
-       **/
-               viewItem->extractDateGroupType();
-       } else if (diffDays != 0) {
-       /* FIXME later
-        * Now, it is recreated download items and group items.
-        * Consider to move only group item later.
-        * This should be only called from show() function
-       **/
-/* FIXME later
- * Another problem is happend becuase eina list is used repacing with vector */
-#if 0
-               cleanGenlistData();
-               Elm_Object_Item *it = NULL;
-               ViewItem *viewItem = NULL;
-               it = elm_genlist_first_item_get(eoDldList);
-               while (it) {
-                       viewItem = (ViewItem *)elm_object_item_data_get(it);
-                       if (!viewItem || elm_genlist_item_select_mode_get(it) !=
-                                       ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)
-                               continue;
-                       viewItem->extractDateGroupType();
-                       createGenlistItem(viewItem);
-                       it = elm_genlist_item_next_get(it);
-               }
-#endif
+       DM_LOGD("");
+       prevOmaViewItem = NULL;
+       if(eoPopup) {
+               evas_object_del(eoPopup);
+               eoPopup = NULL;
        }
-       inst.setTodayStandardTime();
 }
 
-void DownloadView::moveRetryItem(ViewItem *viewItem)
+void DownloadView::showOMAPopup(string msg, ViewItem *viewItem)
 {
-       Elm_Object_Item *todayGroupItem = NULL;
-       Elm_Object_Item *firstItem = NULL;
-       DP_LOGD_FUNC();
-       if (!viewItem) {
-               DP_LOGE("view item is NULL");
+       Evas_Object *btn1 = NULL;
+       Evas_Object *btn2 = NULL;
+
+       DM_LOGI("");
+
+       if (!viewItem)
+               return;
+       if (msg.empty()) {
+               viewItem->responseUserConfirm(false);
                return;
        }
-       firstItem = elm_genlist_first_item_get(eoDldList);
-       if (firstItem) {
-               DP_LOGD("groupItem[%p] viewItem[%p]", firstItem, viewItem);
-               /* This is group item */
-               if (elm_genlist_item_select_mode_get(firstItem) ==
-                               ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) {
-                       /* The top item is the item after group item */
-                       firstItem = elm_genlist_item_next_get(firstItem);
-                       DP_LOGD("firstItem[%p], present item[%p]", firstItem, viewItem->genlistItem());
-                       if (firstItem == viewItem->genlistItem()) {
-                               DP_LOGD("This is already top item. Don't need to move");
-                               return;
-                       }
-               }
-       }
-       elm_object_item_del(viewItem->genlistItem());
-       viewItem->setGenlistItem(NULL);
-       handleGenlistGroupItem(viewItem->dateGroupType());
-       todayGroupItem = getGenlistGroupItem(DATETIME::DATE_TYPE_TODAY);
-       if (!todayGroupItem) {
-               DateGroup *dateGrpObj = getDateGroupObj(DATETIME::DATE_TYPE_TODAY);
-               todayGroupItem = elm_genlist_item_prepend(
-                               eoDldList,
-                               &dldGenlistGroupStyle,
-                               static_cast<const void*>(dateGrpObj),
-                               NULL,
-                               ELM_GENLIST_ITEM_GROUP,
-                               NULL,
-                               NULL);
-               setGenlistGroupItem(DATETIME::DATE_TYPE_TODAY, todayGroupItem);
-               if (!todayGroupItem)
-                       DP_LOGE("Fail to add a genlist group item");
-               else
-                       elm_genlist_item_select_mode_set(todayGroupItem,
-                               ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+       if (m_silentMode) {
+               DM_LOGI("silent mode");
+               evas_object_show(eoWindow);
+               elm_win_activate(eoWindow);
        }
-       increaseGenlistGroupCount(DATETIME::DATE_TYPE_TODAY);
-       Elm_Object_Item *glItem = elm_genlist_item_insert_after(
-                       eoDldList,
-                       viewItem->elmGenlistStyle(),
-                       static_cast<const void*>(viewItem),
-                       todayGroupItem,
-                       todayGroupItem,
-                       ELM_GENLIST_ITEM_NONE,
-                       genlistClickCB,
-                       static_cast<const void*>(viewItem));
-       if (!glItem)
-               DP_LOGE("Fail to add a genlist item");
-       DP_LOGD("genlist groupItem[%p] item[%p] viewItem[%p]", todayGroupItem,
-               glItem, viewItem);
-       viewItem->setGenlistItem(glItem);
-       elm_genlist_item_show(todayGroupItem, ELM_GENLIST_ITEM_SCROLLTO_TOP);
-       viewItem->extractDateGroupType();
+
+       /* If another popup is shown, delete it*/
+       removePopup();
+
+       eoPopup = elm_popup_add(eoWindow);
+       elm_popup_align_set(eoPopup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       evas_object_size_hint_weight_set(eoPopup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_text_set(eoPopup, msg.c_str());
+#ifdef _TIZEN_2_3_UX
+       string titleText = "<align=left>" + string(DM_SK_TEXT_DOWNLOAD) + "</align>";
+       elm_object_part_text_set(eoPopup, "title,text", titleText.c_str());
+#else
+       elm_object_part_text_set(eoPopup, "title,text", DM_SK_TEXT_DOWNLOAD);
+#endif
+       btn1 = elm_button_add(eoPopup);
+       elm_object_style_set(btn1, "popup");
+       elm_object_text_set(btn1, DM_SK_TEXT_CANCEL);
+       elm_object_part_content_set(eoPopup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", omaPopupResponseCancelCB,
+               viewItem);
+       btn2 = elm_button_add(eoPopup);
+       elm_object_style_set(btn2, "popup");
+       elm_object_text_set(btn2, DM_SK_TEXT_OK);
+       elm_object_part_content_set(eoPopup, "button2", btn2);
+       evas_object_smart_callback_add(btn2, "clicked", omaPopupResponseOKCB,
+               viewItem);
+       ea_object_event_callback_add(eoPopup, EA_CALLBACK_BACK, popupBackCB, NULL);
+       evas_object_show(eoPopup);
+       prevOmaViewItem = viewItem;
 }
 
-char *DownloadView::getGenlistGroupLabel(void *data, Evas_Object *obj, const char *part)
+void DownloadView::omaPopupResponseOKCB(void *data, Evas_Object *obj,
+               void *event_info)
 {
-       DateGroup *dateGrp = static_cast<DateGroup *>(data);
-
-       if(!data || !obj || !part)
-               return NULL;
+       ViewItem *viewItem = (ViewItem *)data;
+       DownloadView& view = DownloadView::getInstance();
 
-       DP_LOGD("ViewItem::getListGroupLabel:part[%s] groupDateType[%d] obj[%p]", part, dateGrp->getType(), obj);
-       if (strncmp(part, "elm.text", strlen("elm.text")) == 0) {
-               DateUtil &inst = DateUtil::getInstance();
-               string msg;
-               string outBuf;
-               double udateTime = 0;
-               switch (dateGrp->getType()) {
-               case DATETIME::DATE_TYPE_PREVIOUS:
-                       msg = S_("IDS_COM_BODY_PREVIOUS_DAYS");
-                       break;
-               case DATETIME::DATE_TYPE_YESTERDAY:
-                       udateTime = inst.yesterdayTime()*1000;
-                       msg = S_("IDS_COM_BODY_YESTERDAY");
-                       msg += " (";
-                       inst.getDateStr(LOCALE_STYLE::FULL_DATE, udateTime, outBuf);
-                       msg += outBuf;
-                       msg += ")";
-                       break;
-               case DATETIME::DATE_TYPE_LATER:
-               case DATETIME::DATE_TYPE_TODAY:
-                       udateTime = inst.nowTime()*1000;
-                       msg = S_("IDS_COM_BODY_TODAY");
-                       msg += " (";
-                       inst.getDateStr(LOCALE_STYLE::FULL_DATE, udateTime, outBuf);
-                       msg += outBuf;
-                       msg += ")";
-                       break;
-               default :
-                       DP_LOGE("Cannot enter here");
-                       return NULL;
-               }
-               return strdup(msg.c_str());
-       }
-       return NULL;
+       DM_LOGI("");
+       if (viewItem)
+               viewItem->responseUserConfirm(true);
+       else
+               DM_LOGE("No viewItem");
+       view.removeOnlyPopupObj();
 }
 
-char *DownloadView::getGenlistGroupLabelCB(void *data, Evas_Object *obj, const char *part)
+void DownloadView::omaPopupResponseCancelCB(void *data, Evas_Object *obj,
+               void *event_info)
 {
-//     DP_LOGD_FUNC();
-       if(!data || !obj || !part)
-               return NULL;
+       ViewItem *viewItem = (ViewItem *)data;
+       DownloadView& view = DownloadView::getInstance();
 
-       DownloadView &view = DownloadView::getInstance();
-       return view.getGenlistGroupLabel(data, obj, part);
+       DM_LOGI("");
+       if (viewItem)
+               viewItem->responseUserConfirm(false);
+       else
+               DM_LOGE("No viewItem");
+
+       view.removeOnlyPopupObj();
 }
+#endif
 
-void DownloadView::cleanGenlistData()
+void DownloadView::popupBackCB(void *data, Evas_Object *obj, void *event_info)
 {
-       Elm_Object_Item *grpItem = NULL;
-       DP_LOGD_FUNC();
-       grpItem = m_today.glGroupItem();
-       if (grpItem)
-               elm_object_item_del(grpItem);
-       m_today.initData();
-       grpItem = m_yesterday.glGroupItem();
-       if (grpItem)
-               elm_object_item_del(grpItem);
-       m_yesterday.initData();
-       grpItem = m_previousDay.glGroupItem();
-       if (grpItem)
-               elm_object_item_del(grpItem);
-       m_previousDay.initData();
-       elm_genlist_clear(eoDldList);
+       DownloadView& view = DownloadView::getInstance();
+       view.removePopup();
 }
-
old mode 100644 (file)
new mode 100755 (executable)
index fd63d99..94d7c10
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * @author     Jungki Kwak (jungki.kwak@samsung.com)
  * @brief      item data class for download view
  */
+
+#include <stdio.h>
+
 #include "download-manager-viewItem.h"
 #include "download-manager-items.h"
 #include "download-manager-view.h"
 
+Elm_Genlist_Item_Class ViewItem::dldGenlistStyle;
+Elm_Genlist_Item_Class ViewItem::dldHistoryGenlistStyle;
+Elm_Genlist_Item_Class ViewItem::dldGroupTitleGenlistStyle;
+
 ViewItem::ViewItem(Item *item)
        : m_item(item)
        , m_glItem(NULL)
-       , m_progressBar(NULL)
        , m_checkedBtn(NULL)
        , m_checked(EINA_FALSE)
        , m_isRetryCase(false)
-       , m_dateGroupType(DATETIME::DATE_TYPE_NONE)
+       , m_isClickedFromNoti(false)
+       , m_isGroupTitle(false)
+       , m_insertAtFirst(false)
+       , m_group(VIEWITEM_GROUP::TODAY)
 {
        // FIXME need to makes exchange subject?? not yet, but keep it in mind!
        if (item) {
@@ -39,68 +48,81 @@ ViewItem::ViewItem(Item *item)
                item->subscribe(m_aptr_observer.get());
        }
 
-       dldGenlistStyle.item_style = "3text.3icon";
-#ifndef _TIZEN_PUBLIC
-       dldGenlistStyle.decorate_item_style = "mode/slide";
+#ifdef _TIZEN_2_3_UX
+       dldGenlistStyle.item_style = "dm/progress.main";
+#else
+       dldGenlistStyle.item_style = "3text.3icon.progress";
 #endif
        dldGenlistStyle.func.text_get = getGenlistLabelCB;
        dldGenlistStyle.func.content_get = getGenlistIconCB;
        dldGenlistStyle.func.state_get = NULL;
-       dldGenlistStyle.func.del = NULL;
+       dldGenlistStyle.func.del = deleteGenlistData;
        dldGenlistStyle.decorate_all_item_style = "edit_default";
 
-       dldHistoryGenlistStyle.item_style = "3text.1icon.2";
-#ifndef _TIZEN_PUBLIC
-       dldHistoryGenlistStyle.decorate_item_style = "mode/slide";
+#ifdef _TIZEN_2_3_UX
+       dldHistoryGenlistStyle.item_style = "2line.top";
+#else
+       dldHistoryGenlistStyle.item_style = "3text.1icon.1";
 #endif
        dldHistoryGenlistStyle.func.text_get = getGenlistLabelCB;
        dldHistoryGenlistStyle.func.content_get = getGenlistIconCB;
        dldHistoryGenlistStyle.func.state_get = NULL;
-       dldHistoryGenlistStyle.func.del = NULL;
+       dldHistoryGenlistStyle.func.del = deleteGenlistData;
        dldHistoryGenlistStyle.decorate_all_item_style = "edit_default";
 
-       dldGenlistSlideStyle.item_style = "3text.1icon.2";
-#ifndef _TIZEN_PUBLIC
-       dldGenlistSlideStyle.decorate_item_style = "mode/slide2";
-#endif
-       dldGenlistSlideStyle.func.text_get = getGenlistLabelCB;
-       dldGenlistSlideStyle.func.content_get= getGenlistIconCB;
-       dldGenlistSlideStyle.func.state_get = NULL;
-       dldGenlistSlideStyle.func.del = NULL;
-       dldGenlistSlideStyle.decorate_all_item_style = "edit_default";
+       dldGroupTitleGenlistStyle.item_style = "groupindex";
+       dldGroupTitleGenlistStyle.func.text_get = getGenlistLabelCB;
+       dldGroupTitleGenlistStyle.func.content_get = NULL;
+       dldGroupTitleGenlistStyle.func.state_get = NULL;
+       dldGroupTitleGenlistStyle.func.del = deleteGenlistData;
+       dldGroupTitleGenlistStyle.decorate_all_item_style = NULL;
+}
 
+ViewItem::ViewItem(VIEWITEM_GROUP::GROUP type)
+       : m_item(NULL)
+       , m_glItem(NULL)
+       , m_checkedBtn(NULL)
+       , m_checked(EINA_FALSE)
+       , m_isRetryCase(false)
+       , m_isClickedFromNoti(false)
+       , m_isGroupTitle(true)
+       , m_insertAtFirst(false)
+       , m_group(type)
+{
+       DM_LOGD("");
 }
 
 ViewItem::~ViewItem()
 {
-       DP_LOGD_FUNC();
+       DM_LOGD("");
 }
 
 void ViewItem::create(Item *item)
 {
        ViewItem *newViewItem = new ViewItem(item);
-
+       newViewItem->setInsertAtFirst(true);
        DownloadView &view = DownloadView::getInstance();
        view.attachViewItem(newViewItem);
 }
 
 void ViewItem::destroy()
 {
-       DP_LOGD("ViewItem::destroy");
+       DM_LOGD("");
        /* After item is destory,
           view item also will be destroyed through event system */
        if (m_item) {
-#ifndef _TIZEN_PUBLIC
-               DownloadView &view = DownloadView::getInstance();
-               if (this == view.sweepedItem()) {
-                       DP_LOGD("reset sweeped item[%p]", view.sweepedItem());
-                       view.setSweepedItem(NULL);
-               }
-#endif
                m_item->destroy();
        }
 }
 
+void ViewItem::cancel()
+{
+       DM_LOGD("");
+       if (m_item) {
+               m_item->cancel();
+       }
+}
+
 void ViewItem::updateCB(void *data)
 {
        if (data)
@@ -110,53 +132,139 @@ void ViewItem::updateCB(void *data)
 void ViewItem::updateFromItem()
 {
        DownloadView &view = DownloadView::getInstance();
-       DP_LOGD("ViewItem::updateFromItem() ITEM::[%d]", state());
-       if (state() == ITEM::DESTROY) {
-               int tempType = 0;
-               DP_LOGD("ViewItem::updateFromItem() ITEM::DESTROY");
+       ITEM::STATE state = getState();
+       bool ItemClassUpdated = false;
+       Elm_Object_Item *item = NULL;
+       ViewItem *viewItem = NULL;
+       DM_LOGV("state[%d]", state);
+#ifdef _ENABLE_OMA_DOWNLOAD
+       /* The OMA popup should be changed to layout style */
+       if (state == ITEM::REQUEST_USER_CONFIRM) {
+               view.showOMAPopup(m_item->getUserMessage(), this);
+               return;
+       }
+#endif
+
+       if (state == ITEM::DESTROY) {
+               DM_LOGD("DESTROY");
                if (m_item)
                        m_item->deSubscribe(m_aptr_observer.get());
                m_aptr_observer->clear();
-               elm_object_item_del(m_glItem);
-               m_glItem = NULL;
-               tempType = dateGroupType();
+               if (m_glItem == NULL) {
+                       DM_LOGE("Check NULL:m_glItem");
+                       return;
+               }
+               DM_LOGTEST("DEL:glItem[%p]viewItem[%p]",m_glItem, this);
+
+               item = elm_genlist_item_next_get(m_glItem);
+               if (item) {
+                       viewItem = (ViewItem *)elm_object_item_data_get(item);
+                       if (viewItem && viewItem->isGroupTitle()) {
+                               item = elm_genlist_item_prev_get(m_glItem);
+                               if (item) {
+                                       viewItem = (ViewItem *)elm_object_item_data_get(item);
+                                       if (viewItem && !(viewItem->isGroupTitle()))
+                                               elm_object_item_signal_emit(item,
+                                                       "elm,state,bottomline,hide", "");
+                               }
+                       }
+               }
+
                view.detachViewItem(this);
-               view.handleGenlistGroupItem(tempType);
                return;
        }
        if (m_glItem == NULL) {
+               DM_LOGE("Check NULL:m_glItem");
                return;
        }
-       if (state() == ITEM::SUSPENDED) {
+
+       if (isFinishedWithErr() &&
+                       m_item->getErrorCode() == ERROR::NOT_ENOUGH_MEMORY) {
+               string msg;
+               string installDir = m_item->getInstallDir();
+               if (installDir.compare(DM_DEFAULT_PHONE_INSTALL_DIR) == 0) {
+                       FILE *fp = NULL;
+                       fp = fopen(DM_DEFAULT_MMC_INSTALL_DIR, "r");
+                       if (fp != NULL) {
+                               msg = ERROR_POPUP_LOW_MEM_DEFAULT_PHONE_WITH_SD_CARD;
+                               fclose(fp);
+                       } else
+                               msg = ERROR_POPUP_LOW_MEM_DEFAULT_PHONE_WITHOUT_SD_CARD;
+               } else if (installDir.compare(DM_DEFAULT_MMC_INSTALL_DIR) == 0) {
+                       FileUtility  fileObj;
+                       if (fileObj.checkAvailableMemory(0))
+                               msg = ERROR_POPUP_LOW_MEM_DEFAULT_MMC_WITH_PHONE_MEMORY_AVAILABLE;
+                       else
+                               msg = ERROR_POPUP_LOW_MEM_DEFAULT_MMC_WITH_NO_PHONE_MEMORY_AVAILABLE;
+               } else {
+                       DM_LOGD("Can not enter here");
+                       return;
+               }
+               view.showMemoryFullPopup(msg);
+       }
+
+       DM_LOGTEST("Update:glItem[%p]viewItem[%p]",m_glItem, this);
+       if (state == ITEM::SUSPENDED) {
                return;
-       } else if (state() == ITEM::DOWNLOADING) {
-               if (fileSize() > 0 && m_progressBar) {
+       } else if (state == ITEM::DOWNLOADING) {
+#ifdef _TIZEN_2_3_UX
+               Evas_Object *progress = elm_object_item_part_content_get(m_glItem, "elm.icon");
+#else
+               Evas_Object *progress = elm_object_item_part_content_get(m_glItem, "elm.swallow.progress");
+#endif
+               if (getFileSize() > 0 && progress) {
                        double percentageProgress = 0.0;
-                       percentageProgress = (double)(receivedFileSize()) /
-                               (double)(fileSize());
-                       DP_LOGD("progress value[%.2f]",percentageProgress);
-                       elm_progressbar_value_set(m_progressBar, percentageProgress);
+                       percentageProgress = (double)getReceivedFileSize() /
+                                       (double)getFileSize();
+                       DM_LOGV("progress value[%.2f]",percentageProgress);
+                       elm_progressbar_value_set(progress, percentageProgress);
                }
+#ifdef _TIZEN_2_3_UX
+               elm_genlist_item_fields_update(m_glItem,"elm.text.progress",
+                       ELM_GENLIST_ITEM_FIELD_TEXT);
+#else
                elm_genlist_item_fields_update(m_glItem,"elm.text.2",
                        ELM_GENLIST_ITEM_FIELD_TEXT);
-       } else if (m_isRetryCase && state() == ITEM::RECEIVING_DOWNLOAD_INFO) {
+#endif
+       } else if (m_isRetryCase && state == ITEM::PREPARE_TO_RETRY) {
                elm_genlist_item_item_class_update(m_glItem, &dldGenlistStyle);
+               ItemClassUpdated = true;
        } else if (!isFinished()) {
                elm_genlist_item_update(m_glItem);
        } else {/* finished state */
-               if (state() == ITEM::FINISH_DOWNLOAD)
+               /* If item is not in today group, move it to today group  */
+               if (m_group != VIEWITEM_GROUP::TODAY) {
+                       /* 1. set item data NULL, to prevent deletion of Viewitem */
+                       elm_object_item_data_set(m_glItem, static_cast<void*>(NULL));
+                       /* 2. delete the item from group */
+                       view.detachViewItem(this);
+                       /* 3. set flag to insert the item at first Position */
+                       m_insertAtFirst = true;
+                       /* 4. Insert the item to DownloadView */
+                       view.attachViewItem(this);
+               } else {
                        elm_genlist_item_item_class_update(m_glItem, &dldHistoryGenlistStyle);
-               else
-                       elm_genlist_item_item_class_update(m_glItem, &dldGenlistSlideStyle);
-               if (view.isGenlistEditMode())
+               }
+               ItemClassUpdated = true;
+               if (view.isGenlistEditMode()) {
                        elm_object_item_disabled_set(m_glItem, EINA_FALSE);
+                       view.handleCheckedState();
+               }
+       }
+
+       if (ItemClassUpdated) {
+               item = elm_genlist_item_next_get(m_glItem);
+               if (item)
+                       viewItem = (ViewItem *)elm_object_item_data_get(item);
+               if (viewItem && viewItem->isGroupTitle()) {
+                       elm_object_item_signal_emit(m_glItem,
+                               "elm,state,bottomline,hide", "");
+               }
        }
 }
 
 char *ViewItem::getGenlistLabelCB(void *data, Evas_Object *obj, const char *part)
 {
-//     DP_LOGD_FUNC();
-
        if(!data || !obj || !part)
                return NULL;
 
@@ -164,46 +272,53 @@ char *ViewItem::getGenlistLabelCB(void *data, Evas_Object *obj, const char *part
        return item->getGenlistLabel(obj, part);
 }
 
-char *ViewItem::getGenlistLabel(Evas_Object *obj,      const char *part)
-{
-       DP_LOGD("ViewItem::getListLabel:part[%s]", part);
-
-#ifndef _TIZEN_PUBLIC
-       if (strncmp(part, "elm.text.1", strlen("elm.text.1")) == 0 ||
-               strncmp(part, "elm.slide.text.1", strlen("elm.slide.text.1")) == 0 ||
-               strncmp(part, "elm.slide.text.2", strlen("elm.slide.text.2")) == 0) {
+char *ViewItem::getGenlistLabel(Evas_Object *obj, const char *part)
+{
+       DM_LOGD("part[%s]", part);
+#ifdef _TIZEN_2_3_UX
+               if (strcmp(part, "elm.text.main.left.top") == 0) {
+                       return strdup(getTitle());
+               } else if (strcmp(part, "elm.text.sub.left.bottom") == 0) {
+                       return (char *)getMessage();
+               } else if (strcmp(part, "elm.text.sub.right.bottom") == 0) {
+                       if (isFinished()) {
+                               string outBuf;
+                               DateUtil &inst = DateUtil::getInstance();
+                               inst.getDateStr(getFinishedTime(), outBuf);
+                               return strdup(outBuf.c_str());
+                       }
+               } else if (strcmp(part, "elm.text.main") == 0) {
+                       if (m_isGroupTitle)
+                               return (char *)getGroupTitle();
+                       else
+                               return strdup(getTitle());
+               } else if (strcmp(part, "elm.text.progress") == 0) {
+                       return (char *)getMessage();
+               }
 #else
        if (strncmp(part, "elm.text.1", strlen("elm.text.1")) == 0) {
-#endif
                return strdup(getTitle());
        } else if (strncmp(part, "elm.text.2", strlen("elm.text.2")) == 0) {
-               return strdup(getMessage());
+               return (char *)getMessage();
        } else if (strncmp(part, "elm.text.3", strlen("elm.text.3")) == 0) {
-               if (!isFinished()) {
-                       return NULL;
-               } else {
+               if (isFinished()) {
                        string outBuf;
                        DateUtil &inst = DateUtil::getInstance();
-                       double udateTime = finishedTime() * 1000;
-                       if (dateGroupType() == DATETIME::DATE_TYPE_PREVIOUS
-                               || dateGroupType() == DATETIME::DATE_TYPE_LATER)
-                               inst.getDateStr(LOCALE_STYLE::SHORT_DATE, udateTime, outBuf);
-                       else
-                               inst.getDateStr(LOCALE_STYLE::TIME, udateTime, outBuf);
+                       inst.getDateStr(getFinishedTime(), outBuf);
                        return strdup(outBuf.c_str());
                }
-       } else {
-               DP_LOGD("No Implementation");
-               return NULL;
+       } else if (strncmp(part, "elm.text", strlen("elm.text")) == 0) {
+               return (char *)getGroupTitle();
        }
+#endif
+       return NULL;
 }
 
 Evas_Object *ViewItem::getGenlistIconCB(void *data, Evas_Object *obj,
        const char *part)
 {
-//     DP_LOGD_FUNC();
        if(!data || !obj || !part) {
-               DP_LOGE("parameter is NULL");
+               DM_LOGE("NULL Check:parameter");
                return NULL;
        }
 
@@ -213,203 +328,282 @@ Evas_Object *ViewItem::getGenlistIconCB(void *data, Evas_Object *obj,
 
 Evas_Object *ViewItem::getGenlistIcon(Evas_Object *obj, const char *part)
 {
-       //DP_LOGD("ViewItem::getGenlistIcon:part[%s]state[%s]", part, stateStr());
+       DM_LOGD("part[%s]state[%s]", part, stateStr());
 
+#ifdef _TIZEN_2_3_UX
+       DownloadView &view = DownloadView::getInstance();
+       if (strcmp(part,"elm.icon.1") == 0) {
+               Evas_Object *layout = elm_layout_add(obj);
+               elm_layout_theme_set(layout, "layout", "list/B/type.3", "default");
+               Evas_Object *icon = elm_icon_add(obj);
+               elm_image_file_set(icon, getIconPath(), NULL);
+               evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_layout_content_set(layout, "elm.swallow.content", icon);
+               return layout;
+       } else if (getState() < ITEM::FINISH_DOWNLOAD) {
+               if (strcmp(part, "elm.icon") == 0)
+                       return createProgressBar(obj);
+               else if (strcmp(part,"elm.icon.2") == 0)
+                       return createCancelBtn(obj);
+       } else if (view.isGenlistEditMode() && strcmp(part,"elm.icon.2") == 0) {
+               Evas_Object *layout = elm_layout_add(obj);
+               elm_layout_theme_set(layout, "layout", "list/C/type.2", "default");
+               Evas_Object *check = elm_check_add(obj);
+               elm_check_state_pointer_set(check, &m_checked);
+               evas_object_repeat_events_set(check, EINA_FALSE);
+               evas_object_propagate_events_set(check, EINA_FALSE);
+               evas_object_smart_callback_add(check, "changed", checkBoxChangedCB, this);
+               elm_layout_content_set(layout, "elm.swallow.content", check);
+               m_checkedBtn = check;
+               return layout;
+       }
+       return NULL;
+#else
        if (elm_genlist_decorate_mode_get(obj) && isFinished()) {
                if (strncmp(part,"elm.edit.icon.1", strlen("elm.edit.icon.1")) == 0) {
                        Evas_Object *checkBtn = elm_check_add(obj);
+                       elm_object_style_set(checkBtn, "default/genlist");
                        elm_check_state_pointer_set(checkBtn, &m_checked);
-                       evas_object_smart_callback_add(checkBtn, "changed", checkChangedCB,
-                               this);
+                       evas_object_repeat_events_set(checkBtn, EINA_TRUE);
+                       evas_object_propagate_events_set(checkBtn, EINA_FALSE);
+                       elm_access_object_unregister(checkBtn);
                        m_checkedBtn = checkBtn;
                        return checkBtn;
                } else if (strncmp(part,"elm.edit.icon.2", strlen("elm.edit.icon.2")) ==
                        0) {
                        return NULL;
                }
-
        }
        /* elm.icon.2 should be checked prior to elm.icon */
        if (strncmp(part,"elm.icon.2", strlen("elm.icon.2")) == 0) {
-               if (state() == ITEM::RECEIVING_DOWNLOAD_INFO ||
-                       state() == ITEM::DOWNLOADING ||
+               if (getState() == ITEM::RECEIVING_DOWNLOAD_INFO ||
+                       getState() == ITEM::DOWNLOADING ||
                        isPreparingDownload())
                        return createCancelBtn(obj);
                else
                        return NULL;
        } else if (strncmp(part,"elm.icon.1", strlen("elm.icon.1")) == 0 ||
                strncmp(part, "elm.icon", strlen("elm.icon")) == 0) {
-//     if (strncmp(part,"elm.icon.1", strlen("elm.icon.1")) == 0) {
-               Evas_Object *icon = elm_icon_add(obj);
-               elm_icon_file_set(icon, getIconPath(), NULL);
-               evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL,1,1);
+               Evas_Object *icon = elm_image_add(obj);
+               elm_image_file_set(icon, getIconPath(), NULL);
+               evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
                return icon;
        } else if (strcmp(part,"elm.swallow.progress") == 0) {
                return createProgressBar(obj);
-#ifndef _TIZEN_PUBLIC
-       } else if (strcmp(part,"elm.slide.swallow.1") == 0) {
-               if (isFinished())
-                       return createDeleteBtn(obj);
-               else
-                       return NULL;
-       } else if (strcmp(part,"elm.slide.swallow.2") == 0) {
-               if (isFinishedWithErr())
-                       return createRetryBtn(obj);
-               else
-                       return NULL;
-#endif
        } else {
-               DP_LOGE("Cannot enter here");
+               DM_LOGE("Cannot enter here");
                return NULL;
        }
+#endif
 }
 
-void ViewItem::checkChangedCB(void *data, Evas_Object *obj,
-       void *event_info)
-{
-       DownloadView &view = DownloadView::getInstance();
-       DP_LOGD_FUNC();
-       //ViewItem *item = static_cast<ViewItem *>(data);
-       //DP_LOGD("checked[%d] viewItem[%p]",(bool)(item->checkedValue()),item);
-       view.handleCheckedState();
-}
-
-#ifndef _TIZEN_PUBLIC
-void ViewItem::sweepRight()
-{
-       DP_LOGD_FUNC();
-       if (!m_glItem) {
-               DP_LOGE("genlist item is NULL");
-               return;
-       }
-       elm_genlist_item_decorate_mode_set(m_glItem,"slide", EINA_TRUE);
-       elm_genlist_item_select_mode_set(m_glItem, ELM_OBJECT_SELECT_MODE_NONE);
-}
-
-void ViewItem::sweepLeft()
+#ifdef _TIZEN_2_3_UX
+void ViewItem::checkBoxChangedCB(void *data, Evas_Object *obj, void *event_info)
 {
-       DP_LOGD_FUNC();
-       if (!m_glItem) {
-               DP_LOGE("genlist item is NULL");
+       DM_LOGD("");
+       if (!obj || !data) {
+               DM_LOGD("NULL check:parameter");
                return;
        }
-       elm_genlist_item_decorate_mode_set(m_glItem,"slide", EINA_FALSE);
-       elm_genlist_item_select_mode_set(m_glItem, ELM_OBJECT_SELECT_MODE_NONE);
+       DownloadView &view = DownloadView::getInstance();
+       ViewItem *item = (ViewItem *)data;
+       item->setCheckedValue(elm_check_state_get(obj));
+       view.handleCheckedState();
 }
 #endif
 
-void ViewItem::clickedDeleteButton()
+void ViewItem::deleteGenlistData(void *data, Evas_Object *obj)
 {
-       DP_LOGD("ViewItem::clickedDeleteButton()");
-       m_item->deleteFromDB();
-       destroy();
+       DM_LOGD("");
+       ViewItem *item = static_cast<ViewItem*>(data);
+       if (item)
+               delete item;
 }
 
+
 void ViewItem::clickedCancelButton()
 {
-       DP_LOG("ViewItem::clickedCancelButton()");
-       requestCancel();
+       DM_LOGV("");
+       if (m_item)
+               m_item->cancel();
 }
 
-void ViewItem::requestCancel()
+void ViewItem::clickedCanceledRetryButton()
 {
-       if (m_item) {
-               m_item->cancel();
+       DM_LOGV("");
+       if (m_item && m_isClickedFromNoti) {
+               m_item->deleteCompleteNoti();
        }
+       m_isClickedFromNoti = false;
 }
 
 void ViewItem::clickedRetryButton()
 {
-       DP_LOG_FUNC();
+       DM_LOGV("");
        retryViewItem();
+       m_isClickedFromNoti = false;
 }
 
 void ViewItem::clickedGenlistItem()
 {
        DownloadView &view = DownloadView::getInstance();
-       DP_LOG_FUNC();
+       DM_LOGD("");
        if (!m_item) {
-               DP_LOGE("m_item is NULL");
+               DM_LOGE("NULL Check:m_item");
                return;
        }
-       if (view.isGenlistEditMode()) {
-               m_checked = !m_checked;
-               if (m_checkedBtn)
-                       elm_genlist_item_fields_update(genlistItem(),"elm.edit.icon.1",
-                               ELM_GENLIST_ITEM_FIELD_CONTENT);
-               else
-                       DP_LOGE("m_checkedBtn is NULL");
+       if (m_glItem)
+               elm_genlist_item_selected_set(m_glItem, EINA_FALSE);
+       else
+               DM_LOGE("Cannot enter here! genlist item cannot be NULL");
+
+       if (view.isGenlistEditMode() && m_glItem) {
+               Evas_Object *checkBox = NULL;
+               Eina_Bool state;
+#ifdef _TIZEN_2_3_UX
+               Evas_Object *checkLayout;
+               checkLayout = elm_object_item_part_content_get(m_glItem, "elm.icon.2");
+               if (checkLayout)
+                       checkBox = elm_object_part_content_get(checkLayout, "elm.swallow.content");
+#else
+               checkBox = elm_object_item_part_content_get(m_glItem, "elm.edit.icon.1");
+#endif
+               if (checkBox) {
+                       state = elm_check_state_get(checkBox);
+                       m_checked = !state;
+                       elm_check_state_set(checkBox, m_checked);
+               }
                view.handleCheckedState();
-       } else if (state() == ITEM::FINISH_DOWNLOAD) {
-               bool ret = m_item->play();
-               if (ret == false) {
-                       string desc = __("IDS_BR_POP_UNABLE_TO_OPEN_FILE");
-                       view.showErrPopup(desc);
+       } else if (getState() == ITEM::FINISH_DOWNLOAD) {
+               if (m_item->isExistedFile()) {
+                       bool ret = m_item->play();
+                       if (ret) {
+                               m_item->deleteFromDB();
+                               destroy();
+                       } else {
+                               string msg[2];
+                               msg[0] = __("IDS_DM_HEADER_UNABLE_TO_OPEN_FILE");
+#ifdef _TIZEN_2_3_UX
+                               msg[1] = __("IDS_DM_BODY_UNABLE_TO_FIND_AN_APPLICATION_TO_OPEN_THIS_FILE");
+#else
+                               msg[1] = S_("IDS_COM_BODY_NO_APPLICATIONS_CAN_PERFORM_THIS_ACTION");
+#endif
+                               view.showErrPopup(msg);
+                       }
+               } else {
+                       string msg[2];
+                       msg[0] = __("IDS_DM_HEADER_UNABLE_TO_OPEN_FILE");
+#ifdef _TIZEN_2_3_UX
+                       msg[1] = __("IDS_DM_BODY_THIS_FILE_CANNOT_BE_FOUND_TAP_DOWNLOAD_TO_TRY_DOWNLOADING_IT_AGAIN");
+#else
+                       msg[1] = __("IDS_DM_POP_FILE_DOES_NOT_EXIST_DOWNLOAD_AGAIN_Q");
+#endif
+                       view.showRetryPopup(this, msg);
                }
        } else if (isFinishedWithErr()) {
-               retryViewItem();
+               string msg[2];
+               msg[0] = __("IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB");
+#ifdef _TIZEN_2_3_UX
+               msg[1] = __("IDS_DM_BODY_TAP_DOWNLOAD_TO_TRY_AGAIN");
+#else
+               msg[1] = __("IDS_DM_POP_FILE_NOT_RECEIVED_DOWNLOAD_AGAIN_Q");
+#endif
+               view.showRetryPopup(this, msg);
        }
-       elm_genlist_item_selected_set(genlistItem(), EINA_FALSE);
 }
 
 Elm_Genlist_Item_Class *ViewItem::elmGenlistStyle()
 {
        /* Change the genlist style class in case of download history item */
-       if (state() == ITEM::FINISH_DOWNLOAD)
+       if (m_isGroupTitle)
+               return &dldGroupTitleGenlistStyle;
+       if (getState() >= ITEM::FINISH_DOWNLOAD)
                return &dldHistoryGenlistStyle;
-       else if (isFinishedWithErr())
-                return &dldGenlistSlideStyle;
        else
                return &dldGenlistStyle;
 }
 
+const char *ViewItem::getGroupTitle()
+{
+       switch(m_group) {
+               case VIEWITEM_GROUP::TODAY:
+                       return strdup(DM_BODY_TEXT_TODAY);
+               case VIEWITEM_GROUP::YESTERDAY:
+                       return strdup(DM_BODY_TEXT_YESTERDAY);
+               case VIEWITEM_GROUP::OLDER:
+                       return strdup(__("IDS_DM_HEADER_OLDER"));
+               default:
+                       return NULL;
+       }
+}
+
 const char *ViewItem::getMessage()
 {
-       DP_LOGD("ViewItem state() ITEM::[%d]", state());
-       const char *buff = NULL;
-       switch(state()) {
+       DM_LOGV("state[%d]", getState());
+       char *buff = NULL;
+       switch(getState()) {
        case ITEM::IDLE:
        case ITEM::REQUESTING:
+       case ITEM::QUEUED:
        case ITEM::PREPARE_TO_RETRY:
        case ITEM::RECEIVING_DOWNLOAD_INFO:
-       /* Do not display string and show only the progress bar */
-//             buff = __("Check for download");
-               buff = "";
+#ifdef _TIZEN_2_3_UX
+               buff = strdup(__("IDS_DM_BODY_PREPARING_ING_M_STATUS_ABB"));
+#else
+               buff = strdup(__("IDS_DM_BODY_PREPARING_TO_DOWNLOAD_ING"));
+#endif
                break;
        case ITEM::DOWNLOADING:
        case ITEM::SUSPENDED:
-               buff = getHumanFriendlyBytesStr(receivedFileSize(), true);
-//             DP_LOGD("%s", buff);
+               getHumanFriendlyBytesStr(getReceivedFileSize(), true, &buff);
                break;
        case ITEM::CANCEL:
-               buff = S_("IDS_COM_POP_CANCELLED");
+               buff = strdup(__("IDS_DM_BODY_DOWNLOAD_CANCELLED_M_STATUS_ABB"));
                break;
        case ITEM::FAIL_TO_DOWNLOAD:
-               buff = getErrMsg();
+               buff = strdup(__("IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"));
+               break;
+       case ITEM::FINISH_DOWNLOAD:
+               buff = strdup(senderName().c_str());
                break;
        case ITEM::REGISTERING_TO_SYSTEM:
-               buff = "";
                break;
-       case ITEM::FINISH_DOWNLOAD:
-               buff =  __("IDS_EMAIL_BODY_COMPLETE");
+#ifdef _ENABLE_OMA_DOWNLOAD
+       case ITEM::NOTIFYING:
+#ifdef _TIZEN_2_3_UX
+               buff = strdup(__("IDS_DM_BODY_NOTIFYING_SERVER_ING"));
+#else
+               buff = strdup(__("IDS_DM_BODY_NOTIFYING_SERVER_ING_ABB"));
+#endif
+               break;
+#endif
+#ifdef _ENABLE_WAITING_RO
+       case ITEM::WAITING_RO:
+#ifdef _TIZEN_2_3_UX
+               buff = strdup(__("IDS_DM_BODY_ACTIVATING_DRM_CONTENT_ING"));
+#else
+               buff = strdup(S_("IDS_COM_POP_ACTIVATING"));
+#endif
                break;
+#endif
        default:
-               buff = "";
                break;
        }
        return buff;
 }
 
-const char *ViewItem::getHumanFriendlyBytesStr(unsigned long int bytes,
-       bool progressOption)
+void ViewItem::getHumanFriendlyBytesStr(unsigned long long bytes,
+       bool progressOption, char **buff)
 {
        double doubleTypeBytes = 0.0;
        const char *unitStr[4] = {"B", "KB", "MB", "GB"};
        int unit = 0;
-       unsigned long int unitBytes = bytes;
+       unsigned long long unitBytes = bytes;
 
        /* using bit operation to avoid floating point arithmetic */
-       for (unit=0; (unitBytes > 1024 && unit < 4) ; unit++) {
+       for (unit = 0; (unitBytes > 1024 && unit < 4); unit++) {
                unitBytes = unitBytes >> 10;
        }
 
@@ -417,94 +611,100 @@ const char *ViewItem::getHumanFriendlyBytesStr(unsigned long int bytes,
        doubleTypeBytes = ((double)bytes / (double)(unitBytes));
        // FIXME following code should be broken into another function, but leave it now to save function call time.s
        char str[64] = {0};
-       if (progressOption && fileSize() != 0) {
+
+       if (unit > 3)
+               unit = 3;
+
+       if (progressOption && getFileSize() != 0) {
                /* using fixed point arithmetic to avoid floating point arithmetic */
                const int fixed_point = 6;
-               unsigned long long int receivedBytes = receivedFileSize() << fixed_point;
-               unsigned long long int result = (receivedBytes*100) / fileSize();
-               unsigned long long int result_int = result >> fixed_point;
-               unsigned long long int result_fraction = result &
+               unsigned long long receivedBytes = getReceivedFileSize() << fixed_point;
+               unsigned long long result = (receivedBytes*100) / getFileSize();
+               unsigned long long result_int = result >> fixed_point;
+               unsigned long long result_fraction = result &
                        ~(0xFFFFFFFF << fixed_point);
                if (unit == 0)
-                       snprintf(str, sizeof(str), "%lu %s / %llu.%.2llu %%",
-                               bytes, unitStr[unit], result_int, result_fraction);
+                       snprintf(str, sizeof(str), "%llu.%.2llu %%", result_int,
+                                       result_fraction);
                else
-                       snprintf(str, sizeof(str), "%.2f %s / %llu.%.2llu %%",
-                               doubleTypeBytes, unitStr[unit], result_int, result_fraction);
+                       snprintf(str, sizeof(str), "%llu.%.2llu %%", result_int,
+                                       result_fraction);
        } else {
                if (unit == 0)
-                       snprintf(str, sizeof(str), "%lu %s", bytes, unitStr[unit]);
+                       snprintf(str, sizeof(str), "%llu %s", bytes, unitStr[unit]);
                else
                        snprintf(str, sizeof(str), "%.2f %s", doubleTypeBytes, unitStr[unit]);
        }
        str[63] = '\0';
-       string temp = string(str);
-       return temp.c_str();
+       *buff = strdup(str);
+       return;
 }
 
-unsigned long int ViewItem::receivedFileSize()
+unsigned long long ViewItem::getReceivedFileSize()
 {
        if (m_item)
-               return m_item->receivedFileSize();
+               return m_item->getReceivedFileSize();
 
        return 0;
 }
 
-unsigned long int ViewItem::fileSize()
+unsigned long long ViewItem::getFileSize()
 {
        if (m_item)
-               return m_item->fileSize();
+               return m_item->getFileSize();
 
        return 0;
 }
 
 const char *ViewItem::getTitle()
 {
-       const char *title = NULL;
-       if (m_item)
-               title = m_item->title().c_str();
-
-       if (!title)
-               return S_("IDS_COM_BODY_NO_NAME");
-
-       return title;
+       if (!m_item ||m_item->getTitle().empty())
+               return DM_BODY_TEXT_NO_NAME;
+       return m_item->getTitle().c_str();
 }
 
 Evas_Object *ViewItem::createProgressBar(Evas_Object *parent)
 {
        Evas_Object *progress = NULL;
        if (!parent) {
-               DP_LOGE("parent is NULL");
+               DM_LOGE("NULL Check:parent");
                return NULL;
        }
        progress = elm_progressbar_add(parent);
-       setProgressBar(progress);
        if (isFinished()) {
-               DP_LOGE("Cannot enter here. finished item has othere genlist style");
+               DM_LOGE("Cannot enter here. finished item has othere genlist style");
                return NULL;
        }
 
-       if (fileSize() == 0 || isPreparingDownload()) {
-               //DP_LOGD("Pending style::progressBar[%p]",progress);
+       if (getFileSize() == 0 || isPreparingDownload()) {
+               //DM_LOGI("Pending style::progressBar[%p]",progress);
+#ifdef _TIZEN_2_3_UX
+               elm_object_style_set(progress, "pending");
+#else
                elm_object_style_set(progress, "pending_list");
+#endif
                elm_progressbar_horizontal_set(progress, EINA_TRUE);
                evas_object_size_hint_align_set(progress, EVAS_HINT_FILL, EVAS_HINT_FILL);
                evas_object_size_hint_weight_set(progress, EVAS_HINT_EXPAND,
                        EVAS_HINT_EXPAND);
                elm_progressbar_pulse(progress, EINA_TRUE);
        } else {
-               //DP_LOGD("List style::progressBar[%p] fileSize[%d] state[%d]",progress, fileSize(),state());
+               //DM_LOGI("List style::progressBar[%p] fileSize[%d] state[%d]",progress, getFileSize(),getState());
+#ifdef _TIZEN_2_3_UX
+               elm_object_style_set(progress, "default");
+#else
                elm_object_style_set(progress, "list_progress");
+#endif
                elm_progressbar_horizontal_set(progress, EINA_TRUE);
 
                if (isCompletedDownload())
                        elm_progressbar_value_set(progress, 1.0);
                /* When realized event is happened, the progress is created.
                   This is needed for that case */
-               else if (state() == ITEM::DOWNLOADING) {
+               else if (getState() == ITEM::DOWNLOADING) {
                        double percentageProgress = 0.0;
-                       percentageProgress = (double)(receivedFileSize()) /
-                               (double)(fileSize());
+                       percentageProgress = (double)(getReceivedFileSize()) /
+                               (double)(getFileSize());
                        elm_progressbar_value_set(progress, percentageProgress);
                }
        }
@@ -512,124 +712,67 @@ Evas_Object *ViewItem::createProgressBar(Evas_Object *parent)
        return progress;
 }
 
-void ViewItem::updateCheckedBtn()
-{
-       if (m_checkedBtn)
-               elm_check_state_pointer_set(m_checkedBtn,&m_checked);
-}
-
-#ifndef _TIZEN_PUBLIC
-Evas_Object *ViewItem::createDeleteBtn(Evas_Object *parent)
-{
-       DP_LOGD("DeleteButton::create()");
-       Evas_Object *button = elm_button_add(parent);
-       elm_object_style_set(button, "text_only/sweep");
-       elm_object_text_set(button, S_("IDS_COM_OPT_DELETE"));
-       evas_object_propagate_events_set(button, EINA_FALSE);
-       evas_object_smart_callback_add(button ,"clicked", deleteBtnClickedCB, this);
-       return button;
-}
-
-Evas_Object *ViewItem::createRetryBtn(Evas_Object *parent)
+Evas_Object *ViewItem::createCancelBtn(Evas_Object *parent)
 {
-       DP_LOGD("DeleteButton::create()");
+       DM_LOGV ("");
+#ifdef _TIZEN_2_3_UX
+       Evas_Object *layout = elm_layout_add(parent);
+       elm_layout_theme_set(layout, "layout", "list/C/type.1", "default");
        Evas_Object *button = elm_button_add(parent);
-       elm_object_style_set(button, "text_only/sweep");
-       elm_object_text_set(button, __("IDS_BR_SK_RETRY"));
+       elm_object_style_set(button, "dm_cancel_button");
+       Evas_Object *icon = elm_image_add(parent);
+       elm_image_file_set(icon, DM_CANCEL_BUTTON_ICON_PATH, NULL);
+       evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_part_content_set(button, "elm.swallow.icon", icon);
+       elm_object_part_content_set(layout, "elm.swallow.content", button);
        evas_object_propagate_events_set(button, EINA_FALSE);
-       evas_object_smart_callback_add(button ,"clicked", retryBtnClickedCB, this);
-       return button;
-}
-#endif
-
-void ViewItem::deleteBtnClickedCB(void *data, Evas_Object *obj, void *event_info)
-{
-       DP_LOGD_FUNC();
-       if (!data) {
-               DP_LOGE("data is NULL");
-               return;
-       }
-       ViewItem *viewItem = static_cast<ViewItem *>(data);
-       viewItem->clickedDeleteButton();
-}
-
-void ViewItem::retryBtnClickedCB(void *data, Evas_Object *obj, void *event_info)
-{
-       DP_LOGD_FUNC();
-       if (!data) {
-               DP_LOGE("data is NULL");
-               return;
-       }
-       ViewItem *viewItem = static_cast<ViewItem *>(data);
-       viewItem->clickedRetryButton();
-}
-
-Evas_Object *ViewItem::createCancelBtn(Evas_Object *parent)
-{
-       DP_LOGD_FUNC();
+       evas_object_smart_callback_add(button,"clicked", cancelBtnClickedCB, this);
+       return layout;
+#else
        Evas_Object *button = elm_button_add(parent);
-       elm_object_part_content_set(parent, "btn_style1", button);
-       elm_object_style_set(button, "style1/auto_expand");
-       evas_object_size_hint_aspect_set(button, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
-       elm_object_text_set(button, S_("IDS_COM_SK_CANCEL"));
+       elm_object_text_set(button, DM_SK_TEXT_CANCEL);
        evas_object_propagate_events_set(button, EINA_FALSE);
        evas_object_smart_callback_add(button,"clicked", cancelBtnClickedCB, this);
        return button;
+#endif
+       return NULL;
 }
 
 void ViewItem::cancelBtnClickedCB(void *data, Evas_Object *obj, void *event_info)
 {
-       DP_LOGD_FUNC();
+       DM_LOGV("");
        if (!data) {
-               DP_LOGE("data is NULL");
+               DM_LOGE("NULL Check:data");
                return;
        }
        ViewItem *viewItem = static_cast<ViewItem *>(data);
        viewItem->clickedCancelButton();
 }
 
-void ViewItem::extractDateGroupType()
-{
-       DP_LOGD_FUNC();
-       /* History Item */
-       //DP_LOGD("state[%s],finishedTime[%ld]",stateStr(),finishedTime());
-       if (isFinished() && finishedTime() > 0) {
-               int diffDay = 0;
-               DateUtil &inst = DateUtil::getInstance();
-               double nowTime = inst.nowTime();
-               double finishTime = finishedTime();
-               diffDay = inst.getDiffDays((time_t)nowTime, (time_t)finishTime);
-               if (diffDay == 0)
-                       m_dateGroupType = DATETIME::DATE_TYPE_TODAY;
-               else if (diffDay == 1)
-                       m_dateGroupType = DATETIME::DATE_TYPE_YESTERDAY;
-               else if (diffDay > 1)
-                       m_dateGroupType = DATETIME::DATE_TYPE_PREVIOUS;
-               else
-                       m_dateGroupType = DATETIME::DATE_TYPE_LATER;
-               return;
-       }
-       /* Item which is added now or retrying item */
-       m_dateGroupType = DATETIME::DATE_TYPE_TODAY;
-}
-
 
 void ViewItem::retryViewItem(void)
 {
-       DownloadView &view = DownloadView::getInstance();
-       DP_LOGD_FUNC();
+       DM_LOGV("");
        if (m_item) {
                m_isRetryCase = true;
                m_item->clearForRetry();
                if (!m_item->retry()) {
                        DownloadView &view = DownloadView::getInstance();
-                       string desc = S_("IDS_COM_POP_FAILED");
+                       string desc[2];
+                       desc[0] = __("IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB");
+                       desc[1] = DM_POP_TEXT_FAILED;
                        view.showErrPopup(desc);
                        m_item->deleteFromDB();
                        m_item->destroy();
                        return;
                }
-               /* Move a item to Today group, if it is not included to Today group */
-               view.moveRetryItem(this);
        }
 }
+
+#ifdef _ENABLE_OMA_DOWNLOAD
+void ViewItem::responseUserConfirm(bool res)
+{
+       m_item->handleUserConfirm(res);
+}
+#endif
old mode 100644 (file)
new mode 100755 (executable)
index b480f17..0323164
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 #include <libintl.h>
 #include "download-manager-debug.h"
 
-#if !defined(PACKAGE)
-       #define PACKAGE "download-manager"
-#endif
-
 #define _EDJ(o) elm_layout_edje_get(o)
-#define __(s) dgettext(PACKAGE, s)
+#define __(s) dgettext(PROJ_NAME, s)
 #define S_(s) dgettext("sys_string", s)
 
-#define ERROR_POPUP_LOW_MEM S_("IDS_COM_POP_NOT_ENOUGH_MEMORY")
-#define ERROR_POPUP_UNKNOWN S_("IDS_COM_POP_INTERNAL_ERROR")
-#define ERROR_POPUP_INVALID_URL S_("IDS_COM_POP_INVALID_URL")
-
-#define DP_DRM_ICON_PATH IMAGEDIR"/U06_icon_DRM.png"
-#define DP_JAVA_ICON_PATH IMAGEDIR"/U06_icon_Java.png"
-#define DP_UNKNOWN_ICON_PATH IMAGEDIR"/U06_icon_Unknown.png"
-#define DP_EXCEL_ICON_PATH IMAGEDIR"/U06_icon_excel.png"
-#define DP_HTML_ICON_PATH IMAGEDIR"/U06_icon_html.png"
-#define DP_MUSIC_ICON_PATH IMAGEDIR"/U06_icon_music.png"
-#define DP_PDF_ICON_PATH IMAGEDIR"/U06_icon_pdf.png"
-#define DP_PPT_ICON_PATH IMAGEDIR"/U06_icon_ppt.png"
-#define DP_RINGTONE_ICON_PATH IMAGEDIR"/U06_icon_ringtone.png"
-#define DP_TEXT_ICON_PATH IMAGEDIR"/U06_icon_text.png"
-#define DP_WORD_ICON_PATH IMAGEDIR"/U06_icon_word.png"
-#define DP_VIDEO_ICON_PATH IMAGEDIR"/U06_icon_video.png"
-#define DP_IMAGE_ICON_PATH IMAGEDIR"/U06_icon_image.png"
+#define DM_LOCALEDIR LOCALEDIR
+#define DM_DOMAIN PROJ_NAME
+
+// Download Manager Common Strings.
+#define ERROR_POPUP_LOW_MEM_DEFAULT_PHONE_WITH_SD_CARD __("IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_FREE_UP_SOME_STORAGE_SPACE_THEN_TRY_AGAIN")
+#define ERROR_POPUP_LOW_MEM_DEFAULT_PHONE_WITHOUT_SD_CARD __("IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_INSERT_AN_SD_CARD")
+#define ERROR_POPUP_LOW_MEM_DEFAULT_MMC_WITH_NO_PHONE_MEMORY_AVAILABLE __("IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_THEN_TRY_AGAIN")
+#define ERROR_POPUP_LOW_MEM_DEFAULT_MMC_WITH_PHONE_MEMORY_AVAILABLE __("IDS_DM_BODY_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_PS_SETTINGS_TO_DELETE_SOME_DATA_OR_CHANGE_THE_DEFAULT_STORAGE_LOCATION_TO_DEVICE")
+
+#define DM_POP_TEXT_DOWNLOAD_COMPLETE __("IDS_DM_HEADER_DOWNLOAD_COMPLETE")
+#define DM_POP_TEXT_DOWNLOAD_FAILED __("IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB")
+#define DM_DOWNLOAD_COMPLETE_STRING_ID "IDS_DM_HEADER_DOWNLOAD_COMPLETE"
+#define DM_DOWNLOAD_FAILED_STRING_ID "IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB"
+
+#ifdef _TIZEN_2_3_UX
+#define DM_POP_TEXT_ERROR ""
+#define DM_BODY_TEXT_NO_NAME "No name"
+#define DM_BODY_TEXT_UNSUPPORTED_FILE_TYPE "Unsupported file type"
+#define DM_OPT_TEXT_DELETE __("IDS_DM_OPT_DELETE")
+#define DM_SK_TEXT_CANCEL __("IDS_DM_BUTTON_CANCEL_ABB2")
+#define DM_SK_TEXT_OK __("IDS_DM_BUTTON_OK_ABB")
+#define DM_BODY_TEXT_SELECT_ALL __("IDS_DM_MBODY_SELECT_ALL")
+#define DM_BODY_TEXT_PD_SELECTED __("IDS_DM_HEADER_PD_SELECTED_ABB3")
+#define DM_SK_TEXT_DOWNLOAD __("IDS_DM_BUTTON_DOWNLOAD_ABB2")
+#define DM_BODY_TEXT_TODAY __("IDS_DM_HEADER_TODAY")
+#define DM_BODY_TEXT_YESTERDAY __("IDS_DM_HEADER_YESTERDAY")
+#define DM_POP_TEXT_FAILED __("IDS_DM_BODY_DOWNLOAD_FAILED_M_STATUS_ABB")
+#else
+#define DM_POP_TEXT_ERROR S_("IDS_COM_POP_ERROR")
+#define DM_BODY_TEXT_NO_NAME S_("IDS_COM_BODY_NO_NAME")
+#define DM_BODY_TEXT_UNSUPPORTED_FILE_TYPE S_("IDS_COM_BODY_UNSUPPORTED_FILE_TYPE")
+#define DM_OPT_TEXT_DELETE S_("IDS_COM_OPT_DELETE")
+#define DM_SK_TEXT_CANCEL S_("IDS_COM_SK_CANCEL")
+#define DM_SK_TEXT_OK S_("IDS_COM_SK_OK")
+#define DM_BODY_TEXT_SELECT_ALL S_("IDS_COM_BODY_SELECT_ALL")
+#define DM_BODY_TEXT_PD_SELECTED S_("IDS_COM_BODY_PD_SELECTED")
+#define DM_SK_TEXT_DOWNLOAD S_("IDS_COM_SK_DOWNLOAD")
+#define DM_BODY_TEXT_TODAY S_("IDS_COM_BODY_TODAY")
+#define DM_BODY_TEXT_YESTERDAY S_("IDS_COM_BODY_YESTERDAY")
+#define DM_POP_TEXT_FAILED S_("IDS_COM_POP_FAILED")
+#endif
+
+// Downlaod Manager resources
+#ifdef _TIZEN_2_3_UX
+#define DM_COLOR_TABLE_PATH TABLEDIR"/org.tizen.download-manager_ChangeableColorInfo.xml"
+#define DM_FONT_TABLE_PATH TABLEDIR"/org.tizen.download-manager_ChangeableFontInfo.xml"
+
+#define DM_DRM_ICON_PATH IMAGEDIR"/download_manager_icon_drm.png"
+#define DM_UNKNOWN_ICON_PATH IMAGEDIR"/download_manager_icon_unknown.png"
+#define DM_EXCEL_ICON_PATH IMAGEDIR"/download_manager_icon_xls.png"
+#define DM_HTML_ICON_PATH IMAGEDIR"/download_manager_icon_html.png"
+#define DM_PDF_ICON_PATH IMAGEDIR"/download_manager_icon_pdf.png"
+#define DM_PPT_ICON_PATH IMAGEDIR"/download_manager_icon_ppt.png"
+#define DM_TEXT_ICON_PATH IMAGEDIR"/download_manager_icon_text.png"
+#define DM_WORD_ICON_PATH IMAGEDIR"/download_manager_icon_word.png"
+#define DM_MUSIC_ICON_PATH IMAGEDIR"/download_manager_icon_music.png"
+#define DM_VIDEO_ICON_PATH IMAGEDIR"/download_manager_icon_movie.png"
+#define DM_IMAGE_ICON_PATH IMAGEDIR"/download_manager_icon_img.png"
+#define DM_FLASH_ICON_PATH IMAGEDIR"/download_manager_icon_swf.png"
+#define DM_TPK_ICON_PATH IMAGEDIR"/download_manager_icon_tpk.png"
+#define DM_VCAL_ICON_PATH IMAGEDIR"/download_manager_icon_date.png"
+#define DM_FAILED_ICON_PATH IMAGEDIR"/download_manager_icon_broken.png"
+#define DM_CANCEL_BUTTON_ICON_PATH IMAGEDIR"/download_manager_list_icon_cancel.png"
+#define DM_CANCEL_BUTTON_BG_PATH IMAGEDIR"/download_manager_list_button_bg.png"
+#define DM_NOTI_COMPLETED_ICON_PATH IMAGEDIR"/noti_download_complete.png"
+#define DM_NOTI_FAILED_ICON_PATH IMAGEDIR"/noti_download_failed.png"
+#define DM_NOTI_FAILED_INDICATOR_ICON_PATH IMAGEDIR"/B03_Processing_download_failed.png"
+#define DM_NOTI_COMPLETED_INDICATOR_ICON_PATH IMAGEDIR"/B03_Processing_download_ani_06.png"
+
+#define DM_NOTI_ONGOING_ICON_PATH "reserved://quickpanel/ani/downloading"
+#define DM_NOTI_DOWNLOADING_ICON_PATH "reserved://indicator/ani/downloading"
+#else
+#define DM_DRM_ICON_PATH IMAGEDIR"/U01_icon_drm.png"
+#define DM_UNKNOWN_ICON_PATH IMAGEDIR"/U01_icon_unkown.png"
+#define DM_EXCEL_ICON_PATH IMAGEDIR"/U01_icon_excel.png"
+#define DM_HTML_ICON_PATH IMAGEDIR"/U01_icon_html.png"
+#define DM_MUSIC_ICON_PATH IMAGEDIR"/U01_list_icon_mp3.png"
+#define DM_PDF_ICON_PATH IMAGEDIR"/U01_icon_pdf.png"
+#define DM_PPT_ICON_PATH IMAGEDIR"/U01_icon_ppt.png"
+#define DM_TEXT_ICON_PATH IMAGEDIR"/U01_icon_text.png"
+#define DM_WORD_ICON_PATH IMAGEDIR"/U01_icon_word.png"
+#define DM_VIDEO_ICON_PATH IMAGEDIR"/U01_list_icon_mp4.png"
+#define DM_IMAGE_ICON_PATH IMAGEDIR"/U01_list_icon_image.png"
+#define DM_FLASH_ICON_PATH IMAGEDIR"/U01_icon_swf.png"
+#define DM_TPK_ICON_PATH IMAGEDIR"/U01_icon_tpk.png"
+#define DM_VCAL_ICON_PATH IMAGEDIR"/U01_icon_vcs.png"
+#define DM_FAILED_ICON_PATH IMAGEDIR"/U01_icon_broken.png"
+#define DM_NOTI_COMPLETED_ICON_PATH IMAGEDIR"/noti_download_complete.png"
+#define DM_NOTI_FAILED_ICON_PATH IMAGEDIR"/noti_download_failed.png"
+#define DM_NOTI_ONGOING_ICON_PATH "reserved://quickpanel/ani/downloading"
+#define DM_NOTI_DOWNLOADING_ICON_PATH "reserved://indicator/ani/downloading"
+#define DM_SELECT_ALL_ICON_PATH IMAGEDIR"/00_icon_select_all.png"
+#define DM_DELETE_ICON_PATH IMAGEDIR"/00_icon_delete.png"
+#define DM_NO_CONTENT_ICON_PATH IMAGEDIR"/00_nocontents_text.png"
+#define DM_NOTI_FAILED_INDICATOR_ICON_PATH IMAGEDIR"/B03_processing_download_failed.png"
+#define DM_NOTI_COMPLETED_INDICATOR_ICON_PATH IMAGEDIR"/B03_processing_download_completed.png"
+#endif
 
+// Other defines
 #define MAX_FILE_PATH_LEN 256
 #define MAX_BUF_LEN 256
-
 #define LOAD_HISTORY_COUNT 500
+#define WAITING_RO_MAX_SECONDS 20
+
+#define KEY_MODE "mode"
+#define KEY_REQ_HTTP_HEADER_FIELD "req_http_header_field"
+#define KEY_REQ_HTTP_HEADER_VALUE "req_http_header_value"
+#define KEY_MODE_VALUE_VIEW "view"
+#define KEY_MODE_VALUE_SILENT "silent"
+#define KEY_FAILED_HISTORYID "failed_historyid"
+#define KEY_DOWNLOADING_HISTORYID "downloading_historyid"
+#define KEY_DEFAULT_STORAGE "default_storage"
+#define KEY_FILE_NAME "file_name"
+
+#define DM_DRM_MIME_STR "application/vnd.oma.drm.message"
+#define DM_DCF_MIME_STR "application/vnd.oma.drm.content"
+
+#ifdef _TIZEN_2_3_UX
+#define MYFILE_PKG_NAME "org.tizen.myfile-lite"
+#else
+#define MYFILE_PKG_NAME "org.tizen.myfile"
+#endif
 
+#define DM_DEFAULT_PHONE_TEMP_DIR "/opt/usr/media/.temp_download"
+#define DM_DEFAULT_PHONE_INSTALL_DIR "/opt/usr/media/Downloads/"
+#define DM_DEFAULT_MMC_TEMP_DIR "/opt/storage/sdcard/.temp_download"
+#define DM_DEFAULT_MMC_INSTALL_DIR "/opt/storage/sdcard/Downloads/"
+#define DM_TEMP_DIR_NAME ".temp_download/"
+#define DM_INVALID_PATH_STRING ";\\\":*?<>|()"
 enum
 {
-       DP_CONTENT_NONE = 0,
-       DP_CONTENT_IMAGE,
-       DP_CONTENT_VIDEO,
-       DP_CONTENT_MUSIC,
-       DP_CONTENT_PDF,
-       DP_CONTENT_WORD,
-       DP_CONTENT_PPT, // 5
-       DP_CONTENT_EXCEL,
-       DP_CONTENT_HTML,
-       DP_CONTENT_TEXT,
-       DP_CONTENT_RINGTONE,
-       DP_CONTENT_DRM, // 10
-       DP_CONTENT_JAVA,
-       DP_CONTENT_SVG,
-       DP_CONTENT_FLASH,
-       DP_CONTENT_UNKOWN
+       DM_CONTENT_NONE = 0,
+       DM_CONTENT_IMAGE,
+       DM_CONTENT_VIDEO,
+       DM_CONTENT_MUSIC,
+       DM_CONTENT_PDF,
+       DM_CONTENT_WORD,
+       DM_CONTENT_PPT, // 5
+       DM_CONTENT_EXCEL,
+       DM_CONTENT_HTML,
+       DM_CONTENT_TEXT,
+       DM_CONTENT_DRM,
+       DM_CONTENT_SD_DRM,//10
+       DM_CONTENT_FLASH,
+       DM_CONTENT_TPK,
+       DM_CONTENT_VCAL,
+       DM_CONTENT_UNKOWN //14
 };
 
 namespace DL_TYPE{
@@ -86,14 +188,26 @@ enum TYPE {
 
 namespace ERROR {
 enum CODE {
-       NONE,
+       NONE = 0,
        INVALID_URL,
        NETWORK_FAIL,
        NOT_ENOUGH_MEMORY,
        FAIL_TO_INSTALL,
        ENGINE_FAIL,
+#ifdef _ENABLE_OMA_DOWNLOAD
+       PARSING_FAIL,
+#endif
        UNKNOWN
 };
 }
 
+namespace NOTIFICATION_TYPE{
+enum TYPE {
+       NOTI_NONE = 0,
+       NOTI_DOWNLOADING,
+       NOTI_FAILED,
+       NOTI_COMPLETED
+};
+}
+
 #endif /* DOWNLOAD_MANAGER_DOWNLOAD_COMMON_H */
old mode 100644 (file)
new mode 100755 (executable)
index 1b0f0e8..77e59a3
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 #define DOWNLOAD_MANAGER_DATE_TIME_H
 
 #include <time.h>
-#include <Elementary.h>
-#include <unicode/udat.h>
-#include <unicode/udatpg.h>
-#include <unicode/ustring.h>
+#include <utils_i18n.h>
 
 #include "download-manager-common.h"
 
 using namespace std;
 
-namespace DATETIME {
-enum {
-       DATE_TYPE_NONE = 0,
-       DATE_TYPE_LATER,
-       DATE_TYPE_TODAY,
-       DATE_TYPE_YESTERDAY,
-       DATE_TYPE_PREVIOUS,
-};
-}
-
-namespace LOCALE_STYLE{
-enum {
-       TIME = 0,
-       SHORT_DATE,
-       MEDIUM_DATE,
-       FULL_DATE
-};
-}
-
-class DateGroup {
-public:
-       DateGroup(void);
-       ~DateGroup(void);
-
-       Elm_Object_Item *glGroupItem() { return m_glGroupItem; }
-       void setGlGroupItem(Elm_Object_Item *i) { m_glGroupItem = i; }
-       void increaseCount(void) { count++; }
-       void decreaseCount(void) { count--; }
-       int getCount(void) { return count; }
-       void initData(void);
-       void setType(int t) { type = t; }
-       int getType(void) { return type; }
-
-private:
-       int count;
-       int type;
-       Elm_Object_Item *m_glGroupItem;
-};
-
 class DateUtil {
 public:
        static DateUtil& getInstance(void) {
                static DateUtil inst;
                return inst;
        }
-
-       inline void setTodayStandardTime(void) { m_todayStandardTime = time(NULL); }
-       int getDiffDaysFromToday(void);
-       int getDiffDays(time_t nowTime, time_t refTime);
        void updateLocale(void);
-       void getDateStr(int style, double time, string &outBuf);
-       inline double nowTime(void) { return (double)(time(NULL)); }
-       /* yesterday is same to 24*60*60 seconds from now */
-       inline double yesterdayTime(void) { return (double)(time(NULL)+24*60*60); }
+       int getDiffDays(time_t nowTime, time_t refTime);
+       void getDateStr(double finishTime, string &outBuf);
 
 private:
        DateUtil(void);
        ~DateUtil(void);
-
-       UDateFormat *getBestPattern(const char *patternStr,
-               UDateTimePatternGenerator *generator, const char *locale);
-       void deinitLocaleData(void);
+       void deinitLocaleData();
+       i18n_udate_format_h getBestPattern(const char *formatString,
+                       i18n_udatepg_h patternGenerator, const char *locale);
        /* Update this in case of follows
         * 1. show main view.
         * 2. add new item
         * 3. create today group
        **/
-       time_t m_todayStandardTime;
-       UDateFormat *dateShortFormat;
-       UDateFormat *dateMediumFormat;
-       UDateFormat *dateFullFormat;
-       UDateFormat *timeFormat12H;
-       UDateFormat *timeFormat24H;
+       i18n_udate_format_h dateShortFormat;
+       i18n_udate_format_h timeFormat12H;
+       i18n_udate_format_h timeFormat24H;
+
 };
 
 #endif /* DOWNLOAD_MANAGER_DATE_TIME_H */
old mode 100644 (file)
new mode 100755 (executable)
index 286fca3..49e5ee0
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 #undef LOG_TAG
 #endif
 
-#define LOG_TAG "DownloadManager"
+#define LOG_TAG "DOWNLOAD_MANAGER"
 
-#define DP_LOG(format, args...) LOGI("[%s] "format, __func__, ##args)
-#define DP_LOGD(format, args...) LOGD("[%s] "format, __func__, ##args)
-#define DP_LOG_START(msg) LOGI("<<= [%s] Start =>>\n",msg)
-#define DP_LOG_FUNC() LOGI("<<= [%s]=>>\n",__func__)
-#define DP_LOGD_FUNC() LOGD("<<= [%s]=>>\n",__func__)
-#define DP_LOG_END(msg) LOGI("<<= [%s] End [%d] =>>\n",msg)
-#define DP_LOGE(format, args...) LOGE("[%s][ERR] "format, __func__, ##args)
-#define DP_LOG_TEST(format, args...) LOGI("####TEST####[%s] "format, __func__, ##args)
+#define DM_LOGV(format, ...) ;//LOGD(format, ##__VA_ARGS__)
+#define DM_LOGD(format, ...) LOGD(format, ##__VA_ARGS__)
+#define DM_LOGI(format, ...) LOGI(format, ##__VA_ARGS__)
+#define DM_LOGE(format, ...) LOGE(format, ##__VA_ARGS__)
+#define DM_SLOGD(format, ...) SECURE_LOGD(format, ##__VA_ARGS__)
+#define DM_SLOGI(format, ...) SECURE_LOGI(format, ##__VA_ARGS__)
+#define DM_SLOGE(format, ...) SECURE_LOGE(format, ##__VA_ARGS__)
+#define DM_LOGTEST(format, ...) ;//LOGD("[TEST]"format, ##__VA_ARGS__)
 
 #else
 
 #include <stdio.h>
 #include <pthread.h>
 
-#define DP_LOG(args...) do {\
-               printf("[DP:%s][LN:%d][%lu]",__func__,__LINE__,pthread_self());\
-               printf(args);printf("\n"); }while(0)
-#define DP_LOGD(args...) do {\
-               printf("[DP_D:%s][LN:%d][%lu]",__func__,__LINE__,pthread_self());\
+#define DM_LOGD(args...) do {\
+               printf("[D:%s][LN:%d][%lu]",__func__,__LINE__,pthread_self());\
                printf(args);printf("\n");}while(0)
-#define DP_LOGE(args...) do {\
-               printf("[DP_ERR:%s][LN:%d][%lu]",__func__,__LINE__,pthread_self());\
+#define DM_LOGI(args...) do {\
+               printf("[I:%s][LN:%d][%lu]",__func__,__LINE__,pthread_self());\
                printf(args);printf("\n");}while(0)
-#define DP_LOG_FUNC() do {\
-               printf("<<==[DP:%s][LN:%d][%lu] ==>> \n",__func__,__LINE__,pthread_self());\
-               }while(0)
-#define DP_LOGD_FUNC() do {\
-               printf("<<==[DP_D:%s][LN:%d][%lu] ==>> \n",__func__,__LINE__,pthread_self());\
-               }while(0)
-#define DP_LOG_START(msg) do {\
-               printf("<<==[DP:%s][LN:%d][%lu] Start ==>> \n",\
-               __FUNCTION__,__LINE__,pthread_self());\
-               }while(0)
-#define DP_LOG_END(msg) do {\
-               printf("<<==[DP:%s][LN:%d][%lu] End  ==>> \n",\
-               __FUNCTION__,__LINE__,pthread_self());\
-               }while(0)
+#define DM_LOGE(args...) do {\
+               printf("[ERR:%s][LN:%d][%lu]",__func__,__LINE__,pthread_self());\
+               printf(args);printf("\n");}while(0)
+#define DM_SLOGD DM_LOGD
+#define DM_SLOGI DM_LOGI
+#define DM_SLOGE DM_LOGE
+#define DM_LOGTEST
+#define DM_LOGV ;
 #endif /*_USE_DLOG*/
 
 #endif /* DOWNLOAD_MANAGER_DEBUG_H */
old mode 100644 (file)
new mode 100755 (executable)
index be85e2f..4a32142
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 #define DOWNLOAD_MANAGER_DOWNLOAD_ITEM_H
 
 #include <memory>
-#include "url_download.h"
+#include "download.h"
 #include "download-manager-common.h"
 #include "download-manager-downloadRequest.h"
 #include "download-manager-event.h"
+#ifdef _ENABLE_OMA_DOWNLOAD
+#include "oma-parser-interface.h"
+#include "Eina.h"
+#endif
+#include "Ecore.h"
 
 namespace DL_ITEM {
 enum STATE {
        IGNORE,
        STARTED,
+       QUEUED,
+#ifdef _ENABLE_OMA_DOWNLOAD
+       REQUEST_USER_CONFIRM,
+#endif
        UPDATING,
        COMPLETE_DOWNLOAD,
        INSTALL_NOTIFY,
-       WAITING_RO,
        SUSPENDED,
        RESUMED,
+#ifdef _ENABLE_OMA_DOWNLOAD
+       NOTIFYING,
+#endif
        FINISHED,
        CANCELED,
        FAILED
 };
 }
 
+#ifdef _ENABLE_OMA_DOWNLOAD
+class OmaItem {
+public:
+       OmaItem(void);
+       OmaItem(dd_oma1_t *dd_info);
+       ~OmaItem(void);
+       string getUserMessage(void);
+       string getObjectUri(void) { return objectUri; }
+       string getName(void) { return name; }
+       string getVersion(void) { return version; }
+       string getVendor(void) { return vendor; }
+       string getDescription(void) { return description; }
+       string getIconPath(void) { return iconPath; }
+       string getContentType(void) { return contentType; }
+       string getInstallUri(void) { return installUri; }
+       void setThreadData(Ecore_Thread *t) { th = t; }
+       int getStatus(void) { return status; }
+       void sendInstallNotification(int status);
+       void sendInstallNotification(int status, string url);
+       string getMessageForInstallNotification(int statusCode);
+       bool isNotifyFiinished(void) { return notifyFinished; }
+       void setNotifyFinished(bool b) { notifyFinished = b; }
+private:
+       string objectUri;
+       string name;
+       string version;
+       string vendor;
+       string installUri;
+       string description;
+       string iconUri;
+       string nextUri;
+       string installParam;
+       string iconPath;
+       string contentType;
+       unsigned long long size;
+       int status;
+       int retryCount;
+       string proxyAddr;
+       Ecore_Thread *th;
+       string getBytesStr(unsigned long long bytes);
+       static void sendInstallNotifyCB(void *data, Ecore_Thread *thread);
+       static void threadEndCB(void *data, Ecore_Thread *thread);
+       static void threadCancelCB(void *data, Ecore_Thread *thread);
+       bool notifyFinished;
+};
+#endif
+
 class DownloadItem {
 public:
        DownloadItem(); /* FIXME remove after cleanup ecore_pipe */
        DownloadItem(auto_ptr<DownloadRequest> request);
        ~DownloadItem();
 
-       void start(bool isRetry);
+       bool start(int id);
        void cancel(void);
-       void retry(void);
+#ifdef _ENABLE_OMA_DOWNLOAD
+       bool isNeededTocheckMimeTypeFromDD(const char *mimeType);
+       void cancelWithcontentTypeErr(void);
+#endif
+       bool retry(int id, unsigned long long fileSize);
        void suspend(void);
        void resume(void);
-       void createHandle(void);
-       void destroyHandle(void);
+       int createId(int id);
+       void destroyId(void);
 
-       inline void *downloadHandle(void) { return (void *)m_download_handle;}
-       inline void setDownloadHandle(url_download_h handle) { m_download_handle = handle; }
+       inline int getDownloadId(void) { return m_download_id;}
+       inline void setDownloadId(int id) { m_download_id = id; }
 
-       inline unsigned long int receivedFileSize(void) { return m_receivedFileSize; }
-       inline void setReceivedFileSize(unsigned long int size) { m_receivedFileSize = size; }
+       inline unsigned long long getReceivedFileSize(void) { return m_receivedFileSize; }
+       inline void setReceivedFileSize(unsigned long long size) { m_receivedFileSize = size; }
 
-       inline unsigned long int fileSize(void) { return m_fileSize; }
-       inline void setFileSize(unsigned long int size) { m_fileSize = size; }
+       inline unsigned long long getFileSize(void) { return m_fileSize; }
+       inline void setFileSize(unsigned long long size) { m_fileSize = size; }
 
-       inline string &filePath(void) { return m_filePath; }
-       inline void setFilePath(const char *path) { if (path) m_filePath = path; }
-       inline void setFilePath(string &path) { m_filePath = path; }
+       inline string &getFilePath(void) { return m_filePath; }
+       inline void setFilePath(const char *path) {
+               if (path) {
+                       m_filePath = path;
+                       m_aptr_request->setTempFilePath(path);
+               }
+       }
+       inline void setFilePath(string &path) {
+               m_filePath = path;
+               m_aptr_request->setTempFilePath(path);
+       }
 
-       inline string &contentName(void) { return m_contentName; }
+       inline string &getContentName(void) { return m_contentName; }
        inline void setContentName(string &name) { m_contentName = name; }
 
-       inline string &registeredFilePath(void) { return m_registeredFilePath; }
+       inline string &getRegisteredFilePath(void) { return m_registeredFilePath; }
        inline void setRegisteredFilePath(string &path) { m_registeredFilePath = path; }
 
-       inline string &mimeType(void) { return m_mimeType; }
+       inline string &getMimeType(void) { return m_mimeType; }
        inline void setMimeType(const char *mime) { m_mimeType = mime; }
        inline void setMimeType(string &mime) { m_mimeType = mime; }
 
-       inline DL_ITEM::STATE state(void) { return m_state; }
+       inline string &getEtag(void) { return m_etag; }
+       inline void setEtag(const char *etag)
+       {
+               m_etag = etag;
+               m_aptr_request->setEtag(etag);
+       }
+       inline void setEtag(string &etag)
+       {
+               m_etag = etag;
+               m_aptr_request->setEtag(etag);
+       }
+
+       inline DL_ITEM::STATE getState(void) { return m_state; }
        inline void setState(DL_ITEM::STATE state) { m_state = state; }
 
-       inline ERROR::CODE errorCode(void) { return m_errorCode; }
+       inline ERROR::CODE getErrorCode(void) { return m_errorCode; }
        inline void setErrorCode(ERROR::CODE err) { m_errorCode = err;  }
-       inline DL_TYPE::TYPE downloadType(void) { return m_downloadType; }
+       inline DL_TYPE::TYPE getDownloadType(void) { return m_downloadType; }
        inline void setDownloadType(DL_TYPE::TYPE t) { m_downloadType = t;}
 
        inline void notify(void) { m_subject.notify(); }
        inline void subscribe(Observer *o) { if (o) m_subject.attach(o); }
        inline void deSubscribe(Observer *o) { if (o) m_subject.detach(o); }
-       inline string &url(void) { return m_aptr_request->getUrl(); }
-       inline string &cookie(void) { return m_aptr_request->getCookie(); }
+#ifdef _ENABLE_OMA_DOWNLOAD
+       inline void setUrl(string url) { if (m_aptr_request.get()) m_aptr_request->setUrl(url); }
+       inline void setOmaItem(auto_ptr<OmaItem> item) { m_oma_item = item; }
+       string getUserMessage(void);
+       inline void sendInstallNotification(int status)
+       {
+               if (m_oma_item.get() && !m_oma_item->getInstallUri().empty())
+                       m_oma_item->sendInstallNotification(status);
+       }
+       inline bool isExistedInstallNotifyUri()
+       {
+               if (m_oma_item.get() && !m_oma_item->getInstallUri().empty())
+                       return true;
+               else
+                       return false;
+       }
+       inline bool isOMADownloadCase()
+       {
+               if (m_oma_item.get())
+                       return true;
+               else
+                       return false;
+       }
+       inline string getMimeFromOmaItem(void)
+       {
+               string emptyStr = string();
+               if (m_oma_item.get())
+                       return m_oma_item->getContentType();
+               else
+                       return emptyStr;
+       }
+       inline string getInstallNotifyUri(void)
+       {
+               string emptyStr = string();
+               if (m_oma_item.get())
+                       return m_oma_item->getInstallUri();
+               else
+                       return emptyStr;
+       }
+       bool isNotifyFiinished(void);
+       bool isOMAMime(void);
+#endif
+       inline string getUrl(void) { return m_aptr_request->getUrl(); }
+       inline string getReqHeaderField(void) { return m_aptr_request->getReqHeaderField(); }
+       inline string getReqHeaderValue(void) { return m_aptr_request->getReqHeaderValue(); }
+       inline string getInstallDir(void) { return m_aptr_request->getInstallDir(); }
+       inline string getFileName(void) { return m_aptr_request->getFileName(); }
+       inline string getSender(void) { return m_aptr_request->getSender(); }
 
        ERROR::CODE _convert_error(int err);
 
-       static void started_cb(url_download_h download, const char *name,
-               const char *mime, void *user_data);
-       static void paused_cb(url_download_h download, void *user_data);
-       static void completed_cb(url_download_h download, const char *path,
+       static void state_changed_cb(int download_id, download_state_e state,
                void *user_data);
-       static void stopped_cb(url_download_h download, url_download_error_e error,
+       static void progress_cb(int download_id, unsigned long long received,
                void *user_data);
-       static void progress_cb(url_download_h download, unsigned long long received,
-               unsigned long long total, void *user_data);
+#ifdef _ENABLE_OMA_DOWNLOAD
+       int convertInstallStatus(int err);
+#endif
 
 private:
        auto_ptr<DownloadRequest> m_aptr_request;
+#ifdef _ENABLE_OMA_DOWNLOAD
+       auto_ptr<OmaItem> m_oma_item;
+#endif
        Subject m_subject;
-       url_download_h m_download_handle;
+       int m_download_id;
        DL_ITEM::STATE m_state;
        ERROR::CODE m_errorCode;
-       unsigned long int m_receivedFileSize;
-       unsigned long int m_fileSize;
+       unsigned long long m_receivedFileSize;
+       unsigned long long m_fileSize;
        string m_filePath;
        string m_contentName;
        string m_registeredFilePath;
        string m_mimeType;
+       string m_etag;
+       string m_tempPath;
        DL_TYPE::TYPE m_downloadType;
-       int m_download_id;
 };
 
 class DownloadEngine {
@@ -136,8 +266,8 @@ public:
 private:
        DownloadEngine(void);
        ~DownloadEngine(void);
-
 };
 
 
+
 #endif /* DOWNLOAD_MANAGER_DOWNLOAD_ITEM_H */
old mode 100644 (file)
new mode 100755 (executable)
index 621718b..8448e1a
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
@@ -30,20 +30,36 @@ using namespace std;
 class DownloadRequest
 {
 public:
-//     DownloadRequest();
-       DownloadRequest(string url, string cookie);
+       DownloadRequest(string url,     string reqHeaderField, string reqHeaderValue,
+                       string installDir, string fileName);
        DownloadRequest(DownloadRequest &rRequest);
-       ~DownloadRequest();
+       ~DownloadRequest(void);
 
-       string &getUrl();
-       string &getCookie();
-       bool isUrlEmpty();
-       bool isCookieEmpty();
+       string getUrl(void);
+       string getReqHeaderField(void);
+       string getReqHeaderValue(void);
+       string getInstallDir(void);
+       string getSender(void);
+       string getFileName(void);
+       string getTempFilePath(void);
+       string getEtag(void);
        void setUrl(string url);
-       void setCookie(string cookie);
+       void setReqHeaderField(string reqHeaderField);
+       void setReqHeaderValue(string reqHeaderValue);
+       void setInstallDir(string installDir);
+       void setFileName(string fileName);
+       void setTempFilePath(string tempFilePath);
+       void setEtag(string etag);
 private:
+       void extractSenderName(void);
        string m_url;
-       string m_cookie;
+       string m_sender;
+       string m_reqHeaderField;
+       string m_reqHeaderValue;
+       string m_installDir;
+       string m_fileName;
+       string m_tempFilePath;
+       string m_etag;
 };
 
 #endif /* DOWNLOAD_MANAGER_DOWNLOAD_REQUEST_H */
old mode 100644 (file)
new mode 100755 (executable)
index ec7fe9f..48638de
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
old mode 100644 (file)
new mode 100755 (executable)
index 4e1e4e8..f331975
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 
 #include <string>
 #include <queue>
-#include <db-util.h>
+#include <sqlite3.h>
 #include "download-manager-item.h"
 extern "C" {
 #include <unicode/utypes.h>
 }
+#define  REBUILD_QUERY "CREATE TABLE IF NOT EXISTS history( \
+id INTEGER PRIMARY KEY AUTOINCREMENT, \
+downloadid INTEGER, \
+historyid INTEGER, \
+downloadtype INTEGER, \
+contenttype INTEGER, \
+state INTEGER, \
+err INTEGER, \
+name, \
+path, \
+url, \
+filename, \
+headerfield, \
+headervalue, \
+installdir, \
+installnotifyurl, \
+etag, \
+tempfilepath, \
+date datetime, \
+filesize UNSIGNED BIG INT DEFAULT 0);"
+#define  REBUILD_QUERY_INDEX "CREATE INDEX history_date_index on history (date);"
 
 using namespace std;
 
 class DownloadHistoryDB
 {
 public:
-       static bool addToHistoryDB(Item *item);
+       static bool updateHistoryToDB(Item *item);
+       static bool updateCanceledItemToDB(Item *item);
+       static bool createItemToDB(Item *item);
+       static bool updateStateToDB(Item *item);
+       static bool updateDownloadInfoToDB(Item *item);
+       static bool updateDownloadIdToDB(Item *item);
+#ifdef _ENABLE_OMA_DOWNLOAD
+       static bool updateNotiUrlToHistoryDB(Item *item);
+#endif
        static bool createRemainedItemsFromHistoryDB(int limit, int offset);
        static bool createItemsFromHistoryDB(void);
        static bool deleteItem(unsigned int historyId);
        static bool deleteMultipleItem(queue <unsigned int> &q);
        static bool clearData(void);
        static bool getCountOfHistory(int *count);
+       static bool openDBConn(void) { return openDB(); }
+       static void closeDBConn(void) { closeDB(); }
 private:
        DownloadHistoryDB(void);
        ~DownloadHistoryDB(void);
-       static sqlite3historyDb;
-       static bool open(void);
+       static sqlite3 *historyDb;
+       static bool openDB(void);
        static bool isOpen(void) { return historyDb ? true : false; }
-       static void close(void);
+       static void closeDB(void);
+       static bool loadSqlSchema(void);
 };
 
 #endif /* DOWNLOAD_MANAGER_HISTORY_DB_H */
old mode 100644 (file)
new mode 100755 (executable)
index cc0b936..53f977b
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 #include "download-manager-downloadRequest.h"
 #include "download-manager-downloadItem.h"
 #include "download-manager-util.h"
-
+#ifdef _ENABLE_OMA_DOWNLOAD
+#include "Ecore.h"
+#endif
 using namespace std;
 
 namespace ITEM {
 enum STATE {
        IDLE = 0,
-       REQUESTING,
        PREPARE_TO_RETRY,
+       REQUESTING,
+       QUEUED,
        RECEIVING_DOWNLOAD_INFO,
+#ifdef _ENABLE_OMA_DOWNLOAD
+       REQUEST_USER_CONFIRM,
+#endif
        DOWNLOADING,
        REGISTERING_TO_SYSTEM,
        SUSPENDED,
+#ifdef _ENABLE_OMA_DOWNLOAD
+       NOTIFYING,
+#endif
+#ifdef _ENABLE_WAITING_RO
+       WAITING_RO,
+#endif
        FINISH_DOWNLOAD,
        FAIL_TO_DOWNLOAD,
        CANCEL,
@@ -48,6 +60,8 @@ enum STATE {
 };
 }
 
+class DownloadNoti;
+
 class Item {
 public:
        static void create(DownloadRequest &rRequest);
@@ -59,6 +73,7 @@ public:
        /* SHOULD call this before destrying an item*/
        void deleteFromDB(void);
        void download(void);
+       void downloadFromQueuedState(void);
        inline void cancel(void)
        {
                if (m_aptr_downloadItem.get())
@@ -67,83 +82,156 @@ public:
        }
        void clearForRetry(void);
        bool retry(void);
-
        bool play(void);
-
+       bool isExistedFile(void);
+#ifdef _ENABLE_OMA_DOWNLOAD
+       void handleUserConfirm(bool res);
+       void doneNotifyFinished(void);
+#endif
+       void deleteCompleteNoti(void);
        inline void subscribe(Observer *o) { m_subjectForView.attach(o); }
        inline void deSubscribe(Observer *o) { m_subjectForView.detach(o); }
 
        static void updateCBForDownloadObserver(void *data);
        static void netEventCBObserver(void *data);
        void updateFromDownloadItem(void);
-       inline void suspend(void) { m_aptr_downloadItem->suspend(); }
+       void suspend(void);
 
-       inline int id(void) {
+       inline int getId(void) {
                if (m_aptr_downloadItem.get())
-                       return (int)(m_aptr_downloadItem->downloadHandle());
+                       return (int)(m_aptr_downloadItem->getDownloadId());
 
                return -1;
        }       // FIXME create Item's own id
 
-       inline unsigned long int receivedFileSize(void) {
+       inline unsigned long long getReceivedFileSize(void) {
                if (m_aptr_downloadItem.get())
-                       return m_aptr_downloadItem->receivedFileSize();
+                       return m_aptr_downloadItem->getReceivedFileSize();
                return 0;
        }
 
-       inline unsigned long int fileSize(void) {
-               if (m_aptr_downloadItem.get())
-                       return m_aptr_downloadItem->fileSize();
+       inline unsigned long long getFileSize(void) {
+               if (m_aptr_downloadItem.get()) {
+                       return m_aptr_downloadItem->getFileSize();
+               }
                return 0;
        }
 
-       inline string &filePath(void) {
+       inline string &getFilePath(void) {
                if (m_aptr_downloadItem.get())
-                       return m_aptr_downloadItem->filePath();
+                       return m_aptr_downloadItem->getFilePath();
                return m_emptyString;
        }
 
 
-       inline string &contentName(void) {
+       inline string &getContentName(void) {
+               if (m_aptr_downloadItem.get())
+                       return m_aptr_downloadItem->getContentName();
+               return m_emptyString;
+       }
+
+       inline string getSender(void) {
                if (m_aptr_downloadItem.get())
-                       return m_aptr_downloadItem->contentName();
+                       return m_aptr_downloadItem->getSender();
                return m_emptyString;
        }
 
+       inline string getEtag(void) {
+               if (m_aptr_downloadItem.get())
+                       return m_aptr_downloadItem->getEtag();
+               return m_emptyString;
+       }
+
+       inline string getTempPath(void) {
+               if (m_aptr_downloadItem.get())
+                       return m_aptr_downloadItem->getFilePath();
+               return m_emptyString;
+       }
+
+       inline void setId(int id) { m_id = id; }
        inline void setHistoryId(unsigned int i) { m_historyId = i; }
-       inline unsigned int historyId(void) { return m_historyId; }     // FIXME duplicated with m_id
-       inline string &title(void) {return m_title;}
+       inline unsigned int getHistoryId(void) { return m_historyId; }  // FIXME duplicated with m_id
+       inline string &getTitle(void) {return m_title;}
        inline void setTitle(string &title) { m_title = title; }
-       string &registeredFilePath(void);
+       inline void setFileSize(unsigned long long fileSize) { m_fileSize = fileSize; }
+       string &getRegisteredFilePath(void);
        inline void setRegisteredFilePath(string &r) { m_registeredFilePath = r; }
-       string &url(void);
-       string &cookie(void);
-       void setRetryData(string &url, string &cookie);
-       int contentType(void) { return m_contentType; }
+       string getUrl(void);
+       string getReqHeaderField(void);
+       string getReqHeaderValue(void);
+       string getInstallDir(void);
+       string getFileName(void);
+       void setRetryData(string url,  string reqHeaderField, string reqHeaderValue,
+                       string installDir, string fileName, string tempFilePath, string etag);
+       int getContentType(void) { return m_contentType; }
        inline void setContentType(int t) { m_contentType = t; }
-       DL_TYPE::TYPE downloadType(void);
+       DL_TYPE::TYPE getDownloadType(void);
        inline void setDownloadType(DL_TYPE::TYPE t) { m_downloadType = t; }
-
-//     string &getIconPath(void) {return m_iconPath; }
-       inline string &iconPath(void) { return m_iconPath; }
+       string &getThumbnailPath(void) { return m_thumbnailPath; }
+       inline string &getIconPath(void) { return m_iconPath; }
 
        inline void setState(ITEM::STATE state) { m_state = state; }
-       inline ITEM::STATE state(void) { return m_state; }
+       inline ITEM::STATE getState(void) { return m_state; }
 
        inline void setErrorCode(ERROR::CODE err) { m_errorCode = err; }
-       inline ERROR::CODE errorCode(void) { return m_errorCode; }
-       const char *getErrorMessage(void);
+       inline ERROR::CODE getErrorCode(void) { return m_errorCode; }
        inline void setFinishedTime(double t) { m_finishedTime = t; }
-       inline double finishedTime(void) { return m_finishedTime; }
+       inline double getFinishedTime(void) { return m_finishedTime; }
 
        bool isFinished(void); /* include finish download state with error */
        bool isFinishedWithErr(void);
        bool isPreparingDownload(void); /* Before downloading start */
        bool isCompletedDownload(void); /* After stating installation */
 
+#ifdef _ENABLE_OMA_DOWNLOAD
+       inline bool isOMAMime(void)
+       {
+               if (m_aptr_downloadItem.get())
+                       return m_aptr_downloadItem->isOMAMime();
+               return false;
+       }
+       inline string getUserMessage(void)
+       {
+               if (m_aptr_downloadItem.get())
+                       return m_aptr_downloadItem->getUserMessage();
+               return string();
+       }
+       inline bool isNotifyFiinished(void)
+       {
+               if (m_aptr_downloadItem.get())
+                       return m_aptr_downloadItem->isNotifyFiinished();
+               return true;
+       }
+       inline string installNotifyUrl(void)
+       {
+#ifdef _ENABLE_OMA_DOWNLOAD
+               if (m_aptr_downloadItem.get())
+                       return m_aptr_downloadItem->getInstallNotifyUri();
+#endif
+               return m_installNotifyUrl;
+       }
+       inline void setInstallNotifyUrl(string url) { m_installNotifyUrl = url; }
+       inline bool isExistedInstallNotifyUri(void)
+       {
+               if (m_aptr_downloadItem.get())
+                       return m_aptr_downloadItem->isExistedInstallNotifyUri();
+               return false;
+       }
+
+       void setNotifyIdler(Ecore_Idler *idler) { m_notifyIdler = idler; }
+#ifdef _ENABLE_WAITING_RO
+       void sendInstallNotification(int status);
+#endif
+#endif
        /* Test code */
        const char *stateStr(void);
 
+#ifdef _ENABLE_WAITING_RO
+       void increaseTimerCount(void) { m_timerCount++; }
+       int timerCount(void) { return m_timerCount; }
+       void initTimerCount(void) { m_timerCount = 0; }
+#endif
+
 private:
        Item(void);
        Item(DownloadRequest &rRequest);
@@ -155,30 +243,63 @@ private:
        void extractIconPath(void);
 
        void startUpdate(void);
+       void failCaseUpdate(void);
        void createHistoryId(void);
        bool isExistedHistoryId(unsigned int id);
        void handleFinishedItem(void);
+       void checkQueuedItem(void);
 
        auto_ptr<DownloadRequest> m_aptr_request;
        auto_ptr<DownloadItem> m_aptr_downloadItem;
-       FileOpener m_fileOpener;
+       auto_ptr<DownloadNoti> m_aptr_noti;
+       FileUtility m_fileObj;
 
        Subject m_subjectForView;
        auto_ptr<Observer> m_aptr_downloadObserver;
        auto_ptr<Observer> m_aptr_netEventObserver;
 
+#ifdef _ENABLE_OMA_DOWNLOAD
+       static Eina_Bool checkInstallNotifyCB(void *data);
+#ifdef _ENABLE_WAITING_RO
+       static Eina_Bool waitingRoForOmaCB(void *data);
+#endif
+#endif
+
+#ifdef _ENABLE_WAITING_RO
+       static Eina_Bool waitingRoCB(void *data);
+       static Eina_Bool waitingRo(Item *item, bool isOmaCase);
+#endif
+
        ITEM::STATE m_state;
        ERROR::CODE m_errorCode;
        string m_title;
        unsigned int m_historyId;
+       int m_id;
        int m_contentType;
+       unsigned long long m_fileSize;
        string m_iconPath; // FIXME Later:is it right to exist here? (ViewItem or not)
-       string m_emptyString; // FIXME this is temporary to avoid crash when filePath() is called if m_aptr_downloaditem points nothing
+       string m_emptyString; // FIXME this is temporary to avoid crash when getFilePath() is called if m_aptr_downloaditem points nothing
        double m_finishedTime;
        DL_TYPE::TYPE m_downloadType;
        string m_registeredFilePath;
        string m_url;
-       string m_cookie;
+       string m_fileName;
+       string m_reqHeaderField;
+       string m_reqHeaderValue;
+       string m_installDir;
+       string m_thumbnailPath;
+       string m_tempFilePath;
+       string m_etag;
+
+#ifdef _ENABLE_OMA_DOWNLOAD
+       Ecore_Idler *m_notifyIdler;
+       string m_installNotifyUrl;
+#endif
+
+#ifdef _ENABLE_WAITING_RO
+       Ecore_Timer *m_waitingRoTimer;
+       int m_timerCount;
+#endif
 
        bool m_gotFirstData;
 };
old mode 100644 (file)
new mode 100755 (executable)
index e431b51..7038794
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
@@ -35,9 +35,10 @@ public:
        void attachItem(Item *item);
        void detachItem(Item *item);
        bool isExistedHistoryId(unsigned int id);
+       int checkQueuedItem(void);
 private:
        Items(){}
-       ~Items(){DP_LOGD_FUNC();}
+       ~Items(){DM_LOGD("");}
 
        vector<Item*> m_items;
 };
old mode 100644 (file)
new mode 100755 (executable)
index 3bbf4b3..580e812
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
@@ -23,7 +23,6 @@
 #ifndef DOWNLOAD_MANAGER_NETWORK_H
 #define DOWNLOAD_MANAGER_NETWORK_H
 
-#include "net_connection.h"
 #include "download-manager-event.h"
 
 class NetMgr {
@@ -32,27 +31,10 @@ public:
                static NetMgr inst;
                return inst;
        }
-       void initNetwork(void);
-       void deinitNetwork(void);
-       inline void subscribe(Observer *o) { m_subject.attach(o); }
-       inline void deSubscribe(Observer *o) { m_subject.detach(o); }
-       static void netTypeChangedCB(connection_type_e type, void *data);
-       static void netConfigChangedCB(const char *ip,
-               const char *ipv6, void *data);
+       string getProxy(void);
 private:
        NetMgr(void);
        ~NetMgr(void);
-       void netTypeChanged(void);
-       void netConfigChanged(string ip);
-       int getConnectionState(void);
-       int getCellularStatus(void);
-       int getWifiStatus(void);
-       void getProxy(void);
-       void getIPAddress(void);
-       inline void notify(void) { m_subject.notify(); }
-       int m_netStatus;
-       Subject m_subject;
-       connection_h m_handle;
 };
 
 #endif
diff --git a/src/include/download-manager-notification.h b/src/include/download-manager-notification.h
new file mode 100755 (executable)
index 0000000..72c9f1f
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file       download-manager-notification.h
+ * @author     Jungki Kwak (jungki.kwak@samsung.com)
+ * @brief   Noti APIs and interface
+ */
+
+#ifndef DOWNLOAD_MANAGER_NOTIFICATION_H
+#define DOWNLOAD_MANAGER_NOTIFICATION_H
+
+#include "notification.h"
+#include "notification_internal.h"
+
+#include "download-manager-common.h"
+#include "download-manager-event.h"
+#include "download-manager-item.h"
+#include <memory>
+
+class DownloadNoti
+{
+public:
+       DownloadNoti(Item *item);
+       ~DownloadNoti(void);
+
+       void updateFromItem(void);
+       static void updateCB(void *);
+       static void clearOngoingNoti(void);
+       void deleteCompleteNoti(void);
+private:
+       void addOngoingNoti(void);
+       void updateTitleOngoingNoti();
+       void updateOngoingNoti(void);
+       string convertSizeStr(unsigned long long size);
+       notification_h createNoti(NOTIFICATION_TYPE::TYPE type);
+       void addCompleteNoti();
+       void addFailedNoti();
+       void freeNotiData(notification_h notiHandle);
+       int m_notiId;
+       notification_h m_notiHandle;
+       Item *m_item;
+       auto_ptr<Observer> m_aptr_observer;
+};
+
+#endif//DOWNLOAD_MANAGER_NOTIFICATION_H
old mode 100644 (file)
new mode 100755 (executable)
index b1babaa..cb0ce4e
@@ -1,55 +1,87 @@
-/*\r
- * Copyright 2012  Samsung Electronics Co., Ltd\r
- *\r
- * Licensed under the Flora License, Version 1.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- *    http://www.tizenopensource.org/license\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-\r
-/*\r
- * @file       download-manager-util.h\r
- * @author     Jungki Kwak (jungki.kwak@samsung.com)\r
- * @brief   Utility APIs and interface with content player\r
- */\r
-\r
-#ifndef DOWNLOAD_MANAGER_UTIL_H\r
-#define DOWNLOAD_MANAGER_UTIL_H\r
-\r
-#include <string>\r
-#include "download-manager-common.h"\r
-\r
-using namespace std;\r
-class FileOpener {\r
-public:\r
-       FileOpener() {}\r
-       ~FileOpener() {}\r
-\r
-       bool openFile(string &path, int contentType);\r
-};\r
-\r
-class DownloadUtil\r
-{\r
-public:\r
-       static DownloadUtil& getInstance(void) {\r
-               static DownloadUtil inst;\r
-               return inst;\r
-       }\r
-\r
-       int getContentType(const char *mimem, const char *filePath);\r
-       void registerContent(string filePath);\r
-\r
-private:\r
-       DownloadUtil(void);\r
-       ~DownloadUtil(void) {}\r
-       bool isAmbiguousMIMEType(const char *mimeType);\r
-};\r
-\r
-#endif//DOWNLOAD_MANAGER_UTIL_H\r
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * @file       download-manager-util.h
+ * @author     Jungki Kwak (jungki.kwak@samsung.com)
+ * @brief   Utility APIs and interface with content player
+ */
+
+#ifndef DOWNLOAD_MANAGER_UTIL_H
+#define DOWNLOAD_MANAGER_UTIL_H
+
+#include <string>
+#include "download-manager-common.h"
+
+using namespace std;
+
+class FileUtility {
+public:
+       FileUtility() {}
+       ~FileUtility() {}
+
+       bool checkTempDir(string userInstallDir);
+       bool openFile(string path, int contentType);
+       void openMyFilesApp(void);
+       bool isExistedFile(string path, bool isDir);
+       bool renameFile(string from, string to);
+       bool deleteFile(string filePath);
+       bool checkAvailableMemory(unsigned long long size);
+       bool copyFile(string from, string to);
+       void cleanTempDir(void);
+       static string getDefaultPath(bool optionTempDir);
+       static unsigned long long getFileSize(string filePath);
+};
+
+class DownloadUtil
+{
+public:
+       static DownloadUtil& getInstance(void) {
+               static DownloadUtil inst;
+               return inst;
+       }
+
+       int getContentType(const char *mimem, const char *filePath);
+       bool registerContent(string filePath, string &thumbnailPath);
+       string saveContent(string filePath, string userInstallDir);
+       string getUserAgent(void);
+#ifdef _ENABLE_OMA_UNSUPPROTED_CONTENT
+       bool isSupportedMIMEType(string mime);
+#endif
+
+private:
+       DownloadUtil(void);
+       ~DownloadUtil(void) {}
+       bool isAmbiguousMIMEType(const char *mimeType);
+};
+
+#ifdef _ENABLE_WAITING_RO
+class DownloadDrm
+{
+public:
+       static DownloadDrm& getInstance(void) {
+               static DownloadDrm inst;
+               return inst;
+       }
+
+       bool validRo(const char *filePath);
+private:
+       DownloadDrm(void) {}
+       ~DownloadDrm(void) {}
+};
+#endif
+
+#endif//DOWNLOAD_MANAGER_UTIL_H
old mode 100644 (file)
new mode 100755 (executable)
index b46283d..f74565e
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 #include "download-manager-common.h"
 #include "download-manager-viewItem.h"
 #include "download-manager-dateTime.h"
+#include "vconf.h"
 
 enum {
        POPUP_EVENT_EXIT = 0,
        POPUP_EVENT_ERR,
 };
 
+typedef struct {
+       int subItemsCount;
+       ViewItem *viewItem;
+} groupTitleType;
+
 class DownloadView {
 public:
        static DownloadView& getInstance(void) {
@@ -47,67 +53,88 @@ public:
        void destroy(void);
        void createView(void);
        void activateWindow(void);
-#ifndef _TIZEN_PUBLIC
-       void rotateWindow(int angle);
-#endif
+       void clickedItemFromNoti(unsigned int historyId, NOTIFICATION_TYPE::TYPE type);
        void show(void);
        void hide(void);
+       void pause(void);
+       void resume(void);
+       static void lockStateChangedCB(keynode_t *node, void *user_data);
 
        void attachViewItem(ViewItem *viewItem);
        void detachViewItem(ViewItem *viewItem);
-
+       static void changedGenlistLanguage(void *data, Evas_Object *obj, void *event_info);
        void changedRegion(void);
-       void showErrPopup(string &desc);
-       void update();
+       void showErrPopup(string *desc);
+       void showMemoryFullPopup(string &msg);
+       void showRetryPopup(ViewItem *viewItem, string *msg);
+       void update(void);
        void update(ViewItem *viewItem);
        void update(Elm_Object_Item *glItem);
-       void showViewItem(int id, const char *title);
-       void playContent(int id, const char *title);
+       void update(int diffDays);
+       void updateLang(void);
        void handleChangedAllCheckedState(void);
        void handleCheckedState(void);
        bool isGenlistEditMode(void);
        void handleGenlistGroupItem(int type);
-#ifndef _TIZEN_PUBLIC
-       void setSweepedItem(ViewItem *item) { m_sweepedItem = item; }
-       ViewItem *sweepedItem(void) { return m_sweepedItem; }
+#ifdef _ENABLE_OMA_DOWNLOAD
+       void showOMAPopup(string msg, ViewItem *viewItem);
 #endif
-       void moveRetryItem(ViewItem *viewItem);
-       static char *getGenlistGroupLabelCB(void *data, Evas_Object *obj,
-               const char *part);
+       void setSilentMode(bool value) { m_silentMode = value; }
+       void setActivatedLockScreen(bool value) { m_activatedLockScreen = value; }
+       void checkEditMode(void);
+       static Eina_Bool pauseTimerCB(void *data);
 
 private:
-       static void showNotifyInfoCB(void *data, Evas *evas, Evas_Object *obj, void *event);
-       static void hideNotifyInfoCB(void *data, Evas *evas, Evas_Object *obj, void *event);
-#ifndef _TIZEN_PUBLIC
-       static void sweepRightCB(void *data, Evas_Object *obj, void *event_info);
-       static void sweepLeftCB(void *data, Evas_Object *obj, void *event_info);
+#ifdef _TIZEN_2_3_UX
+       static void selectAllChangedCB(void *data, Evas *e, Evas_Object *obj, void *event_info);
+#else
+       static void selectAllChangedCB(void *data, Evas_Object *obj, void *event_info);
 #endif
-       static void backBtnCB(void *data, Evas_Object *obj, void *event_info);
-       static void cbItemDeleteCB(void *data, Evas_Object *obj, void *event_info);
-       static void cbItemCancelCB(void *data, Evas_Object *obj, void *event_info);
-       static void selectAllClickedCB(void *data, Evas *evas, Evas_Object *obj,
-               void *event_info);
-       static void selectAllChangedCB(void *data, Evas_Object *obj,
-               void *event_info);
        static void genlistClickCB(void *data, Evas_Object *obj, void *event_info);
-       static void cancelClickCB(void *data, Evas_Object *obj, void *event_info);
        static void errPopupResponseCB(void *data, Evas_Object *obj, void *event_info);
-       static Eina_Bool deletedNotifyTimerCB(void *data);
-
+       static void retryPopupCancelCB(void *data, Evas_Object *obj, void *event_info);
+       static void retryPopupRetryCB(void *data, Evas_Object *obj, void *event_info);
+       static void memoryFullPopupCancelCB(void *data, Evas_Object *obj, void *event_info);
+       static void memoryFullPopupMyFilesCB(void *data, Evas_Object *obj, void *event_info);
+       static void deleteBtnCB(void *data, Evas_Object *obj, void *event_info);
+       static void popupBackCB(void *data, Evas_Object *obj, void *event_info);
+       static void deleteToolBarBtnCB(void *data, Evas_Object *obj, void *event_info);
+       static void deletePopupDeleteCB(void *data, Evas_Object *obj, void *event_info);
+       static Eina_Bool popCB(void *data, Elm_Object_Item *it);
+       static void realizedCB(void *data, Evas_Object *obj,    void *event_info);
+#ifdef _ENABLE_OMA_DOWNLOAD
+       static void omaPopupResponseOKCB(void *data, Evas_Object *obj, void *event_info);
+       static void omaPopupResponseCancelCB(void *data, Evas_Object *obj, void *event_info);
+#endif
+#ifdef _TIZEN_2_3_UX
+       static void moreKeyCB(void *data, Evas_Object *obj, void *event_info);
+       static void contextPopupDismissedCB(void *data, Evas_Object *obj, void *event_info);
+       static void rotateContextPopupCB(void *data, Evas_Object *obj, void *event_info);
+       static void tabBarCancelButtonCB(void *data, Evas_Object *obj, void *event_info);
+#endif
 private:
        DownloadView();
        ~DownloadView();
 
-       inline void destroyEvasObj(Evas_Object *e) { if(e) evas_object_del(e); e = NULL;}
        void setTheme(void);
        void setIndicator(Evas_Object *window);
        Evas_Object *createWindow(const char *windowName);
        Evas_Object *createBackground(Evas_Object *window);
+       Evas_Object *createConformant(Evas_Object *window);
        Evas_Object *createLayout(Evas_Object *parent);
        void createTheme(void);
        void createNaviBar(void);
-       void createBackBtn(void);
-       void createControlBar(void);
+#ifdef _TIZEN_2_3_UX
+       void createContextPopup();
+       void deleteContextPopup();
+       void moveContextPopup();
+#else
+       void createToolBar(void);
+       void destroyToolBar(void);
+       void createDeleteBtn(void);
+       void destroyDeleteBtn(void);
+#endif
+       void showDeletePopup(void);
        void createBox(void);
        void createList(void);
 
@@ -119,61 +146,56 @@ private:
        void hideEmptyView(void);
 
        void removePopup(void);
+#ifdef _ENABLE_OMA_DOWNLOAD
+       void removeOnlyPopupObj(void);
+#endif
        void showGenlistEditMode(void);
        void hideGenlistEditMode(void);
-#ifndef _TIZEN_PUBLIC
-       void cancelSweepEvent(void);
+#ifdef _TIZEN_2_3_UX
+       void createSelectAllLayout();
+       void deleteSelectAllLayout();
+#else
+       void changeSelectAll(void);
+       void restoreDeleteBtn(void);
 #endif
-       void createSelectAllLayout(void);
-       void changeAllCheckedValue(void);
        void destroyCheckedItem(void);
-       void showNotifyInfo(int type, int selectedCount);
-       void destroyNotifyInfo(void);
-       void createNotifyInfo(void);
-
-       DateGroup *getDateGroupObj(int type);
-       Elm_Object_Item *getGenlistGroupItem(int type);
-       int getGenlistGroupCount(int type);
-       void setGenlistGroupItem(int type, Elm_Object_Item *item);
-       void increaseGenlistGroupCount(int type);
-       void handleUpdateDateGroupType(ViewItem *viewItem);
+       void showSelectedNotify(int selectedCount);
        void cleanGenlistData();
-       char *getGenlistGroupLabel(void *data, Evas_Object *obj, const char *part);
-#ifndef _TIZEN_PUBLIC
-       ViewItem *findViewItemForGenlistItem(Elm_Object_Item *glItem);
-#endif
 
        Evas_Object *eoWindow;
+#ifndef _TIZEN_2_3_UX
+       Evas_Object *eoIndicatorBackground;
+#endif
        Evas_Object *eoBackground;
+       Evas_Object *eoConform;
        Evas_Object *eoLayout;
-       Elm_Theme *eoTheme;
-
        Evas_Object *eoEmptyNoContent;
        Evas_Object *eoNaviBar;
        Elm_Object_Item *eoNaviBarItem;
-       Evas_Object *eoBackBtn;
-       Evas_Object *eoControlBar;
-       Elm_Object_Item *eoCbItemDelete;
-       Elm_Object_Item *eoCbItemCancel;
-       Elm_Object_Item *eoCbItemEmpty;
-       Ecore_Timer *eoNotifyTimer;
-       Evas_Object *eoBoxLayout;
+#ifndef _TIZEN_2_3_UX
+       Evas_Object *eoToolBar;
+       Elm_Object_Item *eoToolBarItem;
+#endif
        Evas_Object *eoBox;
        Evas_Object *eoDldList;
        Evas_Object *eoPopup;
+#ifdef _TIZEN_2_3_UX
+       Elm_Theme *m_theme;
+       Evas_Object *eoMoreMenu;
        Evas_Object *eoSelectAllLayout;
-       Evas_Object *eoAllCheckedBox;
-       Evas_Object *eoNotifyInfoLayout;
-       Elm_Genlist_Item_Class dldGenlistGroupStyle;
+       bool m_isEditMode;
+#endif
        Eina_Bool m_allChecked;
-#ifndef _TIZEN_PUBLIC
-       ViewItem *m_sweepedItem;
+#ifdef _ENABLE_OMA_DOWNLOAD
+       ViewItem *prevOmaViewItem;
 #endif
-
+       Ecore_Timer *m_pauseTimer;
        int m_viewItemCount;
-       DateGroup m_today;
-       DateGroup m_yesterday;
-       DateGroup m_previousDay;
+       int m_selectedItemsCount;
+       bool m_silentMode;
+       bool m_activatedLockScreen;
+       groupTitleType m_groupTitle[3];
+       unsigned long long m_viewLastRefreshTime;
 };
 
 #endif /* DOWNLOAD_MANAGER_VIEW_H */
old mode 100644 (file)
new mode 100755 (executable)
index cd7d91d..9579be6
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 
 using namespace std;
 
+namespace VIEWITEM_GROUP {
+enum GROUP {
+       TODAY = 0,
+       YESTERDAY,
+       OLDER,
+       NONE,
+};
+}
+
 class ViewItem {
 public:
+       ViewItem(VIEWITEM_GROUP::GROUP type);
        ~ViewItem();
        static void create(Item *item);
        void destroy(void);
+       void cancel(void);
        inline void deleteFromDB(void) {
                if (m_item)
                        m_item->deleteFromDB();
@@ -51,18 +62,17 @@ public:
        static Evas_Object *getGenlistIconCB(void *data, Evas_Object *obj,
                const char *part);
        Evas_Object *getGenlistIcon(Evas_Object *obj, const char *part);
-
-       static void checkChangedCB(void *data, Evas_Object *obj, void *event_info);
-
-#ifndef _TIZEN_PUBLIC
-       void sweepRight(void);
-       void sweepLeft(void);
+#ifdef _TIZEN_2_3_UX
+       static void checkBoxChangedCB(void *data, Evas_Object *obj,
+               void *event_info);
 #endif
+       static void deleteGenlistData(void *data, Evas_Object *obj);
 
+       const char *getGroupTitle();
        const char *getMessage(void);
        const char *getBytesStr(void);
-       const char *getHumanFriendlyBytesStr(unsigned long int bytes,
-               bool progressOption);
+       void getHumanFriendlyBytesStr(unsigned long long bytes,
+               bool progressOption, char **buff);
 
        Elm_Genlist_Item_Class *elmGenlistStyle(void);
 
@@ -70,11 +80,9 @@ public:
                { return &dldGenlistStyle; }
        inline Elm_Genlist_Item_Class *elmGenlistHistoryItemClass(void)
                { return &dldHistoryGenlistStyle; }
-       inline Elm_Genlist_Item_Class *elmGenlistFailedItemClass(void)
-               { return &dldGenlistSlideStyle; }
-       inline ITEM::STATE state(void) {
+       inline ITEM::STATE getState(void) {
                if (m_item)
-                       return m_item->state();
+                       return m_item->getState();
                else
                        return ITEM::IDLE;
        }
@@ -108,67 +116,68 @@ public:
                else
                        return false;
        }
+       inline void setInsertAtFirst(bool insertAtFirst) {
+               m_insertAtFirst = insertAtFirst;
+       }
+       inline bool getInsertAtFirst() { return m_insertAtFirst; }
+       inline bool isGroupTitle(void) { return m_isGroupTitle; }
 
-       unsigned long int receivedFileSize(void);
-       unsigned long int fileSize(void);
+       unsigned long long getReceivedFileSize(void);
+       unsigned long long getFileSize(void);
        const char *getTitle(void);
-       inline const char *getErrMsg(void) { return m_item->getErrorMessage(); }
-       const char *getIconPath(void) { return m_item->iconPath().c_str(); }
+       const char *getIconPath(void) { return m_item->getIconPath().c_str(); }
 
        inline Elm_Object_Item *genlistItem(void) { return m_glItem; }
        inline void setGenlistItem(Elm_Object_Item *glItem) { m_glItem = glItem; }
-       inline void setProgressBar(Evas_Object *p) { m_progressBar = p; }
+       inline string senderName(void) { return m_item->getSender(); }
 
-       void clickedDeleteButton(void);
        void clickedCancelButton(void);
+       void clickedCanceledRetryButton(void);
        void clickedRetryButton(void);
        void clickedGenlistItem(void);
-       void requestCancel(void);
        inline Eina_Bool checkedValue(void) { return m_checked; }
        void setCheckedValue(Eina_Bool b) { m_checked = b; }
        inline Evas_Object *checkedBtn(void) { return m_checkedBtn; }
        void setCheckedBtn(Evas_Object *e) { m_checkedBtn = e; }
 
-       void updateCheckedBtn(void);
+       inline double getFinishedTime(void) { return m_item->getFinishedTime();}
+       inline VIEWITEM_GROUP::GROUP getItemGroup(void) { return m_group; }
+       inline void setItemGroup(VIEWITEM_GROUP::GROUP group) { m_group = group; }
+       void extractDateGroupType(void);
 
-       inline int dateGroupType(void) { return m_dateGroupType; }
-       void setDateGroupType (int t) { m_dateGroupType = t; }
+       inline unsigned int getHistoryId(void) { return m_item->getHistoryId(); }
 
-       inline double finishedTime(void) { return m_item->finishedTime();}
-       void extractDateGroupType(void);
+       void setIsClickedFromNoti(bool b) { m_isClickedFromNoti = b; }
+       bool isClickedFromNoti(void) { return m_isClickedFromNoti; }
 
-       inline unsigned int historyId(void) { return m_item->historyId(); }
+#ifdef _ENABLE_OMA_DOWNLOAD
+       void responseUserConfirm(bool res);
+#endif
 private:
        ViewItem(Item *item);
 
        void updateFromItem(void);
        Evas_Object *createProgressBar(Evas_Object *parent);
-#ifndef _TIZEN_PUBLIC
-       Evas_Object *createDeleteBtn(Evas_Object *parent);
-       Evas_Object *createRetryBtn(Evas_Object *parent);
-#endif
        Evas_Object *createCancelBtn(Evas_Object *parent);
        void retryViewItem(void);
 
-       static void deleteBtnClickedCB(void *data, Evas_Object *obj,
-               void *event_info);
        static void cancelBtnClickedCB(void *data, Evas_Object *obj,
                void *event_info);
-       static void retryBtnClickedCB(void *data, Evas_Object *obj,
-               void *event_info);
 
        auto_ptr<Observer> m_aptr_observer;
        Item *m_item;
 
-       Elm_Genlist_Item_Class dldGenlistStyle;
-       Elm_Genlist_Item_Class dldHistoryGenlistStyle;
-       Elm_Genlist_Item_Class dldGenlistSlideStyle;
+       static Elm_Genlist_Item_Class dldGenlistStyle;
+       static Elm_Genlist_Item_Class dldHistoryGenlistStyle;
+       static Elm_Genlist_Item_Class dldGroupTitleGenlistStyle;
        Elm_Object_Item *m_glItem;
-       Evas_Object *m_progressBar;
        Evas_Object *m_checkedBtn;
        Eina_Bool m_checked;
        bool m_isRetryCase;
-       int m_dateGroupType;
+       bool m_isClickedFromNoti;
+       bool m_isGroupTitle;
+       bool m_insertAtFirst;
+       VIEWITEM_GROUP::GROUP m_group;
 };
 
 #endif /* DOWNLOAD_MANAGER_VIEW_ITEM_H */
old mode 100644 (file)
new mode 100755 (executable)
index f4dfce8..1461aac
@@ -1,11 +1,11 @@
 /*
  * Copyright 2012  Samsung Electronics Co., Ltd
  *
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.tizenopensource.org/license
+ *    http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 #include <iostream>
 #include <memory>
 
+#include "Ecore.h"
 #include "Ecore_X.h"
-#include "aul.h"
 #include "app.h"
-#include "app_service.h"
+#include "app_control.h"
+#include "efl_assist.h"
+#ifdef _ENABLE_OMA_DOWNLOAD
+#include <oma-parser-interface.h>
+#endif
 
 #include "download-manager-common.h"
 #include "download-manager-view.h"
 #include "download-manager-network.h"
 #include "download-manager-downloadRequest.h"
 #include "download-manager-history-db.h"
+#include "download-manager-notification.h"
+
+#ifndef EXPORT_API
+#define EXPORT_API __attribute__((visibility("default")))
+#endif
 
 using namespace std;
 
@@ -44,30 +53,54 @@ struct app_data_t {
        int load_count;
 };
 
-#ifndef _TIZEN_PUBLIC
-int __get_rotate_angle()
-{
-       int angle = 0;
-       app_device_orientation_e rotation_state;
-       rotation_state = app_get_device_orientation();
 
-       DP_LOG("Rotate angle[%d]",rotation_state);
-       return rotation_state;
+#ifdef _TIZEN_2_3_UX
+static Ea_Theme_Color_Table *colorTable = NULL;
+static Eina_List *fontTable = NULL;
+
+static void __dm_changeable_theme_init(void)
+{
+       DM_LOGD("");
+       Ea_Theme_Style style = ea_theme_style_get();
+       colorTable = ea_theme_color_table_new(DM_COLOR_TABLE_PATH);
+       if (colorTable)
+               ea_theme_colors_set(colorTable, style);
+       else
+               DM_LOGE("[ERR] color table create fail");
+
+       fontTable = ea_theme_font_table_new(DM_FONT_TABLE_PATH);
+       if (fontTable)
+               ea_theme_fonts_set(fontTable);
+       else
+               DM_LOGE("[ERR] font table create fail");
 }
 
-static void __rotate_changed_cb(app_device_orientation_e m, void *data)
+static void __dm_changeable_theme_free(void)
 {
-       int angle = 0;
-       DownloadView &view = DownloadView::getInstance();
-       angle = __get_rotate_angle();
-       view.rotateWindow(angle);
-       return;
+       DM_LOGD("");
+       if (colorTable) {
+               ea_theme_color_table_free(colorTable);
+               colorTable = NULL;
+       }
+
+       if (fontTable) {
+               ea_theme_font_table_free(fontTable);
+               fontTable = NULL;
+       }
 }
+
 #endif
 
 static void __lang_changed_cb(void *data)
 {
-       DP_LOG("=== Language changed nofification ===");
+       DM_LOGI("==Language changed notification==");
+       char *lang_set = vconf_get_str(VCONFKEY_LANGSET);
+       if (lang_set) {
+               elm_language_set(lang_set);
+               free(lang_set);
+       }
+       DownloadView &view = DownloadView::getInstance();
+       view.updateLang();
        return;
 }
 
@@ -75,13 +108,13 @@ static void __region_changed_cb(void *data)
 {
        DownloadView &view = DownloadView::getInstance();
        view.changedRegion();
-       DP_LOG("=== Region changed nofification ===");
+       DM_LOGI("==Region changed notification==");
        return;
 }
 
 static void __low_memory_cb(void *data)
 {
-       DP_LOG("=== Low memory nofification ===");
+       DM_LOGI("=== Low memory nofification ===");
        return;
 }
 
@@ -93,144 +126,248 @@ static Eina_Bool __load_remained_history(void *data)
                DownloadHistoryDB::createRemainedItemsFromHistoryDB(
                        LOAD_HISTORY_COUNT, app_data->load_count);
                return ECORE_CALLBACK_RENEW;
-       } else
+       } else {
+               if(app_data)
+                       app_data->idler = NULL;
                return ECORE_CALLBACK_CANCEL;
+       }
 }
 
 static bool __app_create(void *data)
 {
        int count = 0;
-#ifndef _TIZEN_PUBLIC
-       int angle = 0;
-#endif
        struct app_data_t *app_data = (struct app_data_t *)data;
-       DP_LOG_START("App Create");
+       DM_LOGI("");
 
        DownloadView &view = DownloadView::getInstance();
        Evas_Object *window = view.create();
        if (!window) {
-               DP_LOGE("Fail to create main window");
+               DM_LOGE("Fail to create main window");
                return false;
        }
-       /* Init network */
-       NetMgr &netObj = NetMgr::getInstance();
-       netObj.initNetwork();
-
-#ifndef _TIZEN_PUBLIC
-       angle = __get_rotate_angle();
-       view.rotateWindow(angle);
+       ea_theme_changeable_ui_enabled_set(EINA_TRUE);
+#ifdef _TIZEN_2_3_UX
+       __dm_changeable_theme_init();
 #endif
-#ifndef _SILENT_LAUNCH
-       evas_object_show(window);
-       view.show();
+#ifdef _ENABLE_OMA_DOWNLOAD
+       op_parser_init();
 #endif
+       /* Make genlist items of history for UI performance */
+       view.update();
 
+       DownloadNoti::clearOngoingNoti();
        DownloadHistoryDB::getCountOfHistory(&count);
        if (count > 0) {
                DownloadHistoryDB::createItemsFromHistoryDB();
                if (count > LOAD_HISTORY_COUNT) {
                        if (app_data) {
                                app_data->history_count = count;
-                               app_data->idler = ecore_idler_add(__load_remained_history, app_data);
+                               app_data->idler = ecore_idler_add(__load_remained_history,
+                                               app_data);
                        }
                }
        }
 
-       DP_LOG_END("App Create");
+       DM_LOGD("DONE");
 
        return true;
 }
 
 static void __app_terminate(void *data)
 {
-       DP_LOG_FUNC();
+       DM_LOGI("");
        struct app_data_t *app_data = (struct app_data_t *)data;
-       NetMgr &netObj = NetMgr::getInstance();
-       netObj.deinitNetwork();
        DownloadView &view = DownloadView::getInstance();
        view.destroy();
+#ifdef _TIZEN_2_3_UX
+       __dm_changeable_theme_free();
+#endif
+#ifdef _ENABLE_OMA_DOWNLOAD
+       op_parser_deinit();
+#endif
        if (app_data && app_data->idler)
                ecore_idler_del(app_data->idler);
-       if (app_data) {
-               free(app_data);
-               app_data = NULL;
-       }
+       DownloadHistoryDB::closeDBConn();
+       DM_LOGD("[Info] DB Connection closed");
        return;
 }
 
 static void __app_pause(void *data)
 {
-       DP_LOG_FUNC();
+       DM_LOGI("");
+       DownloadView &view = DownloadView::getInstance();
+       view.pause();
        return;
 }
 
 static void __app_resume(void *data)
 {
+       DM_LOGI("");
+       DownloadView &view = DownloadView::getInstance();
+       view.setSilentMode(true);
+       view.resume();
        return;
 }
 
-static void __app_service(service_h s, void *data)
+static void __app_control(app_control_h s, void *data)
 {
-       string s_url = std::string();
-       string s_cookie = std::string();
+       string reqUrl = std::string();
+       string reqHeaderField = std::string();
+       string reqHeaderValue = std::string();
+       string reqInstallDir = std::string();
+       string reqFileName = std::string();
        char *url = NULL;
-       char *cookie = NULL;
        char *mode = NULL;
        char *app_op = NULL;
+       char *historyid_str = NULL;
+       char *req_header_field = NULL;
+       char *req_header_value = NULL;
+       char *default_storage = NULL;
+       char *file_name = NULL;
+       char *network_bonding = NULL;
        DownloadView &view = DownloadView::getInstance();
+       int ret = 0;
 
-       DP_LOG_FUNC();
+       DM_LOGI("");
 
-       if (service_get_operation(s, &app_op) < 0) {
-               DP_LOGE("Fail to get service operation");
+       /* The default view mode is normal*/
+       view.setSilentMode(true);
+       if (app_control_get_operation(s, &app_op) < 0) {
+               DM_LOGE("Fail to get app control operation");
                return;
        }
-       DP_LOG("operation[%s]", app_op);
+       DM_SLOGI("operation[%s]", app_op);
+       free(app_op);
 
-       if (service_get_uri(s, &url) < 0) {
-               DP_LOGE("Invalid URL");
+       if (app_control_get_uri(s, &url) < 0) {
+               DM_LOGE("Invalid URL");
        } else {
-               DP_LOG("url[%s]",url);
+               DM_SLOGI("url[%s]",url);
                if (url)
-                       s_url = url;
+                       reqUrl = url;
+               free(url);
        }
 
-       if (service_get_extra_data(s, "cookie", &cookie) < 0) {
-               DP_LOG("No cookie");
+       ret = app_control_get_extra_data(s, KEY_DEFAULT_STORAGE, &default_storage);
+       if (ret == APP_CONTROL_ERROR_NONE) {
+               if (default_storage) {
+                       string defaultStorage = string(default_storage);
+                       if (defaultStorage.compare("1") == 0)
+                               reqInstallDir.assign(DM_DEFAULT_MMC_INSTALL_DIR);
+                       else
+                               reqInstallDir.assign(DM_DEFAULT_PHONE_INSTALL_DIR);
+                       DM_SLOGI("install dir[%s]",reqInstallDir.c_str());
+               }
+               free(default_storage);
        } else {
-               DP_LOG("cookie[%s]",cookie);
-               if (cookie)
-                       s_cookie = cookie;
+               DM_LOGI("Fail to get extra data default storage[%d]", ret);
        }
 
-       if (service_get_extra_data(s, "mode", &mode) < 0) {
-               DP_LOG("No mode");
+       ret = app_control_get_extra_data(s, KEY_FILE_NAME, &file_name);
+       if (ret == APP_CONTROL_ERROR_NONE) {
+               if (file_name) {
+                       reqFileName.assign(file_name);
+                       DM_SLOGI("User preferred file name[%s]",reqFileName.c_str());
+               }
+               free(file_name);
        } else {
-               DP_LOG("mode[%s]",mode);
-               if ( 0 == strncmp(mode, "view", strlen("view"))) {
-                       DP_LOG("View mode");
+               DM_LOGI("Fail to get extra data file name[%d]", ret);
+       }
+
+       ret = app_control_get_extra_data(s, KEY_REQ_HTTP_HEADER_FIELD, &req_header_field);
+       if (ret == APP_CONTROL_ERROR_NONE) {
+               DM_SLOGI("request header filed[%s]",req_header_field);
+               if (req_header_field)
+                       reqHeaderField = req_header_field;
+               free(req_header_field);
+               ret = app_control_get_extra_data(s, KEY_REQ_HTTP_HEADER_VALUE, &req_header_value);
+               if (ret == APP_CONTROL_ERROR_NONE) {
+                       DM_SLOGI("request header value[%s]",req_header_value);
+                       if (req_header_value)
+                               reqHeaderValue = req_header_value;
+                       free(req_header_value);
+               }
+       }
+
+       ret = app_control_get_extra_data(s, KEY_MODE, &mode);
+       if (ret == APP_CONTROL_ERROR_NONE) {
+               DM_SLOGI("mode[%s]",mode);
+               if (0 == strncmp(mode, KEY_MODE_VALUE_VIEW,
+                               strlen(KEY_MODE_VALUE_VIEW))) {
+                       DM_LOGI("View mode");
+                       view.setSilentMode(false);
                        view.activateWindow();
+                       free(mode);
                        return;
+               } else if (0 == strncmp(mode, KEY_MODE_VALUE_SILENT,
+                               strlen(KEY_MODE_VALUE_SILENT))) {
+                       DM_LOGI("Silent mode");
+                       view.setSilentMode(true);
+                       view.activateWindow();
+                       free(mode);
+               } else {
+                       DM_LOGE("Invalid mode");
+                       view.activateWindow();
+                       free(mode);
+                       return;
+               }
+       } else {
+               DM_LOGI("Fail to get extra data mode[%d]", ret);
+       }
+
+       ret = app_control_get_extra_data(s, KEY_DOWNLOADING_HISTORYID, &historyid_str);
+       if (ret == APP_CONTROL_ERROR_NONE) {
+               view.setSilentMode(false);
+               view.activateWindow();
+               if (historyid_str) {
+                       errno = 0;
+                       char *end_ptr = historyid_str;
+                       unsigned int id = (int) strtol(historyid_str, &end_ptr, 0);
+                       if (ERANGE == errno) {
+                               DM_LOGE("HistoryId String conversion failed");
+                               return;
+                       }
+                       DM_LOGI("History Id from downloading noti[%s]", historyid_str);
+                       view.clickedItemFromNoti(id, NOTIFICATION_TYPE::NOTI_DOWNLOADING);
+               } else {
+                       DM_LOGE("Invalid history Id string");
                }
-               DP_LOGE("Invalid mode");
+               free(historyid_str);
+               return;
+       } else {
+               DM_LOGI("Fail to get extra data downloading history ID[%d]", ret);
+       }
+
+       ret = app_control_get_extra_data(s, KEY_FAILED_HISTORYID, &historyid_str);
+       if (ret == APP_CONTROL_ERROR_NONE) {
+               view.setSilentMode(false);
                view.activateWindow();
+               if (historyid_str) {
+                       unsigned int id = atoi(historyid_str);
+                       DM_LOGI("History Id from Failed noti[%s]", historyid_str);
+                       view.clickedItemFromNoti(id, NOTIFICATION_TYPE::NOTI_FAILED);
+               } else {
+                       DM_LOGE("Invalid history Id string");
+               }
+               free(historyid_str);
                return;
+       } else {
+               DM_LOGI("Fail to get extra data failed history ID[%d]", ret);
        }
 
-       if (s_url.empty()) {
+       if (reqUrl.empty()) {
+               view.setSilentMode(false);
                view.activateWindow();
                return;
        }
-       DownloadRequest request(s_url, s_cookie);
+       DownloadRequest request(reqUrl, reqHeaderField, reqHeaderValue,
+                       reqInstallDir, reqFileName);
        Item::create(request);
-#ifndef _SILENT_LAUNCH
        view.activateWindow();
-#endif
-
        return;
 }
 
-int main(int argc, char *argv[])
+EXPORT_API int main(int argc, char *argv[])
 {
        app_event_callback_s evt_cb = {0,};
        int ret = 0;
@@ -238,27 +375,26 @@ int main(int argc, char *argv[])
 
        app_data = (struct app_data_t *)calloc(1, sizeof(struct app_data_t));
        if (!app_data) {
-               DP_LOGE("Fail to calloc of app data");
+               DM_LOGE("Fail to call calloc");
                return ret;
        }
+       if (DownloadHistoryDB::openDBConn() == true)
+               DM_LOGD("[Info] DB Connection opened");
 
        evt_cb.create = __app_create;
        evt_cb.terminate = __app_terminate;
        evt_cb.pause = __app_pause;
        evt_cb.resume = __app_resume;
-       evt_cb.service = __app_service;
+       evt_cb.app_control = __app_control;
        evt_cb.low_memory = __low_memory_cb;
        evt_cb.low_battery = NULL;
-#ifndef _TIZEN_PUBLIC
-       evt_cb.device_orientation = __rotate_changed_cb;
-#else
        evt_cb.device_orientation = NULL;
-#endif
        evt_cb.language_changed = __lang_changed_cb;
        evt_cb.region_format_changed = __region_changed_cb;
 
        ret = app_efl_main(&argc, &argv, &evt_cb, app_data);
-       DP_LOG("Main return");
+       DM_LOGI("Done");
+       free(app_data);
 
        return ret;
 }