diff --git a/CMakeLists.txt b/CMakeLists.txt index 52d12e900..5728794c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,469 +1,479 @@ if(SAILFISHOS) cmake_minimum_required(VERSION 2.8.11) else(SAILfISHOS) cmake_minimum_required(VERSION 2.8.12) endif() project(gcompris-qt C CXX) # get all the redist dll needed for windows when compiling with vc set(CMAKE_INSTALL_UCRT_LIBRARIES 1) include(InstallRequiredSystemLibraries) # Set c++11 support include(CheckCXXCompilerFlag) CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) if(COMPILER_SUPPORTS_CXX11) set(my_cxx_flags "-std=c++11") elseif(COMPILER_SUPPORTS_CXX0X) set(my_cxx_flags "-std=c++0x") else() message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.") endif() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${my_cxx_flags}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${my_cxx_flags}") # enable qml debugging for DEBUG builds: set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DQT_QML_DEBUG") set(GCOMPRIS_MAJOR_VERSION 0) -set(GCOMPRIS_MINOR_VERSION 70) +set(GCOMPRIS_MINOR_VERSION 80) set(GCOMPRIS_PATCH_VERSION 0) # Set the BUILD_DATE string(TIMESTAMP BUILD_DATE %Y%M) # cmake modules setup find_package(ECM 1.4.0 QUIET NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_SOURCE_DIR}/cmake/) set(CMAKE_PREFIX_PATH "${Qt5_DIR}/lib/cmake/Qt5") # KDE po to qm tools if(ECM_FOUND) include(ECMPoQmTools) if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po") ecm_install_po_files_as_qm(po) endif() endif(ECM_FOUND) if(CMAKE_SYSTEM_NAME STREQUAL Android) find_package(ECM) set(ANDROID 1) # TODO: possibly should be setup by toolchain one day set(QT_QMAKE_EXECUTABLE "${_qt5Core_install_prefix}/bin/qmake") # workaround until this fix is in released ECM if(ECM_VERSION VERSION_LESS "5.15.0") add_definitions(-DANDROID) endif() endif() # Set executable filename if(ANDROID) set(GCOMPRIS_EXECUTABLE_NAME GCompris) if("${ANDROID_ARCHITECTURE}" STREQUAL "x86") # We always want x86 to be a release above to arm one because the play # store want x86 to be pushed after arm. MATH(EXPR GCOMPRIS_MINOR_VERSION "${GCOMPRIS_MINOR_VERSION}+1") endif("${ANDROID_ARCHITECTURE}" STREQUAL "x86") elseif(SAILFISHOS) set(GCOMPRIS_EXECUTABLE_NAME harbour-gcompris-qt) elseif(WIN32) set(GCOMPRIS_EXECUTABLE_NAME GCompris) else() set(GCOMPRIS_EXECUTABLE_NAME gcompris-qt) endif() set(GCOMPRIS_VERSION ${GCOMPRIS_MAJOR_VERSION}.${GCOMPRIS_MINOR_VERSION}) # An integer value that represents the version of the application # Increase it at each release math(EXPR GCOMPRIS_VERSION_CODE "${GCOMPRIS_MAJOR_VERSION}*10000 + ${GCOMPRIS_MINOR_VERSION}*100 + ${GCOMPRIS_PATCH_VERSION}") # KDE po to qm tools if(ECM_FOUND) include(ECMPoQmTools) if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po") ecm_install_po_files_as_qm(po) endif() endif(ECM_FOUND) # prevent build in source directory if("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}") message(SEND_ERROR "Building in the source directory is not supported.") message(FATAL_ERROR "Please remove the created \"CMakeCache.txt\" file, the \"CMakeFiles\" directory and create a build directory and call \"${CMAKE_COMMAND} \".") endif("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}") # Sailfish does not provide a recent Qt version if(SAILFISHOS) set(QT_REQUIRED_VERSION 5.2.2) else() set(QT_REQUIRED_VERSION 5.3.0) endif() find_package(Qt5 ${QT_REQUIRED_VERSION} REQUIRED Qml Quick Gui Multimedia Core Svg Xml XmlPatterns LinguistTools Sensors) find_package (KF5 QUIET COMPONENTS DocTools ) if(KF5_FOUND) include(KDEInstallDirs) if (ECM_VERSION VERSION_GREATER "1.6.0") add_subdirectory(images) install(FILES org.kde.gcompris.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) install(FILES org.kde.gcompris.desktop DESTINATION ${KDE_INSTALL_APPDIR}) endif() endif() FIND_PROGRAM(LRELEASE_EXECUTABLE lrelease-qt5 lrelease PATHS ${Qt5_DIR}/../../../bin/ /usr/local/bin /usr/bin/ NO_DEFAULT_PATH ) #get_cmake_property(_variableNames VARIABLES) #foreach (_variableName ${_variableNames}) # message("${_variableName}=${${_variableName}}") #endforeach() set(ACTIVATION_MODE "no" CACHE STRING "Policy for activation [no|inapp|internal]") option(WITH_DEMO_ONLY "Include only demo activities" OFF) option(WITH_DOWNLOAD "Internal download" ON) # @FIXME These permissions should be removed if download is disable # but it makes the application crash on exit (tested on Android 6) set(ANDROID_INTERNET_PERMISSION "") set(ANDROID_ACCESS_NETWORK_STATE_PERMISSION "") # Set output directory if(CMAKE_HOST_APPLE) set(_bundle_bin gcompris-qt.app/Contents/MacOS) set(_data_dest_dir bin/${_bundle_bin}/../Resources) elseif(ANDROID) set(_data_dest_dir android/assets) else() set(_data_dest_dir share/${GCOMPRIS_EXECUTABLE_NAME}) endif() if(ANDROID) # Android .so output set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/android/libs/${ANDROID_ABI}/) set(GCOMPRIS_TRANSLATIONS_DIR ${CMAKE_BINARY_DIR}/${_data_dest_dir} CACHE INTERNAL "" FORCE) set(GCOMPRIS_RCC_DIR ${CMAKE_BINARY_DIR}/${_data_dest_dir} CACHE INTERNAL "" FORCE) if(ACTIVATION_MODE STREQUAL "inapp") set(ANDROID_BILLING_PERMISSION "") set(ANDROID_PACKAGE "net.gcompris") else(ACTIVATION_MODE) set(ANDROID_PACKAGE "net.gcompris.full") endif() add_subdirectory(android) elseif(CMAKE_HOST_APPLE) # MacOSX build set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(GCOMPRIS_TRANSLATIONS_DIR ${CMAKE_BINARY_DIR}/${_data_dest_dir}/translations CACHE INTERNAL "" FORCE) set(GCOMPRIS_RCC_DIR ${CMAKE_BINARY_DIR}/${_data_dest_dir}/rcc CACHE INTERNAL "" FORCE) else() # Desktop build set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(GCOMPRIS_TRANSLATIONS_DIR ${CMAKE_BINARY_DIR}/${_data_dest_dir}/translations CACHE INTERNAL "" FORCE) set(GCOMPRIS_RCC_DIR ${CMAKE_BINARY_DIR}/${_data_dest_dir}/rcc CACHE INTERNAL "" FORCE) endif(ANDROID) # Always create these folders add_custom_command( OUTPUT shareFolders COMMAND cmake -E make_directory ${GCOMPRIS_TRANSLATIONS_DIR} COMMAND cmake -E make_directory ${GCOMPRIS_RCC_DIR} ) add_custom_target( createShareFolders ALL DEPENDS shareFolders ) include(cmake/rcc.cmake) # Translations handling # Simple command calling the python script add_custom_command( OUTPUT retrievePoFilesFromSvn COMMAND python2 tools/l10n-fetch-po-files.py WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) # Install translations add_custom_target(getSvnTranslations DEPENDS retrievePoFilesFromSvn COMMENT "Re-run cmake after this to be able to run BuildTranslations with the latest files" ) # Get all po files in po/. You can get them doing: python2 tools/l10n-fetch-po-files.py file(GLOB TRANSLATIONS_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "po/*.po") # Set the output dir for the translation files to /bin foreach(PoSource ${TRANSLATIONS_FILES}) # Changes the .po extension to .ts string(REPLACE ".po" ".ts" TsSource ${PoSource}) # Removes the po/ folder string(REPLACE "po/" "" TsSource ${TsSource}) # qm filename string(REPLACE ".ts" ".qm" QmOutput ${TsSource}) set(OutTsFile ${CMAKE_BINARY_DIR}/tmp/${TsSource}) add_custom_command( OUTPUT ${QmOutput} COMMAND cmake -E make_directory ${GCOMPRIS_TRANSLATIONS_DIR} COMMAND cmake -E make_directory ${CMAKE_BINARY_DIR}/tmp # Remove the obsolete translations and set po in the ts output file COMMAND msgattrib --no-obsolete ${CMAKE_CURRENT_SOURCE_DIR}/${PoSource} -o ${OutTsFile} # Convert the po into ts COMMAND Qt5::lconvert -if po -of ts -i ${OutTsFile} -o ${OutTsFile} # Convert the ts in qm removing non finished translations COMMAND Qt5::lrelease -compress -nounfinished ${OutTsFile} -qm ${GCOMPRIS_TRANSLATIONS_DIR}/${QmOutput} ) list(APPEND QM_FILES ${QmOutput}) endforeach() # Install translations -add_custom_target(BuildTranslations - DEPENDS ${QM_FILES} - COMMENT "If you don't have the .po, you need to run make getSvnTranslations first then re-run cmake" - ) +if (WIN32) + add_custom_target(BuildTranslations + DEPENDS ${QM_FILES} + COMMENT "If you don't have the .po, you need to run make getSvnTranslations first then re-run cmake" + ) +else() + add_custom_target(BuildTranslations ALL + DEPENDS ${QM_FILES} + COMMENT "If you don't have the .po, you need to run make getSvnTranslations first then re-run cmake" + ) +endif() add_custom_command( OUTPUT doBundleTranslations COMMAND 7z a -w${CMAKE_BINARY_DIR}/share/${GCOMPRIS_EXECUTABLE_NAME} ${CMAKE_BINARY_DIR}/translations-${GCOMPRIS_VERSION}.7z ${CMAKE_BINARY_DIR}/share/${GCOMPRIS_EXECUTABLE_NAME}/translations WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) # Bundle translations add_custom_target(BundleTranslations DEPENDS doBundleTranslations COMMENT "If you want to provide a zip of the translations on a server (run make BuildTranslations first)" ) add_custom_command( OUTPUT doDlAndInstallBundledTranslations COMMAND curl -fsS -o translations-${GCOMPRIS_VERSION}.7z http://gcompris.net/download/translations-${GCOMPRIS_VERSION}.7z COMMAND 7z x -y -o${CMAKE_BINARY_DIR}/share/${GCOMPRIS_EXECUTABLE_NAME} translations-${GCOMPRIS_VERSION}.7z WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) # Download and install bundled translations add_custom_target(DlAndInstallBundledTranslations DEPENDS doDlAndInstallBundledTranslations COMMENT "Download the bundled translation and install them in the build dir" ) if(CMAKE_HOST_APPLE) install(DIRECTORY ${GCOMPRIS_TRANSLATIONS_DIR} DESTINATION ${_bundle_bin}) else() install(DIRECTORY ${GCOMPRIS_TRANSLATIONS_DIR} DESTINATION ${_data_dest_dir}) endif() # Build standalone package option -> if ON, we will copy the required Qt files in the build package. # If OFF, "make install" will not copy Qt files so only GCompris files will be packaged. # By default, it is true on Windows (as we deliver NSIS package), macOS (bundled), android (apk) and false on linux (to do make install) # If you want to create a STGZ package for linux (auto-extractible), override this variable by typing : cmake -DBUILD_STANDALONE=ON if(UNIX AND NOT ANDROID AND NOT APPLE) option(BUILD_STANDALONE "Build a standalone package when typing 'make package'" OFF) else() option(BUILD_STANDALONE "Build a standalone package when typing 'make package'" ON) endif() option(WITH_KIOSK_MODE "Set the kiosk mode by default" OFF) if(WIN32) set(COMPRESSED_AUDIO "mp3" CACHE STRING "Compressed Audio format [ogg|aac|mp3]") elseif(APPLE) set(COMPRESSED_AUDIO "aac" CACHE STRING "Compressed Audio format [ogg|aac|mp3]") else() set(COMPRESSED_AUDIO "ogg" CACHE STRING "Compressed Audio format [ogg|aac|mp3]") endif() file(GLOB_RECURSE OGG_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/ "*.ogg") foreach(OGG_FILE ${OGG_FILES}) # This should only replace the extension string(REGEX REPLACE "ogg$" "aac" AAC_FILE ${OGG_FILE}) add_custom_command( OUTPUT ${AAC_FILE} # Put the good line depending on your installation COMMAND avconv -v warning -i ${OGG_FILE} -acodec libvo_aacenc ${AAC_FILE} #COMMAND ffmpeg -v warning -i ${OGG_FILE} -acodec aac -strict -2 ${AAC_FILE} ) list(APPEND AAC_FILES ${AAC_FILE}) # This should only replace the extension string(REGEX REPLACE "ogg$" "mp3" MP3_FILE ${OGG_FILE}) add_custom_command( OUTPUT ${MP3_FILE} # Put the good line depending on your installation #COMMAND avconv -v warning -i ${OGG_FILE} -acodec mp3 ${MP3_FILE} COMMAND ffmpeg -v warning -i ${OGG_FILE} -acodec mp3 -strict -2 ${MP3_FILE} ) list(APPEND MP3_FILES ${MP3_FILE}) endforeach() add_custom_target( createAacFromOgg DEPENDS ${AAC_FILES} ) add_custom_target( createMp3FromOgg DEPENDS ${MP3_FILES} ) # predownload assets (voices and images) and install them in the rcc folder set(DOWNLOAD_ASSETS "" CACHE STRING "Download and packages images and voices. use a list like: words,en,fr,pt_BR to retrieve multiple files") add_custom_command( OUTPUT predownloadAssets COMMAND python2 tools/download-assets.py ${DOWNLOAD_ASSETS} ${COMPRESSED_AUDIO} ${GCOMPRIS_RCC_DIR} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) add_custom_command( OUTPUT assetsFolders COMMAND cmake -E make_directory "${GCOMPRIS_RCC_DIR}/data2" COMMAND cmake -E make_directory "${GCOMPRIS_RCC_DIR}/data2/voices-${COMPRESSED_AUDIO}" COMMAND cmake -E make_directory "${GCOMPRIS_RCC_DIR}/data2/words" ) # Install assets add_custom_target(getAssets DEPENDS assetsFolders predownloadAssets ) add_custom_command( OUTPUT doBundleConvertedOggs COMMAND 7z a converted_ogg_to_${COMPRESSED_AUDIO}-${GCOMPRIS_VERSION}.7z '-ir!src/*${COMPRESSED_AUDIO}' WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) # Bundle oggs ready to be uploaded on a server. This ease build on system without the appropriate audio # convertion tools. add_custom_target(BundleConvertedOggs DEPENDS doBundleConvertedOggs COMMENT "Bundle the converted oggs to upload them on a server. First set COMPRESSED_AUDIO appropriately." ) add_custom_command( OUTPUT doDlAndInstallBundledConvertedOggs COMMAND curl -fsS -o converted_ogg_to_${COMPRESSED_AUDIO}-${GCOMPRIS_VERSION}.7z http://gcompris.net/download/converted_ogg_to_${COMPRESSED_AUDIO}-${GCOMPRIS_VERSION}.7z COMMAND 7z x -y converted_ogg_to_${COMPRESSED_AUDIO}-${GCOMPRIS_VERSION}.7z WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) # Download and install bundled converted oggs add_custom_target(DlAndInstallBundledConvertedOggs DEPENDS doDlAndInstallBundledConvertedOggs COMMENT "Download the bundled converted oggs and install them in the source dir" ) set(ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-${GCOMPRIS_VERSION}) add_custom_target(dist COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD | xz > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar.xz WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) if(KF5_FOUND) add_subdirectory(docs/docbook) endif(KF5_FOUND) if(SAILFISHOS) # Need to be done at the end, after src add_subdirectory(platforms/sailfishOS) endif() # # qml-box2d # set(QML_BOX2D_MODULE "auto" CACHE STRING "Policy for qml-box2d module [auto|submodule|system|disabled]") if (${QML_BOX2D_MODULE} STREQUAL "disabled") # disable all activities depending on qml-box2d set(_disabled_activities "balancebox,land_safe") message(STATUS "Disabling qml-box2d module and depending activities: ${_disabled_activities}") else() include(qt_helper) getQtQmlPath(_qt_qml_system_path) set (_box2d_system_dir "${_qt_qml_system_path}/Box2D.2.0") if (${QML_BOX2D_MODULE} STREQUAL "submodule") message(STATUS "Building qml-box2d module from submodule") set(_need_box2d_submodule "TRUE") else() # try to find module in system scope find_library(QML_BOX2D_LIBRARY NAMES Box2D libBox2D PATHS ${_box2d_system_dir} NO_DEFAULT_PATH) if (QML_BOX2D_LIBRARY) message(STATUS "Using system qml-box2d plugin at ${QML_BOX2D_LIBRARY}") # for packaging builds, copy the module manually to the correct location if(SAILFISHOS) file(COPY ${_box2d_system_dir}/qmldir ${QML_BOX2D_LIBRARY} DESTINATION share/harbour-gcompris-qt/lib/qml/Box2D.2.0) elseif(ANDROID) file(COPY ${_box2d_system_dir}/qmldir ${QML_BOX2D_LIBRARY} DESTINATION lib/qml/Box2D.2.0) endif() # FIXME: add others as needed else() if (${QML_BOX2D_MODULE} STREQUAL "auto") message(STATUS "Did not find the qml-box2d module in system scope, falling back to submodule build ...") set (_need_box2d_submodule "TRUE") else() message(FATAL_ERROR "Did not find the qml-box2d module in system scope and submodule build was not requested. Can't continue!") endif() endif() endif() if (_need_box2d_submodule) # build qml-box2d ourselves from submodule include(ExternalProject) get_property(_qmake_program TARGET ${Qt5Core_QMAKE_EXECUTABLE} PROPERTY IMPORT_LOCATION) set (_box2d_source_dir ${CMAKE_CURRENT_SOURCE_DIR}/external/qml-box2d) if(WIN32) set (_box2d_library_dir "release/") set (_box2d_library_file "Box2D.dll") else() set (_box2d_library_dir "") set (_box2d_library_file "libBox2D.so") endif() set (_box2d_install_dir ${CMAKE_CURRENT_BINARY_DIR}/lib/qml/Box2D.2.0) # make sure submodule is up2date find_package(Git) if(GIT_FOUND) execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init) endif() # for visual studio, we need to create a vcxproj if(WIN32 AND NOT MINGW) set(_qmake_options -spec win32-msvc2015 -tp vc) else() set(_qmake_options "") endif() ExternalProject_Add(qml_box2d DOWNLOAD_COMMAND "" SOURCE_DIR ${_box2d_source_dir} CONFIGURE_COMMAND ${_qmake_program} ${_qmake_options} ${_box2d_source_dir}/box2d.pro BUILD_COMMAND ${CMAKE_MAKE_PROGRAM} INSTALL_DIR ${_box2d_install_dir} INSTALL_COMMAND cp ${_box2d_library_dir}${_box2d_library_file} ${_box2d_source_dir}/qmldir ${_box2d_install_dir} ) add_library(qml-box2d SHARED IMPORTED) set_target_properties(qml-box2d PROPERTIES IMPORTED_LOCATION ${_box2d_install_dir}/${_box2d_library_file}) if(SAILFISHOS) install(DIRECTORY ${_box2d_install_dir} DESTINATION share/harbour-gcompris-qt/lib/qml) else() install(DIRECTORY ${_box2d_install_dir} DESTINATION lib/qml) endif() endif() endif() add_subdirectory(src) + +add_custom_target(binaries) +add_dependencies(binaries ${GCOMPRIS_EXECUTABLE_NAME} rcc_core rcc_menu rcc_activities all_activities) diff --git a/nitish1.diff b/nitish1.diff new file mode 100644 index 000000000..e69de29bb diff --git a/nitish2.diff b/nitish2.diff new file mode 100644 index 000000000..e69de29bb diff --git a/nitish_2.txt b/nitish_2.txt new file mode 100644 index 000000000..1df2d97d7 --- /dev/null +++ b/nitish_2.txt @@ -0,0 +1,898 @@ +diff --git a/src/activities/multiplication_tables/Multiplication_tables.qml b/src/activities/multiplication_tables/Multiplication_tables.qml +index d8042bf..f0bc89c 100644 +--- a/src/activities/multiplication_tables/Multiplication_tables.qml ++++ b/src/activities/multiplication_tables/Multiplication_tables.qml +@@ -32,339 +32,272 @@ as Dataset + + + ActivityBase { +- id: activity +- +- property string url: "qrc:/gcompris/src/activities/multiplication_tables/resource/" +- property double startTime: 0 +- property int flag: 0 +- property var dataset: Dataset +- property string mode: "multiplicationtables" +- +- onStart: focus = true +- onStop: {} +- +- pageComponent: Rectangle { +- id: background +- anchors.fill: parent +- color: "#ABCDEF" +- signal start +- signal stop +- +- Component.onCompleted: { +- activity.start.connect(start) +- activity.stop.connect(stop) +- } +- +- // Add here the QML items you need to access in javascript +- QtObject { +- +- id: items +- property Item main: activity.main +- property alias background: background +- property alias bar: bar +- property alias bonus: bonus +- property alias heading_text: heading_text +- property alias start_button: start_button +- property alias stop_button: stop_button +- property alias time: time +- property alias score: score +- +- property alias questionGrid: questionGrid +- property alias repeater: repeater +- +- +- } +- +- onStart: { +- Activity.start(items, mode, dataset, url) +- +- } +- onStop: { +- Activity.stop() +- } +- +- //........................................................................... +- +- +- // main heading +- GCText { +- id: heading_text +- text:"Heading Text" +- font.pointSize: 30 +- color: "red" +- anchors.top: parent.top; +- anchors.margins: 20 +- anchors.horizontalCenter: parent.horizontalCenter +- +- } +- +- +- +- Grid { +- +- id: questionGrid +- +- spacing: 40 ++ id: activity ++ ++ property string url: "qrc:/gcompris/src/activities/multiplication_tables/resource/" ++ property double startTime: 0 ++ property int flag: 0 ++ property ++ var dataset: Dataset ++ property string mode: "multiplicationtables" ++ ++ onStart: focus = true ++ onStop: {} ++ ++ pageComponent: Rectangle { ++ id: background ++ anchors.fill: parent ++ color: "#ABCDEF" ++ signal start ++ signal stop ++ ++ Component.onCompleted: { ++ activity.start.connect(start) ++ activity.stop.connect(stop) ++ } + ++ // Add here the QML items you need to access in javascript ++ QtObject { ++ ++ id: items ++ property Item main: activity.main ++ property alias background: background ++ property alias bar: bar ++ property alias bonus: bonus ++ property alias start_button: start_button ++ property alias stop_button: stop_button ++ property alias time: time ++ property alias score: score ++ property alias questionGrid: questionGrid ++ property alias repeater: repeater + +- anchors { ++ } + +- left: parent.left +- right: parent.rigth +- top: heading_text.bottom +- margins: 20 ++ onStart: { ++ Activity.start(items, mode, dataset, url) + + } ++ onStop: { ++ Activity.stop() ++ } ++ ++ Flow { + ++ id: questionGrid ++ anchors.fill: parent ++ anchors.bottom: bar.top ++ spacing: 50 + +- Repeater { ++ anchors { ++ left: background.left ++ right: background.rigth ++ margins: 60 ++ } + ++ Repeater { + id: repeater + model: 10 + + Question { +- +- +- } +- +- } +- +- +- } +- +- +- +-//} +- +- +- Button { +- id: stop_button +- text: qsTr(" FINISH ") +- anchors.bottom: parent.bottom +- anchors.right: parent.right +- anchors { +- bottomMargin: 50 +- rightMargin: 120 +- } +- +- +- +- style: ButtonStyle { +- background: Rectangle { +- implicitWidth: 100 +- implicitHeight: 40 +- border.width: control.activeFocus ? 2 : 1 +- border.color: "blue" +- radius: 4 +- gradient: Gradient { +- GradientStop { +- position: 0;color: control.pressed ? "#729fcf" : "#729fcf" +- } +- GradientStop { +- position: 1;color: control.pressed ? "#3465a4" : "#3465a4" ++ } + } +- } + } +- } + ++ Image { ++ id: player ++ source: url + "children.svg" ++ anchors { ++ bottom: bar.bottom ++ right: parent.right ++ } ++ width: height * 0.83 ++ height: bar.height * 1.2 ++ } + +- onClicked: { +- ++ Button { ++ id: stop_button ++ text: qsTr(" FINISH ") ++ anchors.bottom: parent.bottom ++ anchors.right: parent.right ++ anchors { ++ bottomMargin: 50 ++ rightMargin: 120 ++ } + +- if (flag == 1) { ++ style: ButtonStyle { ++ background: Rectangle { ++ implicitWidth: 100 ++ implicitHeight: 40 ++ border.width: control.activeFocus ? 2 : 1 ++ border.color: "blue" ++ radius: 4 ++ gradient: Gradient { ++ GradientStop { ++ position: 0;color: control.pressed ? "#729fcf" : "#729fcf" ++ } ++ GradientStop { ++ position: 1;color: control.pressed ? "#3465a4" : "#3465a4" ++ } ++ } ++ } ++ } + ++ onClicked: { ++ if (flag == 1) { ++ score.visible = true ++ var str1 = new Date().getTime() - startTime ++ time.text = qsTr("Your time: %1 ms").arg(str1) ++ startTime = 0 ++ flag = 0 ++ start_button.text = qsTr("START AGAIN") ++ Activity.verifyAnswer() ++ } ++ } ++ } + +- score.visible = true +- var str1 = new Date().getTime() - startTime + +- time.text = qsTr("Your time: %1 ms").arg(str1) ++ Button { ++ id: start_button ++ text: qsTr(" START ") ++ anchors.bottom: parent.bottom ++ anchors.right: stop_button.left ++ anchors { ++ bottomMargin: 50 ++ rightMargin: 30 ++ } + ++ style: ButtonStyle { ++ background: Rectangle { ++ implicitWidth: 100 ++ implicitHeight: 40 ++ border.width: control.activeFocus ? 2 : 1 ++ border.color: "blue" ++ radius: 4 ++ gradient: Gradient { ++ GradientStop { ++ position: 0;color: control.pressed ? "#729fcf" : "#729fcf" ++ } ++ GradientStop { ++ position: 1;color: control.pressed ? "#3465a4" : "#3465a4" ++ } ++ } ++ } ++ } + +- startTime = 0 +- flag = 0 +- start_button.text = qsTr("Start again") +- Activity.verifyAnswer() + ++ onClicked: { + ++ if (startTime == 0 && flag == 0) { ++ Activity.resetvalue() ++ start_button.text = qsTr(" START ") ++ time.text = qsTr(" Your timer started...") ++ startTime = new Date().getTime() ++ flag = 1 ++ } ++ } + } +- } +- } + + ++ GCText { ++ id: score ++ font.pointSize: 20 ++ color: "#4B6319" ++ font.bold: true ++ anchors.bottom: time.top ++ anchors.right: parent.right + +- +- Button { +- id: start_button +- text: qsTr(" START ") +- anchors.bottom: parent.bottom +- anchors.right: stop_button.left +- anchors { +- bottomMargin: 50 +- rightMargin: 30 +- } +- +- style: ButtonStyle { +- background: Rectangle { +- implicitWidth: 100 +- implicitHeight: 40 +- border.width: control.activeFocus ? 2 : 1 +- border.color: "blue" +- radius: 4 +- gradient: Gradient { +- GradientStop { +- position: 0;color: control.pressed ? "#729fcf" : "#729fcf" +- } +- GradientStop { +- position: 1;color: control.pressed ? "#3465a4" : "#3465a4" ++ anchors { ++ bottomMargin: 15 ++ rightMargin: 150 + } +- } ++ Layout.alignment: Qt.AlignCenter + } +- } +- +- +- onClicked: { +- +- if (startTime == 0 && flag == 0) { +- +- Activity.resetvalue() +- start_button.text = qsTr(" START ") +- time.text = qsTr(" Your timer started...") +- startTime = new Date().getTime() +- flag = 1 + ++ GCText { ++ id: time ++ font.pixelSize: 23 ++ font.bold: true ++ color: '#4B6319' ++ anchors.bottom: start_button.top ++ anchors.right: parent.right ++ anchors { ++ bottomMargin: 30 ++ rightMargin: 130 ++ } ++ text: qsTr("--") ++ Layout.alignment: Qt.AlignCenter + } + +- } +- +- } +- +- +- GCText { +- id: score +- font.pointSize: 20 +- +- color: "#cc0000" +- font.bold: true +- +- anchors.bottom: time.top +- anchors.right: parent.right +- +- anchors { +- bottomMargin: 15 +- rightMargin: 150 +- +- +- } +- +- Layout.alignment: Qt.AlignCenter +- } +- +- +- +- +- //........implementing timer.............. +- +- +- GCText { +- id: time +- font.pixelSize: 23 +- font.bold: true +- color: '#cc0000' +- anchors.bottom: start_button.top +- anchors.right: parent.right +- anchors { +- bottomMargin: 30 +- rightMargin: 130 +- } +- text: qsTr("--") +- Layout.alignment: Qt.AlignCenter +- } +- +- +- +- //........timerend.......................................................... +- +- +- ++ DialogActivityConfig { ++ id: dialogActivityConfig ++ currentActivity: activity ++ content: Component { ++ Item { ++ height: column.height ++ ++ Column { ++ id: column ++ spacing: 10 ++ width: parent.width ++ ++ GCDialogCheckBox { ++ id: easyModeBox1 ++ width: 250 * ApplicationInfo.ratio ++ text: qsTr("School Mode") ++ checked: background.easyMode ++ onCheckedChanged: { ++ background.easyMode = checked ++ Activity.reloadRandom() ++ } ++ } ++ } ++ } ++ } + +- //........................................................................... ++ onLoadData: { ++ if (dataToSave && dataToSave["mode"]) { ++ background.easyMode = (dataToSave["mode"] === "true"); ++ } ++ } + +- DialogActivityConfig { +- id: dialogActivityConfig +- currentActivity: activity +- content: Component { +- Item { +- height: column.height ++ onSaveData: { ++ dataToSave = { ++ "mode": "" + background.easyMode ++ } ++ } + +- Column { +- id: column +- spacing: 10 +- width: parent.width ++ onClose: home() ++ } + +- GCDialogCheckBox { +- id: easyModeBox1 +- width: 250 * ApplicationInfo.ratio +- text: qsTr("School Mode") +- checked: background.easyMode +- onCheckedChanged: { +- background.easyMode = checked +- Activity.reloadRandom() +- } +- } + +- } + ++ DialogHelp { ++ id: dialogHelp ++ onClose: home() + } +- } + +- onLoadData: { +- if (dataToSave && dataToSave["mode"]) { +- background.easyMode = (dataToSave["mode"] === "true"); ++ Bar { ++ id: bar ++ content: BarEnumContent { ++ value: help | home | level | config ++ } ++ onHelpClicked: { ++ displayDialog(dialogHelp) ++ } ++ onPreviousLevelClicked: Activity.previousLevel() ++ onNextLevelClicked: Activity.nextLevel() ++ onHomeClicked: activity.home() ++ onReloadClicked: Activity.reloadRandom() ++ onConfigClicked: { ++ dialogActivityConfig.active = true ++ displayDialog(dialogActivityConfig) ++ } + } +- } + +- onSaveData: { +- dataToSave = { +- "mode": "" + background.easyMode ++ Bonus { ++ id: bonus ++ Component.onCompleted: win.connect(Activity.nextLevel) + } +- } +- +- onClose: home() +- } +- +- +- +- DialogHelp { +- id: dialogHelp +- onClose: home() +- } +- +- +- +- +- Bar { +- id: bar +- content: BarEnumContent { +- value: help | home | level | config +- } +- onHelpClicked: { +- displayDialog(dialogHelp) +- } +- onPreviousLevelClicked: Activity.previousLevel() +- onNextLevelClicked: Activity.nextLevel() +- onHomeClicked: activity.home() +- onReloadClicked: Activity.reloadRandom() +- onConfigClicked: { +- dialogActivityConfig.active = true +- displayDialog(dialogActivityConfig) +- } +- } +- +- +- Bonus { +- id: bonus +- Component.onCompleted: win.connect(Activity.nextLevel) + } +- } + + } +diff --git a/src/activities/multiplication_tables/Question.qml b/src/activities/multiplication_tables/Question.qml +index dff9b59..3b06f1b 100644 +--- a/src/activities/multiplication_tables/Question.qml ++++ b/src/activities/multiplication_tables/Question.qml +@@ -18,9 +18,7 @@ import QtQuick 2.1 + import QtQuick.Controls 1.1 + import QtQuick.Controls.Styles 1.1 + import QtQuick.Layouts 1.1 +- + import "multiplication_tables.js" as Activity +- + import QtGraphicalEffects 1.0 + import "../../core" + import GCompris 1.0 +@@ -33,9 +31,8 @@ Row { + id: row1 + + property string url: "qrc:/gcompris/src/activities/multiplication_tables/resource/" +- +- property alias questionText: tabletext_1.text +- property alias answerText: ans_1.text ++ property alias questionText: questionText.text ++ property alias answerText: answerText.text + property alias questionImage: question_image.source + property alias questionImage_visible: question_image.opacity + +@@ -44,7 +41,7 @@ Row { + + // 10 questions + GCText { +- id: tabletext_1 ++ id: questionText + text:"Question" + font.pointSize: 20 + font.bold: true +@@ -56,13 +53,13 @@ Row { + + TextField { + +- id: ans_1 ++ id: answerText + height: 35 + font.pixelSize: 20 + + + style: TextFieldStyle { +- textColor: "red" ++ textColor: "#006060" + background: Rectangle { + radius: 5 + color: "orange" +@@ -83,8 +80,6 @@ Row { + opacity: 0 + } + +- +- + } + + +diff --git a/src/activities/multiplication_tables/multiplication_tables.js b/src/activities/multiplication_tables/multiplication_tables.js +index 8c0caac..7bac844 100644 +--- a/src/activities/multiplication_tables/multiplication_tables.js ++++ b/src/activities/multiplication_tables/multiplication_tables.js +@@ -20,9 +20,9 @@ + * along with this program; if not, see . + */ + .pragma library +- .import QtQuick 2.2 as Quick +- .import GCompris 1.0 as GCompris //for ApplicationInfo +- .import "qrc:/gcompris/src/core/core.js" as Core ++ .import QtQuick 2.2 as Quick ++ .import GCompris 1.0 as GCompris //for ApplicationInfo ++ .import "qrc:/gcompris/src/core/core.js" as Core + + + var currentLevel = 0 +@@ -39,43 +39,37 @@ var score_cnt = 0 + + function start(_items, _mode, _dataset, _url) { + +- items = _items +- mode = _mode +- dataset = _dataset.get() +- url = _url +- numberOfLevel = dataset.length +- currentLevel = 0 +- initLevel() ++ items = _items ++ mode = _mode ++ dataset = _dataset.get() ++ url = _url ++ numberOfLevel = dataset.length ++ currentLevel = 0 ++ initLevel() + + } + + +- + function stop() {} + + function initLevel() { + +- + items.bar.level = currentLevel + 1 +- loadCoordinates() +- +- ++ loadQuestions() + + } + + +-function loadCoordinates() { +- +- var i ++function loadQuestions() { + +- question = dataset[currentLevel].questions +- answer = dataset[currentLevel].answers +- table = dataset[currentLevel].TableName ++ var i + +- items.heading_text.text = qsTr("Table of %1").arg(table) ++ question = dataset[currentLevel].questions ++ answer = dataset[currentLevel].answers ++ table = dataset[currentLevel].TableName + + +- for(i=0;i + +@@ -15,54 +14,48 @@ + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ +- + function get() { + return [ + +- { +- "TableName": "2", +- "questions": ["2 X 1","2 X 2","2 X 3","2 X 4","2 X 5","2 X 6","2 X 7","2 X 8","2 X 9","2 X 10"], +- "answers": ["2","4","6","8","10","12","14","16","18","20"] +- }, +- { +- "TableName": "3", +- "questions": ["3 X 1","3 X 2","3 X 3","3 X 4","3 X 5","3 X 6","3 X 7","3 X 8","3 X 9","3 X 10"], +- "answers": ["3","6","9","12","15","18","21","24","27","30"] +- }, +- +- +- { +- "TableName": "4", +- "questions": ["4 X 1","4 X 2","4 X 3","4 X 4","4 X 5","4 X 6","4 X 7","4 X 8","4 X 9","4 X 10"], +- "answers": ["4","8","12","16","20","24","28","32","36","40"] +- }, +- { +- "TableName": "5", +- "questions": ["5 X 1","5 X 2","5 X 3","5 X 4","5 X 5","5 X 6","5 X 7","5 X 8","5 X 9","5 X 10"], +- "answers": ["5","10","15","20","25","30","35","40","45","50"] +- }, +- { +- "TableName": "6", +- "questions": ["6 X 1","6 X 2","6 X 3","6 X 4","6 X 5","6 X 6","6 X 7","6 X 8","6 X 9","6 X 10"], +- "answers": ["6","12","18","24","30","36","42","48","54","60"] +- }, +- { +- "TableName": "7", +- "questions": ["7 X 1","7 X 2","7 X 3","7 X 4","7 X 5","7 X 6","7 X 7","7 X 8","7 X 9","7 X 10"], +- "answers": ["7","14","21","28","35","42","48","56","63","70"] +- }, +- { +- "TableName": "8", +- "questions": ["8 X 1","8 X 2","8 X 3","8 X 4","8 X 5","8 X 6","8 X 7","8 X 8","8 X 9","8 X 10"], +- "answers": ["8","16","24","32","40","48","56","64","72","80"] +- }, +- { +- "TableName": "9", +- "questions": ["9 X 1","9 X 2","9 X 3","9 X 4","9 X 5","9 X 6","9 X 7","9 X 8","9 X 9","9 X 10"], +- "answers": ["9","18","27","36","45","54","63","72","81","90"] +- } ++ { ++ "TableName": "2", ++ "questions": ["2 X 1", "2 X 2", "2 X 3", "2 X 4", "2 X 5", "2 X 6", "2 X 7", "2 X 8", "2 X 9", "2 X 10"], ++ "answers": ["2", "4", "6", "8", "10", "12", "14", "16", "18", "20"] ++ }, ++ { ++ "TableName": "3", ++ "questions": ["3 X 1", "3 X 2", "3 X 3", "3 X 4", "3 X 5", "3 X 6", "3 X 7", "3 X 8", "3 X 9", "3 X 10"], ++ "answers": ["3", "6", "9", "12", "15", "18", "21", "24", "27", "30"] ++ }, ++ { ++ "TableName": "4", ++ "questions": ["4 X 1", "4 X 2", "4 X 3", "4 X 4", "4 X 5", "4 X 6", "4 X 7", "4 X 8", "4 X 9", "4 X 10"], ++ "answers": ["4", "8", "12", "16", "20", "24", "28", "32", "36", "40"] ++ }, ++ { ++ "TableName": "5", ++ "questions": ["5 X 1", "5 X 2", "5 X 3", "5 X 4", "5 X 5", "5 X 6", "5 X 7", "5 X 8", "5 X 9", "5 X 10"], ++ "answers": ["5", "10", "15", "20", "25", "30", "35", "40", "45", "50"] ++ }, ++ { ++ "TableName": "6", ++ "questions": ["6 X 1", "6 X 2", "6 X 3", "6 X 4", "6 X 5", "6 X 6", "6 X 7", "6 X 8", "6 X 9", "6 X 10"], ++ "answers": ["6", "12", "18", "24", "30", "36", "42", "48", "54", "60"] ++ }, ++ { ++ "TableName": "7", ++ "questions": ["7 X 1", "7 X 2", "7 X 3", "7 X 4", "7 X 5", "7 X 6", "7 X 7", "7 X 8", "7 X 9", "7 X 10"], ++ "answers": ["7", "14", "21", "28", "35", "42", "48", "56", "63", "70"] ++ }, ++ { ++ "TableName": "8", ++ "questions": ["8 X 1", "8 X 2", "8 X 3", "8 X 4", "8 X 5", "8 X 6", "8 X 7", "8 X 8", "8 X 9", "8 X 10"], ++ "answers": ["8", "16", "24", "32", "40", "48", "56", "64", "72", "80"] ++ }, ++ { ++ "TableName": "9", ++ "questions": ["9 X 1", "9 X 2", "9 X 3", "9 X 4", "9 X 5", "9 X 6", "9 X 7", "9 X 8", "9 X 9", "9 X 10"], ++ "answers": ["9", "18", "27", "36", "45", "54", "63", "72", "81", "90"] ++ } + ] + } +- +- +- diff --git a/nitish_5.txt b/nitish_5.txt new file mode 100644 index 000000000..47e5bfd79 --- /dev/null +++ b/nitish_5.txt @@ -0,0 +1,435 @@ +diff --git a/src/activities/multiplication_tables/Multiplication_tables.qml b/src/activities/multiplication_tables/Multiplication_tables.qml +index f0bc89c..f51cc50 100644 +--- a/src/activities/multiplication_tables/Multiplication_tables.qml ++++ b/src/activities/multiplication_tables/Multiplication_tables.qml +@@ -23,24 +23,17 @@ import QtQuick 2.1 + import QtQuick.Controls 1.1 + import QtQuick.Controls.Styles 1.1 + import QtQuick.Layouts 1.1 +- + import "../../core" +-import "multiplication_tables.js" +-as Activity +-import "multiplicationtables_dataset.js" +-as Dataset +- ++import "multiplication_tables.js" as Activity ++import "multiplicationtables_dataset.js" as Dataset + + ActivityBase { + id: activity +- + property string url: "qrc:/gcompris/src/activities/multiplication_tables/resource/" + property double startTime: 0 +- property int flag: 0 +- property +- var dataset: Dataset ++ property bool startButtonClicked: false ++ property var dataset: Dataset + property string mode: "multiplicationtables" +- + onStart: focus = true + onStop: {} + +@@ -58,7 +51,6 @@ ActivityBase { + + // Add here the QML items you need to access in javascript + QtObject { +- + id: items + property Item main: activity.main + property alias background: background +@@ -70,34 +62,28 @@ ActivityBase { + property alias score: score + property alias questionGrid: questionGrid + property alias repeater: repeater +- + } + + onStart: { + Activity.start(items, mode, dataset, url) +- + } + onStop: { + Activity.stop() + } + + Flow { +- + id: questionGrid + anchors.fill: parent + anchors.bottom: bar.top +- spacing: 50 +- ++ spacing: bar.height * 0.4 + anchors { + left: background.left + right: background.rigth +- margins: 60 ++ margins: bar.height * 0.6 + } +- + Repeater { + id: repeater + model: 10 +- + Question { + } + } +@@ -120,14 +106,14 @@ ActivityBase { + anchors.bottom: parent.bottom + anchors.right: parent.right + anchors { +- bottomMargin: 50 +- rightMargin: 120 ++ bottomMargin: bar.height * 0.4 ++ rightMargin: bar.height * 1.5 + } + + style: ButtonStyle { + background: Rectangle { +- implicitWidth: 100 +- implicitHeight: 40 ++ implicitWidth: bar.height * 0.9 ++ implicitHeight: bar.height * 0.3 + border.width: control.activeFocus ? 2 : 1 + border.color: "blue" + radius: 4 +@@ -143,33 +129,32 @@ ActivityBase { + } + + onClicked: { +- if (flag == 1) { ++ if (startButtonClicked == true) { + score.visible = true + var str1 = new Date().getTime() - startTime +- time.text = qsTr("Your time: %1 ms").arg(str1) ++ var str2 = str1/1000 ++ time.text = qsTr("Your time: %1 seconds").arg(str2) + startTime = 0 +- flag = 0 ++ startButtonClicked = false + start_button.text = qsTr("START AGAIN") + Activity.verifyAnswer() + } + } + } + +- + Button { + id: start_button + text: qsTr(" START ") + anchors.bottom: parent.bottom + anchors.right: stop_button.left + anchors { +- bottomMargin: 50 +- rightMargin: 30 ++ bottomMargin: bar.height * 0.4 ++ rightMargin: bar.height * 0.4 + } +- + style: ButtonStyle { + background: Rectangle { +- implicitWidth: 100 +- implicitHeight: 40 ++ implicitWidth: bar.height * 0.9 ++ implicitHeight: bar.height * 0.3 + border.width: control.activeFocus ? 2 : 1 + border.color: "blue" + radius: 4 +@@ -183,21 +168,17 @@ ActivityBase { + } + } + } +- +- + onClicked: { +- +- if (startTime == 0 && flag == 0) { ++ if (startTime == 0 && startButtonClicked == false) { + Activity.resetvalue() + start_button.text = qsTr(" START ") +- time.text = qsTr(" Your timer started...") ++ time.text = qsTr(" Your Timer Started...") + startTime = new Date().getTime() +- flag = 1 ++ startButtonClicked = true + } + } + } + +- + GCText { + id: score + font.pointSize: 20 +@@ -205,10 +186,9 @@ ActivityBase { + font.bold: true + anchors.bottom: time.top + anchors.right: parent.right +- + anchors { +- bottomMargin: 15 +- rightMargin: 150 ++ bottomMargin: bar.height * 0.09 ++ rightMargin: bar.height * 1.6 + } + Layout.alignment: Qt.AlignCenter + } +@@ -221,7 +201,7 @@ ActivityBase { + anchors.bottom: start_button.top + anchors.right: parent.right + anchors { +- bottomMargin: 30 ++ bottomMargin: bar.height * 0.3 + rightMargin: 130 + } + text: qsTr("--") +@@ -234,7 +214,6 @@ ActivityBase { + content: Component { + Item { + height: column.height +- + Column { + id: column + spacing: 10 +@@ -259,18 +238,14 @@ ActivityBase { + background.easyMode = (dataToSave["mode"] === "true"); + } + } +- + onSaveData: { + dataToSave = { + "mode": "" + background.easyMode + } + } +- + onClose: home() + } + +- +- + DialogHelp { + id: dialogHelp + onClose: home() +@@ -299,5 +274,4 @@ ActivityBase { + Component.onCompleted: win.connect(Activity.nextLevel) + } + } +- + } +diff --git a/src/activities/multiplication_tables/Question.qml b/src/activities/multiplication_tables/Question.qml +index 3b06f1b..1e792ad 100644 +--- a/src/activities/multiplication_tables/Question.qml ++++ b/src/activities/multiplication_tables/Question.qml +@@ -23,65 +23,45 @@ import QtGraphicalEffects 1.0 + import "../../core" + import GCompris 1.0 + +- +- +- +-Row { +- +- id: row1 +- ++Flow { ++ id: questionItem + property string url: "qrc:/gcompris/src/activities/multiplication_tables/resource/" + property alias questionText: questionText.text + property alias answerText: answerText.text + property alias questionImage: question_image.source + property alias questionImage_visible: question_image.opacity + +- +- +- +- // 10 questions + GCText { + id: questionText +- text:"Question" ++ text:qsTr("Question") + font.pointSize: 20 + font.bold: true + color: "black" +- + } + +- +- + TextField { +- + id: answerText + height: 35 + font.pixelSize: 20 +- +- + style: TextFieldStyle { +- textColor: "#006060" +- background: Rectangle { +- radius: 5 +- color: "orange" +- implicitWidth: 100 +- implicitHeight: 24 +- border.color: "#333" +- border.width: 1 +- } ++ textColor: "#006060" ++ background: Rectangle { ++ radius: 5 ++ color: "orange" ++ implicitWidth: bar.height * 0.9 ++ implicitHeight: bar.height * 0.3 ++ border.color: "#333" ++ border.width: 1 + } +- ++ } + } + + Image { + id: question_image +- width: 70;height: 50 ++ width: bar.height * 0.3 ++ height: bar.height * 0.3 + fillMode: Image.PreserveAspectFit + source: "qrc:/gcompris/src/activities/multiplication_tables/resource/wrong.svg" + opacity: 0 + } +- + } +- +- +- +- +diff --git a/src/activities/multiplication_tables/multiplication_tables.js b/src/activities/multiplication_tables/multiplication_tables.js +index 7bac844..5168125 100644 +--- a/src/activities/multiplication_tables/multiplication_tables.js ++++ b/src/activities/multiplication_tables/multiplication_tables.js +@@ -24,7 +24,6 @@ + .import GCompris 1.0 as GCompris //for ApplicationInfo + .import "qrc:/gcompris/src/core/core.js" as Core + +- + var currentLevel = 0 + var items + var mode +@@ -36,9 +35,7 @@ var question = [] + var answer = [] + var score_cnt = 0 + +- + function start(_items, _mode, _dataset, _url) { +- + items = _items + mode = _mode + dataset = _dataset.get() +@@ -46,94 +43,55 @@ function start(_items, _mode, _dataset, _url) { + numberOfLevel = dataset.length + currentLevel = 0 + initLevel() +- + } + +- + function stop() {} + + function initLevel() { +- + items.bar.level = currentLevel + 1 + loadQuestions() +- + } + +- + function loadQuestions() { +- + var i +- + question = dataset[currentLevel].questions + answer = dataset[currentLevel].answers + table = dataset[currentLevel].TableName + +- + for (i = 0; i < question.length; i++) { +- + items.repeater.itemAt(i).questionText = qsTr("%1 = ").arg(question[i]) +- + } +- + } + +- + function verifyAnswer() { +- + var j +- + for (j = 0; j < question.length; j++) { +- + if (items.repeater.itemAt(j).answerText.toString() == answer[j]) { +- + score_cnt = score_cnt + 1 + items.repeater.itemAt(j).questionImage = url + "right.svg" + items.repeater.itemAt(j).questionImage_visible = 1 +- +- +- } else { +- ++ } ++ else { + items.repeater.itemAt(j).questionImage_visible = 1 + items.repeater.itemAt(j).questionImage = url + "wrong.svg" +- + } +- + } +- +- + items.score.text = qsTr("Your Score :- %1").arg(score_cnt.toString()) +- + } + +- +- + function resetvalue() { +- + var k +- + for (k = 0; k < question.length; k++) { +- +- +- items.repeater.itemAt(k).answerText = "" ++ items.repeater.itemAt(k).answerText = qsTr("") + items.repeater.itemAt(k).questionImage_visible = 0 +- +- + score_cnt = 0 + items.score.visible = false +- + } +- + score_cnt = 0 + items.score.visible = false +- + } + +- +- +- + function nextLevel() { +- +- + if (numberOfLevel <= ++currentLevel) { + currentLevel = 0 + } +diff --git a/src/activities/multiplication_tables/multiplicationtables_dataset.js b/src/activities/multiplication_tables/multiplicationtables_dataset.js +index 1d8c3a2..5282dc8 100644 +--- a/src/activities/multiplication_tables/multiplicationtables_dataset.js ++++ b/src/activities/multiplication_tables/multiplicationtables_dataset.js +@@ -16,7 +16,6 @@ + */ + function get() { + return [ +- + { + "TableName": "2", + "questions": ["2 X 1", "2 X 2", "2 X 3", "2 X 4", "2 X 5", "2 X 6", "2 X 7", "2 X 8", "2 X 9", "2 X 10"], diff --git a/org.kde.gcompris.appdata.xml b/org.kde.gcompris.appdata.xml index 803678988..3805bf1c2 100644 --- a/org.kde.gcompris.appdata.xml +++ b/org.kde.gcompris.appdata.xml @@ -1,866 +1,852 @@ org.kde.gcompris.desktop + org.kde.gcompris.desktop org.kde.gcompris.desktop org.kde.gcompris.desktop org.kde.gcompris.desktop org.kde.gcompris.desktop org.kde.gcompris.desktop org.kde.gcompris.desktop + org.kde.gcompris.desktop org.kde.gcompris.desktop + org.kde.gcompris.desktop org.kde.gcompris.desktop org.kde.gcompris.desktop org.kde.gcompris.desktop org.kde.gcompris.desktop org.kde.gcompris.desktop org.kde.gcompris.desktop org.kde.gcompris.desktop + org.kde.gcompris.desktop org.kde.gcompris.desktop org.kde.gcompris.desktop org.kde.gcompris.desktop xxorg.kde.gcompris.desktopxx org.kde.gcompris.desktop org.kde.gcompris.desktop CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 CC0-1.0 xxCC0-1.0xx CC0-1.0 CC0-1.0 GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ GPL-3.0+ xxGPL-3.0+xx GPL-3.0+ GPL-3.0+ GCompris Educational Game لعبة «فهمت» التّعليميّة - Xuegu educativu Gcompris Joc educatiu GCompris Joc educatiu GCompris GCompris-Lernspiel Εκπαιδευτικό παιχνίδι GCompris GCompris Educational Game Juego educativo GCompris Hariv mäng GCompris GCompris, opettavainen peli Jeu éducatif GCompris Xogo educativo GCompris Gioco didattico GCompris GCompris 교육용 게임 Educatief spel GCompris GCompris leik-og-lær-spel Gra edukacyjna GCompris Jogo Educativo GCompris Jogo educacional GCompris Joc educațional GCompris Набор обучающих игр GCompris Výuková hra GCompris Izobraževalna igra GCompris GCompris pedagogiskt spel Освітня гра GCompris xxGCompris Educational Gamexx GCompris 教育游戏 GCompris 教育遊戲 Multi-Activity Educational game for children 2 to 10 لعبة تعليميّة متعدّدة الأنشطة للأطفال من سنتين إلى 10 سنوات Joc educatiu amb múltiples activitats per a nens dels 2 a 10 anys Joc educatiu amb múltiples activitats per a nens dels 2 a 10 anys Lernspiel mit vielen Aktivitäten für Kinder von 2 bis 10 Jahren Εκπαιδευτικό παιχνίδι πολλαπλών δραστηριοτήτων για ηλικίες 2 έως 10 ετών Multi-Activity Educational game for children 2 to 10 Juego educativo multiactividad para niños de 2 a 10 años Rohkete tegevustega hariv mäng lastele vanuses 2-10 Useampitoimintoinen opettavainen peli 2–10-vuotiaille lapsille Jeu éducatif multi-activités pour les enfants de 2 à 10 ans Xogo educativo con varias actividades para nenos de entre 2 e 10 anos. Gioco didattico multi-attività per bambini da 2 a 10 anni 2-10세 어린이를 위한 다양한 활동이 있는 교육용 게임 Educatief spel met meerdere activiteiten voor kinderen van 2 tot 10 Leik-og-lærspel med mange aktivitetar – for barn frå 2 til 10 år Gra edukacyjna z wieloma aktywnościami dla dzieci w wieku od 2 do 10 lat Jogo Educativo Multi-Actividades para crianças dos 2 aos 10 anos Jogo educacional com várias atividades para crianças de 2 a 10 anos Joc educațional cu activități multiple pentru copii între 2 și 10 ani Интерактивные обучающие игры для детей от 2 до 10 лет Viac-aktivitová výuková hra pre deti od 2 do 10 rokov Izobraževalna igra z več dejavnostmi za otroke med drugim in desetim letom starosti Pedagogiskt multiaktivitetsspel för barn från 2 till 10 år Набір освітніх ігор для дітей від 2 до 10 років xxMulti-Activity Educational game for children 2 to 10xx 为 2 到 10 岁儿童准备的多功能教育游戏 為 2-10 歲孩子設計的教育遊戲

GCompris is an educational software suite comprising of numerous activities for children aged 2 to 10.

«فهمت» هو طقم برمجيّات تعليميّة يضمّ مختلف الأنشطة للأطفال من سنتين إلى 10 سنوات.

El GCompris és una suite de programari educatiu que consisteix de nombroses activitats per a nens i nenes entre els 2 i els 10 anys.

El GCompris és una suite de programari educatiu que consisteix de nombroses activitats per a nens i nenes entre els 2 i els 10 anys.

GCompris ist eine Lernsoftware, die verschiedene Aktivitäten für Kinder im Alter von 2 bis 10 Jahren anbietet.

Το GCompris είναι μια σουίτα εκπαιδευτικού λογισμικού με πολυάριθμες δραστηριότητες για παιδιά ηλικίας 2 έως 10 ετών.

GCompris is an educational software suite comprising of numerous activities for children aged 2 to 10.

GCompris es una suite de software educativo que consta de numerosas actividades para niños de 2 a 10 años.

GCompris on õpirakenduse komplekt, mis koosneb paljudest tegevustest lastele vanuses 2-10,

GCompris on useista toiminnoista koostuva opetusohjelmisto 2–10-vuotiaille lapsille.

GCompris est une suite éducative comprenant de nombreuses activités pour les enfants de 2 à 10 ans.

GCompris é unha colección de programas educativos composta por numerosas actividades para nenos de entre 2 e 10 anos.

GCompris è una raccolta di programmi didattici che comprende numerose attività per bambini da 2 a 10 anni.

GCompris는 2-10세 어린이를 위한 활동을 모아 놓은 교육용 소프트웨어 모음입니다.

GCompris is suite met educatieve software die bestaat uit vele activiteiten voor kinderen vanaf twee tot tien jaar.

GCompris er eit leik-og-lær spel med mange ulike aktivitetar, laga for ungar frå 2 til 10 år.

GCompris to pakiet oprogramowania edukacyjnego z licznymi aktywnościami dla dzieci w wieku od 2 do 10 lat.

O GCompris é um pacote de aplicações educativas que é composto por diversas actividades para as crianças dos 2 aos 10 anos de idade.

GCompris é uma suíte de software educacional que apresenta uma série de atividades para crianças com idade entre 2 e 10 anos.

GCompris este un pachet de software educațional compus din numeroase activități pentru copii între 2 și 10 ani.

GCompris — это набор обучающих игр, рассчитанных на детей в возрасте от 2 до 10 лет.

GCompris je balík výukového softvéru zložený z rôznych aktivít pre deti od 2 do 10 rokov.

Program GCompris je visokokakovostna zbirka izobraževalnih dejavnosti, namenjenih otrokom med drugim in desetim letom starosti.

GCompris är en pedagogisk programsvit som består av en mängd olika aktiviteter för barn från 2 till 10 år gamla.

GCompris — комплекс навчального програмного забезпечення, що складається з багатьох вправ для дітей від 2 до 10 років.

xxGCompris is an educational software suite comprising of numerous activities for children aged 2 to 10.xx

GCompris 是一款教育套件,由针对 2 到 10 岁孩子的许多活动组成。

GCompris 是一套教育軟體的集合,它提供適合兩歲到十歲兒童各種不同的活動。

Some of the activities are game orientated, but nonetheless still educational.

Algunes de les activitats estan orientades a joc, però sempre són educatives.

Algunes de les activitats estan orientades a joc, però sempre són educatives.

Některé aktivity jsou v podobě her, ale přesto jsou poučné.

Einige Aktivitäten sind eher spielerisch, aber immer lehrreich.

Ορισμένες από τις δραστηριότητες είναι απλώς παιχνίδια, αλλά οπωσδήποτε με εκπαιδευτικό χαρακτήρα.

Some of the activities are game orientated, but nonetheless still educational.

Algunas de las actividades son juegos, aunque siguen siendo educativas.

Mõned tegevused on mängulisemad, aga siiski õppeotstarbega.

Jotkin toiminnoista ovat pelimäisiä mutta silti opettavaisia.

Certaines activités sont ludiques mais ont toujours un intérêt pédagogique.

Algunhas das actividades están orientadas ao xogo, pero son aínda así educativas.

Alcune delle attività sono orientate al gioco, ma comunque didattiche.

일부 활동은 기능성 게임을 지향합니다.

Sommige activiteiten zijn spelletjes, maar toch leerzaam.

Nokre av aktivitetane er mest som spel, men er likevel lærerike.

Niektóre z aktywności są bardziej grą, lecz nadal bardzo pouczającą.

Algumas das actividades são apresentadas como jogos, mas são educativas à mesma.

Algumas das atividades são de orientação lúdica, mas mesmo assim ainda educacional.

Unele activități sunt orientate pe joacă, dar totuși educative.

Некоторые из заданий представлены в игровой форме, но и они являются обучающими.

Niektoré z aktivít sú herne orientované, ale stále výukové.

Nekatere dejavnosti so bolj podobne igram, vendar še vedno poučne.

Vissa av aktiviteterna är spelorienterade, men trots det ändå pedagogiska.

Деякі із вправ є суто ігровими, але містять і елементи навчання.

xxSome of the activities are game orientated, but nonetheless still educational.xx

一些活动是游戏导向的,不过尽管如此仍是教育性的。

有些活動是遊戲性質,但還是有很棒的教育意義。

Below you can find a list of categories with some of the activities available in that category.

يمكنك أن تجد أدناه قائمة بالفئات وبعض الأنشطة الموجودة في كلّ فئة.

-

Embaxo pues alcontrar un llistáu d'estayes con delles de les actividaes disponibles nesta

A continuació trobareu una llista de les categories amb algunes de les activitats disponibles en cadascuna.

A continuació trobareu una llista de les categories amb algunes de les activitats disponibles en cadascuna.

Sie können Aktivitäten aus folgenden Bereichen in GCompris finden:

Παρακάτω θα βρείτε μια λίστα με κατηγορίες που περιέχουν ορισμένες από το σύνολο των δραστηριοτήτων σε κάθε κατηγορία.

Below you can find a list of categories with some of the activities available in that category.

A continuación puede encontrar una lista de categorías con algunas de las actividades disponibles en cada una de ellas.

Allpool leiab kategooriate loetelu koos mõningate neile omaste tegevustega.

Alta löydät luettelot luokista sekä maininnan joistakin kuhunkin luokkaan kuuluvista toiminnoista.

Vous pouvez trouver ci-dessous une liste des catégories avec certaines de leurs activités.

A continuación atopará unha lista de categorías e mailas actividades dispoñíbeis en cada unha desas categorías.

Di seguito puoi trovare un elenco di categorie con alcune delle attività disponibili per categoria.

아래에서 분류 목록과 해당 분류의 활동을 찾을 수 있습니다.

Hieronder vindt u een lijst met categorieën met enige van de activiteiten beschikbaar in die categorie.

Nedanfor finn du ei oversikt over kategoriar, saman med nokre av aktivitetane i kvar kategori.

Poniżej znajdziesz wykaz kategorii z niektórymi aktywnościami dostępnymi w tej kategorii.

Em baixo, poderá encontrar uma lista de categorias, com algumas das actividades disponíveis para essa categoria.

Abaixo está relacionada uma lista de categorias com algumas das atividades disponíveis em cada uma delas.

Dedesubt puteți găsi o listă de categorii cu unele din activitățile disponibile în acea categorie.

Ниже представлен список категорий с доступными в этих категориях заданиями.

Tu môžete nájsť zoznam kategórií s niektorými aktivitami dostupnými v kategórii.

Spodaj lahko najdete seznam kategorij in nekaj dejavnosti, ki so na voljo v tisti kategoriji.

Nedan finns en lista över kategorier med några av aktiviteterna tillgängliga i varje kategori.

Нижче наведено список категорій із деякими вправами у цих категоріях.

xxBelow you can find a list of categories with some of the activities available in that category.xx

下面列出了一些分类和对应分类中的活动。

下方您可以看到該類別的活動清單。

  • computer discovery: keyboard, mouse, different mouse gestures, ...
  • استكشاف الحاسوب: لوحة المفاتيح، الفأرة، مختلف إيماءات الفأرة، وغيرها
  • descobrir l'ordinador: teclat, ratolí, diferents gestos del ratolí...
  • descobrir l'ordinador: teclat, ratolí, diferents gestos del ratolí...
  • Entdeckung des Computers: Tastatur, Maus, verschiedene Mausgesten ...
  • ανακαλύπτω τον υπολογιστή: πληκτρολόγιο, ποντίκι, διάφορες ενδείξεις δείκτη ποντικιού, ...
  • computer discovery: keyboard, mouse, different mouse gestures, ...
  • descubrimiento del ordenador: teclado, ratón, distintos gestos con el ratón...
  • arvuti tundmaõppimine: klaviatuur, hiir, erinevad hiireliigutused ...
  • tietokoneen oppiminen: näppäimistö, hiiri, eri hiirieleet…
  • découverte de l'ordinateur : clavier, souris, mouvements de la souris…
  • Descubrimento do computador: teclado, rato, xestos do rato, etc.
  • scoperta del computer: tastiera, mouse, vari gesti con il mouse, ...
  • 컴퓨터와 친해지기: 키보드, 마우스, 마우스 제스처, ...
  • ontdekken van de computer: toetsenbord, muis, verschillende muisbewegingen, ...
  • datamaskin: tastatur, mus, ulike muserørsler, …
  • odkrywanie komputera: klawiatura, mysz, różne ruchy myszą, ...
  • descoberta do computador: teclado, rato, os diferentes gestos com o rato, ...
  • conhecendo o computador: teclado, mouse, diferentes movimentações com o mouse, ...
  • descoperirea calculatorului: tastatura, mausul, diferite gesturi cu mausul, ...
  • знакомство с компьютером: клавиатура, мышь, различные жесты мышью, ...
  • objavovanie počítača: klávesnica, myš, rôzne gestá myši...
  • delo z računalnikom: tipkovnica, miška, kretnje miške, ...
  • upptäcka datorn: tangentbord, mus, olika musgester, ...
  • Знайомство з комп’ютером: клавіатура, миша, керування мишею…
  • xxcomputer discovery: keyboard, mouse, different mouse gestures, ...xx
  • 探索电脑:键盘、鼠标、不同的鼠标手势……
  • 電腦探索:鍵盤、滑鼠、不同的滑鼠手勢等
  • arithmetic: table memory, enumeration, mirror image, balance the scale, change giving, ...
  • aritmètica: memoritzar la taula, enumeració, imatge al mirall, equilibrar la balança, donar el canvi...
  • aritmètica: memoritzar la taula, enumeració, imatge al mirall, equilibrar la balança, donar el canvi...
  • Arithmetik: Kombitabellen, Aufzählungen, Bilder spiegeln, Gewichte ausgleichen, Wechselgeld geben...
  • αριθμητική: μνημονικός πίνακας, απαρίθμηση, κάτοπτρο, ισορροπώ τη ζυγαριά, δίνω ρέστα, ...
  • arithmetic: table memory, enumeration, mirror image, balance the scale, change giving, ...
  • aritmética: memorización de tablas, enumeración, imagen especular, equilibrar la balanza, devolver cambios...
  • aritmeetika: nähtu mäletamine, loendamine, peegelpildid, kaalu tasakaalustamine, raha tagasiandmine...
  • aritmetiikka: kertotaulujen opettelu, laskutehtävät, peilikuvan piirtäminen, vaa’an tasapainottaminen, vaihtorahan antaminen, …
  • arithmétique : apprentissage des tables d'opérations mathématiques, l'énumération, de symétrie d'image, équilibrage de la balance, rendre la monnaie…
  • Aritmética: táboas de memoria, enumeración, imaxes espello, equilibrio de balanzas, cálculo do cambio, etc.
  • aritmetica: tabelline, enumerazione, immagine speculare, allineare la bilancia, dare il resto, ...
  • 산술 연산: 표 기억하기, 배열하기, 그림 뒤집기, 저울 맞추기, 거스름돈 계산하기, ...
  • rekenen: tafels oefenen, reeksen, afbeelding spiegelen, de schaal in evenwicht brengen, wijziging gegeven, ...
  • rekning: gongetabellen¸teljing, spegelbilete, måling av vekt, vekslepengar, …
  • arytmetyka: tablice pamięciowe, wyliczanie, obraz lustrzany, wyrównoważanie wagi, wydawanie reszty, ...
  • aritmética: memória da tabuada, enumeração, imagem-espelho, equilíbrio de balanças, trocos, ...
  • matemática: memória matemática, enumeração, imagens espelhadas, balanceamento de escalas, moedas e troco, ...
  • aritmetică: tabla înmulțirii, enumerări, imagini în oglindă, echilibrează balanța, darea restului, ...
  • арифметика: игра «память» с подсчётом, счёт, отражение рисунка, уравновешивание весов, подсчёт сдачи, ...
  • aritmetické: tabuľková pamäť, výpočet, zrkalový obrázok, vyváženie mierky, zmena dávky...
  • računstvo: spomin z računi, štetje, uravnoteži tehtnico, vračanje drobiža, ...
  • aritmetik: tabellminne, uppräkning, spegelbild, balansera vågen, ge växel, ...
  • Арифметика: запам’ятовування таблиць, нумерація, віддзеркалення, балансування масштабу, обчислення решти…
  • xxarithmetic: table memory, enumeration, mirror image, balance the scale, change giving, ...xx
  • 算数:表格记忆、枚举、镜像、天平、找零……
  • 數學運算:表格記憶、列舉、影像映射、平衡、找零計算等
  • science: the canal lock, color mixing, gravity concept, ...
  • ciència: blocar el canal, barreja de colors, el concepte de la gravetat...
  • ciència: blocar el canal, barreja de colors, el concepte de la gravetat...
  • Wissenschaft: Kanalschleuse, Farbmischung, Gravitation,...
  • επιστήμη: σύστημα αλλαγής στάθμης ροής, ανάμειξη χρωμάτων, η έννοια της βαρύτητας, ...
  • science: the canal lock, colour mixing, gravity concept, ...
  • ciencia: la esclusa de un canal, mezcla de colores, concepto de gravedad...
  • loodusteadused: kanali lüüs, värvide segamine, gravitatsiooni mõistmine...
  • tiede: kanavasulku, värien sekoitus, painovoiman käsite…
  • science : fonctionnement d'une écluse, mélange des couleurs, concept de la gravité…
  • Ciencia: o bloqueo da canle, mestura de cores, o concepto de gravidade, etc.
  • scienza: la chiusa del canale, miscelazione dei colori, il concetto di gravità, ...
  • 과학: 운하 갑문, 색 섞기, 중력, ...
  • natuurkunde: de sluis, mengen van kleuren, concept van zwaartekracht, ...
  • vitskap: kanalsluse, blanding av fargar, tyngdekraft, …
  • nauka: śluza na kanale, mieszanie barw, poczucie grawitacji, ...
  • ciência: bloqueio de canais, misturas de cores, conceito de gravidade, ...
  • ciência: comporta de canal, mistura de cores, conceito de gravidade, ...
  • științe: podul mobil, combinarea culorilor, gravitația, ...
  • наука: работа судоходного шлюза, смешивание цветов, представление о гравитации, ...
  • veda: zamknutý kanál, miešanie farieb, koncept grvitácie...
  • znanost: zapornica kanala, mešanje barv, koncept težnosti ...
  • vetenskap: kanalslussen, färgblandning, gravitationskonceptet, ...
  • Наука: шлюзування, змішування кольорів, поняття тяжіння…
  • xxscience: the canal lock, color mixing, gravity concept, ...xx
  • 科学:运河闸门、颜料色彩混合、重力的概念……
  • 科學:顏色混合、重力觀念、運河鎖等等
  • games: memory, connect 4, tic tac toe, sudoku, hanoi tower, ...
  • jocs: memòria, connectar 4, tres en ratlla, sudoku, torre de Hanoi...
  • jocs: memòria, connectar 4, tres en ratlla, sudoku, torre de Hanoi...
  • Spiele: Memory, Vier gewinnt, Tic-Tac-Toe, Sudoku, Türme von Hanoi,...
  • παιχνίδια: μνήμη, τετράδες, τρίλιζα, σουντόκου, πύργος του Ανόι, ...
  • games: memory, connect 4, tic tac toe, sudoku, hanoi tower, ...
  • juegos: memoria, conectar 4, tres en raya, sudoku, torres de hanoi...
  • mängud: mälu, nelja ühendamine, trips-traps-trull, sudoku, Hanoi tornid...
  • pelit: muisti, neljän suora, ristinolla, sudoku, Hanoin tornit…
  • jeux: trouve les paires, puissance 4, morpion, sudoku, la tour d'hanoï…
  • Xogos: memoria, conectar 4, pai nai fillo, sudoku, torre de Hanoi, etc.
  • giochi: memory, forza 4, filetto, sudoku, torre di hanoi, ...
  • 게임: 메모리 게임, 4개 연결하기, 삼목, 수도쿠, 하노이 탑, ...
  • spellen: geheugenspel, vier verbinden, tic-tac-toe, sudoku, torens van hanoi, ...
  • spel: hugsespel, fire på rad, bondesjakk, sudoku, tårnet i Hanoi, …
  • gry: na pamięć, łączenie czwórek, tic tac toe, sudoku, wieża hanoi, ...
  • jogos: memória, 4 em linha, jogo do galo, sudoku, torres de Hanói, ...
  • jogos: memória, ligue 4, jogo da velha, sudoku, torre de Hanoi, ...
  • jocuri: memorie, leagă 4, X și 0, sudoku, turnul hanoi, ...
  • игры: память, соедини 4, крестики-нолики, судоку, Ханойская башня, ...
  • hry: pamäť, spojenie 4, tic tac toe, sudoku, hanojská veža...
  • igre: spomin, štiri v vrsto, križci in krožci, sudoku, Hanojski stolpi, ...
  • spel: memory, koppla 4, tre-i-rad, sudoku, tornen i Hanoi, ...
  • Ігри: запам’ятовування, чотири-у-рядок, хрестики-нулики, судоку, ханойські вежі…
  • xxgames: memory, connect 4, tic tac toe, sudoku, hanoi tower, ...xx
  • 游戏:记忆、四子棋、井子棋、数独、汉诺塔……
  • 遊戲:記憶遊戲、四子棋、井字遊戲、數獨、河內塔等等
  • reading: reading practice, ...
  • -
  • llectura: práutica de llectura...
  • lectura: practicar la lectura...
  • lectura: practicar la lectura...
  • Lesen: Leseübungen ...
  • ανάγνωση: εξάσκηση στην ανάγνωση, ...
  • reading: reading practice, ...
  • lectura: prácticas de lectura...
  • lugemine
  • lukeminen: lukemisen harjoittelu…
  • lecture : entraînement à la lecture…
  • Lectura: práctica de lectura, etc.
  • lettura: esercitare la lettura, ...
  • 읽기: 읽기 연습, ...
  • lezen: lezen oefenen, ...
  • lesing: leseøvingar, …
  • czytanie: nauka czytania, ...
  • leitura: exercícios de leitura, ...
  • leitura: prática de leitura, ...
  • citire: exerciții de citire, ...
  • чтение: упражнение в чтении, ...
  • čítanie: precvičovanie čítania...
  • branje: bralna vaja, ...
  • läsning: läsningsövning, ...
  • Читання: вправи із читання…
  • xxreading: reading practice, ...xx
  • 阅读:阅读练习……
  • 閱讀:閱讀練習等等
  • other: learn to tell time, the braille system, maze, music instruments, ...
  • أخرى: تعلّم الإخبار عن الوقت، نظام بريل، المتاهة، الآلات الموسيقيّة، وغيرها
  • altres: aprendre a dir l'hora, el sistema braille, laberint, instruments musicals...
  • altres: aprendre a dir l'hora, el sistema braille, laberint, instruments musicals...
  • Sonstiges: Uhrzeit, Braille-System, Labyrinthe, Musikinstrumente ...
  • άλλα: μαθαίνω να λέω την ώρα, το σύστημα braille, λαβύρινθος, μουσικά όργανα, ...
  • other: learn to tell time, the braille system, maze, music instruments, ...
  • otras: aprender a decir la hora, el sistema braille, laberintos, instrumentos musicales...
  • muu: kellaaja väljendamine, Braille'i kiri, labürint, muusikariistad...
  • muuta: kellonajan kertominen, Braille-järjestelmä, sokkelo, soittimet…
  • autre : apprendre à dire l'heure, le système braille, le labyrinthe, les instruments de musique…
  • Outros: aprender a dicir as horas, o sistema braille, labirinto, instrumentos musicais, etc.
  • altro: impara a leggere l'ora, il sistema braille, labirinto, strumenti musicali, ...
  • 기타: 시간 읽기, 점자, 미로, 악기, ...
  • overig: leren klokkijken, het braille-systeem, doolhof, muziekinstrumenten, ...
  • anna: lær klokka, lær blindeskrift, labyrint, musikkinstrument, …
  • inne: naucz się godzin na zegarze, systemu brajla, labiryntów, instrumentów muzycznych, ...
  • outros: aprender a dizer as horas, o sistema Braille, labirintos, instrumentos musicais, ...
  • outros: aprendendo a ver as horas, o sistema Braille, labirintos, instrumentos musicais, ...
  • altele: învață să citești ceasul, sistemul braille, labirint, instrumente muzicale, ...
  • другое: определение времени по часам, шрифт Брайля, лабиринт, музыкальные инструменты, ...
  • iné: ako povedať čas, braillov systém, bludisko, hudobná nástroje...
  • ostalo: prepoznavanje časa, brajica, blodnjak, glasbila, ...
  • annat: lära sig klockan, punktskrift, labyrint, musikinstrument, ...
  • Інше: навчання позначенням часу, система Брайля, лабіринти, музичні інструменти…
  • xxother: learn to tell time, the braille system, maze, music instruments, ...xx
  • 其他:学认钟表、盲文系统、迷宫、乐器……
  • 其他:看時間、點字系統、迷宮、認識樂器等等

Currently GCompris offers in excess of 100 activities and more are being developed. GCompris is free software, that means that you can adapt it to your own needs, improve it and, most importantly, share it with children everywhere.

توفّر «فهمت» حاليًّا أكثر من 100 نشاط وثمّة غيرها يجري تطويرها. «فهمت» برمجيّة حرّة، هذا يعني أنّك تستطيع تطويعها حسب احتياجك، وكذلك تطويرها، والأهم من ذلك هو مشاركتها مع الأطفال في كلّ مكان.

Actualment el GCompris ofereix més de 100 activitats i encara se'n desenvolupen més. El GCompris és programari lliure, el qual vol dir que podeu adaptar-lo a les vostres pròpies necessitats, millorar-lo i, el més important, compartir-lo amb nens de tot arreu.

Actualment el GCompris ofereix més de 100 activitats i encara se'n desenvolupen més. El GCompris és programari lliure, el qual vol dir que podeu adaptar-lo a les vostres pròpies necessitats, millorar-lo i, el més important, compartir-lo amb nens de tot arreu.

Insgesamt beinhaltet GCompris mehr als 100 Aktivitäten und wird ständig weiterentwickelt. GCompris ist freie Software. Sie haben also die Möglichkeit, sie ihren Bedürfnissen anzupassen und zu verbessern, und gerne auch alle Kinder der Welt von Ihrer Arbeit profitieren zu lassen.

Προς το παρόν το GCompris προσφέρει περισσότερες από 100 δραστηριότητες και αναπτύσσονται και άλλες. Το GCompris είναι ελεύθερο λογισμικό, το οποίο σημαίνει ότι μπορείτε να το προσαρμόσετε στις ανάγκες σας, να το βελτιώσετε, και, το σπουδαιότερο, να το μοιραστείτε με παιδιά από όλον τον κόσμο.

Currently GCompris offers in excess of 100 activities and more are being developed. GCompris is free software, that means that you can adapt it to your own needs, improve it and, most importantly, share it with children everywhere.

En la actualidad, GCompris ofrece más de 100 actividades y hay muchas más en desarrollo. GCompris es software libre, lo que significa que puede adaptarlo a sus necesidades, mejorarlo y, lo que es más importante, compartirlo con los niños de todo el mundo.

Praegu pakub GCompris üle 100 tegevuse ja neid tuleb aina juurde. GCompris on vaba tarkvara, mis tähendab, et seda saab kohandada oma vajadustele, täiustada, ja mis peamine, jagada oma täiustusi lastega kogu maailmas.

GComprisissa on nykyisellään yli sata toimintoa, ja lisää kehitetään. GCompris on vapaata ohjelmistoa, mikä tarkoittaa, että voit muokata sitä tarpeisiisi, parannella sitä ja mikä tärkeintä jakaa sitä lapsille kaikkialla.

Actuellement, GCompris contient plus de 100 activités et d'autres sont en cours de développement. GCompris est un logiciel libre, ce qui veut dire que vous pouvez l'adapter à vos propres besoins, le modifier et, le plus important, le partager avec des enfants où que ce soit.

Actualmente GCompris ofrece máis de 100 actividades e hai máis en progreso. GCompris é software libre, o que significa que pode adaptalo para axustalo ás súas necesidades, melloralo e, o máis importante, compartilo con nenos de todo o mundo.

Attualmente GCompris offre più di 100 attività e altre sono in fase di sviluppo. GCompris è software libero, che significa che puoi adattarlo alle tue necessità, migliorarlo e, cosa più importante, condividerlo con tutti i bambini.

GCompris는 100개 이상의 활동을 포함하고 있으며 더 많은 활동을 개발하고 있습니다. GCompris는 자유 소프트웨어이며, 필요에 따라서 활동을 개선할 수 있으며 전 세계의 사람들과 공유할 수 있습니다.

Op dit moment biedt GCompris meer dan 100 activiteiten en meer zijn er in ontwikkeling. GCompris is vrije software, dat betekent dat u het kunt aanpassen aan uw eigen behoeften, het verbeteren en, meest belangrijk, het met kinderen overal kun delen.

GCompris har over 100 aktivitetar, og fleire vert utvikla. GCompris er fri programvare. Det vil seia at du kan tilpassa spelet slik du ønskjer, forbetra det og dela det med andre ungar i heile verda.

Obecnie GCompris zapewnia ponad 100 aktywności, a jeszcze więcej jest opracowywanych. GCompris jest darmowym oprogramowaniem, co oznacza, że możesz je dopasować do własnych potrzeb, ulepszać je i co najważniejsze udostępniać je dzieciom.

De momento, o GCompris oferece mais de 100 actividades, estando ainda mais em desenvolvimento. O GCompris é uma aplicação de 'software' livre, o que significa que o poderá adaptar às suas próprias necessidades, melhorá-lo e, o mais importante, partilhá-lo com as crianças em todo o lado.

Atualmente o GCompris oferece mais de 100 atividades e outras mais estão sendo desenvolvidas. O GCompris é um software livre, o que significa que você pode adaptá-lo para as suas próprias necessidades, melhorá-lo e, mais importante, compartilhar com as crianças de todo o mundo.

Momentan GCompris oferă peste 100 de activități și multe altele sunt în lucru. GCompris este software liber, ceea ce înseamnă că poate fi adaptat nevoilor dumneavoastră, îmbunătățit, dar mai ales, partajat cu copii de pretutindeni.

В настоящее время GCompris содержит более 100 упражнений, и новые находятся в разработке. GCompris — свободное ПО, и это значит, что вы можете приспособить его для своих нужд, улучшить, а самое главное — поделиться им с детьми во всём мире.

Aktuálne GCompris ponúka vyše 100 aktivít a ďalšie sa vyvíjajú. GCompris je slobodný softvér, čo znamená, že si ho môžete prispôsobiť na vlastné potreby, zlepšiť, a hlavne zdieľať s deťmi všade.

GCompris trenutno ponuja več kot 100 dejavnosti, še več pa jih je v razvoju. GCompris je prosta programska oprema, kar pomeni, da jo lahko prilagodite po svoje, še pomembneje pa je, da jo lahko delite z otroki širom sveta.

För närvarande erbjuder GCompris över 100 aktiviteter och ännu fler håller på att utvecklas. GCompris är fri programvara, vilket betyder att man kan anpassa det till sina egna behov, och viktigast av allt, dela det med barn överallt.

У поточній версії GCompris понад 100 вправ. Розробники постійно працюють над новими вправами. GCompris є вільним програмним забезпеченням, це означає, що ви можете адаптувати програму до власних потреб, покращувати її і, що найважливіше, ділитися вашими творіннями із усіма дітьми.

xxCurrently GCompris offers in excess of 100 activities and more are being developed. GCompris is free software, that means that you can adapt it to your own needs, improve it and, most importantly, share it with children everywhere.xx

当前 GCompris 提供超过100个活动,还有更多的正在开发中。GCompris 是自由软件,这意味着你可以根据你的需要进行调整、改进,以及最重要的一点,和世界各地的孩子们分享。

目前 GCompris 提供超過 100 個活動,還有更多正在開發中。GCompris 是一套自由軟體,表示您可以根據您自己的需求來改進,並分享給所有的孩子們。

http://gcompris.net/screenshots-qt/middle/canal_lock.png - http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png xxhttp://gcompris.net/screenshots-qt/middle/canal_lock.pngxx http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/canal_lock.png http://gcompris.net/screenshots-qt/middle/ - http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ xxhttp://gcompris.net/screenshots-qt/middle/xx http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/ http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png - http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png xxhttp://gcompris.net/screenshots-qt/middle/click_on_letter_up.pngxx http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/click_on_letter_up.png http://gcompris.net/screenshots-qt/middle/clockgame.png - http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame-nn.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png xxhttp://gcompris.net/screenshots-qt/middle/clockgame.pngxx http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/clockgame.png http://gcompris.net/screenshots-qt/middle/color_mix.png - http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix-nn.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png xxhttp://gcompris.net/screenshots-qt/middle/color_mix.pngxx http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/color_mix.png http://gcompris.net/screenshots-qt/middle/colors.png - http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors-nn.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png xxhttp://gcompris.net/screenshots-qt/middle/colors.pngxx http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/colors.png http://gcompris.net/screenshots-qt/middle/enumerate.png - http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png xxhttp://gcompris.net/screenshots-qt/middle/enumerate.pngxx http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/enumerate.png http://gcompris.net/screenshots-qt/middle/fifteen.png - http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png xxhttp://gcompris.net/screenshots-qt/middle/fifteen.pngxx http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/fifteen.png http://gcompris.net/screenshots-qt/middle/hexagon.png - http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png xxhttp://gcompris.net/screenshots-qt/middle/hexagon.pngxx http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/hexagon.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png - http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png xxhttp://gcompris.net/screenshots-qt/middle/redraw_symmetrical.pngxx http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/redraw_symmetrical.png http://gcompris.net/screenshots-qt/middle/scalesboard.png - http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png xxhttp://gcompris.net/screenshots-qt/middle/scalesboard.pngxx http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/scalesboard.png http://gcompris.net/screenshots-qt/middle/traffic.png - http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png xxhttp://gcompris.net/screenshots-qt/middle/traffic.pngxx http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/screenshots-qt/middle/traffic.png http://gcompris.net/ - http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ http://gcompris.net/ xxhttp://gcompris.net/xx http://gcompris.net/ http://gcompris.net/ https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris - https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris xxhttps://bugs.kde.org/enter_bug.cgi?format=guided&product=gcomprisxx https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris https://bugs.kde.org/enter_bug.cgi?format=guided&product=gcompris bruno.coudoin@gcompris.net - bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net xxbruno.coudoin@gcompris.netxx bruno.coudoin@gcompris.net bruno.coudoin@gcompris.net
diff --git a/org.kde.gcompris.desktop b/org.kde.gcompris.desktop index 3adc3d473..741e8dcde 100644 --- a/org.kde.gcompris.desktop +++ b/org.kde.gcompris.desktop @@ -1,100 +1,99 @@ [Desktop Entry] Name=GCompris Educational Game Name[ar]=لعبة «فهمت» التّعليميّة -Name[ast]=Xuegu educativu Gcompris Name[ca]=Joc educatiu GCompris Name[ca@valencia]=Joc educatiu GCompris Name[cs]=Výuková hra GCompris Name[de]=GCompris-Lernspiel Name[el]=Εκπαιδευτικό παιχνίδι GCompris Name[en_GB]=GCompris Educational Game Name[es]=Juego educativo GCompris Name[et]=Hariv mäng GCompris Name[fi]=GCompris, opettavainen peli Name[fr]=Jeu éducatif GCompris Name[gl]=Xogo educativo GCompris Name[it]=Gioco didattico GCompris Name[ko]=GCompris 교육용 게임 Name[nl]=Educatief spel GCompris Name[nn]=GCompris leik-og-lær-spel Name[pl]=Gra edukacyjna GCompris Name[pt]=Jogo Educativo GCompris Name[pt_BR]=Jogo educacional GCompris Name[ro]=Joc educațional GCompris Name[ru]=Набор обучающих игр GCompris Name[sk]=Výuková hra GCompris Name[sl]=Izobraževalna igra GCompris Name[sv]=GCompris pedagogiskt spel Name[tr]=GCompris Eğitici Oyun Name[uk]=Освітня гра GCompris Name[x-test]=xxGCompris Educational Gamexx Name[zh_CN]=GCompris 教育游戏 Name[zh_TW]=GCompris 教育遊戲 GenericName=Educational game GenericName[ar]=لعبة تعليميّة GenericName[ast]=Xuegu educativu GenericName[ca]=Joc educatiu GenericName[ca@valencia]=Joc educatiu GenericName[cs]=Výuková hra GenericName[da]=Læringsspil GenericName[de]=Lernspiel GenericName[el]=Εκπαιδευτικό παιχνίδι GenericName[en_GB]=Educational game GenericName[es]=Juego educativo GenericName[et]=Hariv mäng GenericName[fi]=Opettavainen peli GenericName[fr]=Jeu éducatif GenericName[gl]=Xogo educativo GenericName[it]=Gioco didattico GenericName[ko]=교육용 게임 GenericName[nl]=Educatief spel GenericName[nn]=Leik-og-lær-spel GenericName[pl]=Gra edukacyjna GenericName[pt]=Jogo educativo GenericName[pt_BR]=Jogo educacional GenericName[ro]=Joc educațional GenericName[ru]=Обучающие игры GenericName[sk]=Výuková hra GenericName[sl]=Izobraževalna igra GenericName[sv]=Pedagogiskt spel GenericName[tr]=Eğitici oyun GenericName[uk]=Освітня гра GenericName[x-test]=xxEducational gamexx GenericName[zh_CN]=教育游戏 GenericName[zh_TW]=教育遊戲 Comment=Multi-Activity Educational game for children 2 to 10 Comment[ar]=لعبة تعليميّة متعدّدة الأنشطة للأطفال من سنتين إلى 10 سنوات Comment[ca]=Joc educatiu amb múltiples activitats per a nens dels 2 a 10 anys Comment[ca@valencia]=Joc educatiu amb múltiples activitats per a nens dels 2 a 10 anys Comment[de]=Lernspiel mit vielen Aktivitäten für Kinder von 2 bis 10 Jahren Comment[el]=Εκπαιδευτικό παιχνίδι πολλαπλών δραστηριοτήτων για ηλικίες 2 έως 10 ετών Comment[en_GB]=Multi-Activity Educational game for children 2 to 10 Comment[es]=Juego educativo multiactividad para niños de 2 a 10 años Comment[et]=Rohkete tegevustega hariv mäng lastele vanuses 2-10 Comment[fi]=Useampitoimintoinen opettavainen peli 2–10-vuotiaille lapsille Comment[fr]=Jeu éducatif multi-activités pour les enfants de 2 à 10 ans Comment[gl]=Xogo educativo con varias actividades para nenos de entre 2 e 10 anos. Comment[it]=Gioco didattico multi-attività per bambini da 2 a 10 anni Comment[ko]=2-10세 어린이를 위한 다양한 활동이 있는 교육용 게임 Comment[nl]=Educatief spel met meerdere activiteiten voor kinderen van 2 tot 10 Comment[nn]=Leik-og-lærspel med mange aktivitetar – for barn frå 2 til 10 år Comment[pl]=Gra edukacyjna z wieloma aktywnościami dla dzieci w wieku od 2 do 10 lat Comment[pt]=Jogo educativo multi-actividades para crianças dos 2 aos 10 anos Comment[pt_BR]=Jogo educacional com várias atividades para crianças de 2 a 10 anos Comment[ro]=Joc educațional cu activități multiple pentru copii între 2 și 10 ani Comment[ru]=Обучающие игры для детей от 2 до 10 лет Comment[sk]=Viac-aktivitová výuková hra pre deti od 2 do 10 rokov Comment[sl]=Izobraževalna igra z več dejavnostmi za otroke med drugim in desetim letom starosti Comment[sv]=Pedagogiskt multiaktivitetsspel för barn från 2 till 10 år Comment[tr]=2-10 yaş arası çocuklar için Çoklu Etkileşimli Eğitici oyun Comment[uk]=Набір освітніх ігор для дітей від 2 до 10 років Comment[x-test]=xxMulti-Activity Educational game for children 2 to 10xx Comment[zh_CN]=为 2 到 10 岁儿童准备的多功能教育游戏 Comment[zh_TW]=為 2-10 歲孩子設計的教育遊戲 Exec=gcompris-qt Icon=gcompris-qt Terminal=false Type=Application Categories=Education;Game;KidsGame; StartupNotify=true X-DocPath=gcompris/index.html diff --git a/platforms/sailfishOS/harbour-gcompris-qt.desktop b/platforms/sailfishOS/harbour-gcompris-qt.desktop index 0a44ac4fc..10e30632a 100644 --- a/platforms/sailfishOS/harbour-gcompris-qt.desktop +++ b/platforms/sailfishOS/harbour-gcompris-qt.desktop @@ -1,100 +1,99 @@ [Desktop Entry] Name=GCompris Educational Game Name[ar]=لعبة «فهمت» التّعليميّة -Name[ast]=Xuegu educativu Gcompris Name[ca]=Joc educatiu GCompris Name[ca@valencia]=Joc educatiu GCompris Name[cs]=Výuková hra GCompris Name[de]=GCompris-Lernspiel Name[el]=Εκπαιδευτικό παιχνίδι GCompris Name[en_GB]=GCompris Educational Game Name[es]=Juego educativo GCompris Name[et]=Hariv mäng GCompris Name[fi]=GCompris, opettavainen peli Name[fr]=Jeu éducatif GCompris Name[gl]=Xogo educativo GCompris Name[it]=Gioco didattico GCompris Name[ko]=GCompris 교육용 게임 Name[nl]=Educatief spel GCompris Name[nn]=GCompris leik-og-lær-spel Name[pl]=Gra edukacyjna GCompris Name[pt]=Jogo Educativo GCompris Name[pt_BR]=Jogo educacional GCompris Name[ro]=Joc educațional GCompris Name[ru]=Набор обучающих игр GCompris Name[sk]=Výuková hra GCompris Name[sl]=Izobraževalna igra GCompris Name[sv]=GCompris pedagogiskt spel Name[tr]=GCompris Eğitici Oyun Name[uk]=Освітня гра GCompris Name[x-test]=xxGCompris Educational Gamexx Name[zh_CN]=GCompris 教育游戏 Name[zh_TW]=GCompris 教育遊戲 GenericName=Educational game GenericName[ar]=لعبة تعليميّة GenericName[ast]=Xuegu educativu GenericName[ca]=Joc educatiu GenericName[ca@valencia]=Joc educatiu GenericName[cs]=Výuková hra GenericName[da]=Læringsspil GenericName[de]=Lernspiel GenericName[el]=Εκπαιδευτικό παιχνίδι GenericName[en_GB]=Educational game GenericName[es]=Juego educativo GenericName[et]=Hariv mäng GenericName[fi]=Opettavainen peli GenericName[fr]=Jeu éducatif GenericName[gl]=Xogo educativo GenericName[it]=Gioco didattico GenericName[ko]=교육용 게임 GenericName[nl]=Educatief spel GenericName[nn]=Leik-og-lær-spel GenericName[pl]=Gra edukacyjna GenericName[pt]=Jogo educativo GenericName[pt_BR]=Jogo educacional GenericName[ro]=Joc educațional GenericName[ru]=Обучающие игры GenericName[sk]=Výuková hra GenericName[sl]=Izobraževalna igra GenericName[sv]=Pedagogiskt spel GenericName[tr]=Eğitici oyun GenericName[uk]=Освітня гра GenericName[x-test]=xxEducational gamexx GenericName[zh_CN]=教育游戏 GenericName[zh_TW]=教育遊戲 Comment=Multi-Activity Educational game for children 2 to 10 Comment[ar]=لعبة تعليميّة متعدّدة الأنشطة للأطفال من سنتين إلى 10 سنوات Comment[ca]=Joc educatiu amb múltiples activitats per a nens dels 2 a 10 anys Comment[ca@valencia]=Joc educatiu amb múltiples activitats per a nens dels 2 a 10 anys Comment[de]=Lernspiel mit vielen Aktivitäten für Kinder von 2 bis 10 Jahren Comment[el]=Εκπαιδευτικό παιχνίδι πολλαπλών δραστηριοτήτων για ηλικίες 2 έως 10 ετών Comment[en_GB]=Multi-Activity Educational game for children 2 to 10 Comment[es]=Juego educativo multiactividad para niños de 2 a 10 años Comment[et]=Rohkete tegevustega hariv mäng lastele vanuses 2-10 Comment[fi]=Useampitoimintoinen opettavainen peli 2–10-vuotiaille lapsille Comment[fr]=Jeu éducatif multi-activités pour les enfants de 2 à 10 ans Comment[gl]=Xogo educativo con varias actividades para nenos de entre 2 e 10 anos. Comment[it]=Gioco didattico multi-attività per bambini da 2 a 10 anni Comment[ko]=2-10세 어린이를 위한 다양한 활동이 있는 교육용 게임 Comment[nl]=Educatief spel met meerdere activiteiten voor kinderen van 2 tot 10 Comment[nn]=Leik-og-lærspel med mange aktivitetar – for barn frå 2 til 10 år Comment[pl]=Gra edukacyjna z wieloma aktywnościami dla dzieci w wieku od 2 do 10 lat Comment[pt]=Jogo educativo multi-actividades para crianças dos 2 aos 10 anos Comment[pt_BR]=Jogo educacional com várias atividades para crianças de 2 a 10 anos Comment[ro]=Joc educațional cu activități multiple pentru copii între 2 și 10 ani Comment[ru]=Обучающие игры для детей от 2 до 10 лет Comment[sk]=Viac-aktivitová výuková hra pre deti od 2 do 10 rokov Comment[sl]=Izobraževalna igra z več dejavnostmi za otroke med drugim in desetim letom starosti Comment[sv]=Pedagogiskt multiaktivitetsspel för barn från 2 till 10 år Comment[tr]=2-10 yaş arası çocuklar için Çoklu Etkileşimli Eğitici oyun Comment[uk]=Набір освітніх ігор для дітей від 2 до 10 років Comment[x-test]=xxMulti-Activity Educational game for children 2 to 10xx Comment[zh_CN]=为 2 到 10 岁儿童准备的多功能教育游戏 Comment[zh_TW]=為 2-10 歲孩子設計的教育遊戲 Exec=harbour-gcompris-qt Icon=harbour-gcompris-qt Terminal=false Type=Application Categories=Education;Game;KidsGame; StartupNotify=true X-Nemo-Application-Type=generic diff --git a/src/activities/CMakeLists.txt b/src/activities/CMakeLists.txt index 771ca2252..d1ca10bc2 100644 --- a/src/activities/CMakeLists.txt +++ b/src/activities/CMakeLists.txt @@ -1,31 +1,34 @@ add_subdirectory(menu) # Read the activities.txt file file(READ activities.txt ACTIVITIES) # Split the output on a list containing each line string(REGEX REPLACE ";" "\\\\;" ACTIVITIES "${ACTIVITIES}") string(REGEX REPLACE "\n" ";" ACTIVITIES "${ACTIVITIES}") file(REMOVE "activities_out.txt") +add_custom_target(all_activities) + foreach(ACTIVITY ${ACTIVITIES}) # For each line found, we remove comments string(FIND "${ACTIVITY}" "#" match) if(${match}) file(STRINGS "${ACTIVITY}/ActivityInfo.qml" demoline REGEX "demo:[ ]+") string(REGEX REPLACE ".*demo:.*(true|false).*" "\\1" demo "${demoline}" ) set(DEFAULT_MODE ON) if((${WITH_DEMO_ONLY}) AND (${demo} STREQUAL "false")) set(DEFAULT_MODE OFF) endif() # Set activities as options (enabled by default) option("USE_${ACTIVITY}" "Enable ${ACTIVITY} activity" ${DEFAULT_MODE}) if(USE_${ACTIVITY} AND NOT (${_disabled_activities} MATCHES ${ACTIVITY})) # Add the directory for compilation add_subdirectory(${ACTIVITY}) file(APPEND "activities_out.txt" "${ACTIVITY}\n") + add_dependencies(all_activities "rcc_${ACTIVITY}") endif() endif(${match}) endforeach(ACTIVITY ${ACTIVITIES}) GCOMPRIS_ADD_RCC(activities activities_out.txt) diff --git a/src/activities/braille_alphabets/Screen.qml b/src/activities/braille_alphabets/Screen.qml index a8a155b1f..07715f7cf 100644 --- a/src/activities/braille_alphabets/Screen.qml +++ b/src/activities/braille_alphabets/Screen.qml @@ -1,313 +1,313 @@ /* GCompris - Screen.qml * * Copyright (C) 2014 Arkit Vora * * Authors: * Srishti Sethi (GTK+ version) * Arkit Vora (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.1 import GCompris 1.0 import "../../core" import "braille_alphabets.js" as Activity ActivityBase { id: activity onStart: focus = true onStop: {} property var dataset pageComponent: Image { id: background anchors.fill: parent fillMode: Image.PreserveAspectCrop source: Activity.url + "background.svg" sourceSize.width: Math.max(parent.width, parent.height) signal start signal stop Component.onCompleted: { activity.start.connect(start) activity.stop.connect(stop) } Keys.onPressed: { if(first_screen.visible) { // If return, we hide the screen first_screen.visible = false return; } var keyValue; switch(event.key) { case Qt.Key_1: keyValue = 1; break; case Qt.Key_2: keyValue = 2; break; case Qt.Key_3: keyValue = 3; break; case Qt.Key_4: keyValue = 4; break; case Qt.Key_5: keyValue = 5; break; case Qt.Key_6: keyValue = 6; break; } if(keyValue) playableChar.switchState(keyValue) } // Add here the QML items you need to access in javascript QtObject { id: items property Item main: activity.main property alias background: background property alias bar: bar property alias bonus: bonus property alias containerModel: containerModel property alias questionItem: questionItem property string instructions property alias playableChar: playableChar property alias score: score property bool brailleCodeSeen } onStart: { first_screen.visible = true Activity.start(items, dataset) } onStop: { Activity.stop() } ListModel { id: containerModel } Image { id: charList y: 20 * ApplicationInfo.ratio anchors.horizontalCenter: parent.horizontalCenter source: Activity.url + "top_back.svg" sourceSize.width: parent.width * 0.94 visible: items.brailleCodeSeen Row { id: row spacing: 10 * ApplicationInfo.ratio anchors.centerIn: charList anchors.horizontalCenterOffset: 5 Repeater { id: cardRepeater model: containerModel Item { id: inner height: charList.height * 0.9 width: (charList.width - containerModel.count * row.spacing)/ containerModel.count Rectangle { id: rect1 width: charList.width / 13 height: ins.height border.width: 0 border.color: "black" color: "#a5cbd9" BrailleChar { id: ins width: parent.width * 0.9 anchors.centerIn: parent clickable: false brailleChar: letter } } GCText { text: letter font.weight: Font.DemiBold color: "#2a2a2a" font.pointSize: NaN // need to clear font.pointSize explicitly - font.pixelSize: Math.max(parent.width * 0.5, 24) + font.pixelSize: rect1.width * 0.5 anchors { top: rect1.bottom topMargin: 4 * ApplicationInfo.ratio horizontalCenter: rect1.horizontalCenter } } } } } } Image { id: playableCharBg anchors { top: charList.bottom topMargin: 10 * ApplicationInfo.ratio } verticalAlignment: Image.AlignTop x: 10 * ApplicationInfo.ratio source: Activity.url + "char_background.svg" sourceSize.width: playableChar.width * 1.8 height: (playableChar.height + playableCharDisplay.height) * 1.2 BrailleChar { id: playableChar clickable: true anchors { horizontalCenter: parent.horizontalCenter top: parent.top topMargin: 20 * ApplicationInfo.ratio } width: Math.min(background.width * 0.18, background.height * 0.2) - isLetter: items.isLetter + isLetter: true onBrailleCharChanged: { if(brailleChar === Activity.getCurrentLetter()) { particles.burst(40) Activity.nextQuestion() } } audioEffects: activity.audioEffects } GCText { id: playableCharDisplay font.pointSize: NaN // need to clear font.pointSize explicitly font.pixelSize: Math.max(playableChar.width * 0.4, 24) font.weight: Font.DemiBold color: "#2a2a2a" text: playableChar.brailleChar anchors { top: playableChar.bottom topMargin: 4 * ApplicationInfo.ratio horizontalCenter: playableChar.horizontalCenter } } } Rectangle { id: instructionsArea height: questionItem.height * 1.2 width: parent.width / 1.1 anchors { top: charList.bottom topMargin: 10 * ApplicationInfo.ratio left: playableCharBg.right leftMargin: 10 * ApplicationInfo.ratio right: parent.right rightMargin: 10 * ApplicationInfo.ratio } color: "#55333333" border.width: 0 radius: 5 GCText { id: questionItem anchors.centerIn: parent fontSize: largeSize horizontalAlignment: Text.AlignHCenter font.weight: Font.DemiBold style: Text.Outline styleColor: "black" color: "white" width: parent.width * 0.94 wrapMode: Text.WordWrap function initQuestion() { playableChar.clearLetter() text = Activity.getCurrentTextQuestion() if(items.instructions) text += "\n" + items.instructions opacity = 1.0 } onOpacityChanged: opacity == 0 ? initQuestion() : "" Behavior on opacity { PropertyAnimation { duration: 1000 } } } } ParticleSystemStarLoader { id: particles clip: false } FirstScreen { id: first_screen } Score { id: score anchors.bottom: background.bottom anchors.right: braille_map.left visible: !(dialogMap.visible || first_screen.visible) } DialogHelp { id: dialogHelp onClose: home() } BrailleMap { id: dialogMap // Make is non visible or we get some rendering artefacts before // until it is created visible: false onClose: home() } Bar { id: bar content: BarEnumContent { value: help | home | level } onHelpClicked: { displayDialog(dialogHelp) } onPreviousLevelClicked: Activity.previousLevel() onNextLevelClicked: Activity.nextLevel() onHomeClicked: activity.home() } BarButton { id: braille_map source: Activity.url + "target.svg" anchors { right: parent.right bottom: parent.bottom } sourceSize.width: 66 * bar.barZoom visible: true onClicked: { dialogMap.visible = true displayDialog(dialogMap) } } Bonus { id: bonus Component.onCompleted: win.connect(Activity.nextLevel) } } } diff --git a/src/activities/click_on_letter/click_on_letter.js b/src/activities/click_on_letter/click_on_letter.js index a6bb189a8..78c817415 100644 --- a/src/activities/click_on_letter/click_on_letter.js +++ b/src/activities/click_on_letter/click_on_letter.js @@ -1,208 +1,209 @@ /* GCompris - click_on_letter.js * * Copyright (C) 2014 Holger Kaelberer * * Authors: * Pascal Georges (GTK+ version) * Bruno Coudoin (GTK+ Mostly full rewrite) * Holger Kaelberer (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ .pragma library .import QtQuick 2.0 as Quick .import GCompris 1.0 as GCompris //for ApplicationInfo .import "qrc:/gcompris/src/core/core.js" as Core var url = "qrc:/gcompris/src/activities/click_on_letter/resource/" var defaultLevelsFile = ":/gcompris/src/activities/click_on_letter/resource/levels-en.json"; var maxLettersPerLine = 6; var levels; var currentLevel; var maxLevel; var currentSubLevel; var currentLetter; var maxSubLevel; var level; var questions; var answers; var items; var mode; function start(_items, _mode) { Core.checkForVoices(_items.main); items = _items; mode = _mode; // register the voices for the locale var locale = GCompris.ApplicationInfo.getVoicesLocale(items.locale) GCompris.DownloadManager.updateResource(GCompris.DownloadManager.getVoicesResourceForLocale(locale)) loadLevels(); currentLevel = 0; currentSubLevel = 0; maxLevel = levels.length; initLevel(); } function validateLevels(levels) { var i; for (i = 0; i < levels.length; i++) { if (undefined === levels[i].questions || typeof levels[i].questions != "string" || levels[i].questions.length < 1 || typeof levels[i].answers != "string" || levels[i].answers.length < 1) return false; } if (i < 1) return false; return true; } function loadLevels() { var ret; - var filename = GCompris.ApplicationInfo.getLocaleFilePath(url + "levels-$LOCALE.json"); + var locale = GCompris.ApplicationInfo.getVoicesLocale(items.locale) + var filename = GCompris.ApplicationInfo.getLocaleFilePath(url + "levels-" + locale + ".json"); levels = items.parser.parseFromUrl(filename); if (levels == null) { console.warn("Click_on_letter: Invalid levels file " + filename); // fallback to default Latin (levels-en.json) file: levels = items.parser.parseFromUrl(defaultLevelsFile); if (levels == null) { console.error("Click_on_letter: Invalid default levels file " + defaultLevelsFile + ". Can't continue!"); // any way to error-exit here? return; } } // at this point we have valid levels for (var i = 0; i < levels.length; i++) { if (mode === "lowercase") { levels[i].questions = levels[i].questions.toLocaleLowerCase(); levels[i].answers = levels[i].answers.toLocaleLowerCase(); } else { levels[i].questions = levels[i].questions.toLocaleUpperCase(); levels[i].answers = levels[i].answers.toLocaleUpperCase(); } } } function stop() { } function shuffleString(s) { var a = s.split(""); var n = a.length; for(var i = n-1; i>0; i--) { var j = Math.floor(Math.random() * (i + 1)); var tmp = a[i]; a[i] = a[j]; a[j] = tmp; } return a.join(""); } function initLevel() { items.bar.level = currentLevel + 1; if (currentSubLevel == 0) { level = levels[currentLevel]; maxSubLevel = level.questions.length; items.score.numberOfSubLevels = maxSubLevel; items.score.currentSubLevel = "1"; questions = shuffleString(level.questions); answers = shuffleString(level.answers); var answerArr = answers.split(""); items.trainModel.clear(); for (var i = 0; i < answerArr.length; i++) { items.trainModel.append({ "letter": answerArr[i], }); } } else { items.score.currentSubLevel = currentSubLevel + 1; } var locale = GCompris.ApplicationInfo.getVoicesLocale(items.locale); currentLetter = questions.split("")[currentSubLevel]; if (GCompris.ApplicationSettings.isAudioVoicesEnabled && GCompris.DownloadManager.haveLocalResource( GCompris.DownloadManager.getVoicesResourceForLocale(locale))) { items.audioVoices.append(GCompris.ApplicationInfo.getAudioFilePath("voices-$CA/"+locale+"/misc/click_on_letter.$CA")); items.audioVoices.silence(100) playLetter(currentLetter) items.questionItem.visible = false items.repeatItem.visible = true } else { // no sound -> show question items.questionItem.visible = true; items.repeatItem.visible = false } // Maybe we will display it if sound fails items.questionItem.text = currentLetter; } function playLetter(letter) { var locale = GCompris.ApplicationInfo.getVoicesLocale(items.locale) items.audioVoices.append(GCompris.ApplicationInfo.getAudioFilePath("voices-$CA/"+locale+"/alphabet/" + Core.getSoundFilenamForChar(letter))) } function nextLevel() { items.audioVoices.clearQueue() if(maxLevel <= ++currentLevel ) { currentLevel = 0 } currentSubLevel = 0; initLevel(); } function previousLevel() { items.audioVoices.clearQueue() if(--currentLevel < 0) { currentLevel = maxLevel - 1 } currentSubLevel = 0; initLevel(); } function nextSubLevel() { if( ++currentSubLevel >= maxSubLevel) { currentSubLevel = 0 nextLevel() } initLevel(); } function checkAnswer(index) { var modelEntry = items.trainModel.get(index); if (modelEntry.letter == currentLetter) { playLetter(modelEntry.letter); items.bonus.good("flower"); return true } else { return false } } diff --git a/src/activities/click_on_letter/resource/levels-be.json b/src/activities/click_on_letter/resource/levels-be.json new file mode 100644 index 000000000..a7219ac59 --- /dev/null +++ b/src/activities/click_on_letter/resource/levels-be.json @@ -0,0 +1,13 @@ +[ + { "level": 1, "questions": "аеіоуы", "answers": "аеіоуы" }, + { "level": 2, "questions": "аеіоуы", "answers": "аеіоуыцс" }, + { "level": 3, "questions": "аеіоуы", "answers": "аеіоуыцкывхз" }, + { "level": 4, "questions": "цкпсвхўз", "answers": "цкпсвхўз" }, + { "level": 5, "questions": "bfglmnqt", "answers": "bfglmnqt" }, + { "level": 6, "questions": "бдгчпнму", "answers": "бдгчпнму" }, + { "level": 7, "questions": "ілтгўвае", "answers": "ілтгўвае" }, + { "level": 8, "questions": "абвгдеёж", "answers": "абвгдеёж" }, + { "level": 9, "questions": "зійклмно", "answers": "зійклмно" }, + { "level": 10, "questions": "прстуўфхцч", "answers": "прстуўфхцч" }, + { "level": 11, "questions": "шьэюязйўофжіыабвгдеё", "answers": "шьэюязйўофжіыабвгдеё" } +] diff --git a/src/activities/color_mix/ActivityInfo.qml b/src/activities/color_mix/ActivityInfo.qml index e535d0ce3..c8e0b2a67 100644 --- a/src/activities/color_mix/ActivityInfo.qml +++ b/src/activities/color_mix/ActivityInfo.qml @@ -1,38 +1,38 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Stephane Mankowski * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import GCompris 1.0 ActivityInfo { name: "color_mix/ColorMix.qml" difficulty: 4 - icon: "color_mix/colormix.svg" + icon: "color_mix/color_mix.svg" author: "Stephane Mankowski <stephane@mankowski.fr>" demo: true title: qsTr("Mixing color of paint") description: qsTr("Discover paint color mixing.") // intro: "Match the colour by moving the sliders on the tubes of paint" goal: qsTr("Mix the primary colors to match to the given color") prerequisite: "" manual: qsTr(" The activity deals with mixing primary colors of paint (subtractive mixing). In case of paints the inks absorb different colors of light falling on it, subtracting it from what you see. The more ink you add, the more light is absorbed, and the darker the combined color gets. We can mix just three primary colors to make many new colors. The primary colors for paint/ink are cyan (a special shade of blue), magenta (a special shade of pink), and yellow. ") credit: qsTr("Images from http://openclipart.org") section: "experiment color" } diff --git a/src/activities/color_mix/colormix.svg b/src/activities/color_mix/color_mix.svg similarity index 100% rename from src/activities/color_mix/colormix.svg rename to src/activities/color_mix/color_mix.svg diff --git a/src/activities/color_mix_light/ActivityInfo.qml b/src/activities/color_mix_light/ActivityInfo.qml index 298254469..3cbd0296a 100644 --- a/src/activities/color_mix_light/ActivityInfo.qml +++ b/src/activities/color_mix_light/ActivityInfo.qml @@ -1,38 +1,38 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Stephane Mankowski * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import GCompris 1.0 ActivityInfo { name: "color_mix_light/ColorMixLight.qml" difficulty: 4 - icon: "color_mix_light/colormixlight.svg" + icon: "color_mix_light/color_mix_light.svg" author: "Stephane Mankowski <stephane@mankowski.fr>" demo: true title: qsTr("Mixing colors of light") description: qsTr("Discover light color mixing.") // intro: "Match the colour by moving the sliders on the torches" goal: qsTr("Mix the primary colors to match to the given color.") prerequisite: "" manual: qsTr(" The activity deals with mixing primary colors of light (additive mixing). In case of light it is just the opposite of mixing color with paints! The more light you add the lighter the resultant color will get. Primary colors of light are red, green and blue. ") credit: "http://openclipart.org" section: "experiment color" } diff --git a/src/activities/color_mix_light/colormixlight.svg b/src/activities/color_mix_light/color_mix_light.svg similarity index 100% rename from src/activities/color_mix_light/colormixlight.svg rename to src/activities/color_mix_light/color_mix_light.svg diff --git a/src/activities/crane/ActivityInfo.qml b/src/activities/crane/ActivityInfo.qml old mode 100755 new mode 100644 diff --git a/src/activities/crane/CMakeLists.txt b/src/activities/crane/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/src/activities/crane/Controls.qml b/src/activities/crane/Controls.qml old mode 100755 new mode 100644 diff --git a/src/activities/crane/Crane.qml b/src/activities/crane/Crane.qml index 375f52a2a..8825b769d 100644 --- a/src/activities/crane/Crane.qml +++ b/src/activities/crane/Crane.qml @@ -1,475 +1,486 @@ /* GCompris - Crane.qml * * Copyright (C) 2016 Stefan Toncu * * Authors: * (GTK+ version) * Stefan Toncu (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.1 +import QtGraphicalEffects 1.0 import "../../core" import "crane.js" as Activity ActivityBase { id: activity + // Overload this in your activity to change it + // Put you default-.json files in it + property string dataSetUrl: "qrc:/gcompris/src/activities/crane/resource/" + onStart: focus = true onStop: {} - pageComponent: Rectangle { + pageComponent: Image { id: background + source: activity.dataSetUrl+"background.svg" + fillMode: Image.PreserveAspectCrop anchors.fill: parent - color: "#ffeecc" + sourceSize.width: Math.max(parent.width, parent.height) + signal start signal stop Component.onCompleted: { activity.start.connect(start) activity.stop.connect(stop) } // Add here the QML items you need to access in javascript QtObject { id: items property Item main: activity.main property alias background: background property alias bar: bar property alias bonus: bonus property alias board: board property alias grid: grid property alias repeater: repeater property alias modelRepeater: modelRepeater property alias gridRepeater: gridRepeater property alias showGrid1: showGrid1 property int selected property int columns property int rows property bool ok: true property int sensivity: 80 property bool gameFinished: false property bool pieceIsMoving: false } onStart: { Activity.start(items) } onStop: { Activity.stop() } property bool portrait: height > width ? true : false property bool inLine: true Keys.onPressed: { - if (event.key === Qt.Key_Left) + if (event.key === Qt.Key_Left){ Activity.move("left") - else if (event.key === Qt.Key_Right) + left.opacity = 0.6 + } + else if (event.key === Qt.Key_Right){ Activity.move("right") - else if (event.key === Qt.Key_Up) + right.opacity = 0.6 + } + else if (event.key === Qt.Key_Up){ Activity.move("up") - else if (event.key === Qt.Key_Down) + up.opacity = 0.6 + } + else if (event.key === Qt.Key_Down){ Activity.move("down") + down.opacity = 0.6 + } else if (event.key === Qt.Key_Space || event.key === Qt.Key_Tab || event.key === Qt.Key_Enter || event.key === Qt.Key_Return) Activity.move("next") } + + Keys.onReleased: { + up.opacity = 1 + down.opacity = 1 + left.opacity = 1 + right.opacity = 1 + } //implementation of Swipe effect MouseArea { anchors.fill: parent property int startX; property int startY; onPressed: { startX = mouse.x; startY = mouse.y; } onReleased: Activity.gesture(mouse.x - startX, mouse.y - startY) } Rectangle { id: board - color: "lightblue" - radius: width * 0.02 + color: "#b9e2f0" + radius: width * 0.03 + border.color: "#77c0d9" + border.width: width * 0.02 z: 1 + clip: true anchors { verticalCenter: crane_vertical.verticalCenter right: crane_vertical.left margins: 15 } width: background.portrait ? parent.width * 0.65 : ((parent.width - anchors.margins * 3 - crane_vertical.width) / 2 ) * 0.9 height: background.portrait ? (parent.height - bar.height * 1.45 - crane_top.height - crane_body.height ) / 2 : (parent.height - bar.height * 1.45 - crane_top.height - crane_body.height) * 0.9 } Grid { id: showGrid1 columns: items.columns rows: items.rows z: 1 anchors.fill: board + layer.enabled: true + layer.effect: OpacityMask { + maskSource: board + } + Repeater { id: gridRepeater Rectangle { width: board.width/items.columns height: board.height/items.rows color: "transparent" border.width: 2 - border.color: "grey" + border.color: "#77c0d9" } } } - Rectangle { - id: coverEgdes1 - color: "transparent" - width: board.width - height: board.height - border.color: board.color - border.width: 10 - opacity: showGrid1.opacity - anchors.centerIn: board - z: 3 - } Grid { id: grid columns: items.columns rows: items.rows z: 4 anchors.fill: board Repeater { id: repeater Image { id: figure sourceSize.height: board.width/items.columns sourceSize.width: board.height/items.rows width: board.width/items.columns height: board.height/items.rows property int initialIndex: -1 property alias anim: anim property int distance property int indexChange property int startPoint property string animationProperty property int _index: index // make current index accessible from outside SequentialAnimation { id: anim PropertyAction { target: items; property: "ok"; value: "false"} NumberAnimation { target: figure; property: figure.animationProperty; from: figure.startPoint; to: figure.startPoint + distance; duration: 200 } PropertyAction { target: figure; property: "opacity"; value: 0 } NumberAnimation { target: figure; property: figure.animationProperty; from: figure.startPoint + distance; to: figure.startPoint; duration: 0; } PropertyAction { target: figure; property: "opacity"; value: 1 } PropertyAction { target: items.repeater.itemAt(items.selected + indexChange); property: "source"; value: figure.source } PropertyAction { target: items.repeater.itemAt(items.selected + indexChange); property: "initialIndex"; value: figure.initialIndex } PropertyAction { target: figure; property: "initialIndex"; value: -1 } PropertyAction { target: figure; property: "source"; value: "" } PropertyAction { target: items; property: "ok"; value: "true"} PropertyAction { target: items; property: "pieceIsMoving"; value: "false"} ScriptAction { script: Activity.checkAnswer() } } MouseArea { anchors.fill: parent // Swipe effect property int startX; property int startY; onPressed: { startX = mouse.x; startY = mouse.y; } onReleased: Activity.gesture(mouse.x - startX, mouse.y - startY) // Select a figure with mouse/touch onClicked: { if (source != "" && !items.pieceIsMoving) items.selected = index } } } } } Image { id: selected - source: "resource/selected.png" + source: activity.dataSetUrl+"selected.svg" sourceSize.width: board.width/items.columns sourceSize.height: board.height/items.rows width: board.width/items.columns height: board.height/items.rows opacity: 1 property var newCoord: items.selected == 0 ? grid : items.repeater.mapToItem(background,items.repeater.itemAt(items.selected).x, items.repeater.itemAt(items.selected).y) x: newCoord.x y: newCoord.y z: 100 Behavior on x { NumberAnimation { duration: 200 } } Behavior on y { NumberAnimation { duration: 200 } } } Rectangle { id: modelBoard - color: "pink" - radius: width * 0.02 + color: "#f0b9d2" + radius: width * 0.03 + border.color: "#e294b7" + border.width: width * 0.02 z: 1 anchors { left: background.portrait ? board.left : crane_vertical.right top: background.portrait ? crane_body.bottom : background.inLine ? board.top : parent.top topMargin: background.portrait ? board.anchors.margins : background.inLine ? 0 : crane_top.height * 1.5 leftMargin: background.portrait ? 0 : board.anchors.margins * 1.2 margins: board.anchors.margins } width: board.width height: board.height } Grid { id: modelGrid columns: items.columns rows: items.rows anchors.fill: modelBoard z: 4 Repeater { id: modelRepeater Image { id: modelFigure sourceSize.height: board.height/items.rows sourceSize.width: board.width/items.columns width: board.width/items.columns height: board.height/items.rows } } } Grid { id: showGrid2 columns: items.columns rows: items.rows z: 1 opacity: showGrid1.opacity anchors.fill: modelBoard + layer.enabled: true + layer.effect: OpacityMask { + maskSource: modelBoard + } Repeater { id: gridRepeater2 model: gridRepeater.model Rectangle { width: modelBoard.width/items.columns height: modelBoard.height/items.rows color: "transparent" border.width: 2 - border.color: showGrid1.opacity == 1 ? "grey" : "transparent" + border.color: showGrid1.opacity == 1 ? "#e294b7" : "transparent" } } } - Rectangle { - id: coverEgdes2 - color: "transparent" - width: modelBoard.width - height: modelBoard.height - border.color: showGrid1.opacity == 1 ? modelBoard.color : "transparent" - border.width: 10 - anchors.centerIn: modelBoard - opacity: showGrid1.opacity - z: 3 - } Image { id: crane_top - source: "resource/crane_up.svg" + source: activity.dataSetUrl+"crane_up.svg" sourceSize.width: background.portrait ? background.width * 0.8 : background.width * 0.5 - sourceSize.height: background.portrait ? background.height * 0.03 : background.height * 0.06 width: background.portrait ? background.width * 0.8 : background.width * 0.5 - height: background.portrait ? background.height * 0.03 : background.height * 0.06 + fillMode: Image.PreserveAspectFit z: 4 anchors { top: parent.top right: crane_vertical.right rightMargin: 0 margins: board.anchors.margins } } Image { id: crane_vertical - source: "resource/crane_vertical.svg" - sourceSize.width: background.width * 0.04 + source: activity.dataSetUrl+"crane_vertical.svg" sourceSize.height: background.portrait ? background.height * 0.5 : background.height * 0.73 - width: background.width * 0.05 height: background.portrait ? background.height * 0.5 : background.height * 0.73 + fillMode: Image.PreserveAspectFit anchors { top: crane_top.top right: background.portrait ? parent.right : parent.horizontalCenter rightMargin: background.portrait ? width / 2 : - width / 2 topMargin: board.anchors.margins } } Image { id: crane_body - source: "resource/crane_only.svg" + source: activity.dataSetUrl+"crane_only.svg" z: 2 sourceSize.width: parent.width / 5 sourceSize.height: parent.height/ 3.6 mirror: background.portrait ? true : false anchors { top: crane_vertical.bottom topMargin: - (height / 1.8) right: crane_vertical.right rightMargin: background.portrait ? board.anchors.margins : - crane_body.width + crane_vertical.width margins: board.anchors.margins } } Image { id: crane_wire - source: "resource/crane-wire.svg" + source: activity.dataSetUrl+"crane-wire.svg" z: 1 sourceSize.width: parent.width / 22 sourceSize.height: parent.width / 17 anchors { right: crane_body.left bottom: crane_command.verticalCenter rightMargin: -10 bottomMargin: -10 } } Image { id: crane_command - source: "resource/command.svg" + source: activity.dataSetUrl+"command.svg" sourceSize.width: background.portrait ? parent.width / 2.7 : parent.width / 3.5 sourceSize.height: background.portrait ? parent.height / 3.5 : parent.height / 4 width: background.portrait ? parent.width / 2.7 : parent.width / 3.5 height: background.portrait ? parent.height / 3.5 : parent.height / 4 - mirror: true - anchors { top: crane_body.top bottom: crane_body.bottom right: crane_wire.left rightMargin: 0 topMargin: background.portrait ? 0 : board.anchors.margins * 1.5 bottomMargin: background.portrait ? 0 : board.anchors.margins * 1.5 } Controls { id: up - source: "resource/arrow_up.svg" + source: activity.dataSetUrl+"arrow_up.svg" anchors { left: parent.left - leftMargin: parent.width / 13 + leftMargin: parent.width / 11 } command: "up" } Controls { id: down - source: "resource/arrow_down.svg" + source: activity.dataSetUrl+"arrow_down.svg" anchors { left: up.right leftMargin: parent.width / 30 } command: "down" } Controls { id: left - source: "resource/arrow_left.svg" + source: activity.dataSetUrl+"arrow_left.svg" anchors { right: right.left rightMargin: parent.width / 30 } command: "left" } Controls { id: right - source: "resource/arrow_right.svg" + source: activity.dataSetUrl+"arrow_right.svg" anchors { right: parent.right - rightMargin: parent.width / 10 + rightMargin: parent.width / 11 } command: "right" } } Rectangle { id: cable - color: "black" + color: "#373737" width: 5 height: convert.y - crane_top.y x: convert.x + board.width / items.columns / 2 z: 3 anchors.top: crane_top.top anchors.topMargin: 10 property var convert: items.selected == 0 ? grid : items.repeater.mapToItem(background,items.repeater.itemAt(items.selected).x, items.repeater.itemAt(items.selected).y) Behavior on x { NumberAnimation { duration: 200 } } Behavior on height { NumberAnimation { duration: 200 } } } DialogHelp { id: dialogHelp onClose: home() } Bar { id: bar content: BarEnumContent { value: help | home | level } onHelpClicked: { displayDialog(dialogHelp) } onPreviousLevelClicked: Activity.previousLevel() onNextLevelClicked: Activity.nextLevel() onHomeClicked: activity.home() } Bonus { id: bonus Component.onCompleted: win.connect(Activity.nextLevel) } } } diff --git a/src/activities/crane/crane.svg b/src/activities/crane/crane.svg old mode 100755 new mode 100644 index 5829caf5e..9ff8ef0d3 --- a/src/activities/crane/crane.svg +++ b/src/activities/crane/crane.svg @@ -1,222 +1,395 @@ + + inkscape:window-width="1884" + inkscape:window-height="1051" + inkscape:window-x="0" + inkscape:window-y="0" + showgrid="false" + inkscape:window-maximized="1" /> image/svg+xml + + + + inkscape:connector-curvature="0" + id="path4993" + d="m 39.138158,91.886997 a 8.6066257,7.279148 0 0 1 -8.606624,7.279143 8.6066257,7.279148 0 0 1 -8.606629,-7.279143 8.6066257,7.279148 0 0 1 8.606629,-7.279141 8.6066257,7.279148 0 0 1 8.606624,7.279141 z" + style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#2c4f97;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.56299996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="g6753" + transform="matrix(0.50341234,0,0,0.50341234,-164.05118,-154.46355)"> + + + + - \ No newline at end of file + diff --git a/src/activities/crane/resource/README b/src/activities/crane/resource/README deleted file mode 100644 index 837f752c0..000000000 --- a/src/activities/crane/resource/README +++ /dev/null @@ -1,15 +0,0 @@ -triangle: https://openclipart.org/detail/3199/orange-triangle -square: https://openclipart.org/detail/164215/custom-color-round-square-button - -light bulb: https://openclipart.org/detail/22067/light-bulb - -water drop1: https://openclipart.org/detail/175574/water-droplet -water drop2: https://openclipart.org/detail/4063/water-drop - -letters: https://openclipart.org/detail/227113/alphabet-letter-blocks - -down arrow: https://openclipart.org/detail/14871/arrow-set-bulb -up arrow: https://openclipart.org/detail/14872/arrow-set-bulb -left arrow: https://openclipart.org/detail/14874/arrow-set-bulb -right arrow: https://openclipart.org/detail/14873/arrow-set-bulb - diff --git a/src/activities/crane/resource/arrow_down.svg b/src/activities/crane/resource/arrow_down.svg index 0bed710fc..f63414b2f 100644 --- a/src/activities/crane/resource/arrow_down.svg +++ b/src/activities/crane/resource/arrow_down.svg @@ -1,94 +1,76 @@ + + + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48.365387mm" + height="48.365387mm" + viewBox="0 0 171.37342 171.37342" + id="svg4873" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="arrow_down.svg"> - - - - - - - - - - - - - - + id="defs4875" /> + + id="metadata4878"> - + image/svg+xml - - - - Openclipart - - - 2008-02-25T14:59:24 - One more arrow set... well what can i say... it´s fun to do arrows set.. ;-) - https://openclipart.org/detail/14871/arrow-set-(bulb)-by-mystica-14871 - - - mystica - - - - - arrow - arrows - sign - - - - - - - + + + + diff --git a/src/activities/crane/resource/arrow_left.svg b/src/activities/crane/resource/arrow_left.svg index fd3aa3553..df2e215ff 100644 --- a/src/activities/crane/resource/arrow_left.svg +++ b/src/activities/crane/resource/arrow_left.svg @@ -1,98 +1,76 @@ + + + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48.365387mm" + height="48.365387mm" + viewBox="0 0 171.37342 171.37342" + id="svg4873" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="arrow_key.svg"> - - - - - - - - - - - - - - - - + id="defs4875" /> + + id="metadata4878"> - + image/svg+xml - - - - Openclipart - - - 2008-02-25T14:59:24 - One more arrow set... well what can i say... it´s fun to do arrows set.. ;-) - https://openclipart.org/detail/14871/arrow-set-(bulb)-by-mystica-14871 - - - mystica - - - - - arrow - arrows - sign - - - - - - - + + + + diff --git a/src/activities/crane/resource/arrow_right.svg b/src/activities/crane/resource/arrow_right.svg index c2d07d7b8..cdaf7372b 100644 --- a/src/activities/crane/resource/arrow_right.svg +++ b/src/activities/crane/resource/arrow_right.svg @@ -1,97 +1,76 @@ + + + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48.365387mm" + height="48.365387mm" + viewBox="0 0 171.37342 171.37342" + id="svg4873" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="arrow_right.svg"> - - - - - - - - - - - - - - - - + id="defs4875" /> + + id="metadata4878"> - + image/svg+xml - - - - Openclipart - - - 2008-02-25T14:59:24 - One more arrow set... well what can i say... it´s fun to do arrows set.. ;-) - https://openclipart.org/detail/14871/arrow-set-(bulb)-by-mystica-14871 - - - mystica - - - - - arrow - arrows - sign - - - - - - - + + + + diff --git a/src/activities/crane/resource/arrow_up.svg b/src/activities/crane/resource/arrow_up.svg index d213ac091..592150460 100644 --- a/src/activities/crane/resource/arrow_up.svg +++ b/src/activities/crane/resource/arrow_up.svg @@ -1,97 +1,76 @@ + + + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48.365387mm" + height="48.365387mm" + viewBox="0 0 171.37342 171.37342" + id="svg4873" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="arrow_up.svg"> - - - - - - - - - - - - - - - - + id="defs4875" /> + + id="metadata4878"> - + image/svg+xml - - - - Openclipart - - - 2008-02-25T14:59:24 - One more arrow set... well what can i say... it´s fun to do arrows set.. ;-) - https://openclipart.org/detail/14871/arrow-set-(bulb)-by-mystica-14871 - - - mystica - - - - - arrow - arrows - sign - - - - - - - + + + + diff --git a/src/activities/hangman/resource/background.svg b/src/activities/crane/resource/background.svg similarity index 63% copy from src/activities/hangman/resource/background.svg copy to src/activities/crane/resource/background.svg index 79acb2e37..380bd3f02 100644 --- a/src/activities/hangman/resource/background.svg +++ b/src/activities/crane/resource/background.svg @@ -1,1189 +1,635 @@ + gradientTransform="matrix(0.39236167,0,0,0.3163348,198.62953,546.65812)" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + inkscape:label="Calque 2" /> diff --git a/src/activities/crane/resource/bulb.svg b/src/activities/crane/resource/bulb.svg index dcb1a8a4d..5f916e8df 100644 --- a/src/activities/crane/resource/bulb.svg +++ b/src/activities/crane/resource/bulb.svg @@ -1,292 +1,108 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - Openclipart - - - - - - - - - - - - - - - Clipart by Nicu Buculei - nosmoke - - - Nicu Buculei - - - - - - - - - - - - - + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/command.svg b/src/activities/crane/resource/command.svg index ede21ac20..515ca001d 100644 --- a/src/activities/crane/resource/command.svg +++ b/src/activities/crane/resource/command.svg @@ -1,103 +1,73 @@ + sodipodi:docname="command.svg"> - - - - + inkscape:current-layer="layer1" /> image/svg+xml - + - - - + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#515d62;fill-opacity:0.16589864;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="M 34.353516 13.322266 C 23.590741 13.322266 14.925781 21.985272 14.925781 32.748047 L 14.925781 44.789062 C 14.925781 55.551837 23.590741 64.216797 34.353516 64.216797 L 116 64.216797 L 116 13.322266 L 34.353516 13.322266 z M 124 13.322266 L 124 64.216797 L 144.35352 64.216797 L 171.16602 64.216797 L 205.64648 64.216797 C 216.40926 64.216797 225.07422 55.551838 225.07422 44.789062 L 225.07422 32.748047 C 225.07422 21.985272 216.40926 13.322266 205.64648 13.322266 L 171.16602 13.322266 L 144.35352 13.322266 L 124 13.322266 z " + transform="translate(561.8816,418.08532)" + id="rect4139" /> diff --git a/src/activities/crane/resource/crane-wire.svg b/src/activities/crane/resource/crane-wire.svg index 589a41bc6..22ae6cb81 100644 --- a/src/activities/crane/resource/crane-wire.svg +++ b/src/activities/crane/resource/crane-wire.svg @@ -1,64 +1,57 @@ image/svg+xml - + - - + id="layer1" /> diff --git a/src/activities/crane/resource/crane_only.svg b/src/activities/crane/resource/crane_only.svg index a65528354..cc8ffcf40 100644 --- a/src/activities/crane/resource/crane_only.svg +++ b/src/activities/crane/resource/crane_only.svg @@ -1,203 +1,311 @@ + + + inkscape:version="0.91 r13725" + sodipodi:docname="crane_only.svg"> + id="defs4170" /> + + id="metadata4173"> image/svg+xml + inkscape:label="Calque 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-937.36216)"> + width="143.20216" + height="21.884832" + x="24.009747" + y="1012.9695" + rx="3.9206023" + ry="5.1490483" /> + - + d="m 62.732601,1037.0687 a 17.096573,14.459614 0 0 1 -17.09657,14.4596 17.096573,14.459614 0 0 1 -17.09658,-14.4596 17.096573,14.459614 0 0 1 17.09658,-14.4596 17.096573,14.459614 0 0 1 17.09657,14.4596 z" + style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#2c4f97;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.56299996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" /> - - + ry="5.1490493" /> - + ry="5.1490483" /> + ry="5.1490483" /> - - + ry="5.1490483" /> + - - - - - + ry="5.1490488" /> + inkscape:connector-curvature="0" + id="rect7191" + d="m 103.42042,938.19608 8.07618,0.0395 c 2.17195,0.0106 3.88962,2.31536 3.85127,5.16757 l -0.0351,2.61217 c -0.0383,2.8522 -1.81775,5.13983 -3.98971,5.1292 l -8.07618,-0.0395 c -2.17197,-0.0106 -3.889629,-2.31536 -3.851289,-5.16756 l 0.0351,-2.61217 c 0.0384,-2.85221 1.817759,-5.13983 3.989729,-5.1292 z" + style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#2c4f97;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.93160927;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" /> + inkscape:connector-curvature="0" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#cea111;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.9315536;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" + d="m 90.507201,947.80471 30.587989,4.78986 3.63675,3.76459 c 0,2.47763 -1.22452,4.47224 -2.74554,4.47224 l -31.479199,0 c -1.52104,0 -2.74555,-1.99461 -2.74555,-4.47224 l 0,-4.08221 c 0,-2.47762 1.22451,-4.47224 2.74555,-4.47224 z" + id="rect6463" /> + inkscape:connector-curvature="0" + id="rect7928" + d="m 73.478727,948.84022 -26.371094,0.0352 c -2.11617,0 -3.808593,1.98915 -3.808593,4.46679 l 0,30.66211 c 0,2.47761 1.692423,4.46876 3.808593,4.46875 l 30.94336,0 c 2.11617,0 3.835937,-1.99111 3.835937,-4.46875 l 0.441407,-17.75195 c 0,-2.47762 -6.73345,-17.41211 -8.84961,-17.41211 z m -8.582031,12.73047 a 4.652143,4.3075399 0 0 1 4.652344,4.30664 4.652143,4.3075399 0 0 1 -4.652344,4.30859 4.652143,4.3075399 0 0 1 -4.652344,-4.30859 4.652143,4.3075399 0 0 1 4.652344,-4.30664 z" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#cea111;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.9315536;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" /> + sodipodi:nodetypes="ccsssscccccccc" + inkscape:connector-curvature="0" + id="rect7928-2" + d="m 72.242399,951.53358 -24.220703,0.0293 c -1.94358,0 -3.5,1.72044 -3.5,3.86132 l 0,26.49414 c 0,2.14086 1.55642,3.86134 3.5,3.86133 l 28.417969,0 c 1.94359,0 3.523437,-1.72045 3.523437,-3.86133 l 0.40625,-15.33789 c 0,-2.14087 -6.183373,-15.04687 -8.126953,-15.04687 z m -7.590553,7.9778 c 3.651211,-2e-4 6.611241,2.74035 6.611328,6.1211 -8.8e-5,3.38075 -2.960117,6.12129 -6.611328,6.12109 -3.65121,2e-4 -6.61124,-2.74034 -6.611328,-6.12109 8.8e-5,-3.38075 2.960117,-6.1213 6.611328,-6.1211 z" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f2c228;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.9315536;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" /> + sodipodi:nodetypes="cccssssc" + inkscape:connector-curvature="0" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#cea111;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.9315536;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" + d="m 44.606501,940.1369 31.39982,1.10535 5.12059,6.4697 c 0,2.47762 -1.30665,5.45163 -2.9297,5.45163 l -33.59071,0 c -1.62304,0 -2.92968,-1.99461 -2.92968,-4.47223 l 0,-4.08222 c 0,-2.47761 1.30664,-4.47223 2.92968,-4.47223 z" + id="path11566" /> + inkscape:connector-curvature="0" + id="path4993-3" + d="m 59.882241,1036.3341 a 14.491054,12.255967 0 0 1 -14.49106,12.256 14.491054,12.255967 0 0 1 -14.49105,-12.256 14.491054,12.255967 0 0 1 14.49105,-12.2559 14.491054,12.255967 0 0 1 14.49106,12.2559 z" + style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#3b6dd6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.56299996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" /> + inkscape:connector-curvature="0" + id="path4993-6" + d="m 158.24295,1037.0687 a 17.096573,14.459614 0 0 1 -17.09658,14.4596 17.096573,14.459614 0 0 1 -17.09657,-14.4596 17.096573,14.459614 0 0 1 17.09657,-14.4596 17.096573,14.459614 0 0 1 17.09658,14.4596 z" + style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#2c4f97;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.56299996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" /> + inkscape:connector-curvature="0" + id="path4993-3-7" + d="m 155.39255,1036.3341 a 14.491054,12.255967 0 0 1 -14.49105,12.256 14.491054,12.255967 0 0 1 -14.49105,-12.256 14.491054,12.255967 0 0 1 14.49105,-12.2559 14.491054,12.255967 0 0 1 14.49105,12.2559 z" + style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#3b6dd6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.56299996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" /> + + + + + + + sodipodi:nodetypes="cccssssc" + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f2c228;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.9315536;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" + d="m 45.539811,941.36115 29.01621,1.05933 4.61209,5.48891 c 0,1.82565 -1.17694,3.30694 -2.63876,3.29539 l -30.98954,-0.24485 c -1.46181,-0.0115 -2.63874,-1.46974 -2.63874,-3.29539 l 0,-3.008 c 0,-1.82565 1.17688,-3.29539 2.63874,-3.29539 z" + id="path11566-5" + inkscape:connector-curvature="0" /> + id="rect7191-6" + d="m 104.02455,939.63329 6.34087,0.0269 c 1.70528,0.007 3.05389,1.58245 3.02377,3.53183 l -0.0276,1.78532 c -0.0301,1.94936 -1.42717,3.51286 -3.13244,3.5056 l -6.34088,-0.0269 c -1.70527,-0.007 -3.05388,-1.58246 -3.02377,-3.53183 l 0.0275,-1.78533 c 0.0301,-1.94936 1.42719,-3.51286 3.13246,-3.50559 z" + style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#3b6dd6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.93160927;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" + inkscape:connector-curvature="0" /> + + + + + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f2c228;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.9315536;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" + d="m 91.703551,949.76351 27.549279,3.52944 3.27546,2.77395 c 0,1.82567 -1.10287,3.2954 -2.47279,3.2954 l -28.351949,0 c -1.36994,0 -2.4728,-1.46973 -2.4728,-3.2954 l 0,-3.00799 c 0,-1.82565 1.10286,-3.2954 2.4728,-3.2954 z" + id="rect6463-6" + inkscape:connector-curvature="0" /> + + + + + + diff --git a/src/activities/crane/resource/crane_up.svg b/src/activities/crane/resource/crane_up.svg index d11e039d5..2da7bf9d9 100644 --- a/src/activities/crane/resource/crane_up.svg +++ b/src/activities/crane/resource/crane_up.svg @@ -1,89 +1,80 @@ + inkscape:current-layer="svg2" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> image/svg+xml - - - - - - + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccc" /> + + + diff --git a/src/activities/crane/resource/crane_vertical.svg b/src/activities/crane/resource/crane_vertical.svg index d7c8d92f0..39ed3d6e0 100644 --- a/src/activities/crane/resource/crane_vertical.svg +++ b/src/activities/crane/resource/crane_vertical.svg @@ -1,98 +1,132 @@ + height="364" + width="45" + inkscape:version="0.91 r13725" + sodipodi:docname="crane_vertical.svg"> + image/svg+xml - + - - - - - - - - - - - - - - + + + + + + + + + + + diff --git a/src/activities/crane/resource/letter-a.svg b/src/activities/crane/resource/letter-a.svg index 1d04a2602..8deedb7ea 100644 --- a/src/activities/crane/resource/letter-a.svg +++ b/src/activities/crane/resource/letter-a.svg @@ -1,292 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letter-b.svg b/src/activities/crane/resource/letter-b.svg index c9c262ff1..ffe4c5694 100644 --- a/src/activities/crane/resource/letter-b.svg +++ b/src/activities/crane/resource/letter-b.svg @@ -1,288 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/a.svg b/src/activities/crane/resource/letters/a.svg index 1d04a2602..8deedb7ea 100644 --- a/src/activities/crane/resource/letters/a.svg +++ b/src/activities/crane/resource/letters/a.svg @@ -1,292 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/b.svg b/src/activities/crane/resource/letters/b.svg index c9c262ff1..ffe4c5694 100644 --- a/src/activities/crane/resource/letters/b.svg +++ b/src/activities/crane/resource/letters/b.svg @@ -1,288 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/c.svg b/src/activities/crane/resource/letters/c.svg index 2780775c9..e1a853e0c 100644 --- a/src/activities/crane/resource/letters/c.svg +++ b/src/activities/crane/resource/letters/c.svg @@ -1,308 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/d.svg b/src/activities/crane/resource/letters/d.svg index 0254a4ced..5e793cbb1 100644 --- a/src/activities/crane/resource/letters/d.svg +++ b/src/activities/crane/resource/letters/d.svg @@ -1,264 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/e.svg b/src/activities/crane/resource/letters/e.svg index 39bbaba17..b20a4ffd5 100644 --- a/src/activities/crane/resource/letters/e.svg +++ b/src/activities/crane/resource/letters/e.svg @@ -1,296 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/f.svg b/src/activities/crane/resource/letters/f.svg index c3c415d44..5329b7259 100644 --- a/src/activities/crane/resource/letters/f.svg +++ b/src/activities/crane/resource/letters/f.svg @@ -1,276 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/g.svg b/src/activities/crane/resource/letters/g.svg index a73778d44..e57f141d4 100644 --- a/src/activities/crane/resource/letters/g.svg +++ b/src/activities/crane/resource/letters/g.svg @@ -1,364 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/h.svg b/src/activities/crane/resource/letters/h.svg index 08e2adc37..4d9c6feb1 100644 --- a/src/activities/crane/resource/letters/h.svg +++ b/src/activities/crane/resource/letters/h.svg @@ -1,336 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/i.svg b/src/activities/crane/resource/letters/i.svg index 737ca1ff2..86e1d8176 100644 --- a/src/activities/crane/resource/letters/i.svg +++ b/src/activities/crane/resource/letters/i.svg @@ -1,232 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/j.svg b/src/activities/crane/resource/letters/j.svg index 1ef2c7b77..4e194abd0 100644 --- a/src/activities/crane/resource/letters/j.svg +++ b/src/activities/crane/resource/letters/j.svg @@ -1,268 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/k.svg b/src/activities/crane/resource/letters/k.svg index 5bb6ccab8..6ce73af42 100644 --- a/src/activities/crane/resource/letters/k.svg +++ b/src/activities/crane/resource/letters/k.svg @@ -1,290 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/l.svg b/src/activities/crane/resource/letters/l.svg index 9bc627518..773211325 100644 --- a/src/activities/crane/resource/letters/l.svg +++ b/src/activities/crane/resource/letters/l.svg @@ -1,258 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/m.svg b/src/activities/crane/resource/letters/m.svg index 1421237b9..aa1ef5cf8 100644 --- a/src/activities/crane/resource/letters/m.svg +++ b/src/activities/crane/resource/letters/m.svg @@ -1,360 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/n.svg b/src/activities/crane/resource/letters/n.svg index 29a183226..e8b4746bf 100644 --- a/src/activities/crane/resource/letters/n.svg +++ b/src/activities/crane/resource/letters/n.svg @@ -1,226 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/o.svg b/src/activities/crane/resource/letters/o.svg index d0e4490f2..3e376616b 100644 --- a/src/activities/crane/resource/letters/o.svg +++ b/src/activities/crane/resource/letters/o.svg @@ -1,206 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/p.svg b/src/activities/crane/resource/letters/p.svg index 9a983e467..9483e15ec 100644 --- a/src/activities/crane/resource/letters/p.svg +++ b/src/activities/crane/resource/letters/p.svg @@ -1,198 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/q.svg b/src/activities/crane/resource/letters/q.svg index 796216b32..7bb3364ce 100644 --- a/src/activities/crane/resource/letters/q.svg +++ b/src/activities/crane/resource/letters/q.svg @@ -1,262 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/r.svg b/src/activities/crane/resource/letters/r.svg index e31428df7..e3e330a0c 100644 --- a/src/activities/crane/resource/letters/r.svg +++ b/src/activities/crane/resource/letters/r.svg @@ -1,306 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/s.svg b/src/activities/crane/resource/letters/s.svg index 8c908b42f..3d205ec5e 100644 --- a/src/activities/crane/resource/letters/s.svg +++ b/src/activities/crane/resource/letters/s.svg @@ -1,306 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/t.svg b/src/activities/crane/resource/letters/t.svg index 554ec35b0..070e07c0d 100644 --- a/src/activities/crane/resource/letters/t.svg +++ b/src/activities/crane/resource/letters/t.svg @@ -1,270 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/u.svg b/src/activities/crane/resource/letters/u.svg index 22dd58f27..1f9931e9f 100644 --- a/src/activities/crane/resource/letters/u.svg +++ b/src/activities/crane/resource/letters/u.svg @@ -1,270 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/v.svg b/src/activities/crane/resource/letters/v.svg index 6e29edcd1..b0bd37c05 100644 --- a/src/activities/crane/resource/letters/v.svg +++ b/src/activities/crane/resource/letters/v.svg @@ -1,174 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/w.svg b/src/activities/crane/resource/letters/w.svg index cbfe5b788..7c812c826 100644 --- a/src/activities/crane/resource/letters/w.svg +++ b/src/activities/crane/resource/letters/w.svg @@ -1,278 +1,60 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/x.svg b/src/activities/crane/resource/letters/x.svg index 02f6d26b5..c7605487b 100644 --- a/src/activities/crane/resource/letters/x.svg +++ b/src/activities/crane/resource/letters/x.svg @@ -1,311 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/y.svg b/src/activities/crane/resource/letters/y.svg index 5cf9c4989..98a5a8633 100644 --- a/src/activities/crane/resource/letters/y.svg +++ b/src/activities/crane/resource/letters/y.svg @@ -1,250 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/letters/z.svg b/src/activities/crane/resource/letters/z.svg index b240f9a2f..98c049f6a 100644 --- a/src/activities/crane/resource/letters/z.svg +++ b/src/activities/crane/resource/letters/z.svg @@ -1,267 +1,58 @@ image/svg+xml \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/rectangle1.svg b/src/activities/crane/resource/rectangle1.svg index 130eb460e..ff8ab9db4 100644 --- a/src/activities/crane/resource/rectangle1.svg +++ b/src/activities/crane/resource/rectangle1.svg @@ -1,578 +1,60 @@ - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xmlOpenclipartCustom color round square button2011-10-20T12:29:43I see you liked my last button so, here it another one for you. -\nA glossy round corners square button for you to use any way you wish. -\nI won't be uploading a multicolor preview for this button but you are still able to customize it to fit your project. -\nI won't remind you that as a vector graphic you can resize it, but it is good to know that it will look good on any sizes. *thinking* -\nAnyway, you can customize the color of the button, you only need to go to Base color layer, select the object there and thats it. -\nThats it for today, enjoy the graphics in here and get some good use to them. -\nBy the way, if you're still here, leave a comment and if you use the button I will like to know where, maybe it will get me some hints for other great vector graphics for you. -\n -\nP.S. I forgot. Share this with your friends too. -\nhttps://openclipart.org/detail/164215/custom-color-round-square-button-by-theboxmeistertheboxmeisterbuttoncolorcolorscustomcustomizeglossyiconroundsquare - - image/svg+xml - - - - - - + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/rectangle2.svg b/src/activities/crane/resource/rectangle2.svg index 1dfca8642..8168c6d23 100644 --- a/src/activities/crane/resource/rectangle2.svg +++ b/src/activities/crane/resource/rectangle2.svg @@ -1,585 +1,60 @@ - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Big Preview - - image/svg+xmlOpenclipartCustom color round square button2011-10-20T12:29:43I see you liked my last button so, here it another one for you. -\nA glossy round corners square button for you to use any way you wish. -\nI won't be uploading a multicolor preview for this button but you are still able to customize it to fit your project. -\nI won't remind you that as a vector graphic you can resize it, but it is good to know that it will look good on any sizes. *thinking* -\nAnyway, you can customize the color of the button, you only need to go to Base color layer, select the object there and thats it. -\nThats it for today, enjoy the graphics in here and get some good use to them. -\nBy the way, if you're still here, leave a comment and if you use the button I will like to know where, maybe it will get me some hints for other great vector graphics for you. -\n -\nP.S. I forgot. Share this with your friends too. -\nhttps://openclipart.org/detail/164215/custom-color-round-square-button-by-theboxmeistertheboxmeisterbuttoncolorcolorscustomcustomizeglossyiconroundsquare - - image/svg+xml - - - - - - + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/selected.png b/src/activities/crane/resource/selected.png deleted file mode 100755 index 272c8f9a4..000000000 Binary files a/src/activities/crane/resource/selected.png and /dev/null differ diff --git a/src/activities/crane/resource/selected.svg b/src/activities/crane/resource/selected.svg new file mode 100644 index 000000000..f4ca5b487 --- /dev/null +++ b/src/activities/crane/resource/selected.svg @@ -0,0 +1,108 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/src/activities/crane/resource/square1.svg b/src/activities/crane/resource/square1.svg index aeef59e2f..438b7410e 100644 --- a/src/activities/crane/resource/square1.svg +++ b/src/activities/crane/resource/square1.svg @@ -1,582 +1,60 @@ - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xmlOpenclipartCustom color round square button2011-10-20T12:29:43I see you liked my last button so, here it another one for you. -\nA glossy round corners square button for you to use any way you wish. -\nI won't be uploading a multicolor preview for this button but you are still able to customize it to fit your project. -\nI won't remind you that as a vector graphic you can resize it, but it is good to know that it will look good on any sizes. *thinking* -\nAnyway, you can customize the color of the button, you only need to go to Base color layer, select the object there and thats it. -\nThats it for today, enjoy the graphics in here and get some good use to them. -\nBy the way, if you're still here, leave a comment and if you use the button I will like to know where, maybe it will get me some hints for other great vector graphics for you. -\n -\nP.S. I forgot. Share this with your friends too. -\nhttps://openclipart.org/detail/164215/custom-color-round-square-button-by-theboxmeistertheboxmeisterbuttoncolorcolorscustomcustomizeglossyiconroundsquare - - image/svg+xml - - - - - - + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/square2.svg b/src/activities/crane/resource/square2.svg index 1419a23f7..e621d18d0 100644 --- a/src/activities/crane/resource/square2.svg +++ b/src/activities/crane/resource/square2.svg @@ -1,582 +1,60 @@ - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xmlOpenclipartCustom color round square button2011-10-20T12:29:43I see you liked my last button so, here it another one for you. -\nA glossy round corners square button for you to use any way you wish. -\nI won't be uploading a multicolor preview for this button but you are still able to customize it to fit your project. -\nI won't remind you that as a vector graphic you can resize it, but it is good to know that it will look good on any sizes. *thinking* -\nAnyway, you can customize the color of the button, you only need to go to Base color layer, select the object there and thats it. -\nThats it for today, enjoy the graphics in here and get some good use to them. -\nBy the way, if you're still here, leave a comment and if you use the button I will like to know where, maybe it will get me some hints for other great vector graphics for you. -\n -\nP.S. I forgot. Share this with your friends too. -\nhttps://openclipart.org/detail/164215/custom-color-round-square-button-by-theboxmeistertheboxmeisterbuttoncolorcolorscustomcustomizeglossyiconroundsquare - - image/svg+xml - - - - - - + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/triangle1.svg b/src/activities/crane/resource/triangle1.svg index 2afb5aa6a..25e95e212 100644 --- a/src/activities/crane/resource/triangle1.svg +++ b/src/activities/crane/resource/triangle1.svg @@ -1,166 +1,59 @@ - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - image/svg+xml - - - - - Openclipart - - - - 2007-02-13T16:42:40 - An orange triangle - https://openclipart.org/detail/3199/orange-triangle-by-nlyl - - - nlyl - - - - - orange - shape - triangle - - - - - - - - - - - + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/triangle2.svg b/src/activities/crane/resource/triangle2.svg index db09fafa8..65a43e5bf 100644 --- a/src/activities/crane/resource/triangle2.svg +++ b/src/activities/crane/resource/triangle2.svg @@ -1,164 +1,59 @@ - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - image/svg+xml - - - - - Openclipart - - - orange triangle - 2007-02-13T16:42:40 - An orange triangle - https://openclipart.org/detail/3199/orange-triangle-by-nlyl - - - nlyl - - - - - orange - shape - triangle - - - - - - - - - - - + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/tux.svg b/src/activities/crane/resource/tux.svg index b27c9707c..0dc6a6858 100644 --- a/src/activities/crane/resource/tux.svg +++ b/src/activities/crane/resource/tux.svg @@ -1,190 +1,274 @@ + id="defs24"> + + + + + + + - - - - - - - - - - - - - - - - - - - - - - image/svg+xml Openclipart Tux the Penguin 2011-01-06T20:30:29 A little stylized drawing of Tux the Linux penguin. http://openclipart.org/detail/103855/tux-the-penguin-by-mairin mairin OS animal cartoon character clip art clipart cute free linux penguin tux + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/activities/crane/resource/water_drop1.svg b/src/activities/crane/resource/water_drop1.svg index ff6605a21..70941f63a 100644 --- a/src/activities/crane/resource/water_drop1.svg +++ b/src/activities/crane/resource/water_drop1.svg @@ -1,198 +1,84 @@ - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - Openclipart - - - Water Drop - 2007-04-23T19:05:17 - A nice water drop. I made it because I couldn't find any that I liked, much less in SVG format. It uses Inkscape 0.45's blur filter. - https://openclipart.org/detail/4063/water-drop-by-lagartoflojo - - - lagartoflojo - - - - - drop - h2o - nature - water - waterdrop - - - - - - - - - - - + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/water_drop2.svg b/src/activities/crane/resource/water_drop2.svg index 9a931052d..a95b7bf81 100644 --- a/src/activities/crane/resource/water_drop2.svg +++ b/src/activities/crane/resource/water_drop2.svg @@ -1,214 +1,84 @@ - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - Openclipart - - - - 2007-04-23T19:05:17 - A nice water drop. I made it because I couldn't find any that I liked, much less in SVG format. It uses Inkscape 0.45's blur filter. - https://openclipart.org/detail/4063/water-drop-by-lagartoflojo - - - lagartoflojo - - - - - drop - h2o - nature - water - waterdrop - - - - - - - - - - - + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/water_spot1.svg b/src/activities/crane/resource/water_spot1.svg index 373893ab8..4fb84f737 100644 --- a/src/activities/crane/resource/water_spot1.svg +++ b/src/activities/crane/resource/water_spot1.svg @@ -1,130 +1,167 @@ - - image/svg+xmlimage/svg+xmlOpenclipartWater Droplet2013-03-06T11:57:45A water droplet.https://openclipart.org/detail/175574/water-droplet-by-jgm104-175574jgm104bluedropdropletfluidliquidwater \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/crane/resource/water_spot2.svg b/src/activities/crane/resource/water_spot2.svg index 7cd4755f4..5819af19e 100644 --- a/src/activities/crane/resource/water_spot2.svg +++ b/src/activities/crane/resource/water_spot2.svg @@ -1,130 +1,167 @@ - - image/svg+xmlimage/svg+xmlOpenclipart2013-03-06T11:57:45A water droplet.https://openclipart.org/detail/175574/water-droplet-by-jgm104-175574jgm104bluedropdropletfluidliquidwater \ No newline at end of file + fit-margin-bottom="0"> \ No newline at end of file diff --git a/src/activities/drawletters/drawletters.svg b/src/activities/drawletters/drawletters.svg index 7cfe220ef..ad33c6f70 100644 --- a/src/activities/drawletters/drawletters.svg +++ b/src/activities/drawletters/drawletters.svg @@ -1,159 +1,269 @@ - - - - -Created by potrace 1.13, written by Peter Selinger 2001-2015 - - - - - + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/activities/drawnumbers/drawnumbers.svg b/src/activities/drawnumbers/drawnumbers.svg index a6469c11c..998e27720 100644 --- a/src/activities/drawnumbers/drawnumbers.svg +++ b/src/activities/drawnumbers/drawnumbers.svg @@ -1,108 +1,254 @@ - - - - -Created by potrace 1.13, written by Peter Selinger 2001-2015 - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/activities/drawnumbers/drawnumbers_dataset.js b/src/activities/drawnumbers/drawnumbers_dataset.js index 3d2fd9393..0978b1025 100644 --- a/src/activities/drawnumbers/drawnumbers_dataset.js +++ b/src/activities/drawnumbers/drawnumbers_dataset.js @@ -1,89 +1,89 @@ /* GCompris - drawnumbers_dataset.js * Copyright (C) 2016 Nitish Chauhan * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ .import GCompris 1.0 as GCompris //for ApplicationInfo .import "qrc:/gcompris/src/core/core.js" as Core function get() { return [ { "imageName1": "background.svg", "imageName2": "zero1.svg", - "coordinates": [[400,56],[441,62],[485,80],[514,111],[535,160],[544,205],[550,246],[546,289],[532,331],[502,375],[457,402],[416,408],[366,406],[322,388],[286,355],[268,307],[257,259],[259,209],[264,169],[281,121],[307,88],[351,59],[379,52]], + "coordinates": [[441,62],[400,50],[379,52],[351,59],[307,88],[281,121],[264,169],[259,209],[257,259],[268,307],[286,355],[322,388],[366,406],[416,408],[457,402],[502,375],[532,331],[546,289],[550,246],[544,205],[535,160],[514,111],[485,80]], "sound": GCompris.ApplicationInfo.getAudioFilePath("voices-$CA/$LOCALE/alphabet/"+ Core.getSoundFilenamForChar("0")) }, { "imageName1": "background.svg", "imageName2": "one1.svg", "coordinates": [[256,175],[289,157],[324,144],[361,124],[393,103],[420,80],[420,115],[420,151],[420,200],[420,246],[420,295],[420,337],[420,376],[420,412],[420,446]], "sound": GCompris.ApplicationInfo.getAudioFilePath("voices-$CA/$LOCALE/alphabet/"+ Core.getSoundFilenamForChar("1")) }, { "imageName1": "background.svg", "imageName2": "two1.svg", "coordinates": [[277,132],[289,96],[314,70],[354,49],[404,44],[452,49],[495,70],[525,108],[533,153],[503,198],[459,231],[420,264],[375,295],[337,315],[304,340],[268,372],[310,372],[339,372],[372,372],[401,372],[438,372],[473,372],[508,372],[546,372]], "sound": GCompris.ApplicationInfo.getAudioFilePath("voices-$CA/$LOCALE/alphabet/"+ Core.getSoundFilenamForChar("2")) }, { "imageName1": "background.svg", "imageName2": "three1.svg", "coordinates": [[266,128],[285,96],[317,70],[354,59],[395,53],[442,57],[480,75],[510,111],[507,157],[480,183],[444,194],[412,197],[369,212],[413,216],[448,220],[484,231],[514,256],[537,291],[533,329],[514,355],[482,373],[448,384],[405,383],[353,377],[308,357],[277,329],[255,295]], "sound": GCompris.ApplicationInfo.getAudioFilePath("voices-$CA/$LOCALE/alphabet/"+ Core.getSoundFilenamForChar("3")) }, { "imageName1": "background.svg", "imageName2": "four1.svg", - "coordinates":[[412,66],[387,97],[355,132],[331,166],[300,201],[268,240],[222,288],[273,288],[325,288],[362,288],[406,288],[445,288],[486,288],[517,288], + "coordinates":[[440,31], [412,66],[387,97],[355,132],[331,166],[300,201],[268,240],[222,288],[273,288],[325,288],[362,288],[406,288],[445,288],[486,288],[517,288], [440,31],[440,86],[440,151],[440,212],[440,262],[440,310],[440,364],[440,401]], - "coordinates2":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2], + "coordinates2":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2], "sound": GCompris.ApplicationInfo.getAudioFilePath("voices-$CA/$LOCALE/alphabet/"+ Core.getSoundFilenamForChar("4")) }, { "imageName1": "background.svg", "imageName2": "five1.svg", "coordinates": [[528,55],[480,55],[428,55],[383,55],[351,55],[315,55],[308,93],[302,122],[293,160],[285,188],[278,223],[302,226],[325,202],[358,184],[394,179],[435,190],[477,208],[511,234],[528,268],[525,313],[510,347],[481,377],[441,394],[401,402],[354,394],[311,372],[284,347],[267,308]], "sound": GCompris.ApplicationInfo.getAudioFilePath("voices-$CA/$LOCALE/alphabet/"+ Core.getSoundFilenamForChar("5")) }, { "imageName1": "background.svg", "imageName2": "six1.svg", "coordinates": [[522,125],[506,86],[480,66],[431,52],[388,51],[353,63],[318,88],[291,129],[277,172],[273,208],[275,251],[281,292],[295,333],[317,368],[351,387],[398,401],[446,395],[493,369],[518,315],[511,255],[482,215],[442,197],[400,193],[366,201],[337,219],[308,246]], "sound": GCompris.ApplicationInfo.getAudioFilePath("voices-$CA/$LOCALE/alphabet/"+ Core.getSoundFilenamForChar("6")) }, { "imageName1": "background.svg", "imageName2": "seven1.svg", "coordinates": [[264,57],[307,57],[358,57],[406,57],[444,57],[491,57],[526,57],[561,57],[526,93],[497,125],[470,160],[448,188],[424,222],[397,273],[382,304],[366,346],[354,390]], "sound": GCompris.ApplicationInfo.getAudioFilePath("voices-$CA/$LOCALE/alphabet/"+ Core.getSoundFilenamForChar("7")) }, { "imageName1": "background.svg", "imageName2": "eight1.svg", "coordinates": [[379,200],[331,172],[306,135],[310,91],[342,59],[377,42],[419,41],[463,52],[495,78],[513,121],[499,168],[471,198],[417,216],[371,223],[325,246],[297,281],[295,336],[303,364],[324,386],[353,400],[395,411],[445,408],[488,390],[521,354],[532,310],[526,267],[502,240],[474,226],[411,219]], "sound": GCompris.ApplicationInfo.getAudioFilePath("voices-$CA/$LOCALE/alphabet/"+ Core.getSoundFilenamForChar("8")) }, { "imageName1": "background.svg", "imageName2": "nine1.svg", - "coordinates": [[488,205],[471,237],[431,259],[379,266],[326,252],[293,222],[275,172],[293,120],[318,89],[354,67],[405,62],[451,74],[489,106],[513,157],[521,198],[520,262],[511,304],[495,342],[462,375],[413,388],[362,386],[322,369],[302,348],[291,321]], + "coordinates": [[513,157],[489,106],[451,74],[405,62],[354,67],[318,89],[293,120],[275,172],[293,222],[326,252],[379,266],[431,259],[471,237],[488,205],[513,157],[521,198],[520,262],[511,304],[495,342],[462,375],[413,388],[362,386],[322,369],[302,348],[291,321]], "sound": GCompris.ApplicationInfo.getAudioFilePath("voices-$CA/$LOCALE/alphabet/"+ Core.getSoundFilenamForChar("9")) } ] } diff --git a/src/activities/drawnumbers/resource/bear1.svg b/src/activities/drawnumbers/resource/bear1.svg deleted file mode 100644 index 8cd4dfdef..000000000 --- a/src/activities/drawnumbers/resource/bear1.svg +++ /dev/null @@ -1,387 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/bear2.svg b/src/activities/drawnumbers/resource/bear2.svg deleted file mode 100644 index be782232d..000000000 --- a/src/activities/drawnumbers/resource/bear2.svg +++ /dev/null @@ -1,491 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/carnaval1.svg b/src/activities/drawnumbers/resource/carnaval1.svg deleted file mode 100644 index 4e8e9c709..000000000 --- a/src/activities/drawnumbers/resource/carnaval1.svg +++ /dev/null @@ -1,205 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/carnaval2.svg b/src/activities/drawnumbers/resource/carnaval2.svg deleted file mode 100644 index 1e9223686..000000000 --- a/src/activities/drawnumbers/resource/carnaval2.svg +++ /dev/null @@ -1,536 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/de1.svg b/src/activities/drawnumbers/resource/de1.svg deleted file mode 100644 index 8631acac1..000000000 --- a/src/activities/drawnumbers/resource/de1.svg +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/de2.svg b/src/activities/drawnumbers/resource/de2.svg deleted file mode 100644 index f91b1d36a..000000000 --- a/src/activities/drawnumbers/resource/de2.svg +++ /dev/null @@ -1,447 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/dn_fond1.svg b/src/activities/drawnumbers/resource/dn_fond1.svg deleted file mode 100644 index fc6ca9466..000000000 --- a/src/activities/drawnumbers/resource/dn_fond1.svg +++ /dev/null @@ -1,797 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/dn_fond2.svg b/src/activities/drawnumbers/resource/dn_fond2.svg deleted file mode 100644 index 5f35ef0c7..000000000 --- a/src/activities/drawnumbers/resource/dn_fond2.svg +++ /dev/null @@ -1,843 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/epouvantail1.svg b/src/activities/drawnumbers/resource/epouvantail1.svg deleted file mode 100644 index db9224f04..000000000 --- a/src/activities/drawnumbers/resource/epouvantail1.svg +++ /dev/null @@ -1,370 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/epouvantail2.svg b/src/activities/drawnumbers/resource/epouvantail2.svg deleted file mode 100644 index 488058ff8..000000000 --- a/src/activities/drawnumbers/resource/epouvantail2.svg +++ /dev/null @@ -1,779 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/fish1.svg b/src/activities/drawnumbers/resource/fish1.svg deleted file mode 100644 index 5a0cc109d..000000000 --- a/src/activities/drawnumbers/resource/fish1.svg +++ /dev/null @@ -1,293 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/fish2.svg b/src/activities/drawnumbers/resource/fish2.svg deleted file mode 100644 index 6913759c4..000000000 --- a/src/activities/drawnumbers/resource/fish2.svg +++ /dev/null @@ -1,504 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/hibou1.svg b/src/activities/drawnumbers/resource/hibou1.svg deleted file mode 100644 index 2cd43c0f1..000000000 --- a/src/activities/drawnumbers/resource/hibou1.svg +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/hibou2.svg b/src/activities/drawnumbers/resource/hibou2.svg deleted file mode 100644 index bfd0bfd09..000000000 --- a/src/activities/drawnumbers/resource/hibou2.svg +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/house1.svg b/src/activities/drawnumbers/resource/house1.svg deleted file mode 100644 index 55f7efcf7..000000000 --- a/src/activities/drawnumbers/resource/house1.svg +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/house2.svg b/src/activities/drawnumbers/resource/house2.svg deleted file mode 100644 index 45b554ff5..000000000 --- a/src/activities/drawnumbers/resource/house2.svg +++ /dev/null @@ -1,257 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/plane1.svg b/src/activities/drawnumbers/resource/plane1.svg deleted file mode 100644 index 458caacd8..000000000 --- a/src/activities/drawnumbers/resource/plane1.svg +++ /dev/null @@ -1,435 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/plane2.svg b/src/activities/drawnumbers/resource/plane2.svg deleted file mode 100644 index a374bec0f..000000000 --- a/src/activities/drawnumbers/resource/plane2.svg +++ /dev/null @@ -1,667 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/sapin1.svg b/src/activities/drawnumbers/resource/sapin1.svg deleted file mode 100644 index ea59fd4d8..000000000 --- a/src/activities/drawnumbers/resource/sapin1.svg +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - diff --git a/src/activities/drawnumbers/resource/sapin2.svg b/src/activities/drawnumbers/resource/sapin2.svg deleted file mode 100644 index f2b00ef6c..000000000 --- a/src/activities/drawnumbers/resource/sapin2.svg +++ /dev/null @@ -1,611 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/activities/explore_monuments/ActivityInfo.qml b/src/activities/explore_monuments/ActivityInfo.qml index 5b98b36ac..36185ee95 100644 --- a/src/activities/explore_monuments/ActivityInfo.qml +++ b/src/activities/explore_monuments/ActivityInfo.qml @@ -1,35 +1,35 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Ayush Agrawal * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import GCompris 1.0 ActivityInfo { name: "explore_monuments/Explore_monuments.qml" difficulty: 3 - icon: "explore_monuments/explore_monuments.png" + icon: "explore_monuments/explore_monuments.svg" author: "Ayush Agrawal <ayushagrawal288@gmail.com>" demo: true title: qsTr("Explore Monuments") description: qsTr("Explore Monuments around the world.") //intro: "Explore Monuments around the world." goal: qsTr("To learn about different monuments on the basis of their location.") prerequisite: qsTr("Knowledge of different monuments.") manual: qsTr("Click on the given keys to learn more of the monuments and then identify where the monuments is on the map by its name.") credit: qsTr("Photos taken from Wikipedia.") section: "discovery" createdInVersion: 6000 } diff --git a/src/activities/explore_monuments/CMakeLists.txt b/src/activities/explore_monuments/CMakeLists.txt index 0ec9208d6..3580d150b 100644 --- a/src/activities/explore_monuments/CMakeLists.txt +++ b/src/activities/explore_monuments/CMakeLists.txt @@ -1 +1 @@ -GCOMPRIS_ADD_RCC(activities/explore_monuments *.qml *.png resource/*.txt resource/*/*) +GCOMPRIS_ADD_RCC(activities/explore_monuments *.qml *.svg resource/*.txt resource/*/*) diff --git a/src/activities/explore_monuments/explore_monuments.png b/src/activities/explore_monuments/explore_monuments.png deleted file mode 100644 index 5343c91c4..000000000 Binary files a/src/activities/explore_monuments/explore_monuments.png and /dev/null differ diff --git a/src/activities/explore_monuments/explore_monuments.svg b/src/activities/explore_monuments/explore_monuments.svg new file mode 100644 index 000000000..cb5da9fd6 --- /dev/null +++ b/src/activities/explore_monuments/explore_monuments.svg @@ -0,0 +1,509 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/activities/explore_world_animals/explore_world_animals.svg b/src/activities/explore_world_animals/explore_world_animals.svg old mode 100644 new mode 100755 index 0653138b3..b514322c1 --- a/src/activities/explore_world_animals/explore_world_animals.svg +++ b/src/activities/explore_world_animals/explore_world_animals.svg @@ -1,783 +1,296 @@ - + sodipodi:docname="explore-animals.svg" + inkscape:export-filename="/home/ilya/explore_animals/explore-animals.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id="metadata7"> image/svg+xml + + inkscape:label="Layer 1"> + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="g9627" + transform="translate(-81.160795,31.369661)"> - - - - - - - - - - + inkscape:corner7="0.82733608 : -0.1848331 : 0.72267926 : 1" + inkscape:corner0="1.4720641 : -0.13214974 : 0 : 1" + inkscape:perspectiveID="#perspective4717-7-7-9-9" + style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="g4183" + sodipodi:type="inkscape:box3d"> - - - - - - - - - + id="g5146" + transform="matrix(1.3874313,0,0,1.3874313,-63.360997,-435.93901)" + style="stroke-width:0.48708653"> + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#595d03;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.84074903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 85.634766,1026.6992 -0.03516,0.016 -0.0332,0.022 c -0.181563,0.1197 -0.238733,0.2637 -0.267578,0.3125 l -0.0039,0.01 -0.0059,0.01 c -0.08696,0.1624 -0.102424,0.3023 -0.11914,0.4102 -0.01672,0.1078 -0.03197,0.1888 -0.03711,0.2031 l 0,0 c -0.03958,0.1114 -0.146256,0.2603 -0.177734,0.5352 l 0,0 0,0 c 0.005,-0.053 -0.0014,-0.023 -0.02344,-0.016 l -0.0059,0 c 0.01992,0 0.04312,0 0.01367,-0.01 -0.03705,-0.011 -0.113749,-0.046 -0.230469,-0.082 l -0.0098,0 -0.0098,0 c -3.73e-4,-10e-5 -0.0537,-0.024 -0.162109,-0.031 -0.108409,-0.01 -0.345529,0.055 -0.455078,0.2207 l -0.0098,0.016 -0.0098,0.018 c -0.05982,0.1129 -0.04237,0.1554 -0.04297,0.2207 -0.01554,0.01 -0.0099,0.01 -0.03125,0.018 -0.07977,0.042 -0.207216,0.1136 -0.3125,0.2539 -3.75e-4,5e-4 3.73e-4,0 0,0 -0.0011,0 -0.0028,4e-4 -0.0039,0 -0.153984,0.2053 -0.261183,0.4066 -0.365234,0.5742 -0.142802,0.2278 -0.249211,0.4123 -0.367187,0.5196 l -0.0098,0.01 -0.0078,0.01 c -0.08724,0.089 -0.346017,0.2322 -0.476562,0.5879 l -0.0039,0.01 -0.0039,0.012 c -0.07025,0.2263 -0.085,0.4665 -0.04297,0.7011 l 0,0 c 0.04385,0.2342 0.180794,0.3034 0.261718,0.3496 0.08092,0.046 0.146771,0.068 0.232422,0.082 l 0.0332,0 0.0332,0 c 0.112547,0 0.223511,-0.035 0.257813,-0.047 0.0343,-0.012 -0.0085,-2e-4 -0.01563,0 0.05672,0 0.204358,0.032 0.416016,-0.041 0.270082,-0.091 0.503223,-0.1758 0.708984,-0.2032 l 0.002,0 c 0.07712,-0.011 0.136313,-0.01 0.248047,0 0.108389,0.01 0.268502,0.01 0.445312,-0.033 7.3e-4,-10e-5 0.0012,0 0.002,0 0.224294,-0.049 0.483635,-0.1193 0.722656,-0.336 0.02125,-0.017 -0.0037,-0.01 0.0039,-0.014 0.0538,0.055 0.08834,0.1164 0.158203,0.2871 l 0.0039,0.01 0.0039,0.01 c 0.593574,1.288 1.249926,2.5953 2.001953,3.8183 0.540307,0.8837 1.222299,1.6038 1.873047,2.3242 l 0,0 c 0.49392,0.542 0.981501,1.0833 1.490234,1.623 0.16383,0.1821 0.299494,0.3034 0.378906,0.4121 -0.02347,-0.038 0.0077,0.099 -0.01758,0.2676 -0.02657,0.1777 -0.07566,0.3695 -0.105468,0.5195 l -0.002,0.01 -0.002,0.012 c -0.02172,0.1534 -0.120467,0.4392 -0.205078,0.6485 -0.148864,0.3616 -0.100013,0.6782 -0.07422,0.9472 0.02515,0.2872 0.104839,0.5128 0.185547,0.6914 0.07855,0.1739 0.148092,0.3057 0.212891,0.4864 0.07906,0.3129 0.136719,0.6361 0.136719,0.9297 l 0,0 0,0 c -2.08e-4,-0.012 -0.02253,0.1394 -0.0625,0.2774 -0.03997,0.138 -0.08825,0.2783 -0.121094,0.3964 -0.171166,0.5805 -0.302245,1.1312 -0.505859,1.5215 l -0.01172,0.021 -0.0098,0.024 c -0.157359,0.4138 -0.224533,0.6672 -0.412109,0.9921 l -0.0059,0.01 -0.0039,0.01 c -0.07896,0.1518 -0.196881,0.3288 -0.277344,0.582 l 0,0 c -0.110641,0.3521 -0.04915,0.6249 -0.06445,0.7226 l -0.002,0.01 0,0 c -0.06591,0.4991 -0.137578,0.9232 -0.214844,1.4336 -0.104835,0.6425 -0.272487,1.3576 -0.396484,2.0332 l 0,0 c -0.0454,0.2579 -0.09213,0.4856 -0.171875,0.6895 l -0.0039,0.01 -0.002,0.01 c -0.08862,0.2488 -0.07109,0.3747 -0.08984,0.4258 l 0.002,0 c -0.01762,0.047 -0.04915,0.1147 -0.08203,0.2031 -0.05712,0.154 -0.05969,0.2546 -0.06445,0.2734 0.01535,-0.061 -0.115389,0.1571 -0.107422,0.1504 l -0.002,0 c -0.156354,0.1315 -0.286879,0.2395 -0.447266,0.4121 l -0.002,0 c -0.05835,0.063 -0.12049,0.104 -0.242188,0.1894 -0.1046,0.071 -0.184617,0.2097 -0.203125,0.3086 -0.01851,0.099 -0.0046,0.1586 0,0.1875 0.01934,0.1231 0.150074,0.2966 0.261719,0.3477 0.111645,0.051 0.163214,0.043 0.166016,0.043 l 0.02344,0 0.06836,0 c 0.324798,0.018 0.515411,-0.05 0.699218,-0.064 0.107618,0 0.31118,0.014 0.53711,-0.1114 l -0.01563,0.01 c -0.01047,0.01 0.06394,0 0.261719,0 l 0.06055,0 0.01758,0 c 0.06175,-0.01 0.125044,-0.011 0.214844,-0.045 0.0898,-0.034 0.224147,-0.1319 0.28125,-0.2676 0.114206,-0.2713 0.01378,-0.3752 -0.01758,-0.4667 l -0.002,-0.01 -0.002,-0.01 c -0.0294,-0.076 -0.03577,-0.081 -0.02539,-0.051 -0.02238,-0.064 -0.0022,-0.051 0.002,0.047 -0.0043,-0.094 -0.03474,-0.3145 -0.15039,-0.4668 0.0568,0.075 0.02982,0.092 0.03906,0.049 0.0092,-0.043 0.04592,-0.1182 0.05078,-0.125 0.06917,-0.097 0.260504,-0.2637 0.320312,-0.584 0.168069,-0.9005 0.338713,-1.7743 0.501953,-2.6816 0.03948,-0.2095 0.09942,-0.5093 0.150391,-0.6778 l 0,0 c 0.09436,-0.3055 0.174558,-0.5569 0.292968,-0.8242 l 0,0 c 0.0072,-0.017 0.03032,-0.049 0.08398,-0.1191 0.05366,-0.07 0.1382,-0.1796 0.189453,-0.3399 l 0.002,0 0.002,0 c 0.06864,-0.2288 0.154004,-0.4896 0.240235,-0.666 0.269726,-0.5264 0.511886,-1.0314 0.777343,-1.5371 0.104276,0.2527 0.224115,0.5201 0.294922,0.7695 0.07951,0.3169 0.176486,0.7496 0.212891,1.0449 l 0,0.01 0.002,0 c 0.03075,0.2064 0.04439,0.3809 0.06445,0.6055 0.01395,0.1592 0.05609,0.2761 0.09961,0.3808 l 0.002,0 0.002,0 c 0.03631,0.084 0.02855,0.2688 0.06836,0.5606 l -0.002,-0.01 c 0.11564,0.9448 0.206259,1.8386 0.300781,2.791 0.01919,0.2626 0.0284,0.593 -0.0059,0.7793 l -0.002,0.01 0,0.01 c -0.02906,0.2069 -0.03711,0.4902 -0.03711,0.4902 -0.01204,0.1717 0.0068,0.2413 0,0.2949 -0.0078,0.052 -0.100475,0.2845 -0.05273,0.2149 l -0.002,0 c -0.04001,0.059 -0.09479,0.1222 -0.126953,0.1484 -0.125451,0.1022 -0.144031,0.1349 -0.228516,0.2188 -0.06345,0.062 -0.147732,0.1375 -0.152344,0.1406 l -0.04102,0.027 -0.0332,0.035 c 0.04398,-0.047 0.04758,-0.069 -0.04102,0.045 -0.0443,0.057 -0.10087,0.188 -0.08984,0.3067 0.01103,0.1186 0.06027,0.1895 0.0918,0.2304 0.01489,0.019 0.0448,0.066 0.115235,0.125 0.07043,0.059 0.210239,0.1333 0.363281,0.125 l -0.02148,0 c 0.03057,0 0.137685,0.034 0.335938,0.035 l 0.002,0 0.002,0 c 0.27116,0 0.49493,-0.034 0.753906,-0.1055 0.20684,-0.056 0.384823,-0.1216 0.582032,-0.2422 l 0,0 c 0.05486,-0.034 0.132178,-0.061 0.228515,-0.2032 0.04817,-0.071 0.10145,-0.199 0.08203,-0.3398 -0.01927,-0.1398 -0.100686,-0.2464 -0.169921,-0.3066 0.03226,0.028 0.07091,0.1048 0.07422,0.1171 -0.02404,-0.089 -0.04864,-0.1654 -0.06836,-0.2324 -0.02511,-0.085 -0.02755,-0.345 -0.02734,-0.3457 0.06436,-0.2091 0.0651,-0.3575 0.08203,-0.4922 0.0225,-0.1787 0.04122,-0.3704 0.06445,-0.5214 l 0,0 c 0.02368,-0.1545 0.08346,-0.3779 0.002,-0.6563 -0.07948,-0.2813 -0.184262,-0.3995 -0.183594,-0.3964 l 0,0 c -0.04329,-0.1936 -0.0688,-0.4674 -0.113281,-0.7324 l 0,0 c -6e-4,0 -0.0013,-0.01 -0.002,-0.01 -0.08493,-0.6225 -0.176382,-1.2487 -0.22461,-1.8535 -0.02283,-0.2802 0.01305,-0.5922 0.0332,-0.9434 l 0,0 c 0.015,-0.2445 0.03914,-0.5478 -0.0039,-0.8555 l 0,0 0,0 c -0.09831,-0.6356 -0.240483,-1.171 -0.353515,-1.7598 -0.05545,-0.3266 -0.118477,-0.6382 -0.177735,-0.9492 0.109685,-0.033 0.200977,-0.067 0.347656,-0.08 0.129811,0.013 0.280644,0.049 0.46875,0.088 0.412253,0.086 0.879036,0.1908 1.390625,0.1328 l 0.0059,0 0.0078,0 c 0.452075,-0.065 0.791862,-0.257 1.105469,-0.3984 -5.79e-4,0.1474 -0.01852,0.273 0.05273,0.5176 l 0,0 c 0.129984,0.4412 0.312195,0.8221 0.4375,1.1856 l 0,0 c 0.110076,0.318 0.233476,0.6094 0.326172,0.8907 0.155425,0.4866 0.242296,1.0069 0.304688,1.541 0.06098,0.5948 0.101493,1.1709 0.02539,1.7109 l 0,0.01 0,0.01 c -0.07442,0.6486 -0.188183,1.2764 -0.310547,1.9336 -0.05543,0.2889 -0.129436,0.5769 -0.236328,0.75 l 0.0078,-0.012 c -0.06498,0.098 -0.103765,0.1892 -0.134766,0.2637 l -0.002,0 c -0.04206,0.1024 -0.04414,0.1011 -0.02148,0.074 -0.122743,0.1442 -0.194917,0.2329 -0.228516,0.2539 l -0.002,0 0,0 c -0.08038,0.051 -0.239958,0.1434 -0.333984,0.3555 l -0.002,0 c -0.06195,0.1424 -0.05739,0.1507 -0.109376,0.2149 -0.02788,0.034 -0.05818,0.068 -0.08984,0.1035 l -0.002,0 -0.002,0 c -0.03683,0.043 -0.08306,0.1074 -0.109374,0.207 -0.02601,0.098 -0.01489,0.2302 0.0293,0.3262 0.05904,0.1266 0.242759,0.2488 0.355469,0.2636 0.08711,0.012 0.105695,9e-4 0.123047,0 0.05112,0 0.128775,-0.01 0.06055,-0.01 l 0.0293,0 0.0293,0 c 0.105305,-0.015 0.177551,-0.024 0.220703,-0.024 0.311804,0.018 0.526554,-0.046 0.722656,-0.066 l 0.0039,0 0.002,0 c 0.125476,-0.015 0.354405,-0.1019 0.470703,-0.2109 0.138353,-0.1315 0.156883,-0.306 0.152353,-0.3887 l 0,0 c -0.002,-0.04 0.002,-0.1148 -0.0137,-0.2246 l 0,0 c -0.0176,-0.1247 0.007,-0.1768 -0.0176,-0.1367 0.0185,-0.03 0.0531,-0.066 0.0918,-0.1075 0.0335,-0.011 0.0742,-4e-4 0.19727,-0.1386 l 0.004,0 0.004,0 c 0.083,-0.098 0.0879,-0.1479 0.10156,-0.1895 0.0136,-0.042 0.0213,-0.074 0.0273,-0.098 0.006,-0.024 0.0108,-0.038 0.01,-0.035 -8.2e-4,0 -0.0175,0.038 -0.0586,0.088 0.10523,-0.1203 0.18337,-0.3239 0.20312,-0.4336 1.3e-4,-6e-4 0.002,0 0.002,0 0.0351,-0.1754 0.089,-0.3543 0.0957,-0.6074 l 0,0 c 0.008,-0.3783 -0.0349,-0.6967 -0.0234,-0.9864 l 0,0 c 1.2e-4,0 -1.3e-4,-0.01 0,-0.01 0.0483,-0.635 0.0156,-1.3242 0.10742,-1.834 l 0,0 c 0.0102,-0.055 0.0448,-0.1149 0.0586,-0.1679 0.10445,0.4539 0.16994,0.8609 0.25976,1.3632 0.12495,0.7972 0.15444,1.2808 0.25391,2.1094 l 0.004,0.024 0.006,0.023 c -0.0142,-0.06 0.007,0.1152 0.004,0.2461 -0.003,0.1309 -0.0156,0.2822 -0.0176,0.2969 l -0.01,0.07 c -0.0202,0.083 -0.0501,0.1798 -0.0566,0.3457 -0.0999,0.2035 -0.13052,0.3718 -0.16602,0.4609 l 0,0 c -0.0665,0.1689 -0.0206,0.3228 -0.01,0.3613 l -0.004,-0.016 c -0.009,-0.037 -0.008,-0.024 0.004,0.029 0.009,0.043 0.0584,0.1341 0.125,0.2148 0.0519,0.057 0.11409,0.117 0.17187,0.1387 0.0394,0.015 0.0321,0.01 0.0469,0.012 0.0502,0.018 0.18359,0.1069 0.44336,0.033 0.13431,-0.038 0.33889,-0.098 0.53711,-0.2402 -0.0111,0 -0.0631,0.037 -0.043,0.029 0.19664,-0.056 0.32179,-0.1413 0.36914,-0.1621 l 0.0117,-0.01 0.0117,-0.01 c 0.0769,-0.04 0.12104,-0.081 0.14454,-0.1 0.0597,-0.048 0.14977,-0.145 0.18164,-0.2754 0.032,-0.131 0.003,-0.2355 -0.0176,-0.2968 l 0,0 c -0.0213,-0.064 -0.024,-0.077 -0.0215,-0.057 l 0,0 c -0.024,-0.192 -0.18878,-0.4163 -0.37695,-0.4902 l 0.008,0 c 0.0595,0.025 0.17599,0.1783 0.18555,0.2344 -0.008,-0.051 -0.0204,-0.1256 -0.0566,-0.2188 0.003,-0.015 0.0146,-0.054 0.0137,-0.051 l 0.004,-0.016 0.004,-0.014 c -0.0147,0.063 0.22946,-0.4421 0.0625,-0.957 l -0.002,0 0,0 c -0.0776,-0.2299 -0.12179,-0.4924 -0.16406,-0.7754 -0.0864,-0.5737 -0.15514,-1.1862 -0.23828,-1.7793 -0.0506,-0.4069 -0.0723,-0.825 -0.0996,-1.2578 l -0.002,-0.01 0,-0.01 c -0.0177,-0.1721 -0.0224,-0.3222 -0.0254,-0.4668 0.1125,0.1899 0.19741,0.4214 0.31836,0.5664 l 0.01,0.012 0.01,0.012 c 0.047,0.049 0.16873,0.2711 0.48829,0.3574 l 0.54882,0.1484 -0.0195,-0.5683 c -0.003,-0.078 -0.0327,-0.1505 -0.0566,-0.2246 l 0.29688,0.1855 -0.23242,-0.9922 c -0.0467,-0.1994 -0.12984,-0.3477 -0.20508,-0.4961 -0.0752,-0.1483 -0.14411,-0.2941 -0.1543,-0.3281 l -0.004,-0.012 -0.004,-0.01 c -0.1667,-0.4648 -0.1584,-1.0598 -0.33789,-1.709 -0.0597,-0.2352 -0.19153,-0.3764 -0.25977,-0.4629 -0.0673,-0.085 -0.0691,-0.1045 -0.0684,-0.098 -0.0191,-0.2136 0.007,-0.4717 0.0117,-0.7715 l 0,-0.019 c 0.0231,-0.4283 -0.0139,-0.8157 0.002,-1.1602 l 0,0 0,0 c 0.0179,-0.4504 0.0148,-0.9666 -0.20507,-1.4687 l 0,0 c -0.2164,-0.4983 -0.59909,-0.8312 -0.92774,-1.1074 -0.19007,-0.1639 -0.33982,-0.2817 -0.4082,-0.3867 l -0.002,0 -0.002,0 c -0.0822,-0.1209 -0.1609,-0.3913 -0.42187,-0.6523 -0.22425,-0.2346 -0.48106,-0.3017 -0.62891,-0.3594 l -0.004,0 -0.006,0 c -0.595396,-0.2173 -1.187849,-0.3837 -1.753916,-0.5762 l -0.002,0 c -0.239607,-0.082 -0.432846,-0.1519 -0.55664,-0.2441 l -0.002,0 -0.0039,0 c -0.315482,-0.2266 -0.603555,-0.5131 -0.878906,-0.8262 l -0.0098,-0.014 -0.01172,-0.01 c -0.425207,-0.4148 -0.770269,-0.6085 -1.109375,-0.9511 l -0.0039,0 c -0.05362,-0.055 -0.08448,-0.076 -0.115234,-0.1016 -0.0096,-0.075 -0.008,-0.1376 -0.04297,-0.2383 l -0.02539,-0.074 -0.05078,-0.059 c -0.106685,-0.1265 -0.20945,-0.1504 -0.277343,-0.168 -0.06789,-0.017 -0.116465,-0.022 -0.158204,-0.025 -0.08348,-0.01 -0.175356,-0.039 -0.05859,0 l -0.01367,0 -0.01563,-0.01 c -0.213969,-0.061 -0.513579,-0.1588 -0.71875,-0.2383 l -0.01172,0 -0.0098,0 c -0.970026,-0.3173 -1.681945,-0.5309 -2.375,-1.0664 l -0.01758,-0.014 -0.01953,-0.012 c -0.4153,-0.2534 -0.926195,-0.6548 -1.253906,-0.998 l -0.002,0 c -0.74091,-0.7851 -1.374301,-1.7268 -2.076172,-2.6309 l -0.0039,0 -0.002,0 c -0.474302,-0.5837 -0.817703,-1.2479 -1.300782,-1.9375 -0.0602,-0.091 -0.143845,-0.3779 -0.474609,-0.5664 -0.149589,-0.085 -0.279939,-0.085 -0.386719,-0.088 0.0083,-0.1458 0.01816,-0.2776 0.01953,-0.4785 l 0,-0.029 -0.0039,-0.027 c -0.0064,-0.049 0.03681,-0.2644 -0.134765,-0.5196 l -0.0059,-0.01 -0.0059,-0.01 c -0.02707,-0.036 -0.0685,-0.099 -0.166016,-0.166 -0.09752,-0.067 -0.314554,-0.1293 -0.492187,-0.055 z" + id="path4526" + inkscape:connector-curvature="0" /> + d="m 103.32133,1048.8107 c -0.14621,-0.3126 -0.19711,-0.273 -0.27993,-0.6105 -0.0204,-0.4145 -0.002,-0.053 -0.0204,-0.4145 0.36097,0.2258 0,0 0.36097,0.2258 -0.0512,-0.2188 -0.28913,-0.5849 -0.35354,-0.7999 -0.20193,-0.5631 -0.18917,-1.1732 -0.34892,-1.7458 -0.0588,-0.238 -0.31439,-0.3723 -0.34123,-0.6218 -0.0256,-0.2793 0.009,-0.5591 0.0118,-0.8384 0.023,-0.3919 -0.0172,-0.784 7.9e-4,-1.1758 0.0172,-0.4328 0.007,-0.8831 -0.16972,-1.2857 -0.16946,-0.3911 -0.49205,-0.6851 -0.81207,-0.9541 -0.17278,-0.1492 -0.36425,-0.2851 -0.49051,-0.479 -0.13214,-0.1944 -0.20371,-0.4296 -0.37422,-0.597 -0.12805,-0.1362 -0.31209,-0.193 -0.48155,-0.2592 -0.576142,-0.2103 -1.167115,-0.3768 -1.747856,-0.5744 -0.232606,-0.08 -0.472881,-0.1548 -0.672507,-0.3036 -0.353504,-0.2539 -0.662021,-0.565 -0.948572,-0.8909 -0.388268,-0.3788 -0.738208,-0.5746 -1.119058,-0.9607 -0.0394,-0.041 -0.173522,-0.1429 -0.20269,-0.1913 -0.0088,-0.088 -0.02345,-0.2184 -0.0536,-0.3053 -0.05061,-0.06 -0.246654,-0.039 -0.317475,-0.065 -0.229536,-0.065 -0.533177,-0.1653 -0.756078,-0.2517 -0.963891,-0.3153 -1.739997,-0.5446 -2.500666,-1.1324 -0.451413,-0.2754 -0.977638,-0.6881 -1.340605,-1.0688 -0.773982,-0.8197 -1.41437,-1.7735 -2.10475,-2.6628 -0.511212,-0.6292 -0.858054,-1.3078 -1.323772,-1.9709 -0.100141,-0.1516 -0.167425,-0.3387 -0.333311,-0.4332 -0.154131,-0.088 -0.337403,-0.024 -0.50254,-0.059 -0.05897,-0.012 -0.103556,-0.066 -0.104557,-0.1266 -0.0164,-0.2586 0.02673,-0.4929 0.02849,-0.7502 -0.01507,-0.1166 -0.0024,-0.2402 -0.06763,-0.3372 -0.03576,-0.048 -0.09156,-0.1119 -0.157962,-0.084 -0.06372,0.042 -0.09993,0.1119 -0.137256,0.1751 -0.08231,0.1537 -0.07326,0.3925 -0.132304,0.5564 -0.05931,0.1669 -0.134857,0.2683 -0.154758,0.4421 -0.01563,0.1672 -0.160779,0.2963 -0.31337,0.3454 -0.163595,0.057 -0.321304,-0.042 -0.473906,-0.089 -0.0514,-0.013 -0.125749,-0.042 -0.162055,0.013 -0.04929,0.093 0.01563,0.2177 -0.05854,0.3003 -0.113236,0.094 -0.273775,0.1233 -0.364509,0.2466 -0.130371,0.173 -0.233386,0.3643 -0.347373,0.548 -0.132909,0.212 -0.254341,0.437 -0.441696,0.6074 -0.135474,0.1376 -0.312609,0.25 -0.381874,0.4387 -0.05007,0.1613 -0.06129,0.3358 -0.03148,0.5022 0.0088,0.047 0.09014,0.084 0.146376,0.093 0.105099,0 0.129731,-0.045 0.234528,-0.047 0.0953,0 0.194003,0.014 0.286531,-0.018 0.259445,-0.087 0.517856,-0.1874 0.79085,-0.2237 0.255354,-0.035 0.406611,0.039 0.660435,-0.026 0.174072,-0.038 0.410807,-0.1251 0.537338,-0.2417 0.068,-0.059 0.139053,-0.1298 0.233112,-0.143 0.09233,0 0.244485,0.041 0.312736,0.1001 0.147243,0.1305 0.20794,0.2877 0.283081,0.4713 0.589444,1.2791 1.239807,2.5719 1.979025,3.7741 0.51097,0.8361 1.171431,1.5379 1.826299,2.2629 0.495123,0.5433 0.981085,1.0835 1.485396,1.6185 0.14851,0.1663 0.325104,0.3097 0.44883,0.4967 0.123214,0.2441 -0.03652,0.8196 -0.0867,1.0722 -0.03323,0.2347 -0.145185,0.5299 -0.232869,0.7468 -0.109173,0.2626 -0.07157,0.461 -0.04396,0.749 0.04093,0.479 0.22745,0.6468 0.383883,1.0947 0.08694,0.3394 0.152348,0.7009 0.152348,1.0527 0.0033,0.1971 -0.146019,0.6046 -0.198374,0.7929 -0.167161,0.5661 -0.298082,1.1399 -0.539546,1.6028 -0.150545,0.3959 -0.229478,0.685 -0.442145,1.0534 -0.09046,0.1739 -0.189179,0.3259 -0.24899,0.5141 -0.06415,0.2042 -0.01879,0.4551 -0.05134,0.6629 -0.06701,0.5075 -0.13882,0.9341 -0.215501,1.4406 -0.108172,0.6649 -0.276442,1.3827 -0.398109,2.0456 -0.04655,0.2644 -0.09828,0.5215 -0.195419,0.7699 -0.05293,0.1486 -0.03568,0.2786 -0.09114,0.4295 -0.0252,0.068 -0.05601,0.1349 -0.08144,0.2033 -0.02707,0.073 -0.03291,0.1578 -0.05139,0.231 -0.02905,0.1154 -0.153172,0.2921 -0.245098,0.3691 -0.158479,0.1333 -0.267954,0.2227 -0.410739,0.3764 -0.09872,0.1072 -0.19573,0.1689 -0.317277,0.2544 -0.02971,0.02 -0.02773,0.052 -0.02312,0.081 0.0055,0.035 0.03301,0.036 0.05986,0.039 l 0.06757,0 c 0.251876,0.014 0.425765,-0.052 0.677388,-0.066 0.107618,0 0.229121,0 0.331421,-0.057 0.141139,-0.071 0.296829,-0.042 0.450301,-0.045 l 0.04513,0 c 0.172895,-0.014 0.170966,-0.06 0.115143,-0.223 -0.0077,-0.02 -0.02048,-0.039 -0.02851,-0.061 -0.0088,-0.025 -0.02135,-0.049 -0.02244,-0.075 -0.0044,-0.097 -0.0058,-0.1528 -0.06441,-0.23 -0.11539,-0.1518 -0.01289,-0.4424 0.08221,-0.5754 0.104651,-0.1463 0.215083,-0.2334 0.249494,-0.4177 0.16845,-0.9026 0.338077,-1.7744 0.500638,-2.6779 0.04017,-0.2134 0.100424,-0.5198 0.163538,-0.7277 0.09485,-0.3071 0.179512,-0.5782 0.30962,-0.8719 0.06999,-0.1613 0.204896,-0.2522 0.258556,-0.42 0.07054,-0.2351 0.159328,-0.5109 0.266426,-0.73 0.279894,-0.5459 0.532489,-1.0795 0.819778,-1.6218 0.116297,-0.2243 0.28415,-0.416 0.393306,-0.644 0.03555,-0.038 0.05061,0.032 0.06206,0.055 0.194785,0.5181 0.432288,0.991 0.582072,1.5228 0.08177,0.3255 0.181491,0.7648 0.222637,1.0986 0.03301,0.2216 0.04809,0.4061 0.068,0.6289 0.0067,0.08 0.03888,0.1832 0.06947,0.2568 0.09156,0.2114 0.06851,0.4457 0.09923,0.6709 0.116309,0.9503 0.207346,1.849 0.301921,2.8019 0.02024,0.2717 0.03913,0.6248 -0.01072,0.8959 -0.02189,0.1559 -0.03399,0.4503 -0.03399,0.4503 -0.01178,0.1319 0.01496,0.1981 -0.0016,0.3288 -0.01377,0.106 -0.06246,0.3106 -0.124077,0.4005 -0.05734,0.084 -0.131258,0.1725 -0.210092,0.2368 -0.11048,0.09 -0.09739,0.092 -0.196964,0.1908 -0.05744,0.056 -0.143738,0.1437 -0.214749,0.1916 -0.01304,0.014 -0.03059,0.018 -0.01519,0.038 0.03268,0.042 0.06889,0.09 0.124548,0.087 0.115496,0 0.223956,0.035 0.339836,0.036 0.243019,0 0.406189,-0.025 0.644838,-0.091 0.192658,-0.052 0.300719,-0.092 0.471347,-0.1963 0.08264,-0.051 0.158374,-0.1107 0.08354,-0.1752 -0.02982,-0.026 -0.04424,-0.054 -0.05392,-0.09 -0.02024,-0.075 -0.04445,-0.1492 -0.06647,-0.224 -0.04677,-0.1588 -0.07704,-0.4219 -0.02619,-0.5872 0.04776,-0.1552 0.0462,-0.2613 0.06634,-0.4214 0.02135,-0.1696 0.04027,-0.365 0.06625,-0.5339 0.02939,-0.1917 0.07027,-0.2884 0.0146,-0.4768 -0.04137,-0.1491 -0.157884,-0.2724 -0.19061,-0.4243 -0.0537,-0.2401 -0.0777,-0.5243 -0.119128,-0.7667 -0.08506,-0.6241 -0.178672,-1.2612 -0.228765,-1.8894 -0.0274,-0.3362 0.01261,-0.6695 0.03175,-1.0041 0.01507,-0.2461 0.03367,-0.5302 -3.36e-4,-0.7733 -0.0943,-0.6097 -0.23435,-1.1377 -0.350637,-1.7435 -0.07308,-0.4325 -0.169943,-0.8656 -0.243033,-1.298 0.199888,-0.1778 0.569062,-0.2201 0.824667,-0.2369 0.188644,0.014 0.371651,0.064 0.556212,0.1025 0.412301,0.086 0.834309,0.1741 1.257594,0.1261 0.401055,-0.058 0.758894,-0.2605 1.127739,-0.4157 0.08793,-0.033 0.178914,-0.071 0.274523,-0.07 0.08716,0.014 0.135736,0.095 0.152349,0.1725 0.04622,0.2411 -0.0011,0.4926 0.06823,0.7306 0.117593,0.3991 0.2965,0.776 0.431978,1.169 0.104557,0.302 0.228766,0.5966 0.328722,0.9007 0.167943,0.5258 0.257653,1.073 0.321557,1.62 0.06206,0.604 0.109574,1.2164 0.02469,1.8187 -0.07637,0.6656 -0.190893,1.3041 -0.313584,1.9631 -0.05701,0.2976 -0.130086,0.6321 -0.291617,0.8937 -0.04039,0.061 -0.07054,0.1276 -0.09816,0.194 -0.02752,0.067 -0.04225,0.1289 -0.08992,0.1853 -0.10113,0.1188 -0.191778,0.2552 -0.326806,0.3394 -0.06956,0.044 -0.139994,0.093 -0.174357,0.1705 -0.05612,0.129 -0.08075,0.204 -0.168351,0.3121 -0.03301,0.04 -0.06779,0.08 -0.102343,0.1188 -0.02147,0.025 -0.03224,0.052 -0.01805,0.082 0.01406,0.031 0.04369,0.024 0.06889,0.02 0.03004,0 0.05986,-0.014 0.0898,-0.014 0.101024,-0.014 0.202366,-0.031 0.303048,-0.027 0.236578,0.014 0.419718,-0.039 0.655097,-0.064 0.119057,-0.014 0.155588,-0.022 0.233335,-0.098 0.01727,-0.016 0.02091,-0.039 0.01959,-0.062 -0.0033,-0.064 -0.0011,-0.1275 -0.0099,-0.191 -0.01948,-0.1377 -0.03486,-0.2929 0.03735,-0.4128 0.04963,-0.081 0.108502,-0.1451 0.175117,-0.2142 0.03169,-0.033 0.132302,-0.062 0.161682,-0.095 0.0357,-0.042 0.0495,-0.1972 0.0872,-0.2359 0.0811,-0.086 0.084,-0.1166 0.10493,-0.2354 0.0392,-0.1984 0.0839,-0.3459 0.0892,-0.5449 0.007,-0.3418 -0.0372,-0.6697 -0.0219,-1.0108 0.0465,-0.5949 0.006,-1.3009 0.1127,-1.8908 0.0881,-0.4721 0.28235,-0.8412 0.43572,-1.2955 0.15132,0.2699 0.33962,0.6383 0.41298,0.9413 0.13547,0.5454 0.19917,0.9971 0.29808,1.5502 0.12856,0.818 0.1589,1.3119 0.25757,2.1339 0.0306,0.129 0.0118,0.5734 -0.005,0.6961 l 0.002,0 c -0.0219,0.1319 -0.0643,0.2494 -0.0677,0.3836 -0.001,0.058 -0.0133,0.1048 -0.0365,0.1504 -0.0715,0.1405 -0.0994,0.2966 -0.15724,0.4418 -0.0126,0.032 -0.005,0.062 0.004,0.094 0.006,0.025 0.004,0.057 0.0249,0.075 0.009,0.014 0.0203,0.014 0.0313,0.016 0.064,0.02 0.14593,0.05 0.21286,0.031 0.15479,-0.044 0.29647,-0.078 0.43024,-0.1849 0.0134,-0.014 0.033,-0.014 0.0504,-0.019 0.11835,-0.029 0.21672,-0.1025 0.32648,-0.1509 0.0271,-0.014 0.0506,-0.033 0.0741,-0.052 0.041,-0.033 0.0469,-0.062 0.0294,-0.1154 -0.0152,-0.046 -0.0345,-0.091 -0.0407,-0.139 -0.009,-0.074 -0.0471,-0.1247 -0.11281,-0.1505 -0.043,-0.018 -0.0619,-0.046 -0.0682,-0.087 -0.007,-0.043 -0.0161,-0.091 -0.0327,-0.1333 -0.016,-0.041 -0.0402,-0.08 -0.0435,-0.1246 -0.002,-0.036 0.008,-0.071 0.0195,-0.1024 0.0118,-0.034 0.017,-0.068 0.0274,-0.1013 0.0307,-0.1318 0.18681,-0.376 0.0717,-0.731 -0.0926,-0.2743 -0.13829,-0.561 -0.18097,-0.8467 -0.0884,-0.587 -0.15798,-1.203 -0.24052,-1.7907 -0.0531,-0.4269 -0.075,-0.8534 -0.1021,-1.283 -0.0238,-0.2307 -0.0639,-0.5278 -0.0327,-0.7568 0.0461,-0.3191 0.0126,-0.5648 -0.10244,-0.8726 -0.24487,-0.7014 -0.57446,-1.4848 -0.65191,-2.2348 -0.048,-0.647 0.11729,-1.2142 0.25665,-1.8391 0.082,-0.3389 0.0982,-0.6494 0.13989,-0.9917 0.1388,0.09 0.20753,0.2481 0.2827,0.3889 0.12884,0.2385 0.14595,0.5142 0.1784,0.778 0.0443,0.4238 0.0862,0.8488 0.0844,1.2753 0.006,0.2712 -0.22774,0.4916 -0.17817,0.768 0.0386,0.2685 0.27378,0.4409 0.3732,0.6822 0.0881,0.204 0.17484,0.4193 0.16664,0.646 -0.008,0.3551 -0.0546,0.7151 0.0126,1.0678 0.0754,0.3348 0.28833,0.6167 0.50405,0.8753 0.088,0.091 0.16565,0.2096 0.29524,0.2446 -0.002,-0.058 -0.0162,-0.1166 -0.0413,-0.1678 z" + id="path4245-9" /> - - - - - - - - + transform="translate(0,0.78820221)" + style="font-style:normal;font-weight:normal;font-size:5.8878665px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#595d03;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot5114"> - - - + d="m 95.362946,1041.0754 0,-0.266 q 0,-0.345 0.147341,-0.6001 0.14734,-0.2552 0.53905,-0.5427 0.377335,-0.2695 0.495926,-0.4384 0.122185,-0.1689 0.122185,-0.3773 0,-0.2336 -0.172496,-0.3558 -0.172496,-0.1222 -0.481552,-0.1222 -0.53905,0 -1.229034,0.3522 l -0.39171,-0.787 q 0.801388,-0.4492 1.699805,-0.4492 0.740296,0 1.17513,0.3558 0.438427,0.3557 0.438427,0.9487 0,0.3953 -0.179683,0.6828 -0.179684,0.2875 -0.682797,0.6468 -0.344992,0.2552 -0.438428,0.3882 -0.08984,0.1329 -0.08984,0.3485 l 0,0.2157 -0.952322,0 z m -0.114997,1.229 q 0,-0.3019 0.161715,-0.4564 0.161715,-0.1545 0.470771,-0.1545 0.298274,0 0.459989,0.1581 0.165309,0.1581 0.165309,0.4528 0,0.2839 -0.165309,0.4492 -0.165309,0.1617 -0.459989,0.1617 -0.301869,0 -0.467177,-0.1581 -0.165309,-0.1617 -0.165309,-0.4528 z" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.35983324px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans Bold';fill:#595d03;fill-opacity:1" + id="path4192" /> + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.84074903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 85.574216,1028.2656 c 2.6e-5,0 0.0019,0 0.002,0 3.55e-4,0.01 -4.08e-4,0.01 0,0.016 l -0.002,-0.02 z" + id="path4524" + inkscape:connector-curvature="0" /> + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.84074903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 99.820309,1053.0938 0,0 c -0.02192,0.1244 0.05429,-0.034 0.0039,0.019 l 0.0039,0 c -0.02734,0.028 -0.01785,0.035 -0.0332,0.057 0.0085,-0.026 0.01777,-0.05 0.02539,-0.076 z" + id="path4514" + inkscape:connector-curvature="0" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.84074903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 102.46484,1054.2018 c -0.0164,0.01 -0.0107,0.01 -0.0254,0.012 3e-4,-2e-4 0.002,0 0.002,0 l 0.0234,-0.01 z" + id="path4506" + inkscape:connector-curvature="0" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.84074903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 101.73828,1054.5104 c 0.007,0 -8.9e-4,0 0.008,0 0.003,0 0.006,0.01 0.01,0.01 -0.0205,0.01 -0.0181,0.01 -0.043,0.016 0.1222,-0.035 0.0923,-0.01 0.0254,-0.025 z" + id="path4245-9-8" + inkscape:connector-curvature="0" /> + + + + + transform="translate(0.53725699,-0.44771418)" + style="font-style:normal;font-weight:normal;font-size:6.7927804px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#4f3c37;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="flowRoot5114-8"> + + + + + + + + transform="translate(-53.549992,951.61977)" + style="font-style:normal;font-weight:normal;font-size:5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#046901;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="flowRoot5114-8-7"> + + diff --git a/src/activities/explore_world_music/explore_world_music.svg b/src/activities/explore_world_music/explore_world_music.svg old mode 100644 new mode 100755 index 59301aaee..74c175fda --- a/src/activities/explore_world_music/explore_world_music.svg +++ b/src/activities/explore_world_music/explore_world_music.svg @@ -1,68 +1,281 @@ - + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="explore-music.svg" + inkscape:export-filename="/home/ilya/explore_music/explore-music.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + units="px" + inkscape:window-width="1280" + inkscape:window-height="959" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml - + inkscape:label="Layer 1"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/activities/geo-country/ActivityInfo.qml b/src/activities/geo-country/ActivityInfo.qml index 8436a2287..2161d25f4 100644 --- a/src/activities/geo-country/ActivityInfo.qml +++ b/src/activities/geo-country/ActivityInfo.qml @@ -1,39 +1,39 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Pulkit Gupta * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import GCompris 1.0 ActivityInfo { name: "geo-country/GeoCountry.qml" difficulty: 2 - icon: "geo-country/france_region.svg" + icon: "geo-country/geo-country.svg" author: "Pulkit Gupta <pulkitgenius@gmail.com>" demo: true title: qsTr("Locate the region") description: qsTr("Drag and Drop the regions to redraw the whole country") // intro: "Slide the regions to redraw the whole country" goal: "" prerequisite: "" manual: "" credit: qsTr("The map of Germany comes from Wikipedia and is released under the GNU Free Documentation License. Olaf Ronneberger and his children Lina and Julia Ronneberger created the German level.") section: "discovery" createdInVersion: 4000 } diff --git a/src/activities/geo-country/GeoCountry.qml b/src/activities/geo-country/GeoCountry.qml index ddbbc261c..45894acd9 100644 --- a/src/activities/geo-country/GeoCountry.qml +++ b/src/activities/geo-country/GeoCountry.qml @@ -1,35 +1,35 @@ /* GCompris - GeoCountry.qml * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Jean-Philippe Ayanides (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.1 import "../babymatch" Babymatch { id: activity onStart: focus = true onStop: {} boardsUrl: "qrc:/gcompris/src/activities/geo-country/resource/" - levelCount: 15 + levelCount: 16 answerGlow: false } diff --git a/src/activities/geo-country/france_region.svg b/src/activities/geo-country/geo-country.svg similarity index 100% rename from src/activities/geo-country/france_region.svg rename to src/activities/geo-country/geo-country.svg diff --git a/src/activities/geo-country/resource/board/board16_0.qml b/src/activities/geo-country/resource/board/board16_0.qml new file mode 100644 index 000000000..449ee3845 --- /dev/null +++ b/src/activities/geo-country/resource/board/board16_0.qml @@ -0,0 +1,86 @@ +/* GCompris + * + * Copyright (C) 2016 Johnny Jazeix + * + * Authors: + * Johnny Jazeix + * Horia PELLE + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ +import QtQuick 2.0 + +QtObject { + property string instruction: qsTr("Provinces of Romania") + property variant levels: [ + { + "pixmapfile" : "romania/background.png", + "type" : "SHAPE_BACKGROUND_IMAGE" + }, + { + "pixmapfile" : "romania/oltenia.png", + "toolTipText" : "Oltenia", + "x" : "0.346", + "y" : "0.787" + }, + { + "pixmapfile" : "romania/muntenia.png", + "toolTipText" : "Muntenia", + "x" : "0.629", + "y" : "0.768" + }, + { + "pixmapfile" : "romania/dobrogea.png", + "toolTipText" : "Dobrogea", + "x" : "0.873", + "y" : "0.776" + }, + { + "pixmapfile" : "romania/moldova.png", + "toolTipText" : "Moldova", + "x" : "0.693", + "y" : "0.307" + }, + { + "pixmapfile" : "romania/bucovina.png", + "toolTipText" : "Bucovina", + "x" : "0.567", + "y" : "0.155" + }, + { + "pixmapfile" : "romania/transilvania.png", + "toolTipText" : "Transilvania", + "x" : "0.443", + "y" : "0.396" + }, + { + "pixmapfile" : "romania/maramures.png", + "toolTipText" : "Maramureș", + "x" : "0.386", + "y" : "0.111" + }, + { + "pixmapfile" : "romania/crisana.png", + "toolTipText" : "Crișana", + "x" : "0.193", + "y" : "0.290" + }, + { + "pixmapfile" : "romania/banat.png", + "toolTipText" : "Banat", + "x" : "0.128", + "y" : "0.617" + } + ] +} diff --git a/src/activities/geo-country/resource/france/auvergne-rhone-alpes.png b/src/activities/geo-country/resource/france/auvergne-rhone-alpes.png index 8946e4222..92a612525 100644 Binary files a/src/activities/geo-country/resource/france/auvergne-rhone-alpes.png and b/src/activities/geo-country/resource/france/auvergne-rhone-alpes.png differ diff --git a/src/activities/geo-country/resource/france/bourgogne-franche-comte.png b/src/activities/geo-country/resource/france/bourgogne-franche-comte.png index 403d4cebe..6acadd051 100644 Binary files a/src/activities/geo-country/resource/france/bourgogne-franche-comte.png and b/src/activities/geo-country/resource/france/bourgogne-franche-comte.png differ diff --git a/src/activities/geo-country/resource/france/bretagne.png b/src/activities/geo-country/resource/france/bretagne.png index 3d91eae22..feeb1c9d3 100644 Binary files a/src/activities/geo-country/resource/france/bretagne.png and b/src/activities/geo-country/resource/france/bretagne.png differ diff --git a/src/activities/geo-country/resource/france/centre-val-de-loire.png b/src/activities/geo-country/resource/france/centre-val-de-loire.png index e7f68eede..67a5bdcdb 100644 Binary files a/src/activities/geo-country/resource/france/centre-val-de-loire.png and b/src/activities/geo-country/resource/france/centre-val-de-loire.png differ diff --git a/src/activities/geo-country/resource/france/corse.png b/src/activities/geo-country/resource/france/corse.png index 603e3413d..362d0ece6 100644 Binary files a/src/activities/geo-country/resource/france/corse.png and b/src/activities/geo-country/resource/france/corse.png differ diff --git a/src/activities/geo-country/resource/france/france-regions.png b/src/activities/geo-country/resource/france/france-regions.png index 0a5fae4a9..df2298a17 100644 Binary files a/src/activities/geo-country/resource/france/france-regions.png and b/src/activities/geo-country/resource/france/france-regions.png differ diff --git a/src/activities/geo-country/resource/france/grand-est.png b/src/activities/geo-country/resource/france/grand-est.png index ef8f6de3e..191f23502 100644 Binary files a/src/activities/geo-country/resource/france/grand-est.png and b/src/activities/geo-country/resource/france/grand-est.png differ diff --git a/src/activities/geo-country/resource/france/haut-de-france.png b/src/activities/geo-country/resource/france/haut-de-france.png index 1b24f6e1a..d34d0da67 100644 Binary files a/src/activities/geo-country/resource/france/haut-de-france.png and b/src/activities/geo-country/resource/france/haut-de-france.png differ diff --git a/src/activities/geo-country/resource/france/ile-de-france.png b/src/activities/geo-country/resource/france/ile-de-france.png index cb43b53ef..0ae2832a7 100644 Binary files a/src/activities/geo-country/resource/france/ile-de-france.png and b/src/activities/geo-country/resource/france/ile-de-france.png differ diff --git a/src/activities/geo-country/resource/france/normandie.png b/src/activities/geo-country/resource/france/normandie.png index abfa29955..4170a1cab 100644 Binary files a/src/activities/geo-country/resource/france/normandie.png and b/src/activities/geo-country/resource/france/normandie.png differ diff --git a/src/activities/geo-country/resource/france/nouvelle-aquitaine.png b/src/activities/geo-country/resource/france/nouvelle-aquitaine.png index 9e7370c89..586872c66 100644 Binary files a/src/activities/geo-country/resource/france/nouvelle-aquitaine.png and b/src/activities/geo-country/resource/france/nouvelle-aquitaine.png differ diff --git a/src/activities/geo-country/resource/france/occitanie.png b/src/activities/geo-country/resource/france/occitanie.png index 5dbe38df8..67e9f03d7 100644 Binary files a/src/activities/geo-country/resource/france/occitanie.png and b/src/activities/geo-country/resource/france/occitanie.png differ diff --git a/src/activities/geo-country/resource/france/paca.png b/src/activities/geo-country/resource/france/paca.png index c16619335..aa2b5a68e 100644 Binary files a/src/activities/geo-country/resource/france/paca.png and b/src/activities/geo-country/resource/france/paca.png differ diff --git a/src/activities/geo-country/resource/france/pays-de-la-loire.png b/src/activities/geo-country/resource/france/pays-de-la-loire.png index ba74545bb..8a3ed9acb 100644 Binary files a/src/activities/geo-country/resource/france/pays-de-la-loire.png and b/src/activities/geo-country/resource/france/pays-de-la-loire.png differ diff --git a/src/activities/geo-country/resource/romania/background.png b/src/activities/geo-country/resource/romania/background.png new file mode 100644 index 000000000..443ed9e26 Binary files /dev/null and b/src/activities/geo-country/resource/romania/background.png differ diff --git a/src/activities/geo-country/resource/romania/banat.png b/src/activities/geo-country/resource/romania/banat.png new file mode 100644 index 000000000..771e1b34d Binary files /dev/null and b/src/activities/geo-country/resource/romania/banat.png differ diff --git a/src/activities/geo-country/resource/romania/bucovina.png b/src/activities/geo-country/resource/romania/bucovina.png new file mode 100644 index 000000000..95804742f Binary files /dev/null and b/src/activities/geo-country/resource/romania/bucovina.png differ diff --git a/src/activities/geo-country/resource/romania/crisana.png b/src/activities/geo-country/resource/romania/crisana.png new file mode 100644 index 000000000..0131eb22e Binary files /dev/null and b/src/activities/geo-country/resource/romania/crisana.png differ diff --git a/src/activities/geo-country/resource/romania/dobrogea.png b/src/activities/geo-country/resource/romania/dobrogea.png new file mode 100644 index 000000000..61d6db8e9 Binary files /dev/null and b/src/activities/geo-country/resource/romania/dobrogea.png differ diff --git a/src/activities/geo-country/resource/romania/maramures.png b/src/activities/geo-country/resource/romania/maramures.png new file mode 100644 index 000000000..1817af78c Binary files /dev/null and b/src/activities/geo-country/resource/romania/maramures.png differ diff --git a/src/activities/geo-country/resource/romania/moldova.png b/src/activities/geo-country/resource/romania/moldova.png new file mode 100644 index 000000000..cdbedcbf7 Binary files /dev/null and b/src/activities/geo-country/resource/romania/moldova.png differ diff --git a/src/activities/geo-country/resource/romania/muntenia.png b/src/activities/geo-country/resource/romania/muntenia.png new file mode 100644 index 000000000..de9a266ec Binary files /dev/null and b/src/activities/geo-country/resource/romania/muntenia.png differ diff --git a/src/activities/geo-country/resource/romania/oltenia.png b/src/activities/geo-country/resource/romania/oltenia.png new file mode 100644 index 000000000..500a155de Binary files /dev/null and b/src/activities/geo-country/resource/romania/oltenia.png differ diff --git a/src/activities/geo-country/resource/romania/transilvania.png b/src/activities/geo-country/resource/romania/transilvania.png new file mode 100644 index 000000000..045df7b99 Binary files /dev/null and b/src/activities/geo-country/resource/romania/transilvania.png differ diff --git a/src/activities/geography/ActivityInfo.qml b/src/activities/geography/ActivityInfo.qml index e5969afc4..f6e7860af 100644 --- a/src/activities/geography/ActivityInfo.qml +++ b/src/activities/geography/ActivityInfo.qml @@ -1,39 +1,39 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Pulkit Gupta * * Authors: * Pulkit Gupta * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import GCompris 1.0 ActivityInfo { name: "geography/Geography.qml" difficulty: 2 - icon: "geography/globe.svg" + icon: "geography/geography.svg" author: "Pulkit Gupta <pulkitgenius@gmail.com>" demo: true title: qsTr("Locate the countries") description: qsTr("Drag and Drop the items to redraw the whole map") // intro: "Slide the countries to redraw the whole map" goal: "" prerequisite: "" manual: "" credit: "" section: "discovery" createdInVersion: 4000 } diff --git a/src/activities/geography/globe.svg b/src/activities/geography/geography.svg similarity index 100% rename from src/activities/geography/globe.svg rename to src/activities/geography/geography.svg diff --git a/src/activities/geography/resource/board/board6_0.qml b/src/activities/geography/resource/board/board6_0.qml index 67f8559ef..60cfe23e0 100644 --- a/src/activities/geography/resource/board/board6_0.qml +++ b/src/activities/geography/resource/board/board6_0.qml @@ -1,196 +1,196 @@ /* GCompris * * Copyright (C) 2015 Bruno Coudoin * * Authors: * Bruno Coudoin (GTK+ version) * Pulkit Gupta (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.0 QtObject { property string instruction: qsTr("Eastern Europe") property variant levels: [ { "pixmapfile": "europe/europe.png", "type": "SHAPE_BACKGROUND_IMAGE" }, { "pixmapfile": "europe/cyprus.png", "soundFile": "voices-$CA/$LOCALE/geography/cyprus.$CA", "type": "SHAPE_BACKGROUND", "x": "0.859", "y": "0.965" }, { "pixmapfile": "europe/greece.png", "soundFile": "voices-$CA/$LOCALE/geography/greece.$CA", "toolTipText": qsTr("Greece"), - "x": "0.677", + "x": "0.692", "y": "0.878" }, { "pixmapfile": "europe/ukraine.png", "soundFile": "voices-$CA/$LOCALE/geography/ukraine.$CA", "toolTipText": qsTr("Ukraine"), "x": "0.781", "y": "0.603" }, { "pixmapfile": "europe/turkey.png", "soundFile": "voices-$CA/$LOCALE/geography/turkey.$CA", "toolTipText": qsTr("Turkey"), "x": "0.851", "y": "0.867" }, { "pixmapfile": "europe/slovenia.png", "soundFile": "voices-$CA/$LOCALE/geography/slovenia.$CA", "type": "SHAPE_BACKGROUND", "toolTipText": qsTr("Slovenia"), "x": "0.516", "y": "0.662" }, { "pixmapfile": "europe/slovakia.png", "soundFile": "voices-$CA/$LOCALE/geography/slovakia.$CA", "toolTipText": qsTr("Slovak Republic"), "x": "0.593", "y": "0.596" }, { "pixmapfile": "europe/montenegro.png", "soundFile": "voices-$CA/$LOCALE/geography/montenegro.$CA", "toolTipText": qsTr("Montenegro"), "type": "SHAPE_BACKGROUND", "x": "0.601", "y": "0.755" }, { "pixmapfile": "europe/serbia.png", "soundFile": "voices-$CA/$LOCALE/geography/serbia.$CA", "toolTipText": qsTr("Serbia"), "x": "0.623", "y": "0.723" }, { "pixmapfile": "europe/russia.png", "soundFile": "voices-$CA/$LOCALE/geography/russia.$CA", "toolTipText": qsTr("Russia"), "x": "0.788", "y": "0.373" }, { "pixmapfile": "europe/romania.png", "soundFile": "voices-$CA/$LOCALE/geography/romania.$CA", "toolTipText": qsTr("Romania"), "x": "0.688", "y": "0.669" }, { "pixmapfile": "europe/poland.png", "soundFile": "voices-$CA/$LOCALE/geography/poland.$CA", "toolTipText": qsTr("Poland"), "x": "0.574", "y": "0.507" }, { "pixmapfile": "europe/moldova.png", "soundFile": "voices-$CA/$LOCALE/geography/moldova.$CA", "toolTipText": qsTr("Moldova"), "x": "0.74", "y": "0.641" }, { "pixmapfile": "europe/macedonia.png", "soundFile": "voices-$CA/$LOCALE/geography/macedonia.$CA", "toolTipText": qsTr("Macedonia"), "type": "SHAPE_BACKGROUND", "x": "0.642", "y": "0.787" }, { "pixmapfile": "europe/lithuania.png", "soundFile": "voices-$CA/$LOCALE/geography/lithuania.$CA", "toolTipText": qsTr("Lithuania"), "x": "0.642", "y": "0.425" }, { "pixmapfile": "europe/latvia.png", "soundFile": "voices-$CA/$LOCALE/geography/latvia.$CA", "toolTipText": qsTr("Latvia"), "x": "0.651", "y": "0.381" }, { "pixmapfile": "europe/hungary.png", "soundFile": "voices-$CA/$LOCALE/geography/hungary.$CA", "toolTipText": qsTr("Hungary"), "x": "0.591", "y": "0.635" }, { "pixmapfile": "europe/estonia.png", "soundFile": "voices-$CA/$LOCALE/geography/estonia.$CA", "toolTipText": qsTr("Estonia"), "x": "0.647", "y": "0.334" }, { - "pixmapfile": "europe/czech.png", - "soundFile": "voices-$CA/$LOCALE/geography/czech.$CA", - "toolTipText": qsTr("Czech Republic"), + "pixmapfile": "europe/czechia.png", + "soundFile": "voices-$CA/$LOCALE/geography/czechia.$CA", + "toolTipText": qsTr("Czechia"), "x": "0.525", "y": "0.561" }, { "pixmapfile": "europe/croatia.png", "soundFile": "voices-$CA/$LOCALE/geography/croatia.$CA", "toolTipText": qsTr("Croatia"), "x": "0.546", "y": "0.705" }, { "pixmapfile": "europe/bulgaria.png", "soundFile": "voices-$CA/$LOCALE/geography/bulgaria.$CA", "toolTipText": qsTr("Bulgaria"), "x": "0.701", "y": "0.757" }, { "pixmapfile": "europe/bosnia_herzegovina.png", "soundFile": "voices-$CA/$LOCALE/geography/bosnia_herzegovina.$CA", "toolTipText": qsTr("Bosnia Herzegovina"), "x": "0.568", "y": "0.728" }, { "pixmapfile": "europe/belarus.png", "soundFile": "voices-$CA/$LOCALE/geography/belarus.$CA", "toolTipText": qsTr("Belarus"), "x": "0.714", "y": "0.463" }, { "pixmapfile": "europe/albania.png", "soundFile": "voices-$CA/$LOCALE/geography/albania.$CA", "toolTipText": qsTr("Albania"), "x": "0.616", "y": "0.805" } ] } diff --git a/src/activities/geography/resource/europe/czech.png b/src/activities/geography/resource/europe/czechia.png similarity index 100% rename from src/activities/geography/resource/europe/czech.png rename to src/activities/geography/resource/europe/czechia.png diff --git a/src/activities/geography/resource/europe/greece.png b/src/activities/geography/resource/europe/greece.png index 41a970cf0..edb8a934f 100644 Binary files a/src/activities/geography/resource/europe/greece.png and b/src/activities/geography/resource/europe/greece.png differ diff --git a/src/activities/geography/resource/europe/turkey.png b/src/activities/geography/resource/europe/turkey.png index 6d74cdcc6..43536dd91 100644 Binary files a/src/activities/geography/resource/europe/turkey.png and b/src/activities/geography/resource/europe/turkey.png differ diff --git a/src/activities/graph-coloring/graph-coloring.svg b/src/activities/graph-coloring/graph-coloring.svg index d42c64231..0faa68609 100644 --- a/src/activities/graph-coloring/graph-coloring.svg +++ b/src/activities/graph-coloring/graph-coloring.svg @@ -1,209 +1,211 @@ + inkscape:window-maximized="1" + units="px" /> image/svg+xml + transform="translate(0,-952.36223)"> + transform="matrix(0.27521673,0,0,0.27521673,7.546212,784.28598)"> + id="g8676" + transform="matrix(0.28571465,0,0,0.28571465,5.097731,773.67902)"> + transform="matrix(0.28571465,0,0,0.28571465,-24.666835,893.32285)"> + transform="matrix(0.25592094,0,0,0.25595543,-19.577234,909.76363)"> diff --git a/src/activities/hangman/resource/background.svg b/src/activities/hangman/resource/background.svg index 79acb2e37..c9a63ca77 100644 --- a/src/activities/hangman/resource/background.svg +++ b/src/activities/hangman/resource/background.svg @@ -1,1189 +1,1189 @@ + gradientTransform="matrix(0.38191228,0,0,0.3163348,214.72159,546.65812)" /> image/svg+xml diff --git a/src/activities/hanoi_real/HanoiReal.qml b/src/activities/hanoi_real/HanoiReal.qml index 78d17a2bb..e897be902 100644 --- a/src/activities/hanoi_real/HanoiReal.qml +++ b/src/activities/hanoi_real/HanoiReal.qml @@ -1,258 +1,259 @@ /* GCompris - hanoi_real.qml * * Copyright (C) 2015 Amit Tomar * * Authors: * Bruno Coudoin (GTK+ version) * Amit Tomar (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.1 import QtGraphicalEffects 1.0 import GCompris 1.0 import "../../core" import "hanoi_real.js" as Activity ActivityBase { id: activity onStart: focus = true onStop: {} property string activityMode: "real" pageComponent: Image { id: background source: Activity.url + "background.svg" sourceSize.width: Math.max(parent.width, parent.height) fillMode: Image.PreserveAspectCrop signal start signal stop Component.onCompleted: { activity.start.connect(start) activity.stop.connect(stop) } // Add here the QML items you need to access in javascript QtObject { id: items property Item main: activity.main property alias background: background property alias bar: bar property alias bonus: bonus property alias discRepeater: discRepeater property alias towerModel: towerModel + property bool hasWon: false property int numberOfDisc } onStart: { Activity.start(items, activityMode) } onStop : { Activity.stop() } onWidthChanged: Activity.sceneSizeChanged() onHeightChanged: Activity.sceneSizeChanged() Rectangle { id: instruction width: parent.width height: description.height + 5 * ApplicationInfo.ratio color: "#FFF" opacity: 0.7 anchors { bottom: bar.top bottomMargin: 15 * ApplicationInfo.ratio } visible: bar.level == 1 GCText { id: description text: activityMode == "real" ? qsTr("Move the entire stack to the right peg, one disc at a time.") : qsTr("Build the same tower in the empty area as the one you see on the right-hand side") width: parent.width fontSize: largeSize color: "black" wrapMode: Text.WordWrap anchors.centerIn: parent verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter } } Repeater { id: discRepeater Item { id: disc parent: towerModel.itemAt(0) z: 4 width: discImage.width height: discImage.height opacity: index < items.numberOfDisc ? 1 : 0 onHeightChanged: Activity.sceneSizeChanged() property alias color: colorEffect.color //radius: 10 property bool mouseEnabled : true property alias discMouseArea: discMouseArea property Item towerImage property int position // The position index on the tower property alias text: textSimplified.text onXChanged: Activity.performTowersHighlight(disc, x) anchors.horizontalCenter: if(parent) parent.horizontalCenter Image { id: discImage source: Activity.url + "disc.svg" sourceSize.width: Activity.getDiscWidth(index) height: activityMode == "real"? towerModel.itemAt(0).height * 0.15: towerModel.itemAt(0).height / (Activity.nbMaxItemsByTower+1) Behavior on y { NumberAnimation { id: bouncebehavior easing { type: Easing.OutElastic amplitude: 1.0 period: 0.75 } } } GCText { id: textSimplified visible: activityMode == "simplified" anchors.verticalCenter: parent.verticalCenter anchors.rightMargin: 4 anchors.right: parent.right } } MouseArea { id: discMouseArea - enabled: disc.mouseEnabled + enabled: disc.mouseEnabled && !items.hasWon anchors.centerIn: parent width: Activity.getDiscWidth(0) height: background.height drag.target: parent drag.axis: Drag.XandYAxis hoverEnabled: true onPressed: { disc.anchors.horizontalCenter = undefined // Need to higher the z tower for the disc to be above all other towers and disc disc.towerImage.z ++ disc.z ++ } onReleased: { // Restore previous z before releasing the disc disc.towerImage.z -- disc.z -- Activity.discReleased(index) disc.anchors.horizontalCenter = disc.parent.horizontalCenter } } ColorOverlay { id: colorEffect anchors.fill: discImage source: discImage } } } Grid { // do columns if mobile? rows: 1 columnSpacing: (background.width - towerModel.model * towerModel.itemAt(0).width) / (items.towerModel.model+1) anchors { bottom: instruction.top horizontalCenter: parent.horizontalCenter bottomMargin: 10 * ApplicationInfo.ratio } Repeater { id: towerModel model: 1 // will be dynamically set in js delegate: Item { id: towerImage width: image.width height: image.height onHeightChanged: Activity.sceneSizeChanged() property alias highlight: towerImageHighlight.highlight Image { id: image source: Activity.url + "disc_support.svg" sourceSize.width: background.width / (towerModel.model + 2.5) fillMode: Image.Stretch height: background.height - instruction.height - 2 * bar.height } z: 3 Highlight { id: towerImageHighlight source: image } Highlight { // last tower highlight id: towerImageHighlightGlow source: image hue: 1.0 lightness: 0 opacity: towerImageHighlight.opacity == 0 ? 0.5 : 0 visible: modelData == towerModel.model-1 } // in simplified mode only, the target tower Highlight { hue: 0.3 source: image lightness: 0 opacity: towerImageHighlight.opacity == 0 ? 0.5 : 0 visible: activityMode == "simplified" && (modelData == towerModel.model-2) } } } } DialogHelp { id: dialogHelpLeftRight onClose: home() } Bar { id: bar content: BarEnumContent { value: help | home | level | reload } onHelpClicked: { displayDialog(dialogHelpLeftRight) } onPreviousLevelClicked: Activity.previousLevel() onNextLevelClicked: Activity.nextLevel() onHomeClicked: home() onReloadClicked: Activity.initLevel() } Bonus { id: bonus Component.onCompleted: win.connect(Activity.nextLevel) } } } diff --git a/src/activities/hanoi_real/hanoi_real.js b/src/activities/hanoi_real/hanoi_real.js index 161444679..99da8f3ea 100644 --- a/src/activities/hanoi_real/hanoi_real.js +++ b/src/activities/hanoi_real/hanoi_real.js @@ -1,398 +1,403 @@ /* GCompris - hanoi_real.js * * Copyright (C) 2015 * * Authors: * Bruno Coudoin (GTK+ version) * Amit Tomar (Qt Quick hanoi tower port) * Johnny Jazeix (Qt Quick hanoi simplified port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ .pragma library .import QtQuick 2.0 as Quick .import "qrc:/gcompris/src/core/core.js" as Core var url = "qrc:/gcompris/src/activities/hanoi_real/resource/" var currentLevel = 0 var numberOfLevel var items var activityMode // Specific data for simplified mode var symbols = [ "!", "/", "<", ">", "&", "~", "#", "{", "%", "|", "?", "}", "=", "+", "*" ] var colors = [ "#70ff0000", // red "#7000ff00", // green "#700000ff", // blue "#70ffff00", // yellow "#70ff00ff", // magenta "#70ff4500", // orange "#70e9967a", // darksalmon "#70b0c4de", // pink "#70ba55d3", // mediumorchid "#70b0c4de", // lightsteelblue "#70808000", // olive "#70800080", // purple "#7000ffff", // cyan "#707cfc00", // lawngreen "#70800000" // brown ] var nbTowersLessExpectedAndResultOnes var nbMaxItemsByTower function start(items_, activityMode_) { items = items_ activityMode = activityMode_ currentLevel = 0 numberOfLevel = (activityMode == "real") ? 3 : 6 initLevel() } function stop() { } function initSpecificInfoForSimplified() { Core.shuffle(symbols); switch(items.bar.level) { case 1: nbTowersLessExpectedAndResultOnes = 3; nbMaxItemsByTower = 5; break; case 2: nbTowersLessExpectedAndResultOnes = 4; nbMaxItemsByTower = 5; break; case 3: nbTowersLessExpectedAndResultOnes = 5; nbMaxItemsByTower = 6; break; case 4: nbTowersLessExpectedAndResultOnes = 6; nbMaxItemsByTower = 7; break; case 5: nbTowersLessExpectedAndResultOnes = 6; nbMaxItemsByTower = 8; break; case 6: nbTowersLessExpectedAndResultOnes = 5; nbMaxItemsByTower = 9; } } function initLevel() { items.bar.level = currentLevel + 1 + items.hasWon = false + if(activityMode == "real") { items.numberOfDisc = currentLevel + 3 items.discRepeater.model = items.numberOfDisc items.towerModel.model = 3 } else { initSpecificInfoForSimplified(); items.towerModel.model = nbTowersLessExpectedAndResultOnes + 2 items.numberOfDisc = nbTowersLessExpectedAndResultOnes * (nbMaxItemsByTower-1) + nbMaxItemsByTower items.discRepeater.model = items.numberOfDisc } placeDiscsAtOrigin() if(activityMode != "real") { for(var i = 0 ; i < (items.numberOfDisc-nbMaxItemsByTower); ++i) { var index = Math.floor(Math.random() * symbols.length); items.discRepeater.itemAt(i).text = symbols[index]; items.discRepeater.itemAt(i).color = colors[index]; } // Fill the text discs avoiding duplicates var currentAnswerId = items.numberOfDisc-nbMaxItemsByTower; var goodAnswerIndices = []; do { var id = Math.floor(Math.random() * (items.numberOfDisc-nbMaxItemsByTower)); if(goodAnswerIndices.indexOf(id) == -1) { items.discRepeater.itemAt(currentAnswerId).text = items.discRepeater.itemAt(id).text; items.discRepeater.itemAt(currentAnswerId).color = items.discRepeater.itemAt(id).color; goodAnswerIndices.push(id); currentAnswerId ++; } } while(currentAnswerId < items.numberOfDisc); } disableNonDraggablediscs() } function nextLevel() { if(numberOfLevel <= ++currentLevel) { currentLevel = 0 } initLevel(); } function previousLevel() { if(--currentLevel < 0) { currentLevel = numberOfLevel - 1 } initLevel(); } function placeDisc(disc, towerImage) { disc.towerImage = towerImage disc.position = getNumberOfDiscOnTower(towerImage) disc.parent = towerImage setDiscY(disc, towerImage); } function setDiscY(disc, towerImage) { // -(towerImage.height * 0.12) because we need to remove the base of the tower // dependant of the image! disc.y = towerImage.y + towerImage.height - disc.position * disc.height - (towerImage.height * 0.12) } function placeDiscsAtOrigin() { // Reset the model to get the initial animation if(items.discRepeater.model === items.numberOfDisc) items.discRepeater.model = 0 items.discRepeater.model = items.numberOfDisc if(activityMode == "real") { for(var i = 0 ; i < items.numberOfDisc ; ++i) { placeDisc(items.discRepeater.itemAt(i), items.towerModel.itemAt(0)) items.discRepeater.itemAt(i).color = colors[i]; } } else { // First fill the first towers for(var i = 0 ; i < (items.numberOfDisc-nbMaxItemsByTower); ++i) { placeDisc(items.discRepeater.itemAt(i), items.towerModel.itemAt(i%nbTowersLessExpectedAndResultOnes)) } // Fill last tower for(var i = items.numberOfDisc-nbMaxItemsByTower ; i < items.numberOfDisc ; ++i) { placeDisc(items.discRepeater.itemAt(i), items.towerModel.itemAt(nbTowersLessExpectedAndResultOnes+1)) } } } function discReleased(index) { var disc = items.discRepeater.itemAt(index) var isCorrect = false; if(activityMode == "real") { for(var i = 0 ; i < items.towerModel.model ; ++ i) { var towerItem = items.towerModel.itemAt(i); if(checkIfDiscOnTowerImage(disc, towerItem) && getNumberOfDiscOnTower(towerItem) < items.numberOfDisc && getHigherfDiscOnTower(towerItem) <= index) { placeDisc(disc, towerItem) isCorrect = true break; } } } else { for(var i = 0 ; i < items.towerModel.model ; ++ i) { var towerItem = items.towerModel.itemAt(i); if(checkIfDiscOnTowerImage(disc, towerItem) && getNumberOfDiscOnTower(towerItem) < nbMaxItemsByTower) { placeDisc(disc, towerItem) isCorrect = true break; } } } if(!isCorrect) { // Cancel the drop setDiscY(disc, disc.towerImage) } disableNonDraggablediscs() deHighlightTowers() checkSolved() } function performTowersHighlight(disc, x) { deHighlightTowers() var isCorrect = false; var nbTower = items.towerModel.model if(activityMode === "simplified") nbTower-- for(var i = 0 ; i < nbTower ; ++ i) { var towerItem = items.towerModel.itemAt(i); if(checkIfDiscOnTowerImage(disc, towerItem)) { towerItem.highlight = true isCorrect = true break } } if(!isCorrect && disc.towerImage) { disc.towerImage.highlight = true } } function sceneSizeChanged() { if(!items) return for(var i = 0 ; i < items.numberOfDisc ; ++i) { var disc = items.discRepeater.itemAt(i) if(!disc || !disc.towerImage) continue setDiscY(disc, disc.towerImage) } disableNonDraggablediscs() deHighlightTowers() } function disableNonDraggablediscs() { if(activityMode == "real") { // Only the highest (index) one is enabled for(var i = 0 ; i < items.numberOfDisc ; ++i) { var disc = items.discRepeater.itemAt(i) if(disc) disc.mouseEnabled = (getHigherfDiscOnTower(disc.towerImage) <= i) } } else { // In simplified, all the last tower discs are disabled // We disable all except the highest (in position) ones of each tower var highestOnes = []; for(var i = 0 ; i < items.numberOfDisc ; ++i) { var disc = items.discRepeater.itemAt(i) if(!disc) continue disc.mouseEnabled = false if(disc.towerImage == items.towerModel.itemAt(items.towerModel.model-1)) { continue; } else if(highestOnes[disc.towerImage] == undefined) { highestOnes[disc.towerImage] = {"pos": disc.position, "id": i} } else if(highestOnes[disc.towerImage].pos < disc.position) { highestOnes[disc.towerImage].pos = disc.position highestOnes[disc.towerImage].id = i } } for(var i in highestOnes) { items.discRepeater.itemAt(highestOnes[i].id).mouseEnabled = true } } } function deHighlightTowers() { if(items.towerModel) { for(var i = 0 ; i < items.towerModel.model ; ++ i) { if(items.towerModel.itemAt(i)) items.towerModel.itemAt(i).highlight = false } } } function checkIfDiscOnTowerImage(disc, towerImage) { var discPosition = items.background.mapFromItem(disc, 0, 0) var towerPosition = items.background.mapFromItem(towerImage, 0, 0) return ((discPosition.x + disc.width / 2) > towerPosition.x && (discPosition.x + disc.width / 2) < towerPosition.x + towerImage.width) } function getHigherfDiscOnTower(towerImage) { var higher = 0 for(var i = 0 ; i < items.numberOfDisc ; ++i) { if(items.discRepeater.itemAt(i) && items.discRepeater.itemAt(i).towerImage === towerImage) higher = i } return higher } function getNumberOfDiscOnTower(towerImage) { var count = 0 for(var i = 0 ; i < items.numberOfDisc ; ++i) { if(items.discRepeater.itemAt(i).towerImage === towerImage) count++ } return count } function checkSolved() { if(activityMode == "real") { - if(getNumberOfDiscOnTower(items.towerModel.itemAt(items.towerModel.model-1)) === items.numberOfDisc) + if(getNumberOfDiscOnTower(items.towerModel.itemAt(items.towerModel.model-1)) === items.numberOfDisc) { + items.hasWon = true items.bonus.good("flower") + } } else { // Recreate both last towers text var expectedTower = []; var actualTower = []; for(var i = 0 ; i < items.numberOfDisc ; ++i) { var disc = items.discRepeater.itemAt(i); if(disc.towerImage == items.towerModel.itemAt(items.towerModel.model-1)) { actualTower[disc.position] = disc.text } else if(disc.towerImage == items.towerModel.itemAt(items.towerModel.model-2)) { expectedTower[disc.position] = disc.text } } // Don't check if not the same length var hasWon = (expectedTower.length == actualTower.length) for (var i = 0; hasWon && i < actualTower.length; ++i) { if (expectedTower[i] !== actualTower[i]) hasWon = false } if(hasWon) { + items.hasWon = true items.bonus.good("flower") } } } function getDiscWidth(index) { if(activityMode == "real") { if( 0 === index ) return items.towerModel.itemAt(0).width * 1.6 else if ( 1 === index ) return items.towerModel.itemAt(0).width * 1.3 else if ( 2 === index ) return items.towerModel.itemAt(0).width * 1 else if ( 3 === index ) return items.towerModel.itemAt(0).width * 0.7 else return items.towerModel.itemAt(0).width * 0.5 } else { return items.towerModel.itemAt(0).width } } diff --git a/src/activities/lang/resource/content-be.json b/src/activities/lang/resource/content-be.json new file mode 100644 index 000000000..a5988440e --- /dev/null +++ b/src/activities/lang/resource/content-be.json @@ -0,0 +1,1108 @@ +{ + "10.ogg": "дзесяць", + "11.ogg": "адзінаццаць", + "12.ogg": "дванаццаць", + "16.ogg": "шаснаццаць", + "U0030.ogg": "нуль", + "U0031.ogg": "адзін", + "U0032.ogg": "два", + "U0033.ogg": "тры", + "U0034.ogg": "чатыры", + "U0035.ogg": "пяць", + "U0036.ogg": "шэсць", + "U0037.ogg": "сем", + "U0038.ogg": "восем", + "U0039.ogg": "дзевяць", + "accountant.ogg": "", + "ache.ogg": "", + "acorn.ogg": "", + "actor.ogg": "", + "air_horn.ogg": "", + "alarmclock.ogg": "", + "alligator.ogg": "алігатар", + "alphabet.ogg": "", + "anchor.ogg": "якар", + "angel.ogg": "анёл", + "angry.ogg": "", + "animal.ogg": "жывёла", + "ankle.ogg": "", + "ant.ogg": "", + "anteater.ogg": "", + "antelope.ogg": "", + "apple.ogg": "", + "apple_tree.ogg": "", + "appliance.ogg": "", + "apricot.ogg": "", + "arm.ogg": "", + "armchair.ogg": "", + "artichoke.ogg": "", + "artist.ogg": "", + "asparagus.ogg": "", + "astronaut.ogg": "", + "ate.ogg": "ежа", + "athlete.ogg": "атлет", + "avocado.ogg": "", + "ax.ogg": "", + "baby_bottle.ogg": "", + "back.ogg": "спіна", + "badge.ogg": "значок", + "bag.ogg": "торба", + "bait.ogg": "прынада", + "bake.ogg": "пячы", + "balance.ogg": "баланс", + "bald.ogg": "", + "ball.ogg": "шпуляк", + "ball_of_yarn.ogg": "", + "ball_soccer.ogg": "", + "ballet.ogg": "балет", + "bank.ogg": "банк", + "bark.ogg": "брахаць", + "barn.ogg": "хлеў", + "bat.ogg": "кажан", + "bath.ogg": "ванная", + "bathing_suit.ogg": "", + "bay.ogg": "затока", + "beach.ogg": "пляж", + "bead.ogg": "шарык", + "bean.ogg": "", + "bear.ogg": "", + "beard.ogg": "", + "beat.ogg": "", + "beaver.ogg": "", + "bed.ogg": "ложак", + "bedroom.ogg": "", + "bee.ogg": "пчала", + "beef.ogg": "", + "beetle.ogg": "жук", + "beg.ogg": "маліць", + "behind.ogg": "", + "bell.ogg": "", + "belly.ogg": "", + "bench.ogg": "зэдлік", + "bib.ogg": "нагруднік", + "big.ogg": "вялікі", + "big_top.ogg": "", + "bike.ogg": "ровар", + "bird.ogg": "птушка", + "bit.ogg": "кавалак", + "bite.ogg": "кусаць", + "black.ogg": "чорны", + "blackberry.ogg": "", + "blackbird.ogg": "", + "blade.ogg": "", + "blind.ogg": "невідушчы", + "blink.ogg": "мігацець", + "block.ogg": "блок", + "blond.ogg": "светлы", + "blue.ogg": "блакітны", + "blueberry.ogg": "", + "blush.ogg": "", + "board.ogg": "дошка", + "boat.ogg": "лодка", + "boil.ogg": "кіпець", + "bolt.ogg": "", + "bomb.ogg": "бомба", + "bone.ogg": "костка", + "book.ogg": "кніга", + "bookcase.ogg": "", + "bottom.ogg": "", + "box.ogg": "скрыня", + "boxer.ogg": "", + "boy.ogg": "хлопец", + "braid.ogg": "каса", + "brain.ogg": "мазгі", + "branch.ogg": "галіна", + "bread.ogg": "хлеб", + "break.ogg": "перапынак", + "breast.ogg": "", + "brick.ogg": "цэгла", + "bricklayer.ogg": "", + "bride.ogg": "нявеста", + "bridge.ogg": "мост", + "bright.ogg": "бліскучы", + "broccoli.ogg": "", + "brother.ogg": "брат", + "brown.ogg": "муры", + "brush.ogg": "пэндзаль", + "bubble.ogg": "", + "bucket.ogg": "", + "bud.ogg": "бутон", + "buffalo.ogg": "", + "bug.ogg": "казурка", + "bulb.ogg": "", + "bull.ogg": "", + "bump.ogg": "шышка", + "bun.ogg": "булка", + "bus.ogg": "", + "bush.ogg": "куст", + "butcher.ogg": "", + "butter.ogg": "", + "butterfly.ogg": "", + "button.ogg": "", + "cabbage.ogg": "", + "cabin.ogg": "кабіна", + "cacao.ogg": "", + "cactus.ogg": "", + "cage.ogg": "краты", + "cake.ogg": "каравай", + "call.ogg": "вокліч", + "camel.ogg": "верблюд", + "camera.ogg": "", + "camp.ogg": "лагер", + "can.ogg": "бляшанка", + "canary.ogg": "", + "candle.ogg": "свечка", + "candy.ogg": "цукерка", + "cane.ogg": "кій", + "canoe.ogg": "каноэ", + "canon.ogg": "", + "canyon.ogg": "", + "cap.ogg": "шапка", + "cape.ogg": "капюшон", + "car.ogg": "аўтамабіль", + "carafe.ogg": "", + "card.ogg": "картка", + "carnival.ogg": "", + "carpenter.ogg": "", + "carpet.ogg": "", + "carrot.ogg": "морква", + "cart.ogg": "воз", + "cash.ogg": "гатоўка", + "castle.ogg": "замак", + "cat.ogg": "котка", + "cat_female.ogg": "", + "catch.ogg": "лавіць", + "caterpillar.ogg": "", + "cauldron.ogg": "", + "cauliflower.ogg": "", + "cave.ogg": "пячора", + "cavern.ogg": "", + "celery.ogg": "", + "centipede.ogg": "мнаганожка", + "cereal.ogg": "", + "chain.ogg": "", + "chair.ogg": "крэсла", + "chalk.ogg": "крэйда", + "chameleon.ogg": "", + "chandelier.ogg": "", + "chat.ogg": "гутарыць", + "cheek.ogg": "", + "cheer.ogg": "падбадзёрваць", + "cheese.ogg": "сыр", + "chef.ogg": "", + "cherry.ogg": "вішня", + "chest.ogg": "грудзі", + "chick.ogg": "птушаня", + "chicken.ogg": "кураня", + "chief.ogg": "кіраўнік", + "child.ogg": "дзіця", + "chimney.ogg": "", + "chimp.ogg": "шымпанзэ", + "chin.ogg": "падбародак", + "chocolate.ogg": "шакалад", + "chop.ogg": "наразаць", + "chore.ogg": "", + "christmas.ogg": "", + "cigar.ogg": "", + "circus.ogg": "", + "city.ogg": "", + "clam.ogg": "малюск", + "clap.ogg": "пляск", + "class.ogg": "клас", + "claw.ogg": "кіпцюр", + "clay.ogg": "гліна", + "clean.ogg": "чысты", + "cleaning_lady.ogg": "", + "cliff.ogg": "скала", + "climb.ogg": "лезьці", + "clock.ogg": "гадзіннік", + "cloth.ogg": "тканіна", + "clothes_hanger.ogg": "", + "cloud.ogg": "воблака", + "cloudy.ogg": "", + "clover.ogg": "", + "clown.ogg": "клоун", + "coach.ogg": "трэнер", + "coast.ogg": "", + "coat.ogg": "кажух", + "cobra.ogg": "", + "coconut.ogg": "", + "cod.ogg": "", + "coffee.ogg": "", + "coin.ogg": "манета", + "cold.ogg": "халодны", + "color.ogg": "колер", + "colt.ogg": "", + "comb.ogg": "грабянец", + "cone.ogg": "конус", + "cookie.ogg": "печыва", + "cork.ogg": "", + "corn.ogg": "кукуруза", + "couch.ogg": "канапа", + "cough.ogg": "", + "couple.ogg": "", + "cow.ogg": "карова", + "cowboy.ogg": "пастух", + "crab.ogg": "краб", + "cradle.ogg": "", + "craft.ogg": "", + "crawl.ogg": "поўзаць", + "crazy.ogg": "шалёны", + "creek.ogg": "", + "crepe.ogg": "", + "crib.ogg": "калыска", + "criminal.ogg": "", + "croak.ogg": "крумкаць", + "crocodile.ogg": "кракадзіл", + "cross.ogg": "", + "crow.ogg": "крумкач", + "crown.ogg": "карона", + "crumb.ogg": "крошка", + "crust.ogg": "скарынка", + "cry.ogg": "крык", + "crystal.ogg": "", + "cube.ogg": "куб", + "cucumber.ogg": "агурок", + "curtain.ogg": "", + "cut.ogg": "адрэзаць", + "cute.ogg": "мілы", + "dad.ogg": "бацька", + "daffodil.ogg": "", + "daisy.ogg": "", + "dam.ogg": "", + "dance.ogg": "танец", + "dandelion.ogg": "", + "danger.ogg": "небяспека", + "dark.ogg": "", + "dart_board.ogg": "", + "date_fruit.ogg": "", + "deer.ogg": "", + "den.ogg": "логва", + "desert.ogg": "", + "desk.ogg": "стол", + "dessert.ogg": "", + "diamond.ogg": "", + "dig.ogg": "капаць", + "dirt.ogg": "бруд", + "dirty.ogg": "брудны", + "dish.ogg": "талерка", + "dishcloth.ogg": "", + "dive.ogg": "апусканне", + "doctor.ogg": "", + "doe.ogg": "", + "dog.ogg": "сабака", + "doll.ogg": "", + "dolphin.ogg": "", + "domino.ogg": "", + "door.ogg": "дзверы", + "doormat.ogg": "", + "dot.ogg": "кропка", + "doughnut.ogg": "", + "dove.ogg": "", + "dragon.ogg": "цмок", + "dragonfly.ogg": "", + "drank.ogg": "трунак", + "draw.ogg": "маляваць", + "drawer.ogg": "", + "dream.ogg": "мара", + "dress.ogg": "сукенка", + "drink.ogg": "піць", + "drinking.ogg": "", + "drip.ogg": "", + "drive.ogg": "везці", + "drool.ogg": "", + "drum.ogg": "бубен", + "dry.ogg": "", + "duck.ogg": "вутка", + "duck_mother.ogg": "", + "dune.ogg": "выдма", + "dwarf.ogg": "", + "eagle.ogg": "", + "ear.ogg": "вуха", + "earth.ogg": "зямля", + "eat.ogg": "есці", + "egg.ogg": "", + "eggplant.ogg": "", + "elbow.ogg": "", + "electrician.ogg": "", + "elk.ogg": "", + "empty.ogg": "пусты", + "engine.ogg": "", + "engineer.ogg": "", + "eraser.ogg": "", + "explore.ogg": "даследаваць", + "eyelash.ogg": "", + "eyes.ogg": "", + "face.ogg": "твар", + "fair.ogg": "кірмаш", + "fairy.ogg": "", + "fall_down.ogg": "", + "fall_season.ogg": "", + "family.ogg": "", + "fan.ogg": "аматар", + "farm.ogg": "ферма", + "farmer.ogg": "", + "fat.ogg": "тлушч", + "faucet.ogg": "", + "fawn.ogg": "", + "feast.ogg": "feast", + "feather.ogg": "", + "feed.ogg": "", + "feet.ogg": "ступні", + "fell.ogg": "упасці", + "femur.ogg": "", + "fetch.ogg": "атрымліваць", + "fig.ogg": "", + "fin.ogg": "плаўнік", + "find.ogg": "шукаць", + "finger.ogg": "", + "fire.ogg": "aгонь", + "fire_extinguisher.ogg": "", + "fireman.ogg": "", + "fish.ogg": "рыба", + "fisherman.ogg": "", + "fist.ogg": "кулак", + "flacon.ogg": "", + "flag.ogg": "сцяг", + "flame.ogg": "полымя", + "flamingo.ogg": "", + "flash.ogg": "успышка", + "flat.ogg": "пляскаты", + "flies.ogg": "жамяра", + "flight.ogg": "", + "float.ogg": "паплавок", + "flour.ogg": "падлога", + "flower.ogg": "кветка", + "fluff.ogg": "", + "flute.ogg": "флейта", + "fly.ogg": "муха", + "foam.ogg": "", + "food.ogg": "ежа", + "foot.ogg": "ступня", + "forest.ogg": "", + "fork.ogg": "відэлец", + "fountain.ogg": "фантан", + "fox.ogg": "лісіца", + "freeze.ogg": "здранцвець", + "friend.ogg": "сябар", + "fries.ogg": "", + "frog.ogg": "жаба", + "front.ogg": "пярэдні", + "frown.ogg": "пануры", + "fruit.ogg": "садавіна", + "fudge.ogg": "памадка", + "full.ogg": "поўны", + "fun.ogg": "весялосць", + "fur.ogg": "футра", + "game.ogg": "гульня", + "garage.ogg": "", + "garden.ogg": "сад", + "garlic.ogg": "", + "gem.ogg": "пацерка", + "giant.ogg": "волат", + "gift.ogg": "падарунак", + "giraffe.ogg": "жыраф", + "girl.ogg": "дзяўчына", + "glass.ogg": "шкло", + "glasses.ogg": "", + "glove.ogg": "пальчатка", + "glue.ogg": "клей", + "gnome.ogg": "гном", + "goat.ogg": "каза", + "golden.ogg": "", + "golf.ogg": "", + "goose.ogg": "", + "gorilla.ogg": "", + "grain.ogg": "", + "grandmother.ogg": "", + "grape.ogg": "", + "grapefruit.ogg": "", + "grass.ogg": "трава", + "grave.ogg": "магіла", + "gray.ogg": "шэры", + "green.ogg": "зялёны", + "grill.ogg": "", + "grin.ogg": "усмешка", + "ground.ogg": "грунт", + "growl.ogg": "рык", + "guignol.ogg": "", + "guinea_pig.ogg": "", + "gum.ogg": "жуйка", + "hair.ogg": "валасы", + "hair_dryer.ogg": "", + "half.ogg": "", + "ham.ogg": "", + "hammer.ogg": "", + "hand.ogg": "рука", + "handlebar.ogg": "", + "happy.ogg": "шчаслівы", + "harp.ogg": "", + "hat.ogg": "капялюш", + "hatch.ogg": "прахон", + "hay.ogg": "сена", + "head.ogg": "галава", + "hear.ogg": "чуць", + "heat.ogg": "спёка", + "hedge.ogg": "", + "hedgehog.ogg": "", + "heel.ogg": "", + "helmet.ogg": "", + "hen.ogg": "курка", + "herd.ogg": "статак", + "high.ogg": "высокі", + "hike.ogg": "паход", + "hill.ogg": "", + "hip.ogg": "бядро", + "hippopotamus.ogg": "", + "hit.ogg": "удар", + "hive.ogg": "", + "hockey.ogg": "", + "hole.ogg": "дзірка", + "home.ogg": "дом", + "hook.ogg": "крук", + "hop.ogg": "скок", + "horse.ogg": "", + "hose.ogg": "панчохі", + "hospital.ogg": "", + "hot.ogg": "гарачы", + "hot_dog.ogg": "", + "hound.ogg": "гончая", + "house.ogg": "", + "howl.ogg": "выццё", + "hug.ogg": "абдымаць", + "huge.ogg": "велізарны", + "hummingbird.ogg": "", + "hunchback.ogg": "", + "hunter.ogg": "паляўнічы", + "husband.ogg": "", + "hut.ogg": "хаціна", + "hyena.ogg": "", + "ice.ogg": "лёд", + "iceberg.ogg": "", + "iguana.ogg": "", + "ill.ogg": "", + "ink.ogg": "атрамант", + "island.ogg": "", + "jacket.ogg": "", + "jaguar.ogg": "", + "jam.ogg": "", + "jay.ogg": "", + "jelly.ogg": "", + "jellyfish.ogg": "", + "jewel.ogg": "каштоўнасць", + "job.ogg": "", + "jockey.ogg": "", + "jog.ogg": "бег", + "judge.ogg": "cудзіць", + "judo.ogg": "", + "juggler.ogg": "", + "juice.ogg": "сок", + "jump.ogg": "скакаць", + "kangaroo.ogg": "", + "keel.ogg": "", + "kernel.ogg": "", + "keyboard.ogg": "", + "kimono.ogg": "", + "king.ogg": "", + "kiss.ogg": "", + "kitchen.ogg": "", + "kite.ogg": "", + "kitten.ogg": "", + "kiwi.ogg": "", + "knee.ogg": "калена", + "kneel.ogg": "кленчыць", + "knife.ogg": "нож", + "knight.ogg": "рыцар", + "knit.ogg": "вязаць", + "knot.ogg": "вузел", + "koala.ogg": "", + "lad.ogg": "драбіны", + "lady.ogg": "", + "ladybug.ogg": "", + "lake.ogg": "возера", + "lama.ogg": "", + "lamb.ogg": "ягня", + "lamp.ogg": "лямпа", + "land.ogg": "надзел", + "lane.ogg": "сцежка", + "lap.ogg": "каленькі", + "lasso.ogg": "", + "laugh.ogg": "", + "lava.ogg": "", + "lawn.ogg": "газон", + "lawyer.ogg": "", + "leaf.ogg": "", + "ledge.ogg": "падваконне", + "leek.ogg": "", + "left.ogg": "левы", + "leg.ogg": "", + "leg_animal.ogg": "", + "lemon.ogg": "", + "lemonade.ogg": "", + "lemur.ogg": "", + "leopard.ogg": "", + "lettuce.ogg": "", + "librarian.ogg": "", + "lick.ogg": "лізаць", + "lid.ogg": "накрыўка", + "lift.ogg": "ліфт", + "light.ogg": "святло", + "lighthouse.ogg": "", + "lightning.ogg": "", + "lilac.ogg": "", + "lime.ogg": "вапна", + "line.ogg": "радок", + "link.ogg": "спасылка", + "lion.ogg": "", + "lion_cub.ogg": "", + "lip.ogg": "губа", + "liquid.ogg": "вадкасць", + "lizard.ogg": "", + "lobster.ogg": "", + "log.ogg": "бервяно", + "look.ogg": "выгляд", + "lunch.ogg": "падабед", + "mad.ogg": "вар'ят", + "magic.ogg": "чараўніцтва", + "magnet.ogg": "", + "magnifying_glass.ogg": "", + "magpie.ogg": "", + "mail.ogg": "", + "man.ogg": "", + "mane.ogg": "грыва", + "mango.ogg": "", + "map.ogg": "мапа", + "maple.ogg": "", + "marble.ogg": "", + "mashed_potatoes.ogg": "", + "mask.ogg": "маска", + "mast.ogg": "", + "mat.ogg": "дыванок", + "match.ogg": "запалка", + "mate.ogg": "", + "mattress.ogg": "", + "mauve.ogg": "", + "meal.ogg": "", + "meat.ogg": "", + "mechanic.ogg": "", + "medal.ogg": "", + "meet.ogg": "знаёміцца", + "melon.ogg": "", + "men.ogg": "мужчыны", + "merry-go-round.ogg": "", + "mice.ogg": "мышы", + "microphone.ogg": "", + "milk.ogg": "", + "mill.ogg": "", + "mimosa.ogg": "", + "mirror.ogg": "", + "mixer.ogg": "", + "mole.ogg": "крот", + "mom.ogg": "", + "moon.ogg": "", + "moose.ogg": "", + "mop.ogg": "швабра", + "mosque.ogg": "", + "mosquito.ogg": "камар", + "mother.ogg": "", + "motorcycle.ogg": "", + "mountain.ogg": "", + "mouse.ogg": "", + "mouth.ogg": "рот", + "movie.ogg": "", + "mower.ogg": "", + "mud.ogg": "жужала", + "mug.ogg": "", + "mule.ogg": "мул", + "muscle.ogg": "", + "mushroom.ogg": "грыб", + "music.ogg": "", + "musician.ogg": "", + "naked.ogg": "", + "nap.ogg": "", + "navel.ogg": "", + "neck.ogg": "шыя", + "necklace.ogg": "", + "needle.ogg": "", + "nest.ogg": "гняздо", + "net.ogg": "сетка", + "newspaper.ogg": "", + "night.ogg": "ноч", + "nightgown.ogg": "", + "nose.ogg": "нос", + "nostril.ogg": "", + "notebook.ogg": "", + "number.ogg": "", + "nun.ogg": "", + "nurse.ogg": "", + "nurse_male.ogg": "", + "nut.ogg": "арэх", + "oar.ogg": "вясло", + "ocean.ogg": "акіян", + "office.ogg": "", + "olive.ogg": "", + "on.ogg": "на", + "onion.ogg": "", + "open.ogg": "", + "opossum.ogg": "", + "orange-color.ogg": "памаранчавы", + "orange.ogg": "апельсін", + "orchid.ogg": "", + "ostrich.ogg": "", + "otter.ogg": "", + "owl.ogg": "сава", + "ox.ogg": "вол", + "oyster.ogg": "", + "pacifier.ogg": "", + "page.ogg": "старонка", + "pair.ogg": "пара", + "pajamas.ogg": "", + "pal.ogg": "", + "palm_tree.ogg": "", + "pan.ogg": "патэльня", + "panda.ogg": "", + "panther.ogg": "", + "panties.ogg": "", + "pants.ogg": "", + "papaya.ogg": "", + "paper.ogg": "", + "parachute.ogg": "", + "parakeet.ogg": "", + "parrot.ogg": "", + "patch.ogg": "", + "path.ogg": "шлях", + "paw.ogg": "лапа", + "pea.ogg": "", + "peach.ogg": "персік", + "peacock.ogg": "", + "peak.ogg": "", + "pear.ogg": "", + "pearl.ogg": "", + "peck.ogg": "", + "pedal.ogg": "", + "pelican.ogg": "", + "pen.ogg": "асадка", + "pencil.ogg": "аловак", + "peony.ogg": "", + "people.ogg": "", + "pepper.ogg": "", + "peppers.ogg": "", + "pet.ogg": "", + "petal.ogg": "", + "petite.ogg": "", + "phone.ogg": "", + "piano.ogg": "", + "picture.ogg": "малюнак", + "pie.ogg": "", + "pig.ogg": "свіння", + "pigeon.ogg": "", + "pill.ogg": "", + "pillow.ogg": "", + "pilot.ogg": "", + "pine.ogg": "", + "pine_cone.ogg": "", + "pink.ogg": "ружовы", + "pip.ogg": "", + "pipe.ogg": "", + "piranha.ogg": "", + "pirate.ogg": "", + "pizza.ogg": "", + "plane.ogg": "лятак", + "planet.ogg": "", + "plant.ogg": "расліна", + "plate.ogg": "талерка", + "play.ogg": "п'еса", + "pliers.ogg": "", + "plow.ogg": "", + "plum.ogg": "сліва", + "plumber.ogg": "", + "pocket.ogg": "", + "pod.ogg": "", + "pole.ogg": "", + "police.ogg": "", + "pompon.ogg": "", + "pond.ogg": "", + "pony.ogg": "", + "pool.ogg": "", + "pop.ogg": "", + "pope.ogg": "", + "porthole.ogg": "", + "post.ogg": "", + "pot.ogg": "", + "potato.ogg": "", + "pounce.ogg": "", + "president.ogg": "", + "pretty.ogg": "прыгожы", + "price.ogg": "цана", + "priest.ogg": "", + "prince.ogg": "князь", + "princess.ogg": "княжна", + "prison.ogg": "", + "prisoner.ogg": "", + "prize.ogg": "", + "pug.ogg": "", + "pull.ogg": "", + "pullover.ogg": "", + "pumpkin.ogg": "", + "puppy.ogg": "шчаня", + "pyramid.ogg": "", + "quarrel.ogg": "", + "queen.ogg": "каралева", + "question.ogg": "пытанне", + "quilt.ogg": "", + "quiz.ogg": "", + "rabbit.ogg": "", + "rabbit_baby.ogg": "", + "race.ogg": "", + "radio.ogg": "", + "radish.ogg": "", + "raft.ogg": "", + "rag.ogg": "", + "rage.ogg": "", + "rain.ogg": "", + "raincoat.ogg": "", + "rake.ogg": "", + "ramp.ogg": "", + "ran.ogg": "", + "raspberry.ogg": "", + "rat.ogg": "пацук", + "razor.ogg": "", + "read.ogg": "чытаць", + "red.ogg": "чырвоны", + "reptile.ogg": "", + "rhinoceros.ogg": "", + "rice.ogg": "рыс", + "ride.ogg": "", + "rifle.ogg": "", + "right.ogg": "правы", + "rip.ogg": "", + "rise.ogg": "", + "river.ogg": "", + "road.ogg": "", + "roast.ogg": "", + "robe.ogg": "", + "robot.ogg": "", + "rock.ogg": "", + "rocket.ogg": "", + "rolling_pin.ogg": "", + "roof.ogg": "дах", + "room.ogg": "", + "root.ogg": "", + "rope.ogg": "вяроўка", + "rose.ogg": "ружа", + "round.ogg": "круглы", + "rowing.ogg": "", + "royal.ogg": "каралеўскі", + "rug.ogg": "", + "run.ogg": "бегчы", + "sad.ogg": "сумны", + "saddle.ogg": "", + "sail.ogg": "", + "sailor.ogg": "", + "salamander.ogg": "", + "salmon.ogg": "", + "sand.ogg": "пясок", + "sandals.ogg": "", + "sandwich.ogg": "бутэрброд", + "sash.ogg": "", + "sat.ogg": "", + "sauce.ogg": "поліўка", + "sausage.ogg": "", + "scale.ogg": "", + "scar.ogg": "", + "scared.ogg": "", + "scarf.ogg": "шалік", + "school.ogg": "школа", + "school_bag.ogg": "", + "science.ogg": "навука", + "scissors.ogg": "", + "scorpion.ogg": "", + "scratch.ogg": "", + "scream.ogg": "", + "screw.ogg": "", + "screwdriver.ogg": "", + "scribble.ogg": "", + "sea.ogg": "", + "seat.ogg": "", + "see.ogg": "бачыць", + "seed.ogg": "насенне", + "shadow.ogg": "", + "shake.ogg": "", + "shark.ogg": "акула", + "shave.ogg": "", + "shed.ogg": "", + "sheep.ogg": "", + "shelf.ogg": "паліца", + "shell.ogg": "", + "ship.ogg": "карабель", + "shirt.ogg": "кашуля", + "shoe.ogg": "абутак", + "shoelace.ogg": "", + "shop.ogg": "крама", + "shore.ogg": "", + "short.ogg": "кароткі", + "shovel.ogg": "", + "shower.ogg": "душ", + "shrimp.ogg": "", + "shrub.ogg": "", + "shut.ogg": "", + "shutter.ogg": "", + "sick.ogg": "хворы", + "sidewalk.ogg": "", + "sign.ogg": "пазнака", + "sing.ogg": "спяваць", + "sink.ogg": "", + "sip.ogg": "", + "sister.ogg": "", + "sit.ogg": "сядзець", + "skate.ogg": "", + "skeleton.ogg": "", + "ski.ogg": "лыжы", + "skimmer.ogg": "", + "skin.ogg": "скура", + "skirt.ogg": "", + "skunk.ogg": "", + "sky.ogg": "нябёсы", + "slam.ogg": "", + "sled.ogg": "", + "sleep.ogg": "спаць", + "sleeve.ogg": "рукаў", + "sleigh.ogg": "", + "slide.ogg": "коўзаць", + "slim.ogg": "", + "slime.ogg": "", + "slippers.ogg": "", + "slope.ogg": "", + "sloppy.ogg": "", + "slot.ogg": "", + "sloth.ogg": "", + "slug.ogg": "", + "small.ogg": "малы", + "smell.ogg": "пах", + "smile.ogg": "усмешка", + "smock.ogg": "", + "smoke.ogg": "дым", + "smooch.ogg": "", + "snack.ogg": "", + "snail.ogg": "", + "snake.ogg": "змяя", + "sneaker.ogg": "", + "sniff.ogg": "", + "snow.ogg": "снег", + "soap.ogg": "", + "sob.ogg": "", + "sock.ogg": "", + "soldier.ogg": "", + "sole.ogg": "", + "sole_shoe.ogg": "", + "son.ogg": "", + "soup.ogg": "", + "spade.ogg": "", + "spaghetti.ogg": "", + "spark.ogg": "", + "sparrow.ogg": "", + "spatula.ogg": "", + "speak.ogg": "", + "spear.ogg": "дзіда", + "spice.ogg": "", + "spider.ogg": "павук", + "spider_web.ogg": "", + "spike.ogg": "пік", + "spill.ogg": "", + "spinach.ogg": "", + "spine.ogg": "", + "spinning_top.ogg": "", + "splash.ogg": "", + "splatter.ogg": "", + "sponge.ogg": "", + "spool.ogg": "", + "spoon.ogg": "лыжка", + "sport.ogg": "спорт", + "spot.ogg": "пляма", + "spray.ogg": "", + "spread.ogg": "", + "spring.ogg": "вясна", + "spring_season.ogg": "", + "sprinkle.ogg": "", + "square.ogg": "квадрат", + "squash.ogg": "", + "squat.ogg": "", + "squid.ogg": "", + "squirrel.ogg": "вавёрка", + "squirt.ogg": "", + "stack.ogg": "", + "stage.ogg": "сцэна", + "staircase.ogg": "", + "stamp.ogg": "", + "stand.ogg": "стаяць", + "star.ogg": "зорка", + "stare.ogg": "утаропіцца", + "starfish.ogg": "", + "steak.ogg": "", + "steam.ogg": "", + "steep.ogg": "", + "steeple.ogg": "", + "stem.ogg": "", + "step.ogg": "", + "stew.ogg": "", + "stick.ogg": "кіёк", + "sting.ogg": "", + "stinky.ogg": "", + "stitch.ogg": "", + "stomach.ogg": "", + "stone.ogg": "камень", + "stop.ogg": "спыніцца", + "store.ogg": "сховішча", + "stove.ogg": "", + "straight.ogg": "просты", + "strainer.ogg": "", + "straw.ogg": "", + "strawberry.ogg": "трускаўка", + "stream.ogg": "цячэнне", + "street.ogg": "вуліца", + "stretch.ogg": "", + "string.ogg": "струна", + "stripe.ogg": "палоска", + "strong.ogg": "дужы", + "student.ogg": "", + "study.ogg": "вучыцца", + "stump.ogg": "", + "sugar.ogg": "", + "suit.ogg": "касцюм", + "suitcase.ogg": "", + "summer.ogg": "лета", + "summit.ogg": "", + "sun.ogg": "сонца", + "swan.ogg": "галубок", + "sweat.ogg": "салодкі", + "sweatshirt.ogg": "", + "swim.ogg": "плаваць", + "table.ogg": "", + "tablecloth.ogg": "", + "tadpole.ogg": "", + "tag.ogg": "", + "tail.ogg": "", + "tall.ogg": "высокі", + "tape_measure.ogg": "", + "taxi.ogg": "", + "teach.ogg": "вучыць", + "teacher.ogg": "настаўнік", + "tear.ogg": "сляза", + "teddy.ogg": "", + "teeth.ogg": "зубы", + "television.ogg": "", + "temple.ogg": "", + "tennis.ogg": "", + "tent.ogg": "", + "text.ogg": "", + "thick.ogg": "тоўсты", + "thief.ogg": "", + "thigh.ogg": "", + "think.ogg": "думаць", + "thread.ogg": "нітка", + "throat.ogg": "горла", + "throw.ogg": "кідаць", + "thumb.ogg": "", + "tick.ogg": "", + "ticket.ogg": "", + "tiger.ogg": "", + "time.ogg": "час", + "tin.ogg": "", + "tire.ogg": "", + "tired.ogg": "стомлены", + "tissue.ogg": "", + "toad.ogg": "", + "toaster.ogg": "", + "toe.ogg": "", + "toilet.ogg": "прыбіральня", + "tomatoe.ogg": "", + "tongs.ogg": "", + "tongue.ogg": "", + "tool.ogg": "прылада", + "top.ogg": "верх", + "torch.ogg": "ліхтар", + "touch.ogg": "дотык", + "towel.ogg": "рушнік", + "toy.ogg": "цацка", + "trail.ogg": "", + "train.ogg": "цягнік", + "train_station.ogg": "", + "trap.ogg": "пастка", + "trash.ogg": "смецце", + "tray.ogg": "", + "treat.ogg": "лячэнне", + "tree.ogg": "дрэва", + "triangle.ogg": "", + "tribe.ogg": "", + "trip.ogg": "", + "truck.ogg": "грузавік", + "tube.ogg": "лямпачка", + "tulip.ogg": "", + "tune.ogg": "мелодыя", + "turkey.ogg": "", + "turnip.ogg": "", + "turtle.ogg": "", + "tusk.ogg": "", + "twin_boys.ogg": "", + "twin_girls.ogg": "", + "umbrella.ogg": "", + "under.ogg": "пад", + "uniform.ogg": "", + "van.ogg": "фургон", + "vapor.ogg": "", + "vase.ogg": "", + "vegetable.ogg": "", + "vein.ogg": "", + "verdure.ogg": "", + "vest.ogg": "", + "vet.ogg": "", + "viper.ogg": "", + "vowel.ogg": "", + "vulture.ogg": "", + "wag.ogg": "", + "walk.ogg": "хадзіць", + "wall.ogg": "", + "walnut.ogg": "", + "wart.ogg": "", + "wash.ogg": "мыць", + "wasp.ogg": "", + "watch.ogg": "назіраць", + "water.ogg": "вада", + "wave.ogg": "", + "wedding.ogg": "", + "wedge.ogg": "", + "weight.ogg": "", + "wet.ogg": "мокры", + "whale.ogg": "", + "wheat.ogg": "", + "wheel.ogg": "кола", + "whisk.ogg": "", + "whisper.ogg": "шаптаць", + "white.ogg": "белы", + "wide.ogg": "", + "wife.ogg": "", + "wig.ogg": "", + "win.ogg": "перамагаць", + "wind.ogg": "вецер", + "window.ogg": "", + "window_glass.ogg": "", + "wing.ogg": "крыло", + "winter.ogg": "", + "wolf.ogg": "", + "woman.ogg": "", + "wood.ogg": "лес", + "word.ogg": "", + "worker.ogg": "", + "world.ogg": "", + "wreath.ogg": "", + "wrench.ogg": "", + "wrist.ogg": "запясце", + "write.ogg": "пісаць", + "yarn.ogg": "", + "yellow.ogg": "", + "yogurt.ogg": "", + "yum.ogg": "", + "zebra.ogg": "", + "zipper.ogg": "", + "zoo.ogg": "заапарк" +} diff --git a/src/activities/lang/resource/content-ca.json b/src/activities/lang/resource/content-ca.json index 17cff7967..87a6c829b 100644 --- a/src/activities/lang/resource/content-ca.json +++ b/src/activities/lang/resource/content-ca.json @@ -1,1107 +1,1107 @@ { "10.ogg": "deu", "11.ogg": "onze", "12.ogg": "dotze", "16.ogg": "setze", "U0030.ogg": "zero", "U0031.ogg": "un", "U0032.ogg": "dos", "U0033.ogg": "tres", "U0034.ogg": "quatre", "U0035.ogg": "cinc", "U0036.ogg": "sis", "U0037.ogg": "set", "U0038.ogg": "vuit", "U0039.ogg": "nou", - "accountant.ogg": "", - "ache.ogg": "", - "acorn.ogg": "", - "actor.ogg": "", - "air_horn.ogg": "", - "alarmclock.ogg": "", + "accountant.ogg": "comptable", + "ache.ogg": "dolor", + "acorn.ogg": "gla", + "actor.ogg": "actor", + "air_horn.ogg": "botzina", + "alarmclock.ogg": "despertador", "alligator.ogg": "caiman", - "alphabet.ogg": "", + "alphabet.ogg": "alfabet", "anchor.ogg": "àncora", "angel.ogg": "àngel", - "angry.ogg": "", - "animal.ogg": "animals", - "ankle.ogg": "", - "ant.ogg": "", - "anteater.ogg": "", - "antelope.ogg": "", - "apple.ogg": "", - "apple_tree.ogg": "", - "appliance.ogg": "", - "apricot.ogg": "", - "arm.ogg": "", - "armchair.ogg": "", - "artichoke.ogg": "", - "artist.ogg": "", - "asparagus.ogg": "", - "astronaut.ogg": "", + "angry.ogg": "enfadat", + "animal.ogg": "animal", + "ankle.ogg": "turmell", + "ant.ogg": "formiga", + "anteater.ogg": "ós formiguer", + "antelope.ogg": "antílop", + "apple.ogg": "poma", + "apple_tree.ogg": "pomera", + "appliance.ogg": "aparell", + "apricot.ogg": "albercoc", + "arm.ogg": "braç", + "armchair.ogg": "butaca", + "artichoke.ogg": "carxofa", + "artist.ogg": "artista", + "asparagus.ogg": "espàrrec", + "astronaut.ogg": "astronauta", "ate.ogg": "menjar", "athlete.ogg": "atleta", - "avocado.ogg": "", - "ax.ogg": "", - "baby_bottle.ogg": "", + "avocado.ogg": "alvocat", + "ax.ogg": "destral", + "baby_bottle.ogg": "biberó", "back.ogg": "esquena", "badge.ogg": "insígnia", "bag.ogg": "bossa", "bait.ogg": "esquer", "bake.ogg": "cuinar", "balance.ogg": "balança", - "bald.ogg": "", + "bald.ogg": "calba", "ball.ogg": "bola", - "ball_of_yarn.ogg": "fil", - "ball_soccer.ogg": "", + "ball_of_yarn.ogg": "cabdell de llana", + "ball_soccer.ogg": "pilota de futbol", "ballet.ogg": "ballet", "bank.ogg": "banc", "bark.ogg": "bordar", "barn.ogg": "graner", "bat.ogg": "ratpenat", "bath.ogg": "banyera", - "bathing_suit.ogg": "", + "bathing_suit.ogg": "banyador", "bay.ogg": "badia", "beach.ogg": "platja", "bead.ogg": "bombolla", - "bean.ogg": "", - "bear.ogg": "", - "beard.ogg": "", - "beat.ogg": "", - "beaver.ogg": "", + "bean.ogg": "fesol", + "bear.ogg": "ós", + "beard.ogg": "barba", + "beat.ogg": "batre", + "beaver.ogg": "castor", "bed.ogg": "llit", - "bedroom.ogg": "", + "bedroom.ogg": "dormitori", "bee.ogg": "abella", - "beef.ogg": "", + "beef.ogg": "carn de boví", "beetle.ogg": "escarabat", "beg.ogg": "demanar", - "behind.ogg": "", - "bell.ogg": "", - "belly.ogg": "", + "behind.ogg": "darrere", + "bell.ogg": "campana", + "belly.ogg": "panxa", "bench.ogg": "banc", "bib.ogg": "pitet", "big.ogg": "gran", - "big_top.ogg": "", + "big_top.ogg": "carpa de circ", "bike.ogg": "bicicleta", "bird.ogg": "ocell", "bit.ogg": "mica", "bite.ogg": "mossegar", "black.ogg": "negre", - "blackberry.ogg": "", - "blackbird.ogg": "", - "blade.ogg": "", + "blackberry.ogg": "móra", + "blackbird.ogg": "merla", + "blade.ogg": "tall", "blind.ogg": "cec", "blink.ogg": "picada d'ullet", "block.ogg": "bloc", "blond.ogg": "rossa", "blue.ogg": "blau", - "blueberry.ogg": "", - "blush.ogg": "", + "blueberry.ogg": "nabiu", + "blush.ogg": "rubor", "board.ogg": "tauló", "boat.ogg": "barca", "boil.ogg": "bullir", - "bolt.ogg": "", + "bolt.ogg": "femella", "bomb.ogg": "bomba", "bone.ogg": "os", "book.ogg": "llibre", - "bookcase.ogg": "", - "bottom.ogg": "", + "bookcase.ogg": "llibreria", + "bottom.ogg": "natges", "box.ogg": "caixa", - "boxer.ogg": "", + "boxer.ogg": "boxejador", "boy.ogg": "noi", "braid.ogg": "trena", "brain.ogg": "cervell", "branch.ogg": "branca", - "bread.ogg": "pans", + "bread.ogg": "pa", "break.ogg": "trencar", - "breast.ogg": "", - "brick.ogg": "maons", - "bricklayer.ogg": "", + "breast.ogg": "pit", + "brick.ogg": "maó", + "bricklayer.ogg": "paleta", "bride.ogg": "núvia", "bridge.ogg": "pont", "bright.ogg": "brillant", - "broccoli.ogg": "", + "broccoli.ogg": "bròquil", "brother.ogg": "germà", "brown.ogg": "marró", "brush.ogg": "brotxa", - "bubble.ogg": "", - "bucket.ogg": "", + "bubble.ogg": "bombolla", + "bucket.ogg": "galleda", "bud.ogg": "brot", - "buffalo.ogg": "", + "buffalo.ogg": "búfal", "bug.ogg": "insecte", - "bulb.ogg": "", - "bull.ogg": "", + "bulb.ogg": "bombeta", + "bull.ogg": "toro", "bump.ogg": "bony", "bun.ogg": "brioix", - "bus.ogg": "", + "bus.ogg": "autobús", "bush.ogg": "arbust", - "butcher.ogg": "", - "butter.ogg": "", - "butterfly.ogg": "", - "button.ogg": "", - "cabbage.ogg": "", + "butcher.ogg": "carnisser", + "butter.ogg": "mantega", + "butterfly.ogg": "papallona", + "button.ogg": "botó", + "cabbage.ogg": "col", "cabin.ogg": "cabana", - "cacao.ogg": "", - "cactus.ogg": "", + "cacao.ogg": "cacau", + "cactus.ogg": "cactus", "cage.ogg": "gàbia", "cake.ogg": "pastís", "call.ogg": "trucada", "camel.ogg": "camell", - "camera.ogg": "", + "camera.ogg": "càmera", "camp.ogg": "acampar", - "can.ogg": "llaunes", - "canary.ogg": "", + "can.ogg": "llauna", + "canary.ogg": "canari", "candle.ogg": "espelma", "candy.ogg": "caramel", "cane.ogg": "bastó", "canoe.ogg": "canoa", - "canon.ogg": "", - "canyon.ogg": "", + "canon.ogg": "canó", + "canyon.ogg": "canó", "cap.ogg": "gorra", "cape.ogg": "capa", "car.ogg": "cotxe", - "carafe.ogg": "", + "carafe.ogg": "gerra", "card.ogg": "tarjeta", - "carnival.ogg": "", - "carpenter.ogg": "", - "carpet.ogg": "", + "carnival.ogg": "carnaval", + "carpenter.ogg": "fuster", + "carpet.ogg": "catifa", "carrot.ogg": "pastanaga", "cart.ogg": "carro", - "cash.ogg": "diners", + "cash.ogg": "diner", "castle.ogg": "castell", "cat.ogg": "gat", - "cat_female.ogg": "", + "cat_female.ogg": "gata", "catch.ogg": "pescar", - "caterpillar.ogg": "", - "cauldron.ogg": "", - "cauliflower.ogg": "", + "caterpillar.ogg": "eruga", + "cauldron.ogg": "caldera", + "cauliflower.ogg": "coliflor", "cave.ogg": "cova", - "cavern.ogg": "", - "celery.ogg": "", + "cavern.ogg": "caverna", + "celery.ogg": "api", "centipede.ogg": "centpeus", - "cereal.ogg": "", - "chain.ogg": "", + "cereal.ogg": "cereal", + "chain.ogg": "cadena", "chair.ogg": "cadira", "chalk.ogg": "guix", - "chameleon.ogg": "", - "chandelier.ogg": "", + "chameleon.ogg": "camaleó", + "chandelier.ogg": "aranya", "chat.ogg": "parlar", - "cheek.ogg": "", + "cheek.ogg": "galta", "cheer.ogg": "animar", "cheese.ogg": "formatge", - "chef.ogg": "", - "cherry.ogg": "cireres", + "chef.ogg": "cuiner", + "cherry.ogg": "cirera", "chest.ogg": "bagul", "chick.ogg": "pollet", "chicken.ogg": "pollastre", "chief.ogg": "indi", "child.ogg": "nen", - "chimney.ogg": "", + "chimney.ogg": "xemeneia", "chimp.ogg": "ximpanzé", "chin.ogg": "barbeta", "chocolate.ogg": "xocolata", "chop.ogg": "tallar", - "chore.ogg": "", - "christmas.ogg": "", - "cigar.ogg": "", - "circus.ogg": "", - "city.ogg": "", + "chore.ogg": "tasca de la llar", + "christmas.ogg": "nadal", + "cigar.ogg": "puro", + "circus.ogg": "circ", + "city.ogg": "ciutat", "clam.ogg": "cloïssa", "clap.ogg": "picar de mans", "class.ogg": "classe", "claw.ogg": "urpa", "clay.ogg": "argila", "clean.ogg": "rentar", - "cleaning_lady.ogg": "", + "cleaning_lady.ogg": "senyora de la neteja", "cliff.ogg": "penya-segat", "climb.ogg": "escalada", - "clock.ogg": "despertador", + "clock.ogg": "rellotge", "cloth.ogg": "drap", - "clothes_hanger.ogg": "", + "clothes_hanger.ogg": "penjador", "cloud.ogg": "núvol", - "cloudy.ogg": "", - "clover.ogg": "", + "cloudy.ogg": "ennuvolat", + "clover.ogg": "trèvol", "clown.ogg": "pallasso", "coach.ogg": "entrenador", - "coast.ogg": "", + "coast.ogg": "costa", "coat.ogg": "abric", - "cobra.ogg": "", - "coconut.ogg": "", - "cod.ogg": "", - "coffee.ogg": "", - "coin.ogg": "monedes", + "cobra.ogg": "cobra", + "coconut.ogg": "coco", + "cod.ogg": "bacallà", + "coffee.ogg": "cafè", + "coin.ogg": "moneda", "cold.ogg": "fred", - "color.ogg": "colors", - "colt.ogg": "", + "color.ogg": "color", + "colt.ogg": "poltre", "comb.ogg": "pinta", "cone.ogg": "con", - "cookie.ogg": "galetes", - "cork.ogg": "", + "cookie.ogg": "galeta", + "cork.ogg": "suro", "corn.ogg": "blat de moro", "couch.ogg": "sofà", - "cough.ogg": "", - "couple.ogg": "", + "cough.ogg": "tossir", + "couple.ogg": "parella", "cow.ogg": "vaca", "cowboy.ogg": "vaquer", "crab.ogg": "cranc", - "cradle.ogg": "", - "craft.ogg": "", + "cradle.ogg": "bressol", + "craft.ogg": "manualitat", "crawl.ogg": "gatejar", "crazy.ogg": "ximple", - "creek.ogg": "", - "crepe.ogg": "", - "crib.ogg": "bressols", - "criminal.ogg": "", + "creek.ogg": "rierol", + "crepe.ogg": "crep", + "crib.ogg": "bressol", + "criminal.ogg": "criminal", "croak.ogg": "raucar", "crocodile.ogg": "cocodril", - "cross.ogg": "", + "cross.ogg": "creu", "crow.ogg": "corb", "crown.ogg": "corona", "crumb.ogg": "engrunes", "crust.ogg": "crosta", "cry.ogg": "plorar", - "crystal.ogg": "", + "crystal.ogg": "vidre", "cube.ogg": "cub", "cucumber.ogg": "cogombre", - "curtain.ogg": "", + "curtain.ogg": "cortina", "cut.ogg": "tallar", "cute.ogg": "bufona", "dad.ogg": "pare", - "daffodil.ogg": "", - "daisy.ogg": "", - "dam.ogg": "", + "daffodil.ogg": "narcís", + "daisy.ogg": "margarida", + "dam.ogg": "presa", "dance.ogg": "ballar", - "dandelion.ogg": "", + "dandelion.ogg": "dent de lleó", "danger.ogg": "perill", - "dark.ogg": "", - "dart_board.ogg": "", - "date_fruit.ogg": "", - "deer.ogg": "", + "dark.ogg": "negra", + "dart_board.ogg": "tauler de dards", + "date_fruit.ogg": "dàtil", + "deer.ogg": "cérvol", "den.ogg": "cau", - "desert.ogg": "", + "desert.ogg": "desert", "desk.ogg": "escriptori", - "dessert.ogg": "", - "diamond.ogg": "", + "dessert.ogg": "postre", + "diamond.ogg": "diamant", "dig.ogg": "cavar", "dirt.ogg": "sòl", "dirty.ogg": "brut", "dish.ogg": "font", - "dishcloth.ogg": "", + "dishcloth.ogg": "drap de cuina", "dive.ogg": "immersió", - "doctor.ogg": "", - "doe.ogg": "", + "doctor.ogg": "metge", + "doe.ogg": "cérvola", "dog.ogg": "gos", - "doll.ogg": "", - "dolphin.ogg": "", - "domino.ogg": "", + "doll.ogg": "nina", + "dolphin.ogg": "dofí", + "domino.ogg": "dominó", "door.ogg": "porta", - "doormat.ogg": "", + "doormat.ogg": "estora", "dot.ogg": "punt", - "doughnut.ogg": "", - "dove.ogg": "", + "doughnut.ogg": "bunyol", + "dove.ogg": "colom", "dragon.ogg": "drac", - "dragonfly.ogg": "", + "dragonfly.ogg": "libèl·lula", "drank.ogg": "beure", - "draw.ogg": "dibuix", - "drawer.ogg": "", + "draw.ogg": "dibuixar", + "drawer.ogg": "calaix", "dream.ogg": "somiar", "dress.ogg": "vestit", - "drink.ogg": "tassa", - "drinking.ogg": "", - "drip.ogg": "", + "drink.ogg": "beguda", + "drinking.ogg": "beure", + "drip.ogg": "gota", "drive.ogg": "conduir", "drool.ogg": "bavejar", "drum.ogg": "tambor", "dry.ogg": "assecar", "duck.ogg": "ànec", - "duck_mother.ogg": "", + "duck_mother.ogg": "ànega", "dune.ogg": "duna", - "dwarf.ogg": "", - "eagle.ogg": "", + "dwarf.ogg": "nan", + "eagle.ogg": "àguila", "ear.ogg": "orella", "earth.ogg": "la Terra", "eat.ogg": "menjar", - "egg.ogg": "", - "eggplant.ogg": "", - "elbow.ogg": "", - "electrician.ogg": "", - "elk.ogg": "", + "egg.ogg": "ou", + "eggplant.ogg": "albergínia", + "elbow.ogg": "colze", + "electrician.ogg": "electricista", + "elk.ogg": "uapití", "empty.ogg": "buida", - "engine.ogg": "", - "engineer.ogg": "", - "eraser.ogg": "", - "explore.ogg": "exploradors", - "eyelash.ogg": "", - "eyes.ogg": "", + "engine.ogg": "motor", + "engineer.ogg": "enginyer", + "eraser.ogg": "goma d'esborrar", + "explore.ogg": "explorar", + "eyelash.ogg": "pestanya", + "eyes.ogg": "ull", "face.ogg": "cara", "fair.ogg": "atracció", - "fairy.ogg": "", - "fall_down.ogg": "", - "fall_season.ogg": "", - "family.ogg": "", + "fairy.ogg": "fada", + "fall_down.ogg": "caure", + "fall_season.ogg": "tardor", + "family.ogg": "família", "fan.ogg": "ventilador", "farm.ogg": "granja", - "farmer.ogg": "", + "farmer.ogg": "granger", "fat.ogg": "gras", - "faucet.ogg": "", - "fawn.ogg": "", + "faucet.ogg": "aixeta", + "fawn.ogg": "cervatell", "feast.ogg": "banquet", - "feather.ogg": "", - "feed.ogg": "", + "feather.ogg": "ploma", + "feed.ogg": "donar de menjar", "feet.ogg": "peu", "fell.ogg": "caure", - "femur.ogg": "", + "femur.ogg": "fèmur", "fetch.ogg": "informar", - "fig.ogg": "", + "fig.ogg": "figa", "fin.ogg": "aleta", "find.ogg": "trobar", - "finger.ogg": "", + "finger.ogg": "dit", "fire.ogg": "foc", - "fire_extinguisher.ogg": "", - "fireman.ogg": "", + "fire_extinguisher.ogg": "extintor", + "fireman.ogg": "bomber", "fish.ogg": "peix", - "fisherman.ogg": "", + "fisherman.ogg": "pescador", "fist.ogg": "puny", - "flacon.ogg": "", + "flacon.ogg": "dosificador", "flag.ogg": "bandera", "flame.ogg": "flama", - "flamingo.ogg": "", + "flamingo.ogg": "flamenc", "flash.ogg": "llanterna", - "flat.ogg": "pisos", + "flat.ogg": "pis", "flies.ogg": "mosca", - "flight.ogg": "", - "float.ogg": "flotador", + "flight.ogg": "vol", + "float.ogg": "flotar", "flour.ogg": "farina", "flower.ogg": "flor", - "fluff.ogg": "", + "fluff.ogg": "borrissol", "flute.ogg": "flauta", "fly.ogg": "volar", - "foam.ogg": "", + "foam.ogg": "escuma", "food.ogg": "hamburguesa", "foot.ogg": "peu", - "forest.ogg": "", + "forest.ogg": "bosc", "fork.ogg": "forquilla", "fountain.ogg": "font", "fox.ogg": "guineu", "freeze.ogg": "congelar", - "friend.ogg": "amics", - "fries.ogg": "", + "friend.ogg": "amic", + "fries.ogg": "patata fregida", "frog.ogg": "granota", "front.ogg": "davant", - "frown.ogg": "envejar", + "frown.ogg": "posar mala cara", "fruit.ogg": "fruita", - "fudge.ogg": "dolços de xocolata", + "fudge.ogg": "dolç de xocolata", "full.ogg": "ple", - "fun.ogg": "divertit", + "fun.ogg": "diversió", "fur.ogg": "pell", "game.ogg": "joc", - "garage.ogg": "", + "garage.ogg": "garatge", "garden.ogg": "jardi", - "garlic.ogg": "", - "gem.ogg": "joia", + "garlic.ogg": "all", + "gem.ogg": "gemma", "giant.ogg": "gegant", - "gift.ogg": "", + "gift.ogg": "regal", "giraffe.ogg": "girafa", - "girl.ogg": "dona", + "girl.ogg": "noia", "glass.ogg": "got", - "glasses.ogg": "", - "glove.ogg": "guants", + "glasses.ogg": "ulleres", + "glove.ogg": "guant", "glue.ogg": "cola", "gnome.ogg": "gnom", "goat.ogg": "cabra", - "golden.ogg": "", - "golf.ogg": "", - "goose.ogg": "", - "gorilla.ogg": "", - "grain.ogg": "", - "grandmother.ogg": "", - "grape.ogg": "", - "grapefruit.ogg": "", + "golden.ogg": "daurada", + "golf.ogg": "golf", + "goose.ogg": "oca", + "gorilla.ogg": "goril·la", + "grain.ogg": "gra", + "grandmother.ogg": "àvia", + "grape.ogg": "raïm", + "grapefruit.ogg": "pomelo", "grass.ogg": "herba", "grave.ogg": "tomba", "gray.ogg": "gris", "green.ogg": "verd", - "grill.ogg": "", + "grill.ogg": "graella", "grin.ogg": "somriure", "ground.ogg": "el terra", "growl.ogg": "grunyir", - "guignol.ogg": "", - "guinea_pig.ogg": "", + "guignol.ogg": "putxinel·li", + "guinea_pig.ogg": "conillet d'Índies", "gum.ogg": "xiclet", "hair.ogg": "cabell", - "hair_dryer.ogg": "", - "half.ogg": "", - "ham.ogg": "", - "hammer.ogg": "", + "hair_dryer.ogg": "assecador de cabell", + "half.ogg": "meitat", + "ham.ogg": "pernil", + "hammer.ogg": "martell", "hand.ogg": "mà", - "handlebar.ogg": "", + "handlebar.ogg": "manillar", "happy.ogg": "feliç", - "harp.ogg": "", + "harp.ogg": "arpa", "hat.ogg": "barret", "hatch.ogg": "sortir de l'ou", "hay.ogg": "farratge", "head.ogg": "cap", "hear.ogg": "sentir", "heat.ogg": "calor", "hedge.ogg": "tanca", - "hedgehog.ogg": "", - "heel.ogg": "", - "helmet.ogg": "", + "hedgehog.ogg": "eriçó", + "heel.ogg": "taló", + "helmet.ogg": "casc", "hen.ogg": "gallina", "herd.ogg": "ramat", - "high.ogg": "a gran altura", - "hike.ogg": "caminada", - "hill.ogg": "", + "high.ogg": "a gran alçada", + "hike.ogg": "caminar", + "hill.ogg": "turó", "hip.ogg": "maluc", - "hippopotamus.ogg": "", - "hit.ogg": "pegar", - "hive.ogg": "", - "hockey.ogg": "", + "hippopotamus.ogg": "hipopòtam", + "hit.ogg": "colpejar", + "hive.ogg": "rusc", + "hockey.ogg": "hoquei", "hole.ogg": "forat", "home.ogg": "casa", "hook.ogg": "ham", "hop.ogg": "saltar", - "horse.ogg": "", + "horse.ogg": "cavall", "hose.ogg": "mànega", - "hospital.ogg": "", + "hospital.ogg": "hospital", "hot.ogg": "calent", - "hot_dog.ogg": "", - "hound.ogg": "empaita", - "house.ogg": "", + "hot_dog.ogg": "frankfurt", + "hound.ogg": "gos de caça", + "house.ogg": "casa", "howl.ogg": "udolar", "hug.ogg": "abraçar", "huge.ogg": "enorme", - "hummingbird.ogg": "", - "hunchback.ogg": "", + "hummingbird.ogg": "colibrí", + "hunchback.ogg": "geperut", "hunter.ogg": "caçador", - "husband.ogg": "", + "husband.ogg": "marit", "hut.ogg": "cabana", - "hyena.ogg": "", + "hyena.ogg": "hiena", "ice.ogg": "glaçó", - "iceberg.ogg": "", - "iguana.ogg": "", - "ill.ogg": "", + "iceberg.ogg": "iceberg", + "iguana.ogg": "iguana", + "ill.ogg": "malalt", "ink.ogg": "tinta", - "island.ogg": "", - "jacket.ogg": "", - "jaguar.ogg": "", - "jam.ogg": "", - "jay.ogg": "", - "jelly.ogg": "", - "jellyfish.ogg": "", + "island.ogg": "illa", + "jacket.ogg": "jaqueta", + "jaguar.ogg": "jaguar", + "jam.ogg": "melmelada", + "jay.ogg": "gaig", + "jelly.ogg": "gelatina", + "jellyfish.ogg": "medusa", "jewel.ogg": "joia", - "job.ogg": "", - "jockey.ogg": "", + "job.ogg": "treball", + "jockey.ogg": "joquei", "jog.ogg": "fúting", "judge.ogg": "jutge", - "judo.ogg": "", - "juggler.ogg": "", + "judo.ogg": "judo", + "juggler.ogg": "malabarista", "juice.ogg": "suc", "jump.ogg": "saltar", - "kangaroo.ogg": "", + "kangaroo.ogg": "cangur", "keel.ogg": "", - "kernel.ogg": "", - "keyboard.ogg": "", - "kimono.ogg": "", - "king.ogg": "", - "kiss.ogg": "", - "kitchen.ogg": "", + "kernel.ogg": "nucli", + "keyboard.ogg": "teclat", + "kimono.ogg": "quimono", + "king.ogg": "rei", + "kiss.ogg": "petó", + "kitchen.ogg": "cuina", "kite.ogg": "estel", - "kitten.ogg": "", - "kiwi.ogg": "", + "kitten.ogg": "gatet", + "kiwi.ogg": "kiwi", "knee.ogg": "genoll", "kneel.ogg": "agenollar", "knife.ogg": "ganivet", "knight.ogg": "cavaller", - "knit.ogg": "punt de mitja", + "knit.ogg": "teixir", "knot.ogg": "nus", - "koala.ogg": "", + "koala.ogg": "coala", "lad.ogg": "mosso", - "lady.ogg": "", - "ladybug.ogg": "", + "lady.ogg": "dama", + "ladybug.ogg": "marieta", "lake.ogg": "llac", - "lama.ogg": "", + "lama.ogg": "llama", "lamb.ogg": "xai", "lamp.ogg": "el llum", "land.ogg": "terreny", - "lane.ogg": "carrils", + "lane.ogg": "carril", "lap.ogg": "a la falda", - "lasso.ogg": "", - "laugh.ogg": "", - "lava.ogg": "", + "lasso.ogg": "llaç", + "laugh.ogg": "riure", + "lava.ogg": "lava", "lawn.ogg": "gespa", - "lawyer.ogg": "", - "leaf.ogg": "", + "lawyer.ogg": "advocat", + "leaf.ogg": "fulla", "ledge.ogg": "sortint", - "leek.ogg": "", + "leek.ogg": "porro", "left.ogg": "esquerra", - "leg.ogg": "", - "leg_animal.ogg": "", - "lemon.ogg": "", - "lemonade.ogg": "", - "lemur.ogg": "", - "leopard.ogg": "", - "lettuce.ogg": "", - "librarian.ogg": "", + "leg.ogg": "cama", + "leg_animal.ogg": "pota", + "lemon.ogg": "llimona", + "lemonade.ogg": "llimonada", + "lemur.ogg": "lèmur", + "leopard.ogg": "lleopard", + "lettuce.ogg": "enciam", + "librarian.ogg": "bibliotecària", "lick.ogg": "llepar", "lid.ogg": "tapa", "lift.ogg": "aixecar", - "light.ogg": "la llum", - "lighthouse.ogg": "", - "lightning.ogg": "", - "lilac.ogg": "", + "light.ogg": "el llum", + "lighthouse.ogg": "far", + "lightning.ogg": "llamp", + "lilac.ogg": "lilà", "lime.ogg": "llima", "line.ogg": "codi de barres", "link.ogg": "enllaç", - "lion.ogg": "", - "lion_cub.ogg": "", - "lip.ogg": "llavis", - "liquid.ogg": "liquid", - "lizard.ogg": "", - "lobster.ogg": "", - "log.ogg": "troncs", + "lion.ogg": "lleó", + "lion_cub.ogg": "cadell de lleó", + "lip.ogg": "llavi", + "liquid.ogg": "líquid", + "lizard.ogg": "llangardaix", + "lobster.ogg": "llagosta", + "log.ogg": "tronc", "look.ogg": "mirar-se", - "lunch.ogg": "aperitiu", + "lunch.ogg": "dinar", "mad.ogg": "ira", - "magic.ogg": "mag", - "magnet.ogg": "", - "magnifying_glass.ogg": "", - "magpie.ogg": "", - "mail.ogg": "", - "man.ogg": "", + "magic.ogg": "màgic", + "magnet.ogg": "imant", + "magnifying_glass.ogg": "lupa", + "magpie.ogg": "garsa", + "mail.ogg": "correu", + "man.ogg": "home", "mane.ogg": "cabellera", - "mango.ogg": "", + "mango.ogg": "mango", "map.ogg": "mapa", - "maple.ogg": "", - "marble.ogg": "", - "mashed_potatoes.ogg": "", + "maple.ogg": "auró", + "marble.ogg": "bala", + "mashed_potatoes.ogg": "puré de patates", "mask.ogg": "màscara", - "mast.ogg": "", + "mast.ogg": "màstil", "mat.ogg": "estora", - "match.ogg": "llumins", - "mate.ogg": "amics", - "mattress.ogg": "", - "mauve.ogg": "", - "meal.ogg": "", - "meat.ogg": "", - "mechanic.ogg": "", - "medal.ogg": "", + "match.ogg": "llumí", + "mate.ogg": "company", + "mattress.ogg": "matalàs", + "mauve.ogg": "malva", + "meal.ogg": "àpat", + "meat.ogg": "carn", + "mechanic.ogg": "mecànic", + "medal.ogg": "medalla", "meet.ogg": "trobar-se", - "melon.ogg": "", + "melon.ogg": "meló", "men.ogg": "multitud", - "merry-go-round.ogg": "", + "merry-go-round.ogg": "cavallet", "mice.ogg": "ratolins", - "microphone.ogg": "", - "milk.ogg": "", - "mill.ogg": "", - "mimosa.ogg": "", - "mirror.ogg": "", - "mixer.ogg": "", + "microphone.ogg": "micròfon", + "milk.ogg": "llet", + "mill.ogg": "molí", + "mimosa.ogg": "mimosa", + "mirror.ogg": "mirall", + "mixer.ogg": "mesclador", "mole.ogg": "talp", - "mom.ogg": "", - "moon.ogg": "", - "moose.ogg": "", + "mom.ogg": "mama", + "moon.ogg": "Lluna", + "moose.ogg": "ant", "mop.ogg": "fregona", - "mosque.ogg": "", + "mosque.ogg": "mesquita", "mosquito.ogg": "mosquit", - "mother.ogg": "", - "motorcycle.ogg": "", - "mountain.ogg": "", - "mouse.ogg": "", + "mother.ogg": "mare", + "motorcycle.ogg": "moto", + "mountain.ogg": "muntanya", + "mouse.ogg": "ratolí", "mouth.ogg": "boca", - "movie.ogg": "", - "mower.ogg": "", + "movie.ogg": "pel·lícula", + "mower.ogg": "tallagespa", "mud.ogg": "fang", "mug.ogg": "tassa", "mule.ogg": "mula", - "muscle.ogg": "", + "muscle.ogg": "múscul", "mushroom.ogg": "bolet", - "music.ogg": "", - "musician.ogg": "", - "naked.ogg": "", + "music.ogg": "música", + "musician.ogg": "músic", + "naked.ogg": "nu", "nap.ogg": "migdiada", - "navel.ogg": "", + "navel.ogg": "melic", "neck.ogg": "coll", - "necklace.ogg": "", - "needle.ogg": "", + "necklace.ogg": "collaret", + "needle.ogg": "agulla", "nest.ogg": "niu", "net.ogg": "xarxa", - "newspaper.ogg": "", + "newspaper.ogg": "diari", "night.ogg": "nit", - "nightgown.ogg": "", + "nightgown.ogg": "camisa de dormir", "nose.ogg": "nas", - "nostril.ogg": "", - "notebook.ogg": "", - "number.ogg": "", - "nun.ogg": "", - "nurse.ogg": "", - "nurse_male.ogg": "", + "nostril.ogg": "nariu", + "notebook.ogg": "quadern", + "number.ogg": "número", + "nun.ogg": "monja", + "nurse.ogg": "infermera", + "nurse_male.ogg": "infermer", "nut.ogg": "cacauet", - "oar.ogg": "rems", + "oar.ogg": "rem", "ocean.ogg": "oceà", - "office.ogg": "", - "olive.ogg": "", + "office.ogg": "oficina", + "olive.ogg": "oliva", "on.ogg": "sobre", - "onion.ogg": "", - "open.ogg": "", - "opossum.ogg": "", + "onion.ogg": "ceba", + "open.ogg": "oberta", + "opossum.ogg": "opòssum", "orange-color.ogg": "taronja", "orange.ogg": "taronja", - "orchid.ogg": "", - "ostrich.ogg": "", - "otter.ogg": "", + "orchid.ogg": "orquídia", + "ostrich.ogg": "estruç", + "otter.ogg": "llúdriga", "owl.ogg": "òliba", "ox.ogg": "bou", - "oyster.ogg": "", - "pacifier.ogg": "", + "oyster.ogg": "ostra", + "pacifier.ogg": "xumet", "page.ogg": "pàgina", "pair.ogg": "parell", - "pajamas.ogg": "", + "pajamas.ogg": "pijama", "pal.ogg": "col·legues", - "palm_tree.ogg": "", + "palm_tree.ogg": "palmera", "pan.ogg": "paella", - "panda.ogg": "", - "panther.ogg": "", - "panties.ogg": "", - "pants.ogg": "", - "papaya.ogg": "", - "paper.ogg": "", - "parachute.ogg": "", - "parakeet.ogg": "", - "parrot.ogg": "", + "panda.ogg": "ós panda", + "panther.ogg": "pantera", + "panties.ogg": "calces", + "pants.ogg": "pantalons", + "papaya.ogg": "papaia", + "paper.ogg": "paper", + "parachute.ogg": "paracaigudes", + "parakeet.ogg": "periquito", + "parrot.ogg": "lloro", "patch.ogg": "pedaç", "path.ogg": "camí", "paw.ogg": "pota", - "pea.ogg": "", - "peach.ogg": "préssecs", - "peacock.ogg": "", - "peak.ogg": "", - "pear.ogg": "", - "pearl.ogg": "", + "pea.ogg": "pèsol", + "peach.ogg": "préssec", + "peacock.ogg": "paó", + "peak.ogg": "pic", + "pear.ogg": "pera", + "pearl.ogg": "perla", "peck.ogg": "picotejar", - "pedal.ogg": "", - "pelican.ogg": "", + "pedal.ogg": "pedal", + "pelican.ogg": "pelicà", "pen.ogg": "bolígraf", "pencil.ogg": "llapis", - "peony.ogg": "", - "people.ogg": "", - "pepper.ogg": "", - "peppers.ogg": "", + "peony.ogg": "peònia", + "people.ogg": "gent", + "pepper.ogg": "pebre", + "peppers.ogg": "pebrot", "pet.ogg": "mascota", - "petal.ogg": "", - "petite.ogg": "", - "phone.ogg": "", - "piano.ogg": "", + "petal.ogg": "pètal", + "petite.ogg": "petita", + "phone.ogg": "telèfon", + "piano.ogg": "piano", "picture.ogg": "pintura", - "pie.ogg": "", + "pie.ogg": "pastís", "pig.ogg": "porc", - "pigeon.ogg": "", - "pill.ogg": "", - "pillow.ogg": "", - "pilot.ogg": "", + "pigeon.ogg": "tórtora", + "pill.ogg": "píndola", + "pillow.ogg": "coixí", + "pilot.ogg": "pilot", "pine.ogg": "pi", - "pine_cone.ogg": "", + "pine_cone.ogg": "pinya", "pink.ogg": "rosa", - "pip.ogg": "", - "pipe.ogg": "", - "piranha.ogg": "", - "pirate.ogg": "", - "pizza.ogg": "", + "pip.ogg": "pinyol", + "pipe.ogg": "pipa", + "piranha.ogg": "piranya", + "pirate.ogg": "pirata", + "pizza.ogg": "pizza", "plane.ogg": "avió", - "planet.ogg": "", - "plant.ogg": "plantes", + "planet.ogg": "planeta", + "plant.ogg": "planta", "plate.ogg": "plat", "play.ogg": "jugar", - "pliers.ogg": "", + "pliers.ogg": "alicates", "plow.ogg": "llaurar", - "plum.ogg": "prunes", - "plumber.ogg": "", - "pocket.ogg": "", - "pod.ogg": "", + "plum.ogg": "pruna", + "plumber.ogg": "fontaner", + "pocket.ogg": "butxaca", + "pod.ogg": "beina", "pole.ogg": "pal", - "police.ogg": "", - "pompon.ogg": "", - "pond.ogg": "", - "pony.ogg": "", + "police.ogg": "policia", + "pompon.ogg": "pompó", + "pond.ogg": "estany", + "pony.ogg": "poni", "pool.ogg": "piscina", "pop.ogg": "crispetes", "pope.ogg": "papa", - "porthole.ogg": "", - "post.ogg": "", + "porthole.ogg": "ull de bou", + "post.ogg": "bústia", "pot.ogg": "olla", - "potato.ogg": "", + "potato.ogg": "patata", "pounce.ogg": "saltar", - "president.ogg": "", + "president.ogg": "president", "pretty.ogg": "bella", "price.ogg": "preu", - "priest.ogg": "", + "priest.ogg": "sacerdot", "prince.ogg": "princep", "princess.ogg": "princesa", - "prison.ogg": "", - "prisoner.ogg": "", + "prison.ogg": "presó", + "prisoner.ogg": "pres", "prize.ogg": "trofeu", "pug.ogg": "carlí", - "pull.ogg": "", - "pullover.ogg": "", - "pumpkin.ogg": "", + "pull.ogg": "estirar", + "pullover.ogg": "jersei", + "pumpkin.ogg": "carbassa", "puppy.ogg": "cadell", - "pyramid.ogg": "", + "pyramid.ogg": "piràmide", "quarrel.ogg": "baralla", "queen.ogg": "reina", "question.ogg": "pregunta", "quilt.ogg": "edredó", "quiz.ogg": "examen", - "rabbit.ogg": "", - "rabbit_baby.ogg": "", - "race.ogg": "", - "radio.ogg": "", - "radish.ogg": "", - "raft.ogg": "", + "rabbit.ogg": "conill", + "rabbit_baby.ogg": "conill jove", + "race.ogg": "cursa", + "radio.ogg": "ràdio", + "radish.ogg": "rave", + "raft.ogg": "barca solera", "rag.ogg": "drap", "rage.ogg": "ràbia", - "rain.ogg": "", - "raincoat.ogg": "", + "rain.ogg": "pluja", + "raincoat.ogg": "impermeable", "rake.ogg": "rasclet", "ramp.ogg": "rampa", "ran.ogg": "córrer", - "raspberry.ogg": "", + "raspberry.ogg": "gerd", "rat.ogg": "rata", - "razor.ogg": "", + "razor.ogg": "maquineta d'afaitar", "read.ogg": "llegir", "red.ogg": "vermell", - "reptile.ogg": "", - "rhinoceros.ogg": "", + "reptile.ogg": "rèptil", + "rhinoceros.ogg": "rinoceront", "rice.ogg": "arròs", - "ride.ogg": "anar amb bicicleta", - "rifle.ogg": "", + "ride.ogg": "ciclista", + "rifle.ogg": "rifle", "right.ogg": "dreta", "rip.ogg": "estripar", - "rise.ogg": "", - "river.ogg": "", - "road.ogg": "", - "roast.ogg": "", - "robe.ogg": "", - "robot.ogg": "", - "rock.ogg": "roques", - "rocket.ogg": "", - "rolling_pin.ogg": "", - "roof.ogg": "sostre", - "room.ogg": "", - "root.ogg": "", + "rise.ogg": "pujar", + "river.ogg": "riu", + "road.ogg": "carretera", + "roast.ogg": "rostit", + "robe.ogg": "mantell", + "robot.ogg": "robot", + "rock.ogg": "roca", + "rocket.ogg": "coet", + "rolling_pin.ogg": "corró", + "roof.ogg": "teulada", + "room.ogg": "habitació", + "root.ogg": "arrel", "rope.ogg": "corda", "rose.ogg": "rosa", "round.ogg": "circular", - "rowing.ogg": "", + "rowing.ogg": "rem", "royal.ogg": "reial", "rug.ogg": "catifa", "run.ogg": "córrer", "sad.ogg": "trist", - "saddle.ogg": "", + "saddle.ogg": "cadira de muntar", "sail.ogg": "veler", - "sailor.ogg": "", - "salamander.ogg": "", - "salmon.ogg": "", + "sailor.ogg": "mariner", + "salamander.ogg": "salamandra", + "salmon.ogg": "salmó", "sand.ogg": "sorra", - "sandals.ogg": "", + "sandals.ogg": "sandàlia", "sandwich.ogg": "sandvitx", - "sash.ogg": "", + "sash.ogg": "faixa", "sat.ogg": "seure", "sauce.ogg": "salsa", - "sausage.ogg": "", + "sausage.ogg": "salsitxa", "scale.ogg": "balança", "scar.ogg": "cicatriu", - "scared.ogg": "espantat", + "scared.ogg": "espantar", "scarf.ogg": "bufanda", - "school.ogg": "col·legi", - "school_bag.ogg": "", + "school.ogg": "escola", + "school_bag.ogg": "motxilla", "science.ogg": "ciència", - "scissors.ogg": "", - "scorpion.ogg": "", + "scissors.ogg": "tisores", + "scorpion.ogg": "escorpí", "scratch.ogg": "esgarrapar", "scream.ogg": "cridar", "screw.ogg": "vis", - "screwdriver.ogg": "", - "scribble.ogg": "gargot", - "sea.ogg": "", + "screwdriver.ogg": "tornavís", + "scribble.ogg": "fer un gargot", + "sea.ogg": "mar", "seat.ogg": "seient", "see.ogg": "mirar", - "seed.ogg": "llavors", - "shadow.ogg": "", + "seed.ogg": "llavor", + "shadow.ogg": "ombra", "shake.ogg": "sacsejar", "shark.ogg": "tauró", - "shave.ogg": "", + "shave.ogg": "esquilar", "shed.ogg": "cobert", - "sheep.ogg": "", + "sheep.ogg": "ovella", "shelf.ogg": "prestatge", "shell.ogg": "closca", "ship.ogg": "vaixell", "shirt.ogg": "camisa", "shoe.ogg": "sabata", - "shoelace.ogg": "", + "shoelace.ogg": "cordó", "shop.ogg": "botiga", "shore.ogg": "riba", "short.ogg": "pantalons curts", - "shovel.ogg": "", + "shovel.ogg": "recollidor", "shower.ogg": "dutxa", "shrimp.ogg": "gamba", "shrub.ogg": "arbust", - "shut.ogg": "tancat", - "shutter.ogg": "", + "shut.ogg": "tancada", + "shutter.ogg": "finestró", "sick.ogg": "malalt", - "sidewalk.ogg": "", + "sidewalk.ogg": "vorera", "sign.ogg": "el senyal", "sing.ogg": "cantar", "sink.ogg": "pica", "sip.ogg": "xarrupar", - "sister.ogg": "", + "sister.ogg": "germana", "sit.ogg": "seure", "skate.ogg": "patinar", - "skeleton.ogg": "", + "skeleton.ogg": "esquelet", "ski.ogg": "esquiar", - "skimmer.ogg": "", + "skimmer.ogg": "escumadora", "skin.ogg": "pell", "skirt.ogg": "faldilla", "skunk.ogg": "mofeta", "sky.ogg": "cel", - "slam.ogg": "", + "slam.ogg": "esmaixada", "sled.ogg": "trineu", "sleep.ogg": "dormir", "sleeve.ogg": "màniga", "sleigh.ogg": "trineu", "slide.ogg": "tobogan", - "slim.ogg": "", + "slim.ogg": "prima", "slime.ogg": "bava", - "slippers.ogg": "", + "slippers.ogg": "sabatilla", "slope.ogg": "pendent", - "sloppy.ogg": "", - "slot.ogg": "", - "sloth.ogg": "", - "slug.ogg": "", + "sloppy.ogg": "descuidat", + "slot.ogg": "ranura", + "sloth.ogg": "peresós", + "slug.ogg": "llimac", "small.ogg": "petit", "smell.ogg": "olorar", - "smile.ogg": "somriure", - "smock.ogg": "brusa", + "smile.ogg": "riure", + "smock.ogg": "bata", "smoke.ogg": "fum", "smooch.ogg": "bessar", "snack.ogg": "mos", "snail.ogg": "cargol", "snake.ogg": "serp", "sneaker.ogg": "sabatilla deportiva", "sniff.ogg": "ensumar", "snow.ogg": "neu", - "soap.ogg": "", - "sob.ogg": "", + "soap.ogg": "sabó", + "sob.ogg": "sanglotar", "sock.ogg": "mitjó", - "soldier.ogg": "", - "sole.ogg": "", - "sole_shoe.ogg": "", - "son.ogg": "", - "soup.ogg": "", - "spade.ogg": "", + "soldier.ogg": "soldat", + "sole.ogg": "llenguado", + "sole_shoe.ogg": "sola de la sabata", + "son.ogg": "fill", + "soup.ogg": "sopa", + "spade.ogg": "pala", "spaghetti.ogg": "espagueti", - "spark.ogg": "", - "sparrow.ogg": "", - "spatula.ogg": "", - "speak.ogg": "", - "spear.ogg": "la llança", - "spice.ogg": "", + "spark.ogg": "guspira", + "sparrow.ogg": "pardal", + "spatula.ogg": "espàtula", + "speak.ogg": "parlar", + "spear.ogg": "llança", + "spice.ogg": "espècia", "spider.ogg": "aranya", - "spider_web.ogg": "", + "spider_web.ogg": "teranyina", "spike.ogg": "eriçó", "spill.ogg": "vessar", - "spinach.ogg": "", - "spine.ogg": "", - "spinning_top.ogg": "", - "splash.ogg": "doll d'aigua", + "spinach.ogg": "espinac", + "spine.ogg": "espina", + "spinning_top.ogg": "baldufa", + "splash.ogg": "esquitxar", "splatter.ogg": "esquitxada", "sponge.ogg": "esponja", - "spool.ogg": "", + "spool.ogg": "rodet", "spoon.ogg": "cullera", "sport.ogg": "esport", "spot.ogg": "taca", "spray.ogg": "ruixar", "spread.ogg": "untar", "spring.ogg": "botar", - "spring_season.ogg": "", + "spring_season.ogg": "primavera", "sprinkle.ogg": "espurnes", "square.ogg": "quadrat", "squash.ogg": "carbassó", "squat.ogg": "ajupir", "squid.ogg": "calamar", "squirrel.ogg": "esquirol", "squirt.ogg": "pulveritzador", - "stack.ogg": "apilar", + "stack.ogg": "pila", "stage.ogg": "escenari", - "staircase.ogg": "", + "staircase.ogg": "escala", "stamp.ogg": "segell", "stand.ogg": "dret", "star.ogg": "estel", "stare.ogg": "mirar fixament", "starfish.ogg": "estrella de mar", - "steak.ogg": "", - "steam.ogg": "", - "steep.ogg": "", - "steeple.ogg": "", + "steak.ogg": "filet", + "steam.ogg": "vapor", + "steep.ogg": "empinat", + "steeple.ogg": "campanar", "stem.ogg": "tija", - "step.ogg": "", + "step.ogg": "esglaó", "stew.ogg": "guisat", "stick.ogg": "branca", "sting.ogg": "fibló", - "stinky.ogg": "", - "stitch.ogg": "", - "stomach.ogg": "", - "stone.ogg": "pedres", + "stinky.ogg": "pudor", + "stitch.ogg": "puntada", + "stomach.ogg": "estómac", + "stone.ogg": "pedra", "stop.ogg": "aturar", "store.ogg": "botiga", "stove.ogg": "cuina", "straight.ogg": "recte", - "strainer.ogg": "", - "straw.ogg": "palles", + "strainer.ogg": "colador", + "straw.ogg": "palla", "strawberry.ogg": "maduixa", - "stream.ogg": "riu", + "stream.ogg": "corrent", "street.ogg": "carrer", - "stretch.ogg": "estiraments", + "stretch.ogg": "estirar", "string.ogg": "cordill", - "stripe.ogg": "ratlles", - "strong.ogg": "fortalesa", - "student.ogg": "", + "stripe.ogg": "ratlla", + "strong.ogg": "fort", + "student.ogg": "estudiant", "study.ogg": "estudiar", "stump.ogg": "tronc", - "sugar.ogg": "", - "suit.ogg": "vestit", - "suitcase.ogg": "", + "sugar.ogg": "sucre", + "suit.ogg": "mudada", + "suitcase.ogg": "maleta", "summer.ogg": "estiu", - "summit.ogg": "", - "sun.ogg": "sol", + "summit.ogg": "cim", + "sun.ogg": "el Sol", "swan.ogg": "cigne", "sweat.ogg": "suor", - "sweatshirt.ogg": "", + "sweatshirt.ogg": "dessuadora", "swim.ogg": "nedar", - "table.ogg": "", - "tablecloth.ogg": "", - "tadpole.ogg": "", + "table.ogg": "taula", + "tablecloth.ogg": "estovalles", + "tadpole.ogg": "capgròs", "tag.ogg": "etiqueta", - "tail.ogg": "", + "tail.ogg": "cua", "tall.ogg": "alt", - "tape_measure.ogg": "", - "taxi.ogg": "", + "tape_measure.ogg": "cinta mètrica", + "taxi.ogg": "taxi", "teach.ogg": "ensenyar", "teacher.ogg": "professora", - "tear.ogg": "estripar", - "teddy.ogg": "", - "teeth.ogg": "dents", - "television.ogg": "", - "temple.ogg": "", - "tennis.ogg": "", - "tent.ogg": "", - "text.ogg": "", + "tear.ogg": "esquinçar", + "teddy.ogg": "peluix", + "teeth.ogg": "dentadura", + "television.ogg": "televisió", + "temple.ogg": "temple", + "tennis.ogg": "tennis", + "tent.ogg": "tenda", + "text.ogg": "text", "thick.ogg": "gruixut", - "thief.ogg": "", + "thief.ogg": "lladre", "thigh.ogg": "cuixa", "think.ogg": "pensar", "thread.ogg": "bobina", "throat.ogg": "gola", "throw.ogg": "llançar", - "thumb.ogg": "", + "thumb.ogg": "polze", "tick.ogg": "paparra", - "ticket.ogg": "", - "tiger.ogg": "", + "ticket.ogg": "bitllet", + "tiger.ogg": "tigre", "time.ogg": "temps", - "tin.ogg": "", - "tire.ogg": "", + "tin.ogg": "llauna", + "tire.ogg": "pneumàtic", "tired.ogg": "cansat", - "tissue.ogg": "", - "toad.ogg": "", - "toaster.ogg": "", - "toe.ogg": "", + "tissue.ogg": "mocador", + "toad.ogg": "gripau", + "toaster.ogg": "torradora", + "toe.ogg": "dit del peu", "toilet.ogg": "vàter", - "tomatoe.ogg": "", - "tongs.ogg": "", - "tongue.ogg": "", - "tool.ogg": "eines", - "top.ogg": "al cim", + "tomatoe.ogg": "tomàquet", + "tongs.ogg": "pinces", + "tongue.ogg": "llengua", + "tool.ogg": "eina", + "top.ogg": "cim", "torch.ogg": "torxa", "touch.ogg": "tocar", "towel.ogg": "tovallola", "toy.ogg": "joguina", "trail.ogg": "sender", "train.ogg": "tren", - "train_station.ogg": "", + "train_station.ogg": "estació de tren", "trap.ogg": "parany", "trash.ogg": "escombraries", "tray.ogg": "safata", - "treat.ogg": "dolços", + "treat.ogg": "dolç", "tree.ogg": "arbre", - "triangle.ogg": "", - "tribe.ogg": "", - "trip.ogg": "", + "triangle.ogg": "triangle", + "tribe.ogg": "tribu", + "trip.ogg": "viatge", "truck.ogg": "camió", "tube.ogg": "llapis de llavis", - "tulip.ogg": "", + "tulip.ogg": "tulipa", "tune.ogg": "melodia", - "turkey.ogg": "", - "turnip.ogg": "", - "turtle.ogg": "", - "tusk.ogg": "", - "twin_boys.ogg": "", - "twin_girls.ogg": "", - "umbrella.ogg": "", + "turkey.ogg": "gall dindi", + "turnip.ogg": "nap", + "turtle.ogg": "tortuga", + "tusk.ogg": "ullal", + "twin_boys.ogg": "bessons", + "twin_girls.ogg": "bessones", + "umbrella.ogg": "paraigua", "under.ogg": "sota", - "uniform.ogg": "", + "uniform.ogg": "uniforme", "van.ogg": "furgoneta", - "vapor.ogg": "", - "vase.ogg": "", - "vegetable.ogg": "", - "vein.ogg": "", - "verdure.ogg": "", - "vest.ogg": "", + "vapor.ogg": "vapor", + "vase.ogg": "gerro", + "vegetable.ogg": "vegetal", + "vein.ogg": "vena", + "verdure.ogg": "verdura", + "vest.ogg": "armilla", "vet.ogg": "veterinari", - "viper.ogg": "", - "vowel.ogg": "", - "vulture.ogg": "", + "viper.ogg": "escurçó", + "vowel.ogg": "vocal", + "vulture.ogg": "voltor", "wag.ogg": "moure la cua", "walk.ogg": "caminar", - "wall.ogg": "", - "walnut.ogg": "", - "wart.ogg": "", + "wall.ogg": "mur", + "walnut.ogg": "nou", + "wart.ogg": "berruga", "wash.ogg": "banyar", - "wasp.ogg": "", + "wasp.ogg": "vespa", "watch.ogg": "rellotge", "water.ogg": "aigua", - "wave.ogg": "", - "wedding.ogg": "", + "wave.ogg": "onada", + "wedding.ogg": "casament", "wedge.ogg": "falca", - "weight.ogg": "", + "weight.ogg": "pesa", "wet.ogg": "mullat", - "whale.ogg": "", + "whale.ogg": "balena", "wheat.ogg": "blat", "wheel.ogg": "roda", "whisk.ogg": "batedora", "whisper.ogg": "xiuxiuejar", "white.ogg": "blanc", - "wide.ogg": "", - "wife.ogg": "", + "wide.ogg": "ample", + "wife.ogg": "muller", "wig.ogg": "perruca", "win.ogg": "guanyar", "wind.ogg": "vent", - "window.ogg": "", - "window_glass.ogg": "", + "window.ogg": "finestra", + "window_glass.ogg": "vidre de la finestra", "wing.ogg": "ala", - "winter.ogg": "", - "wolf.ogg": "", - "woman.ogg": "", + "winter.ogg": "hivern", + "wolf.ogg": "llop", + "woman.ogg": "dona", "wood.ogg": "fusta", - "word.ogg": "", - "worker.ogg": "", - "world.ogg": "", - "wreath.ogg": "", + "word.ogg": "paraula", + "worker.ogg": "treballador", + "world.ogg": "món", + "wreath.ogg": "garlanda", "wrench.ogg": "clau anglesa", "wrist.ogg": "canell", "write.ogg": "escriure", - "yellow.ogg": "", - "yogurt.ogg": "", - "yum.ogg": "saborós", - "zebra.ogg": "", - "zipper.ogg": "", + "yellow.ogg": "groc", + "yogurt.ogg": "iogurt", + "yum.ogg": "deliciós", + "zebra.ogg": "zebra", + "zipper.ogg": "cremallera", "zoo.ogg": "zoològic" } diff --git a/src/activities/lang/resource/content-pt_BR.json b/src/activities/lang/resource/content-pt_BR.json index 9c750833f..f4be2e63a 100644 --- a/src/activities/lang/resource/content-pt_BR.json +++ b/src/activities/lang/resource/content-pt_BR.json @@ -1,1113 +1,1113 @@ { "10.ogg": "dez", "11.ogg": "onze", "12.ogg": "doze", "16.ogg": "dezesseis", "U0030.ogg": "zero", "U0031.ogg": "um", "U0032.ogg": "dois", "U0033.ogg": "três", "U0034.ogg": "quatro", "U0035.ogg": "cinco", "U0036.ogg": "seis", "U0037.ogg": "sete", "U0038.ogg": "oito", "U0039.ogg": "nove", "accountant.ogg": "", "ache.ogg": "", "acorn.ogg": "", "actor.ogg": "", "air_horn.ogg": "", "alarmclock.ogg": "", "alligator.ogg": "jacaré", "alphabet.ogg": "", "anchor.ogg": "âncora", "angel.ogg": "anjo", "angry.ogg": "", "animal.ogg": "animais", "ankle.ogg": "", "ant.ogg": "", "anteater.ogg": "", "antelope.ogg": "", "apple.ogg": "", "apple_tree.ogg": "", "appliance.ogg": "", "apricot.ogg": "", "arm.ogg": "", "armchair.ogg": "", "artichoke.ogg": "", "artist.ogg": "", "asparagus.ogg": "", "astronaut.ogg": "", "ate.ogg": "comer", "athlete.ogg": "atleta", "avocado.ogg": "", "ax.ogg": "", "baby_bottle.ogg": "", "back.ogg": "costas", "badge.ogg": "insígnia", "bag.ogg": "mochila", "bait.ogg": "isca", "bake.ogg": "cozinhar", "balance.ogg": "balança", "bald.ogg": "", "ball.ogg": "bola", "ball_of_yarn.ogg": "", "ball_soccer.ogg": "", "ballet.ogg": "balé", "bank.ogg": "banco", "bark.ogg": "latir", "barn.ogg": "celeiro", "bat.ogg": "morcego", "bath.ogg": "banheira", "bathing_suit.ogg": "", "bay.ogg": "baía", "beach.ogg": "praia", "bead.ogg": "bolha", "bean.ogg": "", "bear.ogg": "", "beard.ogg": "", "beat.ogg": "", "beaver.ogg": "", "bed.ogg": "cama", "bedroom.ogg": "", "bee.ogg": "abelha", "beef.ogg": "", "beetle.ogg": "besouro", "beg.ogg": "implorar", "behind.ogg": "", "bell.ogg": "", "belly.ogg": "", "bench.ogg": "banco", "bib.ogg": "babador", "big.ogg": "grande", "big_top.ogg": "", "bike.ogg": "bicicleta", "bird.ogg": "pássaro", "bit.ogg": "mordida", "bite.ogg": "morder", "black.ogg": "preta", "blackberry.ogg": "", "blackbird.ogg": "", "blade.ogg": "", "blind.ogg": "cego", "blink.ogg": "piscar", "block.ogg": "bloco", "blond.ogg": "loira", "blue.ogg": "azul", "blueberry.ogg": "", "blush.ogg": "", "board.ogg": "placa", "boat.ogg": "barco", "boil.ogg": "ferver", "bolt.ogg": "", "bomb.ogg": "bomba", "bone.ogg": "osso", "book.ogg": "livro", "bookcase.ogg": "", "bottom.ogg": "", "box.ogg": "caixa", "boxer.ogg": "", "boy.ogg": "menino", "braid.ogg": "trança", "brain.ogg": "cérebro", "branch.ogg": "ramo", "bread.ogg": "pão", "break.ogg": "partir", "breast.ogg": "", "brick.ogg": "tijolo", "bricklayer.ogg": "", "bride.ogg": "noiva", "bridge.ogg": "ponte", "bright.ogg": "brilhante", "broccoli.ogg": "", "brother.ogg": "irmão", "brown.ogg": "marrom", "brush.ogg": "pincel", "bubble.ogg": "", "bucket.ogg": "", "bud.ogg": "broto", "buffalo.ogg": "", "bug.ogg": "inseto", "bulb.ogg": "", "bull.ogg": "", "bump.ogg": "batida", "bun.ogg": "brioche", "bus.ogg": "", "bush.ogg": "arbusto", "butcher.ogg": "", "butter.ogg": "", "butterfly.ogg": "", "button.ogg": "", "cabbage.ogg": "", "cabin.ogg": "cabana", "cacao.ogg": "", "cactus.ogg": "", "cage.ogg": "gaiola", "cake.ogg": "bolo", "call.ogg": "ligar", "camel.ogg": "camelo", "camera.ogg": "", "camp.ogg": "acampamento", "can.ogg": "lata", "canary.ogg": "", "candle.ogg": "vela", "candy.ogg": "doce", "cane.ogg": "bengala", "canoe.ogg": "canoa", "canon.ogg": "", "canyon.ogg": "", "cap.ogg": "boné", "cape.ogg": "capa", "car.ogg": "carro", "carafe.ogg": "", "card.ogg": "cartão", "carnival.ogg": "", "carpenter.ogg": "", "carpet.ogg": "", "carrot.ogg": "cenoura", "cart.ogg": "carrinho", "cash.ogg": "dinheiro", "castle.ogg": "castelo", "cat.ogg": "gato", "cat_female.ogg": "", "catch.ogg": "pegar", "caterpillar.ogg": "", "cauldron.ogg": "", "cauliflower.ogg": "", "cave.ogg": "caverna", "cavern.ogg": "", "celery.ogg": "", "centipede.ogg": "centopeia", "cereal.ogg": "", "chain.ogg": "", "chair.ogg": "cadeira", "chalk.ogg": "giz", "chameleon.ogg": "", "chandelier.ogg": "", "chat.ogg": "conversar", "cheek.ogg": "", "cheer.ogg": "torcer", "cheese.ogg": "queijo", "chef.ogg": "", "cherry.ogg": "cereja", "chest.ogg": "baú", "chick.ogg": "pintinho", "chicken.ogg": "frango", "chief.ogg": "cacique", "child.ogg": "criança", "chimney.ogg": "", "chimp.ogg": "chimpanzé", "chin.ogg": "queixo", "chocolate.ogg": "chocolate", "chop.ogg": "cortar", "chore.ogg": "", "christmas.ogg": "", "cigar.ogg": "", "circus.ogg": "", "city.ogg": "", "clam.ogg": "molusco", "clap.ogg": "palma", "class.ogg": "aula", "claw.ogg": "garra", "clay.ogg": "argila", "clean.ogg": "limpar", "cleaning_lady.ogg": "", "cliff.ogg": "penhasco", "climb.ogg": "escalar", "clock.ogg": "relógio", "cloth.ogg": "tecido", "clothes_hanger.ogg": "", "cloud.ogg": "nuvem", "cloudy.ogg": "", "clover.ogg": "", "clown.ogg": "palhaço", "coach.ogg": "treinador", "coast.ogg": "", "coat.ogg": "casaco", "cobra.ogg": "", "coconut.ogg": "", "cod.ogg": "", "coffee.ogg": "", "coin.ogg": "moeda", "cold.ogg": "frio", "color.ogg": "cor", "colt.ogg": "", "comb.ogg": "pente", "cone.ogg": "cone", "cookie.ogg": "biscoito", "cork.ogg": "", "corn.ogg": "milho", "couch.ogg": "sofá", "cough.ogg": "", "couple.ogg": "", "cow.ogg": "vaca", "cowboy.ogg": "vaqueiro", "crab.ogg": "caranguejo", "cradle.ogg": "", "craft.ogg": "", "crawl.ogg": "engatinhar", "crazy.ogg": "doido", "creek.ogg": "", "crepe.ogg": "", "crib.ogg": "berço", "criminal.ogg": "", "croak.ogg": "coaxar", "crocodile.ogg": "crocodilo", "cross.ogg": "", "crow.ogg": "corvo", "crown.ogg": "coroa", "crumb.ogg": "migalha", "crust.ogg": "casca", "cry.ogg": "chorar", "crystal.ogg": "", "cube.ogg": "cubo", "cucumber.ogg": "pepino", "curtain.ogg": "", "cut.ogg": "cortar", "cute.ogg": "fofa", "dad.ogg": "pai", "daffodil.ogg": "", "daisy.ogg": "", "dam.ogg": "", "dance.ogg": "dança", "dandelion.ogg": "", "danger.ogg": "perigo", "dark.ogg": "negra", "dart_board.ogg": "", "date_fruit.ogg": "", "deer.ogg": "", "den.ogg": "toca", "desert.ogg": "", "desk.ogg": "escrivaninha", "dessert.ogg": "", "diamond.ogg": "", "dig.ogg": "escavar", "dirt.ogg": "terra", "dirty.ogg": "sujo", "dish.ogg": "prato", "dishcloth.ogg": "", "dive.ogg": "mergulho", "doctor.ogg": "", "doe.ogg": "", "dog.ogg": "cachorro", "doll.ogg": "", "dolphin.ogg": "", "domino.ogg": "", "door.ogg": "porta", "doormat.ogg": "", "dot.ogg": "ponto", "doughnut.ogg": "", "dove.ogg": "", "dragon.ogg": "dragão", "dragonfly.ogg": "", "drank.ogg": "beber", "draw.ogg": "desenhar", "drawer.ogg": "", "dream.ogg": "sonhar", "dress.ogg": "vestido", "drink.ogg": "bebida", "drinking.ogg": "", "drip.ogg": "", "drive.ogg": "dirigir", "drool.ogg": "babar", "drum.ogg": "tambor", "dry.ogg": "secar", "duck.ogg": "pato", "duck_mother.ogg": "", "dune.ogg": "duna", "dwarf.ogg": "", "eagle.ogg": "", "ear.ogg": "orelha", "earth.ogg": "mundo", "eat.ogg": "comer", "egg.ogg": "", "eggplant.ogg": "", "elbow.ogg": "", "electrician.ogg": "", "elk.ogg": "", "empty.ogg": "vazia", "engine.ogg": "", "engineer.ogg": "", "eraser.ogg": "", "explore.ogg": "explorar", "eyelash.ogg": "", "eyes.ogg": "", - "face.ogg": "face", + "face.ogg": "rosto", "fair.ogg": "parque ambulante", "fairy.ogg": "", "fall_down.ogg": "", "fall_season.ogg": "", "family.ogg": "", "fan.ogg": "ventilador", "farm.ogg": "fazenda", "farmer.ogg": "", "fat.ogg": "gordo", "faucet.ogg": "", "fawn.ogg": "", "feast.ogg": "banquete", "feather.ogg": "", "feed.ogg": "", "feet.ogg": "pés", "fell.ogg": "cair", "femur.ogg": "", "fetch.ogg": "buscar", "fig.ogg": "", "fin.ogg": "barbatana", "find.ogg": "encontrar", "finger.ogg": "", "fire.ogg": "fogo", "fire_extinguisher.ogg": "", "fireman.ogg": "", "fish.ogg": "peixe", "fisherman.ogg": "", "fist.ogg": "punho", "five.ogg": "cinco", "flacon.ogg": "", "flag.ogg": "bandeira", "flame.ogg": "flama", "flamingo.ogg": "", "flash.ogg": "lanterna", "flat.ogg": "achatado", "flies.ogg": "mosca", "flight.ogg": "", "float.ogg": "boiar", "flour.ogg": "farinha", "flower.ogg": "flor", "fluff.ogg": "", "flute.ogg": "flauta", "fly.ogg": "voar", "foam.ogg": "", "food.ogg": "comida", "foot.ogg": "pé", "forest.ogg": "", "fork.ogg": "garfo", "fountain.ogg": "fonte", "fox.ogg": "raposa", "freeze.ogg": "congelar", "friend.ogg": "amigo", "fries.ogg": "", "frog.ogg": "sapo", "front.ogg": "frente", "frown.ogg": "franzida", "fruit.ogg": "fruta", "fudge.ogg": "doce de chocolate", "full.ogg": "cheio", "fun.ogg": "diversão", "fur.ogg": "pêlo", "game.ogg": "jogo", "garage.ogg": "", "garden.ogg": "jardim", "garlic.ogg": "", "gem.ogg": "joia", "giant.ogg": "gigante", "gift.ogg": "presente", "giraffe.ogg": "girafa", "girl.ogg": "menina", "glass.ogg": "copo", "glasses.ogg": "", "glove.ogg": "luva", "glue.ogg": "cola", "gnome.ogg": "gnomo", "goat.ogg": "cabra", "golden.ogg": "", "golf.ogg": "", "goose.ogg": "", "gorilla.ogg": "", "grain.ogg": "", "grandmother.ogg": "", "grape.ogg": "", "grapefruit.ogg": "", "grass.ogg": "grama", "grave.ogg": "lápide", "gray.ogg": "cinza", "green.ogg": "verde", "grill.ogg": "", "grin.ogg": "sorriso", "ground.ogg": "solo", "growl.ogg": "rosnar", "guignol.ogg": "", "guinea_pig.ogg": "", "gum.ogg": "chiclete", "hair.ogg": "cabelo", "hair_dryer.ogg": "", "half.ogg": "", "ham.ogg": "", "hammer.ogg": "", "hand.ogg": "mão", "handlebar.ogg": "", "happy.ogg": "feliz", "harp.ogg": "", "hat.ogg": "chapéu", "hatch.ogg": "chocar", "hay.ogg": "feno", "head.ogg": "cabeça", "hear.ogg": "escutar", "heat.ogg": "calor", "hedge.ogg": "cerca viva", "hedgehog.ogg": "", "heel.ogg": "", "helmet.ogg": "", "hen.ogg": "galinha", "herd.ogg": "rebanho", "high.ogg": "alto", "hike.ogg": "caminhar", "hill.ogg": "", "hip.ogg": "quadril", "hippopotamus.ogg": "", "hit.ogg": "golpear", "hive.ogg": "", "hockey.ogg": "", "hole.ogg": "buraco", "home.ogg": "lar", "hook.ogg": "gancho", "hop.ogg": "saltar", "horse.ogg": "", "hose.ogg": "mangueira", "hospital.ogg": "", "hot.ogg": "quente", "hot_dog.ogg": "", "hound.ogg": "cão de caça", "house.ogg": "", "howl.ogg": "uivar", "hug.ogg": "abraçar", "huge.ogg": "enorme", "hummingbird.ogg": "", "hunchback.ogg": "", "hunter.ogg": "caçador", "husband.ogg": "", "hut.ogg": "oca", "hyena.ogg": "", "ice.ogg": "gelo", "iceberg.ogg": "", "iguana.ogg": "", "ill.ogg": "", "ink.ogg": "tinta", "island.ogg": "", "jacket.ogg": "", "jaguar.ogg": "", "jam.ogg": "", "jay.ogg": "", "jelly.ogg": "", "jellyfish.ogg": "", "jewel.ogg": "jóia", "job.ogg": "", "jockey.ogg": "", "jog.ogg": "correr", "judge.ogg": "juiz", "judo.ogg": "", "juggler.ogg": "", "juice.ogg": "suco", "jump.ogg": "pular", "kangaroo.ogg": "", "keel.ogg": "", "kernel.ogg": "", "keyboard.ogg": "", "kimono.ogg": "", "king.ogg": "", "kiss.ogg": "", "kitchen.ogg": "", "kite.ogg": "pipa", "kitten.ogg": "", "kiwi.ogg": "", "knee.ogg": "joelho", "kneel.ogg": "ajoelhar", "knife.ogg": "faca", "knight.ogg": "cavaleiro", "knit.ogg": "tricotar", "knot.ogg": "nó", "koala.ogg": "", "lad.ogg": "rapaz", "lady.ogg": "", "ladybug.ogg": "", "lake.ogg": "lago", "lama.ogg": "", "lamb.ogg": "cordeiro", "lamp.ogg": "abajur", "land.ogg": "terreno", "lane.ogg": "pista", "lap.ogg": "colo", "lasso.ogg": "", "laugh.ogg": "", "lava.ogg": "", "lawn.ogg": "gramado", "lawyer.ogg": "", "leaf.ogg": "", "ledge.ogg": "borda", "leek.ogg": "", "left.ogg": "esquerdo", "leg.ogg": "", "leg_animal.ogg": "", "lemon.ogg": "", "lemonade.ogg": "", "lemur.ogg": "", "leopard.ogg": "", "lettuce.ogg": "", "librarian.ogg": "", "lick.ogg": "lamber", "lid.ogg": "tampa", "lift.ogg": "levantar", "light.ogg": "luz", "lighthouse.ogg": "", "lightning.ogg": "", "lilac.ogg": "", "lime.ogg": "limão", "line.ogg": "listrado", "link.ogg": "argola", "lion.ogg": "", "lion_cub.ogg": "", "lip.ogg": "lábio", "liquid.ogg": "líquido", "lizard.ogg": "", "lobster.ogg": "", "log.ogg": "tora", "look.ogg": "olhar", "lunch.ogg": "lanche", "mad.ogg": "furioso", "magic.ogg": "mágica", "magnet.ogg": "", "magnifying_glass.ogg": "", "magpie.ogg": "", "mail.ogg": "", "man.ogg": "", "mane.ogg": "juba", "mango.ogg": "", "map.ogg": "mapa", "maple.ogg": "", "marble.ogg": "", "mashed_potatoes.ogg": "", "mask.ogg": "máscara", "mast.ogg": "", "mat.ogg": "capacho", "match.ogg": "fósforo", "mate.ogg": "colega", "mattress.ogg": "", "mauve.ogg": "", "meal.ogg": "", "meat.ogg": "", "mechanic.ogg": "", "medal.ogg": "", "meet.ogg": "encontrar", "melon.ogg": "", "men.ogg": "homens", "merry-go-round.ogg": "", "mice.ogg": "ratas", "microphone.ogg": "", "milk.ogg": "", "mill.ogg": "", "mimosa.ogg": "", "mirror.ogg": "", "mixer.ogg": "", "mole.ogg": "toupeira", "mom.ogg": "", "moon.ogg": "", "moose.ogg": "", "mop.ogg": "esfregão", "mosque.ogg": "", "mosquito.ogg": "mosquito", "mother.ogg": "", "motorcycle.ogg": "", "mountain.ogg": "", "mouse.ogg": "", "mouth.ogg": "boca", "movie.ogg": "", "mower.ogg": "", "mud.ogg": "lama", "mug.ogg": "caneca", "mule.ogg": "mula", "muscle.ogg": "", "mushroom.ogg": "cogumelo", "music.ogg": "", "musician.ogg": "", "naked.ogg": "", "nap.ogg": "cochilar", "navel.ogg": "", "neck.ogg": "pescoço", "necklace.ogg": "", "needle.ogg": "", "nest.ogg": "ninho", "net.ogg": "rede", "newspaper.ogg": "", "night.ogg": "noite", "nightgown.ogg": "", "nose.ogg": "nariz", "nostril.ogg": "", "notebook.ogg": "", "number.ogg": "", "nun.ogg": "", "nurse.ogg": "", "nurse_male.ogg": "", "nut.ogg": "noz", "oar.ogg": "remo", "ocean.ogg": "oceano", "office.ogg": "", "olive.ogg": "", "on.ogg": "sobre", "one.ogg": "um", "onion.ogg": "", "open.ogg": "", "opossum.ogg": "", "orange-color.ogg": "laranja", "orange.ogg": "laranja", "orchid.ogg": "", "ostrich.ogg": "", "otter.ogg": "", "owl.ogg": "coruja", "ox.ogg": "boi", "oyster.ogg": "", "pacifier.ogg": "", "page.ogg": "página", "pair.ogg": "par", "pajamas.ogg": "", "pal.ogg": "camarada", "palm_tree.ogg": "", "pan.ogg": "frigideira", "panda.ogg": "", "panther.ogg": "", "panties.ogg": "", "pants.ogg": "", "papaya.ogg": "", "paper.ogg": "", "parachute.ogg": "", "parakeet.ogg": "", "parrot.ogg": "", "patch.ogg": "remendo", "path.ogg": "caminho", "paw.ogg": "pegada", "pea.ogg": "", "peach.ogg": "pêssego", "peacock.ogg": "", "peak.ogg": "", "pear.ogg": "", "pearl.ogg": "", "peck.ogg": "bicar", "pedal.ogg": "", "pelican.ogg": "", "pen.ogg": "caneta", "pencil.ogg": "lápis", "peony.ogg": "", "people.ogg": "", "pepper.ogg": "", "peppers.ogg": "", "pet.ogg": "animal de estimação", "petal.ogg": "", "petite.ogg": "", "phone.ogg": "", "piano.ogg": "", "picture.ogg": "foto", "pie.ogg": "", "pig.ogg": "porco", "pigeon.ogg": "", "pill.ogg": "", "pillow.ogg": "", "pilot.ogg": "", "pine.ogg": "pinheiro", "pine_cone.ogg": "", "pink.ogg": "rosa", "pip.ogg": "", "pipe.ogg": "", "piranha.ogg": "", "pirate.ogg": "", "pizza.ogg": "", "plane.ogg": "avião", "planet.ogg": "", "plant.ogg": "planta", "plate.ogg": "prato", "play.ogg": "brincar", "pliers.ogg": "", "plow.ogg": "arar", "plum.ogg": "ameixa", "plumber.ogg": "", "pocket.ogg": "", "pod.ogg": "", "pole.ogg": "pau", "police.ogg": "", "pompon.ogg": "", "pond.ogg": "", "pony.ogg": "", "pool.ogg": "piscina", "pop.ogg": "pipoca", "pope.ogg": "papa", "porthole.ogg": "", "post.ogg": "", "pot.ogg": "pote", "potato.ogg": "", "pounce.ogg": "atacar", "president.ogg": "", "pretty.ogg": "bonita", "price.ogg": "preço", "priest.ogg": "", "prince.ogg": "príncipe", "princess.ogg": "princesa", "prison.ogg": "", "prisoner.ogg": "", "prize.ogg": "prêmio", "pug.ogg": "pug", "pull.ogg": "", "pullover.ogg": "", "pumpkin.ogg": "", "puppy.ogg": "cachorro", "pyramid.ogg": "", "quarrel.ogg": "discutir", "queen.ogg": "rainha", "question.ogg": "pergunta", "quilt.ogg": "colcha", "quiz.ogg": "enigma", "rabbit.ogg": "", "rabbit_baby.ogg": "", "race.ogg": "", "radio.ogg": "", "radish.ogg": "", "raft.ogg": "", "rag.ogg": "flanela", "rage.ogg": "raiva", "rain.ogg": "", "raincoat.ogg": "", "rake.ogg": "ciscador", "ramp.ogg": "rampa", "ran.ogg": "chegada", "raspberry.ogg": "", "rat.ogg": "rato", "razor.ogg": "", "read.ogg": "ler", "red.ogg": "vermelha", "reptile.ogg": "", "rhinoceros.ogg": "", "rice.ogg": "arroz", "ride.ogg": "pedalar", "rifle.ogg": "", "right.ogg": "direita", "rip.ogg": "arrancar", "rise.ogg": "", "river.ogg": "", "road.ogg": "", "roast.ogg": "", "robe.ogg": "", "robot.ogg": "", "rock.ogg": "rocha", "rocket.ogg": "", "rolling_pin.ogg": "", "roof.ogg": "telhado", "room.ogg": "", "root.ogg": "", "rope.ogg": "corda", "rose.ogg": "rosa", "round.ogg": "redondo", "rowing.ogg": "", "royal.ogg": "real", "rug.ogg": "tapete", "run.ogg": "correr", "sad.ogg": "tristeza", "saddle.ogg": "", "sail.ogg": "veleiro", "sailor.ogg": "", "salamander.ogg": "", "salmon.ogg": "", "sand.ogg": "areia", "sandals.ogg": "", "sandwich.ogg": "sanduíche", "sash.ogg": "", "sat.ogg": "sentar", "sauce.ogg": "molho", "sausage.ogg": "", "scale.ogg": "balança de cozinha", "scar.ogg": "cicatriz", "scared.ogg": "assustar", "scarf.ogg": "cachecol", "school.ogg": "escola", "school_bag.ogg": "", "science.ogg": "ciência", "scissors.ogg": "", "scorpion.ogg": "", "scratch.ogg": "arranhar", "scream.ogg": "gritar", "screw.ogg": "parafuso", "screwdriver.ogg": "", "scribble.ogg": "rabiscar", "sea.ogg": "", "seat.ogg": "assento", "see.ogg": "observar", "seed.ogg": "semente", "shadow.ogg": "", "shake.ogg": "sacudir", "shark.ogg": "tubarão", "shave.ogg": "", "shed.ogg": "celeiro", "sheep.ogg": "", "shelf.ogg": "prateleira", "shell.ogg": "concha", - "ship.ogg": "barco", + "ship.ogg": "navio", "shirt.ogg": "camisa", "shoe.ogg": "sapato", "shoelace.ogg": "", "shop.ogg": "loja", "shore.ogg": "costa", "short.ogg": "short", "shovel.ogg": "", "shower.ogg": "chuveiro", "shrimp.ogg": "camarão", "shrub.ogg": "arbusto", "shut.ogg": "fechado", "shutter.ogg": "", "sick.ogg": "doente", "sidewalk.ogg": "", "sign.ogg": "placa", "sing.ogg": "cantar", "sink.ogg": "pia", "sip.ogg": "sorver", "sister.ogg": "", "sit.ogg": "sentar", "skate.ogg": "patinar", "skeleton.ogg": "", "ski.ogg": "esquiar", "skimmer.ogg": "", "skin.ogg": "pele", "skirt.ogg": "saia", "skunk.ogg": "gambá", "sky.ogg": "céu", "slam.ogg": "", "sled.ogg": "trenó", "sleep.ogg": "dormir", "sleeve.ogg": "manga", "sleigh.ogg": "trenó", "slide.ogg": "escorregador", "slim.ogg": "", "slime.ogg": "muco", "slippers.ogg": "", "slope.ogg": "declive", "sloppy.ogg": "", "slot.ogg": "", "sloth.ogg": "", "slug.ogg": "", "small.ogg": "pequeno", "smell.ogg": "cheirar", "smile.ogg": "sorriso", "smock.ogg": "jaleco", "smoke.ogg": "fumaça", "smooch.ogg": "beijar", "snack.ogg": "aperitivo", "snail.ogg": "caracol", "snake.ogg": "cobra", "sneaker.ogg": "tênis", "sniff.ogg": "farejar", "snow.ogg": "neve", "soap.ogg": "", "sob.ogg": "", "sock.ogg": "meia", "soldier.ogg": "", "sole.ogg": "", "sole_shoe.ogg": "", "son.ogg": "", "soup.ogg": "", "spade.ogg": "", "spaghetti.ogg": "espaguete", "spark.ogg": "", "sparrow.ogg": "", "spatula.ogg": "", "speak.ogg": "", "spear.ogg": "lança", "spice.ogg": "", "spider.ogg": "aranha", "spider_web.ogg": "", "spike.ogg": "porco-espinho", "spill.ogg": "derramar", "spinach.ogg": "", "spine.ogg": "", "spinning_top.ogg": "", "splash.ogg": "respingar", "splatter.ogg": "mancha", "sponge.ogg": "esponja", "spool.ogg": "", "spoon.ogg": "colher", "sport.ogg": "esporte", "spot.ogg": "manchado", "spray.ogg": "borrifar", "spread.ogg": "espalhar", "spring.ogg": "pular", "spring_season.ogg": "", "sprinkle.ogg": "granulado", "square.ogg": "quadrado", "squash.ogg": "abóbora", "squat.ogg": "agachar", "squid.ogg": "lula", "squirrel.ogg": "esquilo", "squirt.ogg": "borrifador", "stack.ogg": "pilha de pratos", "stage.ogg": "palco", "staircase.ogg": "", "stamp.ogg": "selo", "stand.ogg": "de pé", "star.ogg": "estrela", "stare.ogg": "olhar", "starfish.ogg": "estrela do mar", "steak.ogg": "", "steam.ogg": "", "steep.ogg": "", "steeple.ogg": "", "stem.ogg": "caule", "step.ogg": "", "stew.ogg": "ensopado", "stick.ogg": "galho", "sting.ogg": "ferroar", "stinky.ogg": "", "stitch.ogg": "", "stomach.ogg": "", "stone.ogg": "pedra", "stop.ogg": "parar", "store.ogg": "mercearia", "stove.ogg": "fogão", "straight.ogg": "reto", "strainer.ogg": "", "straw.ogg": "canudo", "strawberry.ogg": "morango", "stream.ogg": "córrego", "street.ogg": "rua", "stretch.ogg": "alongar", "string.ogg": "fio", "stripe.ogg": "listrado", "strong.ogg": "forte", "student.ogg": "", "study.ogg": "estudar", "stump.ogg": "tronco", "sugar.ogg": "", "suit.ogg": "terno", "suitcase.ogg": "", "summer.ogg": "verão", "summit.ogg": "", "sun.ogg": "sol", "swan.ogg": "cisne", "sweat.ogg": "suor", "sweatshirt.ogg": "", "swim.ogg": "nadar", "table.ogg": "", "tablecloth.ogg": "", "tadpole.ogg": "", "tag.ogg": "etiqueta", "tail.ogg": "", "tall.ogg": "alto", "tape_measure.ogg": "", "taxi.ogg": "", "teach.ogg": "ensinar", "teacher.ogg": "professor", "tear.ogg": "rasgar", "teddy.ogg": "", "teeth.ogg": "dentes", "television.ogg": "", "temple.ogg": "", "ten.ogg": "dez", "tennis.ogg": "", "tent.ogg": "", "text.ogg": "", "thick.ogg": "grosso", "thief.ogg": "", "thigh.ogg": "coxa", "think.ogg": "pensar", "thread.ogg": "linha", "three.ogg": "três", "throat.ogg": "garganta", "throw.ogg": "arremessar", "thumb.ogg": "", "tick.ogg": "carrapato", "ticket.ogg": "", "tiger.ogg": "", "time.ogg": "hora", "tin.ogg": "", "tire.ogg": "", "tired.ogg": "cansado", "tissue.ogg": "", "toad.ogg": "", "toaster.ogg": "", "toe.ogg": "", "toilet.ogg": "banheiro", "tomatoe.ogg": "", "tongs.ogg": "", "tongue.ogg": "", "tool.ogg": "ferramenta", "top.ogg": "topo", "torch.ogg": "tocha", "touch.ogg": "tocar", "towel.ogg": "toalha", "toy.ogg": "brinquedo", "trail.ogg": "trilha", "train.ogg": "trem", "train_station.ogg": "", "trap.ogg": "ratoeira", "trash.ogg": "pá de lixo", "tray.ogg": "bandeja", "treat.ogg": "doces", "tree.ogg": "árvore", "triangle.ogg": "", "tribe.ogg": "", "trip.ogg": "", "truck.ogg": "caminhão", "tube.ogg": "batom", "tulip.ogg": "", "tune.ogg": "melodia", "turkey.ogg": "", "turnip.ogg": "", "turtle.ogg": "", "tusk.ogg": "", "twin_boys.ogg": "", "twin_girls.ogg": "", "two.ogg": "dois", "umbrella.ogg": "", "under.ogg": "embaixo", "uniform.ogg": "", "van.ogg": "van", "vapor.ogg": "", "vase.ogg": "", "vegetable.ogg": "", "vein.ogg": "", "verdure.ogg": "", "vest.ogg": "", "vet.ogg": "veterinário", "viper.ogg": "", "vowel.ogg": "", "vulture.ogg": "", "wag.ogg": "abanar", "walk.ogg": "andar", "wall.ogg": "", "walnut.ogg": "", "wart.ogg": "", "wash.ogg": "lavar", "wasp.ogg": "", "watch.ogg": "relógio", "water.ogg": "água", "wave.ogg": "", "wedding.ogg": "", "wedge.ogg": "cunha", "weight.ogg": "", "wet.ogg": "encharcado", "whale.ogg": "", "wheat.ogg": "trigo", "wheel.ogg": "roda", "whisk.ogg": "batedor", "whisper.ogg": "cochichar", "white.ogg": "branca", "wide.ogg": "", "wife.ogg": "", "wig.ogg": "peruca", "win.ogg": "ganhar", "wind.ogg": "vento", "window.ogg": "", "window_glass.ogg": "", "wing.ogg": "asa", "winter.ogg": "", "wolf.ogg": "", "woman.ogg": "", "wood.ogg": "madeira", "word.ogg": "", "worker.ogg": "", "world.ogg": "", "wreath.ogg": "", "wrench.ogg": "chave inglesa", "wrist.ogg": "pulso", "write.ogg": "escrever", "yarn.ogg": "fio", "yellow.ogg": "", "yogurt.ogg": "", "yum.ogg": "delícia", "zebra.ogg": "", "zipper.ogg": "", "zoo.ogg": "zoológico" } diff --git a/src/activities/letter-in-word/ActivityInfo.qml b/src/activities/letter-in-word/ActivityInfo.qml old mode 100755 new mode 100644 diff --git a/src/activities/letter-in-word/Card.qml b/src/activities/letter-in-word/Card.qml old mode 100755 new mode 100644 diff --git a/src/activities/letter-in-word/LetterInWord.qml b/src/activities/letter-in-word/LetterInWord.qml old mode 100755 new mode 100644 diff --git a/src/activities/letter-in-word/letter-in-word.js b/src/activities/letter-in-word/letter-in-word.js old mode 100755 new mode 100644 diff --git a/src/activities/louis-braille/ActivityInfo.qml b/src/activities/louis-braille/ActivityInfo.qml index d9509177a..f938f1b5e 100644 --- a/src/activities/louis-braille/ActivityInfo.qml +++ b/src/activities/louis-braille/ActivityInfo.qml @@ -1,35 +1,35 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Arkit Vora * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import GCompris 1.0 ActivityInfo { name: "louis-braille/LouisBraille.qml" difficulty: 4 - icon: "louis-braille/resource/louis.png" + icon: "louis-braille/louis-braille.svg" author: "Arkit Vora <arkitvora123@gmail.com>" demo: true title: qsTr("The History of Louis Braille") description: qsTr("Review the major dates of the inventor of the Braille System") //intro: "Discover the history behind Louis Braille." goal: "" prerequisite: "" manual: qsTr("Read the history of Louis Braille, his biography, and the invention of the Braille system. Click on the previous and next buttons to move between the story pages. At the end, arrange the sequence in chronological order.") credit: qsTr("Louis Braille Video: <http:\/\/www.youtube.com/watch?v=9bdfC2j_4x4>") section: "discovery braille" createdInVersion: 4000 } diff --git a/src/activities/louis-braille/louis-braille.svg b/src/activities/louis-braille/louis-braille.svg new file mode 100644 index 000000000..7e02ef79f --- /dev/null +++ b/src/activities/louis-braille/louis-braille.svg @@ -0,0 +1,685 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/src/activities/mazerelative/ActivityInfo.qml b/src/activities/mazerelative/ActivityInfo.qml index 503e39f67..96718f087 100644 --- a/src/activities/mazerelative/ActivityInfo.qml +++ b/src/activities/mazerelative/ActivityInfo.qml @@ -1,40 +1,40 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Stephane Mankowski * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import GCompris 1.0 ActivityInfo { name: "mazerelative/Mazerelative.qml" difficulty: 3 - icon: "mazerelative/maze.svg" + icon: "mazerelative/mazerelative.svg" author: "Stephane Mankowski <stephane@mankowski.fr>" demo: true title: qsTr("Relative Maze") description: qsTr("Help Tux get out of this maze (Move is relative)") // intro: "Help Tux find his way out. Left and right are used to turn and up to go forward." goal: "" prerequisite: "" manual: qsTr("Use the arrow keys or swipe the touch screen to move Tux up to the door.") + "

" + qsTr("In this maze, the move is relative (first person). Left and right are used to turn and up to go forward.") + "

" + qsTr("At the first levels, Tux walks comfortably, one step on each move request, through the maze.") + "

" + qsTr("For larger mazes, there is a special walking mode, called \"run-fast-mode\". If this run-fast-mode is enabled, Tux will run all the way automatically until he reaches a fork and you have to decide which way to go further.") + "

" + qsTr("You can see whether this mode is enabled or not, by looking at Tux's feet: If Tux is barefooted, \"run-fast-mode\" is disabled. And if he wears red sport shoes, \"run-fast-mode\" is enabled.") + "

" + qsTr("At higher levels, run-fast-mode will be enabled automatically. If you want to use this feature in earlier levels or want to disable it in advanced levels, click on the \"barefoot / sportshoe\"-icon in the upper left corner of the screen to toggle the run-fast-mode. \t") credit: "" section: "discovery mazeMenu" } diff --git a/src/activities/mazerelative/maze.svg b/src/activities/mazerelative/mazerelative.svg similarity index 100% rename from src/activities/mazerelative/maze.svg rename to src/activities/mazerelative/mazerelative.svg diff --git a/src/activities/memory-wordnumber/ActivityInfo.qml b/src/activities/memory-wordnumber/ActivityInfo.qml index f95c13911..7bcecd87b 100644 --- a/src/activities/memory-wordnumber/ActivityInfo.qml +++ b/src/activities/memory-wordnumber/ActivityInfo.qml @@ -1,34 +1,34 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Bruno Coudoin * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import GCompris 1.0 ActivityInfo { name: "memory-wordnumber/MemoryWordnumber.qml" difficulty: 3 - icon: "memory-wordnumber/memory_wordnumber.svg" + icon: "memory-wordnumber/memory-wordnumber.svg" author: "Bruno Coudoin <bruno.coudoin@gcompris.net>" demo: false title: qsTr("Wordnumber memory game") description: qsTr("Turn the cards over to match the number with the word matching it.") // intro: "Match the numeric with the word." goal: qsTr("Reading numbers, memory.") prerequisite: qsTr("Reading") manual: qsTr("You can see some cards, but you can't see what's on the other side of them. Each card is hiding the numeral form of a number, or the word to write it.") credit: "" section: "reading" } diff --git a/src/activities/memory-wordnumber/memory_wordnumber.svg b/src/activities/memory-wordnumber/memory-wordnumber.svg similarity index 100% rename from src/activities/memory-wordnumber/memory_wordnumber.svg rename to src/activities/memory-wordnumber/memory-wordnumber.svg diff --git a/src/activities/memory/MemoryCommon.qml b/src/activities/memory/MemoryCommon.qml index 7692e9578..f1fc4b2fb 100644 --- a/src/activities/memory/MemoryCommon.qml +++ b/src/activities/memory/MemoryCommon.qml @@ -1,195 +1,198 @@ /* GCompris - MemoryCommon.qml * * Copyright (C) 2014 JB BUTET * * Authors: * Bruno Coudoin (GTK+ version) * JB BUTET (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.1 import GCompris 1.0 import "." import "../../core" import "memory.js" as Activity ActivityBase { id: activity focus: true property string backgroundImg property var dataset property bool withTux: false property string additionnalPath onStart: focus = true onStop: {} pageComponent: Image { id: background source: activity.backgroundImg sourceSize.width: Math.max(parent.width, parent.height) fillMode: Image.PreserveAspectCrop focus: true signal start signal stop property alias items: items Component.onCompleted: { activity.start.connect(start) activity.stop.connect(stop) } QtObject { id: items property alias bar: bar property alias bonus: bonus property GCAudio audioEffects: activity.audioEffects property bool withTux: activity.withTux property bool tuxTurn: false property var playQueue property int selectionCount property int tuxScore: tuxScore.text property int playerScore: playerScore.text property variant dataset: activity.dataset property alias containerModel: containerModel property alias cardRepeater: cardRepeater property alias grid: grid property int columns property int rows } onStart: Activity.start(items) onStop: Activity.stop() ListModel { id: containerModel } + Grid { id: grid spacing: 5 * ApplicationInfo.ratio columns: items.columns rows: items.rows + anchors { left: background.left right: background.rigth top: background.top margins: 10 * ApplicationInfo.ratio } + Repeater { id: cardRepeater model: containerModel delegate: CardItem { pairData: pairData_ tuxTurn: background.items.tuxTurn width: (background.width - (grid.columns + 1) * grid.spacing) / grid.columns height: (background.height - (grid.rows + 1) * grid.spacing) / (grid.rows + 0.5) audioVoices: activity.audioVoices audioEffects: activity.audioEffects } } add: Transition { PathAnimation { path: Path { PathCurve { x: background.width / 3} PathCurve { y: background.height / 3} PathCurve {} } easing.type: Easing.InOutQuad duration: 2000 } } } DialogHelp { id: dialogHelp onClose: home() } Bar { id: bar content: BarEnumContent { value: help | home | level } onHelpClicked: { displayDialog(dialogHelp) } onPreviousLevelClicked: Activity.previousLevel() onNextLevelClicked: Activity.nextLevel() onHomeClicked: home() } Image { id: player source: 'qrc:/gcompris/src/activities/memory/resource/children.svg' anchors { bottom: bar.bottom right: parent.right rightMargin: 2 * ApplicationInfo.ratio } width: height * 0.83 height: bar.height * 1.2 GCText { id: playerScore anchors.centerIn: parent anchors.verticalCenterOffset: parent.height / 6 color: "black" font.bold: true fontSize: largeSize style: Text.Outline styleColor: "white" text: items.playerScore } } Image { id: tux visible: activity.withTux source: 'qrc:/gcompris/src/activities/memory/resource/tux-teacher.svg' anchors { bottom: bar.bottom right: player.left rightMargin: 2 * ApplicationInfo.ratio } width: height * 0.83 height: bar.height * 1.2 GCText { id: tuxScore anchors.centerIn: parent anchors.verticalCenterOffset: parent.height / 6 color: "black" font.bold: true fontSize: largeSize style: Text.Outline styleColor: "white" text: items.tuxScore } } Bonus { id: bonus interval: 2000 Component.onCompleted: win.connect(Activity.nextLevel) } } } diff --git a/src/activities/multiplication_tables/ActivityInfo.qml b/src/activities/multiplication_tables/ActivityInfo.qml index 2b7b5fe0b..72e00ab73 100644 --- a/src/activities/multiplication_tables/ActivityInfo.qml +++ b/src/activities/multiplication_tables/ActivityInfo.qml @@ -1,35 +1,33 @@ /* GCompris - ActivityInfo.qml * - * Copyright (C) 2016 Your Name + * Copyright (C) 2016 Nitish Chauhan * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import GCompris 1.0 ActivityInfo { name: "multiplication_tables/Multiplication_tables.qml" - difficulty: 1 + difficulty: 2 icon: "multiplication_tables/multiplication_tables.svg" - author: "Your Name <yy@zz.org>" + author: "Nitish Chauhan <nitish.nc18@gmail.com>" demo: true - title: "Multiplication_tables activity" - description: "" - //intro: "put here in comment the text for the intro voice" - goal: "" - prerequisite: "" - manual: "" + title: qsTr("Multiplication_tables activity") + description: qsTr("Write the answer of the questions in the space provided,click start to begin & finish to end") + goal: qsTr("Help children to learn & memorise multiplication tables") + prerequisite: qsTr("basic mathematical concepts") credit: "" section: "fun" createdInVersion: 7000 } diff --git a/src/activities/multiplication_tables/Multiplication_tables.qml b/src/activities/multiplication_tables/Multiplication_tables.qml index d8042bff3..f51cc50cc 100644 --- a/src/activities/multiplication_tables/Multiplication_tables.qml +++ b/src/activities/multiplication_tables/Multiplication_tables.qml @@ -1,370 +1,277 @@ /* GCompris - multiplication_tables.qml * * Copyright (C) 2016 Nitish Chauhan * * Authors: * * Nitish Chauhan (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.1 import QtQuick.Controls 1.1 import QtQuick.Controls.Styles 1.1 import QtQuick.Layouts 1.1 - import "../../core" -import "multiplication_tables.js" -as Activity -import "multiplicationtables_dataset.js" -as Dataset - +import "multiplication_tables.js" as Activity +import "multiplicationtables_dataset.js" as Dataset ActivityBase { - id: activity - - property string url: "qrc:/gcompris/src/activities/multiplication_tables/resource/" - property double startTime: 0 - property int flag: 0 - property var dataset: Dataset - property string mode: "multiplicationtables" - - onStart: focus = true - onStop: {} - - pageComponent: Rectangle { - id: background - anchors.fill: parent - color: "#ABCDEF" - signal start - signal stop - - Component.onCompleted: { - activity.start.connect(start) - activity.stop.connect(stop) - } - - // Add here the QML items you need to access in javascript - QtObject { - - id: items - property Item main: activity.main - property alias background: background - property alias bar: bar - property alias bonus: bonus - property alias heading_text: heading_text - property alias start_button: start_button - property alias stop_button: stop_button - property alias time: time - property alias score: score - - property alias questionGrid: questionGrid - property alias repeater: repeater - - - } - - onStart: { - Activity.start(items, mode, dataset, url) - - } - onStop: { - Activity.stop() - } - - //........................................................................... - - - // main heading - GCText { - id: heading_text - text:"Heading Text" - font.pointSize: 30 - color: "red" - anchors.top: parent.top; - anchors.margins: 20 - anchors.horizontalCenter: parent.horizontalCenter - - } - - - - Grid { - - id: questionGrid - - spacing: 40 - - - anchors { - - left: parent.left - right: parent.rigth - top: heading_text.bottom - margins: 20 - + id: activity + property string url: "qrc:/gcompris/src/activities/multiplication_tables/resource/" + property double startTime: 0 + property bool startButtonClicked: false + property var dataset: Dataset + property string mode: "multiplicationtables" + onStart: focus = true + onStop: {} + + pageComponent: Rectangle { + id: background + anchors.fill: parent + color: "#ABCDEF" + signal start + signal stop + + Component.onCompleted: { + activity.start.connect(start) + activity.stop.connect(stop) } + // Add here the QML items you need to access in javascript + QtObject { + id: items + property Item main: activity.main + property alias background: background + property alias bar: bar + property alias bonus: bonus + property alias start_button: start_button + property alias stop_button: stop_button + property alias time: time + property alias score: score + property alias questionGrid: questionGrid + property alias repeater: repeater + } - Repeater { + onStart: { + Activity.start(items, mode, dataset, url) + } + onStop: { + Activity.stop() + } + Flow { + id: questionGrid + anchors.fill: parent + anchors.bottom: bar.top + spacing: bar.height * 0.4 + anchors { + left: background.left + right: background.rigth + margins: bar.height * 0.6 + } + Repeater { id: repeater model: 10 - Question { - - - } - - } - - - } - - - -//} - - - Button { - id: stop_button - text: qsTr(" FINISH ") - anchors.bottom: parent.bottom - anchors.right: parent.right - anchors { - bottomMargin: 50 - rightMargin: 120 - } - - - - style: ButtonStyle { - background: Rectangle { - implicitWidth: 100 - implicitHeight: 40 - border.width: control.activeFocus ? 2 : 1 - border.color: "blue" - radius: 4 - gradient: Gradient { - GradientStop { - position: 0;color: control.pressed ? "#729fcf" : "#729fcf" - } - GradientStop { - position: 1;color: control.pressed ? "#3465a4" : "#3465a4" + } } - } } - } - - - onClicked: { - - - if (flag == 1) { - - - score.visible = true - var str1 = new Date().getTime() - startTime - - time.text = qsTr("Your time: %1 ms").arg(str1) - - - startTime = 0 - flag = 0 - start_button.text = qsTr("Start again") - Activity.verifyAnswer() - + Image { + id: player + source: url + "children.svg" + anchors { + bottom: bar.bottom + right: parent.right + } + width: height * 0.83 + height: bar.height * 1.2 } - } - } - + Button { + id: stop_button + text: qsTr(" FINISH ") + anchors.bottom: parent.bottom + anchors.right: parent.right + anchors { + bottomMargin: bar.height * 0.4 + rightMargin: bar.height * 1.5 + } + style: ButtonStyle { + background: Rectangle { + implicitWidth: bar.height * 0.9 + implicitHeight: bar.height * 0.3 + border.width: control.activeFocus ? 2 : 1 + border.color: "blue" + radius: 4 + gradient: Gradient { + GradientStop { + position: 0;color: control.pressed ? "#729fcf" : "#729fcf" + } + GradientStop { + position: 1;color: control.pressed ? "#3465a4" : "#3465a4" + } + } + } + } - Button { - id: start_button - text: qsTr(" START ") - anchors.bottom: parent.bottom - anchors.right: stop_button.left - anchors { - bottomMargin: 50 - rightMargin: 30 - } + onClicked: { + if (startButtonClicked == true) { + score.visible = true + var str1 = new Date().getTime() - startTime + var str2 = str1/1000 + time.text = qsTr("Your time: %1 seconds").arg(str2) + startTime = 0 + startButtonClicked = false + start_button.text = qsTr("START AGAIN") + Activity.verifyAnswer() + } + } + } - style: ButtonStyle { - background: Rectangle { - implicitWidth: 100 - implicitHeight: 40 - border.width: control.activeFocus ? 2 : 1 - border.color: "blue" - radius: 4 - gradient: Gradient { - GradientStop { - position: 0;color: control.pressed ? "#729fcf" : "#729fcf" + Button { + id: start_button + text: qsTr(" START ") + anchors.bottom: parent.bottom + anchors.right: stop_button.left + anchors { + bottomMargin: bar.height * 0.4 + rightMargin: bar.height * 0.4 } - GradientStop { - position: 1;color: control.pressed ? "#3465a4" : "#3465a4" + style: ButtonStyle { + background: Rectangle { + implicitWidth: bar.height * 0.9 + implicitHeight: bar.height * 0.3 + border.width: control.activeFocus ? 2 : 1 + border.color: "blue" + radius: 4 + gradient: Gradient { + GradientStop { + position: 0;color: control.pressed ? "#729fcf" : "#729fcf" + } + GradientStop { + position: 1;color: control.pressed ? "#3465a4" : "#3465a4" + } + } + } + } + onClicked: { + if (startTime == 0 && startButtonClicked == false) { + Activity.resetvalue() + start_button.text = qsTr(" START ") + time.text = qsTr(" Your Timer Started...") + startTime = new Date().getTime() + startButtonClicked = true + } } - } } - } - - - onClicked: { - - if (startTime == 0 && flag == 0) { - - Activity.resetvalue() - start_button.text = qsTr(" START ") - time.text = qsTr(" Your timer started...") - startTime = new Date().getTime() - flag = 1 + GCText { + id: score + font.pointSize: 20 + color: "#4B6319" + font.bold: true + anchors.bottom: time.top + anchors.right: parent.right + anchors { + bottomMargin: bar.height * 0.09 + rightMargin: bar.height * 1.6 + } + Layout.alignment: Qt.AlignCenter } - } - - } - - - GCText { - id: score - font.pointSize: 20 - - color: "#cc0000" - font.bold: true - - anchors.bottom: time.top - anchors.right: parent.right - - anchors { - bottomMargin: 15 - rightMargin: 150 - - - } - - Layout.alignment: Qt.AlignCenter - } - - - - - //........implementing timer.............. - - - GCText { - id: time - font.pixelSize: 23 - font.bold: true - color: '#cc0000' - anchors.bottom: start_button.top - anchors.right: parent.right - anchors { - bottomMargin: 30 - rightMargin: 130 - } - text: qsTr("--") - Layout.alignment: Qt.AlignCenter - } - - - - //........timerend.......................................................... - - - - - //........................................................................... - - DialogActivityConfig { - id: dialogActivityConfig - currentActivity: activity - content: Component { - Item { - height: column.height - - Column { - id: column - spacing: 10 - width: parent.width - - GCDialogCheckBox { - id: easyModeBox1 - width: 250 * ApplicationInfo.ratio - text: qsTr("School Mode") - checked: background.easyMode - onCheckedChanged: { - background.easyMode = checked - Activity.reloadRandom() - } + GCText { + id: time + font.pixelSize: 23 + font.bold: true + color: '#4B6319' + anchors.bottom: start_button.top + anchors.right: parent.right + anchors { + bottomMargin: bar.height * 0.3 + rightMargin: 130 } + text: qsTr("--") + Layout.alignment: Qt.AlignCenter + } - } + DialogActivityConfig { + id: dialogActivityConfig + currentActivity: activity + content: Component { + Item { + height: column.height + Column { + id: column + spacing: 10 + width: parent.width + + GCDialogCheckBox { + id: easyModeBox1 + width: 250 * ApplicationInfo.ratio + text: qsTr("School Mode") + checked: background.easyMode + onCheckedChanged: { + background.easyMode = checked + Activity.reloadRandom() + } + } + } + } + } + onLoadData: { + if (dataToSave && dataToSave["mode"]) { + background.easyMode = (dataToSave["mode"] === "true"); + } + } + onSaveData: { + dataToSave = { + "mode": "" + background.easyMode + } + } + onClose: home() } - } - onLoadData: { - if (dataToSave && dataToSave["mode"]) { - background.easyMode = (dataToSave["mode"] === "true"); + DialogHelp { + id: dialogHelp + onClose: home() } - } - onSaveData: { - dataToSave = { - "mode": "" + background.easyMode + Bar { + id: bar + content: BarEnumContent { + value: help | home | level | config + } + onHelpClicked: { + displayDialog(dialogHelp) + } + onPreviousLevelClicked: Activity.previousLevel() + onNextLevelClicked: Activity.nextLevel() + onHomeClicked: activity.home() + onReloadClicked: Activity.reloadRandom() + onConfigClicked: { + dialogActivityConfig.active = true + displayDialog(dialogActivityConfig) + } } - } - - onClose: home() - } - - - - DialogHelp { - id: dialogHelp - onClose: home() - } - - - - Bar { - id: bar - content: BarEnumContent { - value: help | home | level | config - } - onHelpClicked: { - displayDialog(dialogHelp) - } - onPreviousLevelClicked: Activity.previousLevel() - onNextLevelClicked: Activity.nextLevel() - onHomeClicked: activity.home() - onReloadClicked: Activity.reloadRandom() - onConfigClicked: { - dialogActivityConfig.active = true - displayDialog(dialogActivityConfig) - } - } - - - Bonus { - id: bonus - Component.onCompleted: win.connect(Activity.nextLevel) + Bonus { + id: bonus + Component.onCompleted: win.connect(Activity.nextLevel) + } } - } - } diff --git a/src/activities/multiplication_tables/Question.qml b/src/activities/multiplication_tables/Question.qml index dff9b595a..1e792adc8 100644 --- a/src/activities/multiplication_tables/Question.qml +++ b/src/activities/multiplication_tables/Question.qml @@ -1,92 +1,67 @@ /* GCompris * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.1 import QtQuick.Controls 1.1 import QtQuick.Controls.Styles 1.1 import QtQuick.Layouts 1.1 - import "multiplication_tables.js" as Activity - import QtGraphicalEffects 1.0 import "../../core" import GCompris 1.0 - - - -Row { - - id: row1 - +Flow { + id: questionItem property string url: "qrc:/gcompris/src/activities/multiplication_tables/resource/" - - property alias questionText: tabletext_1.text - property alias answerText: ans_1.text + property alias questionText: questionText.text + property alias answerText: answerText.text property alias questionImage: question_image.source property alias questionImage_visible: question_image.opacity - - - - // 10 questions GCText { - id: tabletext_1 - text:"Question" + id: questionText + text:qsTr("Question") font.pointSize: 20 font.bold: true color: "black" - } - - TextField { - - id: ans_1 + id: answerText height: 35 font.pixelSize: 20 - - style: TextFieldStyle { - textColor: "red" - background: Rectangle { - radius: 5 - color: "orange" - implicitWidth: 100 - implicitHeight: 24 - border.color: "#333" - border.width: 1 - } + textColor: "#006060" + background: Rectangle { + radius: 5 + color: "orange" + implicitWidth: bar.height * 0.9 + implicitHeight: bar.height * 0.3 + border.color: "#333" + border.width: 1 } - + } } Image { id: question_image - width: 70;height: 50 + width: bar.height * 0.3 + height: bar.height * 0.3 fillMode: Image.PreserveAspectFit source: "qrc:/gcompris/src/activities/multiplication_tables/resource/wrong.svg" opacity: 0 } - - - } - - - - diff --git a/src/activities/multiplication_tables/multiplication_tables.js b/src/activities/multiplication_tables/multiplication_tables.js index 8c0caac5f..516812502 100644 --- a/src/activities/multiplication_tables/multiplication_tables.js +++ b/src/activities/multiplication_tables/multiplication_tables.js @@ -1,161 +1,113 @@ /* GCompris - multiplication_tables.js * * Copyright (C) 2016 Nitish Chauhan * * Authors: * * "Nitish Chauhan" (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ .pragma library - .import QtQuick 2.2 as Quick - .import GCompris 1.0 as GCompris //for ApplicationInfo - .import "qrc:/gcompris/src/core/core.js" as Core - + .import QtQuick 2.2 as Quick + .import GCompris 1.0 as GCompris //for ApplicationInfo + .import "qrc:/gcompris/src/core/core.js" as Core var currentLevel = 0 var items var mode var dataset var numberOfLevel var url var table var question = [] var answer = [] var score_cnt = 0 - function start(_items, _mode, _dataset, _url) { - - items = _items - mode = _mode - dataset = _dataset.get() - url = _url - numberOfLevel = dataset.length - currentLevel = 0 - initLevel() - + items = _items + mode = _mode + dataset = _dataset.get() + url = _url + numberOfLevel = dataset.length + currentLevel = 0 + initLevel() } - - function stop() {} function initLevel() { - - items.bar.level = currentLevel + 1 - loadCoordinates() - - - + loadQuestions() } +function loadQuestions() { + var i + question = dataset[currentLevel].questions + answer = dataset[currentLevel].answers + table = dataset[currentLevel].TableName -function loadCoordinates() { - - var i - - question = dataset[currentLevel].questions - answer = dataset[currentLevel].answers - table = dataset[currentLevel].TableName - - items.heading_text.text = qsTr("Table of %1").arg(table) - - - for(i=0;i * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ - function get() { return [ - - { - "TableName": "2", - "questions": ["2 X 1","2 X 2","2 X 3","2 X 4","2 X 5","2 X 6","2 X 7","2 X 8","2 X 9","2 X 10"], - "answers": ["2","4","6","8","10","12","14","16","18","20"] - }, - { - "TableName": "3", - "questions": ["3 X 1","3 X 2","3 X 3","3 X 4","3 X 5","3 X 6","3 X 7","3 X 8","3 X 9","3 X 10"], - "answers": ["3","6","9","12","15","18","21","24","27","30"] - }, - - - { - "TableName": "4", - "questions": ["4 X 1","4 X 2","4 X 3","4 X 4","4 X 5","4 X 6","4 X 7","4 X 8","4 X 9","4 X 10"], - "answers": ["4","8","12","16","20","24","28","32","36","40"] - }, - { - "TableName": "5", - "questions": ["5 X 1","5 X 2","5 X 3","5 X 4","5 X 5","5 X 6","5 X 7","5 X 8","5 X 9","5 X 10"], - "answers": ["5","10","15","20","25","30","35","40","45","50"] - }, - { - "TableName": "6", - "questions": ["6 X 1","6 X 2","6 X 3","6 X 4","6 X 5","6 X 6","6 X 7","6 X 8","6 X 9","6 X 10"], - "answers": ["6","12","18","24","30","36","42","48","54","60"] - }, - { - "TableName": "7", - "questions": ["7 X 1","7 X 2","7 X 3","7 X 4","7 X 5","7 X 6","7 X 7","7 X 8","7 X 9","7 X 10"], - "answers": ["7","14","21","28","35","42","48","56","63","70"] - }, - { - "TableName": "8", - "questions": ["8 X 1","8 X 2","8 X 3","8 X 4","8 X 5","8 X 6","8 X 7","8 X 8","8 X 9","8 X 10"], - "answers": ["8","16","24","32","40","48","56","64","72","80"] - }, - { - "TableName": "9", - "questions": ["9 X 1","9 X 2","9 X 3","9 X 4","9 X 5","9 X 6","9 X 7","9 X 8","9 X 9","9 X 10"], - "answers": ["9","18","27","36","45","54","63","72","81","90"] - } + { + "TableName": "2", + "questions": ["2 X 1", "2 X 2", "2 X 3", "2 X 4", "2 X 5", "2 X 6", "2 X 7", "2 X 8", "2 X 9", "2 X 10"], + "answers": ["2", "4", "6", "8", "10", "12", "14", "16", "18", "20"] + }, + { + "TableName": "3", + "questions": ["3 X 1", "3 X 2", "3 X 3", "3 X 4", "3 X 5", "3 X 6", "3 X 7", "3 X 8", "3 X 9", "3 X 10"], + "answers": ["3", "6", "9", "12", "15", "18", "21", "24", "27", "30"] + }, + { + "TableName": "4", + "questions": ["4 X 1", "4 X 2", "4 X 3", "4 X 4", "4 X 5", "4 X 6", "4 X 7", "4 X 8", "4 X 9", "4 X 10"], + "answers": ["4", "8", "12", "16", "20", "24", "28", "32", "36", "40"] + }, + { + "TableName": "5", + "questions": ["5 X 1", "5 X 2", "5 X 3", "5 X 4", "5 X 5", "5 X 6", "5 X 7", "5 X 8", "5 X 9", "5 X 10"], + "answers": ["5", "10", "15", "20", "25", "30", "35", "40", "45", "50"] + }, + { + "TableName": "6", + "questions": ["6 X 1", "6 X 2", "6 X 3", "6 X 4", "6 X 5", "6 X 6", "6 X 7", "6 X 8", "6 X 9", "6 X 10"], + "answers": ["6", "12", "18", "24", "30", "36", "42", "48", "54", "60"] + }, + { + "TableName": "7", + "questions": ["7 X 1", "7 X 2", "7 X 3", "7 X 4", "7 X 5", "7 X 6", "7 X 7", "7 X 8", "7 X 9", "7 X 10"], + "answers": ["7", "14", "21", "28", "35", "42", "48", "56", "63", "70"] + }, + { + "TableName": "8", + "questions": ["8 X 1", "8 X 2", "8 X 3", "8 X 4", "8 X 5", "8 X 6", "8 X 7", "8 X 8", "8 X 9", "8 X 10"], + "answers": ["8", "16", "24", "32", "40", "48", "56", "64", "72", "80"] + }, + { + "TableName": "9", + "questions": ["9 X 1", "9 X 2", "9 X 3", "9 X 4", "9 X 5", "9 X 6", "9 X 7", "9 X 8", "9 X 9", "9 X 10"], + "answers": ["9", "18", "27", "36", "45", "54", "63", "72", "81", "90"] + } ] } - - - diff --git a/src/activities/multiplication_tables/resource/children.svg b/src/activities/multiplication_tables/resource/children.svg new file mode 100644 index 000000000..92ec45386 --- /dev/null +++ b/src/activities/multiplication_tables/resource/children.svg @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Openclipart + + + Big wave hello + 2014-01-25T09:52:14 + Little girl who waves hello + https://openclipart.org/detail/190330/big-wave-hello-by-anarres-190330 + + + anarres + + + + + character + child + comic + hi + human + human being + kid + people + person + pose + wave. hello + + + + + + + + + + + diff --git a/src/activities/nine_men_morris/nine_men_morris.svg b/src/activities/nine_men_morris/nine_men_morris.svg index 5f72fa788..a87bf5843 100644 --- a/src/activities/nine_men_morris/nine_men_morris.svg +++ b/src/activities/nine_men_morris/nine_men_morris.svg @@ -1,1243 +1,1272 @@ + width="100" + height="100"> + gradientTransform="matrix(1.0058225,-0.01568946,0.01536331,0.9849118,-2.6967193,4.3346365)" /> + transform="translate(-374.65984,-507.38328)"> - - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + style="fill:#803300;stroke:#803300;stroke-width:0;stroke-linejoin:round;stroke-miterlimit:3.69499993;stroke-dasharray:none;stroke-opacity:0.88627451" + id="path3202" + rx="0.98498267" + ry="0.97380632" /> + transform="matrix(0.17964836,0,0,0.18171018,265.67798,575.38236)"> + style="opacity:0.972;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.76749992;stroke-dasharray:none;stroke-opacity:1" /> + style="opacity:0.972;fill:url(#radialGradient4847-5-0);fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:3.76749992;stroke-dasharray:none;stroke-opacity:1" /> + id="g4263" + transform="matrix(0.17964836,0,0,0.18171018,306.66026,493.89671)"> + style="opacity:0.73699999;fill:url(#radialGradient4214-1);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.04124224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + style="opacity:1;fill:url(#radialGradient4232-6);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.04124224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + style="opacity:1;fill:url(#radialGradient4513-4);fill-opacity:1;stroke:#000000;stroke-width:0.1073451;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4230-4)" /> + transform="matrix(0.05715515,0,0,0.05781112,452.20297,518.5367)"> + transform="matrix(0.05715515,0,0,0.05781112,407.32364,564.31292)"> + transform="matrix(0.05715515,0,0,0.05781112,424.48025,518.19177)"> + transform="matrix(0.05715515,0,0,0.05781112,441.21619,564.09)"> - - + - + + style="fill:#ff0000;stroke:#803300;stroke-width:0.99999988;stroke-linejoin:round;stroke-miterlimit:3.9849999;stroke-dasharray:none;stroke-opacity:1" + id="path3206" + rx="0.98498267" + ry="0.97380632" /> + transform="matrix(0.17964836,0,0,0.18171018,306.66026,493.89671)"> + style="opacity:0.972;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.05197132;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.54999995;stroke-dasharray:none;stroke-opacity:1" /> + style="opacity:0.972;fill:url(#radialGradient4847-5);fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:3.54999995;stroke-dasharray:none;stroke-opacity:1" /> + transform="matrix(0.17964836,0,0,0.18171018,375.99329,494.46455)"> + style="opacity:0.73699999;fill:url(#radialGradient4214-1-29);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.04124224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + style="opacity:1;fill:url(#radialGradient4232-6-7);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.04124224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + style="opacity:1;fill:url(#radialGradient4513-4-2);fill-opacity:1;stroke:#000000;stroke-width:0.1073451;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4230-4-32)" /> + image/svg+xml Openclipart 2009-05-28T22:36:41 The board setout of Nine Men's Morris. https://openclipart.org/detail/26344/nine-mens-morris-by-chovynz chovynz black and white game line art morris nine diff --git a/src/activities/nine_men_morris_2players/nine_men_morris_2players.svg b/src/activities/nine_men_morris_2players/nine_men_morris_2players.svg index 87f525501..091fcda46 100644 --- a/src/activities/nine_men_morris_2players/nine_men_morris_2players.svg +++ b/src/activities/nine_men_morris_2players/nine_men_morris_2players.svg @@ -1,976 +1,998 @@ + width="100" + height="100"> - - - - + gradientTransform="matrix(0.06156501,-9.7135211e-4,9.4036709e-4,0.06097699,393.09233,546.63837)" /> + id="feGaussianBlur4232-7-64-6" /> + id="feGaussianBlur4232-7-9-2" /> + id="feGaussianBlur4232-7-72-5" /> + id="feGaussianBlur4232-7-94" /> + + + + id="feGaussianBlur4232-7-94-1" /> + id="feGaussianBlur4232-7-7-9-7" /> + + transform="translate(-374.65984,-507.38328)"> + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + transform="matrix(0.06120864,0,0,0.06191113,421.79653,504.6256)" + id="g4863-4-1-5"> + style="opacity:0.972;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.54999995;stroke-dasharray:none;stroke-opacity:1" + id="path3338-1-36-5-8-4" + cx="62.756008" + cy="187.87152" + r="60.469025" /> - - - - - - - - - - - + style="opacity:0.972;fill:url(#radialGradient4847-5-6-5);fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:3.54999995;stroke-dasharray:none;stroke-opacity:1" + id="path4839-8-0-7" + cx="62.386898" + cy="187.69385" + r="51.94767" /> + + + style="opacity:0.972;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.69499993;stroke-dasharray:none;stroke-opacity:1" + id="path3338-1-36-5-5-4" + cx="62.756008" + cy="187.87152" + r="60.469025" /> - + style="opacity:0.972;fill:url(#radialGradient4847-5-5-4);fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:3.69499993;stroke-dasharray:none;stroke-opacity:1" + id="path4839-8-9-3" + cx="62.386898" + cy="187.69385" + r="51.94767" /> + + + style="opacity:0.972;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.54999995;stroke-dasharray:none;stroke-opacity:1" + id="path3338-1-36-5-1-8" + cx="62.756008" + cy="187.87152" + r="60.469025" /> + style="opacity:0.972;fill:url(#radialGradient4847-5-3-7);fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:3.54999995;stroke-dasharray:none;stroke-opacity:1" + id="path4839-8-86-4" + cx="62.386898" + cy="187.69385" + r="51.94767" /> + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + transform="matrix(0.31815013,0,0,0.31815013,428.779,65.163638)" + id="g4234-0-49"> + id="path3338-7-6" + style="opacity:0.73699999;fill:url(#radialGradient4214-1-73);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.04124224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + id="path3338-1-5-8" + style="opacity:1;fill:url(#radialGradient4232-6-6);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.04124224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - - - - - - - - - - - - - - - - - - + id="path4505-8-92" + style="opacity:1;fill:url(#radialGradient4513-4-129);fill-opacity:1;stroke:#000000;stroke-width:0.1073451;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4230-4-31)" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + transform="matrix(0.31815013,0,0,0.31815013,428.779,65.163638)" + id="g4234-0-49-8"> + id="path3338-7-6-8" + style="opacity:0.73699999;fill:url(#radialGradient4214-1-73-8);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.04124224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + id="path3338-1-5-8-1" + style="opacity:1;fill:url(#radialGradient4232-6-6-9);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.04124224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + id="path4505-8-92-0" + style="opacity:1;fill:url(#radialGradient4513-4-129-8);fill-opacity:1;stroke:#000000;stroke-width:0.1073451;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4230-4-31-1)" /> + + + r="64.757751" + style="opacity:0.64899998;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.12508059px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path3338-1-3-8-5-6-9" + cx="60.58815" + cy="187.32954" /> + style="opacity:0.73699999;fill:url(#radialGradient4214-1-2-9-3);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.04124224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path3338-7-3-4-6" + cx="63.231689" + cy="189.97308" + r="59.932152" /> + style="opacity:1;fill:url(#radialGradient4232-6-5-2-4);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.04124224px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path3338-1-5-5-9-2" + cx="60.58815" + cy="187.32954" + r="59.932152" /> + + + + + style="opacity:0.972;fill:url(#radialGradient4847-5-6-5-7);fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:3.54999995;stroke-dasharray:none;stroke-opacity:1" + id="path4839-8-0-7-8" + cx="62.386898" + cy="187.69385" + r="51.94767" /> + image/svg+xml Openclipart - + 2009-05-28T22:36:41 The board setout of Nine Men's Morris. https://openclipart.org/detail/26344/nine-mens-morris-by-chovynz chovynz black and white game line art morris nine diff --git a/src/activities/number_sequence/number_sequence.js b/src/activities/number_sequence/number_sequence.js index 9c5dd715e..ca3c7badf 100644 --- a/src/activities/number_sequence/number_sequence.js +++ b/src/activities/number_sequence/number_sequence.js @@ -1,140 +1,140 @@ /* GCompris - number_sequence.js * * Copyright (C) 2014 Emmanuel Charruau * * Authors: * Olivier Ponchaut (GTK+ version) * Emmanuel Charruau (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ .pragma library .import QtQuick 2.2 as Quick .import GCompris 1.0 as GCompris //for ApplicationInfo .import "qrc:/gcompris/src/core/core.js" as Core var currentLevel = 0 var items var mode var dataset var numberOfLevel var pointPositions = [] var pointPositions2 = [] var linePropertiesArray = [] var url function start(_items, _mode,_dataset,_url) { items = _items mode = _mode dataset = _dataset.get() url = _url numberOfLevel = dataset.length currentLevel = 0 initLevel() } function stop() { } function initLevel() { items.bar.level = currentLevel + 1 items.pointIndexToClick = 0 loadCoordinates() loadBackgroundImage() if(mode == "drawletters" || mode == "drawnumbers") { //function to play letter sound at start playLetterSound(dataset[currentLevel].sound) } } function nextLevel() { if(numberOfLevel <= ++currentLevel) { currentLevel = 0 } initLevel(); } function previousLevel() { if(--currentLevel < 0) { currentLevel = numberOfLevel - 1 } initLevel(); } //function to play the sound of chararcter at start & end function playLetterSound(sound) { - items.audioVoices.play(sound) + // first we clear the queue in case other voices are there, then we append the new number + // if we play directly, we don't have the bonus sound (or it is truncated) + items.audioVoices.clearQueue() + items.audioVoices.append(sound) } function drawSegment(pointIndex) { if (pointIndex == items.pointIndexToClick) { items.pointImageRepeater.itemAt(pointIndex).opacity = 0 if (mode == "clickanddraw" || mode == "drawletters" || mode == "drawnumbers") { if (pointIndex < items.pointImageRepeater.count-1) { items.pointImageRepeater.itemAt(pointIndex+1).highlight = true } } // Draw the line from pointIndex - 1 to pointIndex if(pointPositions2 && pointPositions2[pointIndex] != pointPositions2[pointIndex-1]) { //do nothing } else { if (pointIndex > 0) { items.segmentsRepeater.itemAt(pointIndex-1).opacity = 1 } } if (pointIndex == items.pointImageRepeater.count-1) { for (var i = 1; i < dataset[currentLevel].coordinates.length; i++) { items.segmentsRepeater.itemAt(i-1).opacity = 0 } items.imageBack2.source = url + dataset[currentLevel].imageName2 won() } items.pointIndexToClick++ } } function loadCoordinates() { // prepare points data pointPositions = dataset[currentLevel].coordinates pointPositions2 = dataset[currentLevel].coordinates2 items.pointImageRepeater.model = pointPositions if (mode == "clickanddraw" || mode == "drawletters" || mode == "drawnumbers") items.pointImageRepeater.itemAt(0).highlight = true // prepare segments data linePropertiesArray = [] for (var i = 0; i < (pointPositions.length)-1; i++) { var lineProperties = [] // properties are x1,y1,x2,y,angle rotation lineProperties[0] = pointPositions[i][0] // x lineProperties[1] = pointPositions[i][1] // y lineProperties[2] = pointPositions[i+1][0] // x2 lineProperties[3] = pointPositions[i+1][1] // y2 linePropertiesArray[i] = lineProperties } items.segmentsRepeater.model = linePropertiesArray } function loadBackgroundImage() { items.imageBack.source = url + dataset[currentLevel].imageName1 items.imageBack2.source = url + dataset[currentLevel].imageName1 } function won() { - if(mode == "drawletters" || mode == "drawnumbers") { - playLetterSound(dataset[currentLevel].sound) - } items.bonus.good("flower") } diff --git a/src/activities/penalty/penalty.js b/src/activities/penalty/penalty.js index 9465bee9d..9f64eec26 100644 --- a/src/activities/penalty/penalty.js +++ b/src/activities/penalty/penalty.js @@ -1,74 +1,74 @@ /* GCompris - penalty.js * * Copyright (C) 2014 Stephane Mankowski * * Authors: * Bruno Coudoin (GTK+ version) * Stephane Mankowski (Qt Quick port) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ .pragma library .import QtQuick 2.0 as Quick var currentLevel = 0 var numberOfLevel = 9 var items var url = "qrc:/gcompris/src/activities/penalty/resource/" function start(items_) { items = items_ currentLevel = 0 initLevel() } function stop() { } function initLevel() { items.bar.level = currentLevel + 1 if(currentLevel === 0) items.duration = 1000 else if(currentLevel === 1) items.duration = 800 - else if(currentLevel === 2) items.duration = 600 - else if(currentLevel === 3) items.duration = 400 - else if(currentLevel === 4) items.duration = 250 - else if(currentLevel === 5) items.duration = 200 - else if(currentLevel === 6) items.duration = 180 - else if(currentLevel === 7) items.duration = 170 - else if(currentLevel === 8) items.duration = 160 + else if(currentLevel === 2) items.duration = 700 + else if(currentLevel === 3) items.duration = 600 + else if(currentLevel === 4) items.duration = 500 + else if(currentLevel === 5) items.duration = 400 + else if(currentLevel === 6) items.duration = 350 + else if(currentLevel === 7) items.duration = 300 + else if(currentLevel === 8) items.duration = 250 resetLevel() } function resetLevel() { items.ball.state = "INITIAL" items.progressRight.ratio = 0 items.progressLeft.ratio = 0 items.progressTop.ratio = 0 } function nextLevel() { if(numberOfLevel <= ++currentLevel ) { currentLevel = 0 } initLevel(); } function previousLevel() { if(--currentLevel < 0) { currentLevel = numberOfLevel - 1 } initLevel(); } diff --git a/src/activities/readingv/ActivityInfo.qml b/src/activities/readingv/ActivityInfo.qml index 581ee018e..f26e22427 100644 --- a/src/activities/readingv/ActivityInfo.qml +++ b/src/activities/readingv/ActivityInfo.qml @@ -1,36 +1,36 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Johnny Jazeix * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import GCompris 1.0 ActivityInfo { name: "readingv/Readingv.qml" difficulty: 2 - icon: "readingv/reading.svg" + icon: "readingv/readingv.svg" author: "Johnny Jazeix <jazeix@gmail.com>" demo: true title: qsTr("Vertical-reading practice") description: qsTr("Read a vertical list of words and work out if a given word is in it.") // intro: "Read a list of words and work out if a given word is in it." goal: qsTr("Reading training in a limited time") prerequisite: qsTr("Reading") manual: qsTr("A word is shown at the top right of the board. A list of words will appear and disappear on the left. Does the given word belong to the list?") credit: "" section: "reading" createdInVersion: 5000 } diff --git a/src/activities/readingv/reading.svg b/src/activities/readingv/readingv.svg similarity index 100% rename from src/activities/readingv/reading.svg rename to src/activities/readingv/readingv.svg diff --git a/src/activities/redraw_symmetrical/ActivityInfo.qml b/src/activities/redraw_symmetrical/ActivityInfo.qml index e7d6089ca..331709782 100644 --- a/src/activities/redraw_symmetrical/ActivityInfo.qml +++ b/src/activities/redraw_symmetrical/ActivityInfo.qml @@ -1,35 +1,35 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Bruno Coudoin * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import GCompris 1.0 ActivityInfo { name: "redraw_symmetrical/RedrawSymmetrical.qml" difficulty: 4 - icon: "redraw_symmetrical/redraw_symmetry.svg" + icon: "redraw_symmetrical/redraw_symmetrical.svg" author: "Bruno Coudoin <bruno.coudoin@gcompris.net>" demo: false title: qsTr("Mirror the given image") description: qsTr("Draw the image on the empty grid as if you see it in a mirror.") //intro: "Use the drawing tools to reproduce the right-hand side symmetrical figure." goal: "" prerequisite: "" manual: qsTr("First, select the proper color from the toolbar. Then drag to paint.") + " " + qsTr("At the first level a hint is provided to show that a symmetry is requested.") credit: "" section: "math geometry symmetry puzzle" } diff --git a/src/activities/redraw_symmetrical/redraw_symmetry.svg b/src/activities/redraw_symmetrical/redraw_symmetrical.svg similarity index 100% rename from src/activities/redraw_symmetrical/redraw_symmetry.svg rename to src/activities/redraw_symmetrical/redraw_symmetrical.svg diff --git a/src/activities/scalesboard_weight_avoirdupois/ActivityInfo.qml b/src/activities/scalesboard_weight_avoirdupois/ActivityInfo.qml index 6c70d140c..eb6584aec 100644 --- a/src/activities/scalesboard_weight_avoirdupois/ActivityInfo.qml +++ b/src/activities/scalesboard_weight_avoirdupois/ActivityInfo.qml @@ -1,34 +1,34 @@ /* GCompris - ActivityInfo.qml * * Copyright (C) 2015 Bruno Coudoin * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import GCompris 1.0 ActivityInfo { name: "scalesboard_weight_avoirdupois/ScalesboardWeight.qml" difficulty: 4 - icon: "scalesboard_weight_avoirdupois/scalesboard_weight.svg" + icon: "scalesboard_weight_avoirdupois/scalesboard_weight_avoirdupois.svg" author: "Bruno Coudoin <bruno.coudoin@gcompris.net>" demo: false title: qsTr("Balance the scales properly") description: qsTr("Drag and Drop masses to balance the scales and calculate the weight in the avoirdupois unit") // intro: "Drag the weights up to balance the scales." goal: qsTr("Mental calculation, arithmetic equality, unit conversion") prerequisite: "" manual: qsTr("To balance the scales, move the masses on the left or the right side. They can be arranged in any order. Take care of the weight and the unit of the masses, remember that a pound (lb) is 16 ounce (oz).") credit: "" section: "math" } diff --git a/src/activities/scalesboard_weight_avoirdupois/scalesboard_weight.svg b/src/activities/scalesboard_weight_avoirdupois/scalesboard_weight_avoirdupois.svg similarity index 100% rename from src/activities/scalesboard_weight_avoirdupois/scalesboard_weight.svg rename to src/activities/scalesboard_weight_avoirdupois/scalesboard_weight_avoirdupois.svg diff --git a/src/activities/share/resource/board/board0.qml b/src/activities/share/resource/board/board0.qml index 3f6dcb8ea..9ff691672 100644 --- a/src/activities/share/resource/board/board0.qml +++ b/src/activities/share/resource/board/board0.qml @@ -1,69 +1,69 @@ /* GCompris * * Copyright (C) 2016 Stefan Toncu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.0 /* Numbers of kids are given in the left widget which eases kid work. No rest (basket). */ QtObject { property variant levels : [ { - "instruction": qsTr("Paul wants to equally share 2 candies between his friends. They are 2. One girl and one boy. Can you help him? Place first the children in center, then drag the candies to each of them."), + "instruction": qsTr("Paul wants to equally share 2 candies between 2 of his friends: one girl and one boy. Can you help him? First, place the children in center, then drag the candies to each of them."), "totalBoys": 1, "totalGirls": 1, "totalCandies": 2, "showCount": true, "forceShowBasket": "false", "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Now he wants to give 4 candies to his friends."), "totalBoys": 1, "totalGirls": 1, "totalCandies": 4, "showCount": true, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Can you now give 6 of Paul's candies to his friends?"), "totalBoys": 1, "totalGirls": 1, "totalCandies": 6, "showCount": true, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Paul has only 10 candies left. He eats 2 candies and he gives the rest to his friends. Can you help him equally split the 8 remaining candies?"), "totalBoys": 1, "totalGirls": 1, "totalCandies": 8, "showCount": true, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 } ] } diff --git a/src/activities/share/resource/board/board1.qml b/src/activities/share/resource/board/board1.qml index 90b130c89..dc238e4d3 100644 --- a/src/activities/share/resource/board/board1.qml +++ b/src/activities/share/resource/board/board1.qml @@ -1,58 +1,58 @@ /* GCompris * * Copyright (C) 2016 Stefan Toncu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.0 /* Numbers of kids are given in the left widget which eases kid work. There is a rest (basket) */ QtObject { property variant levels : [ { - "instruction": qsTr("George wants to equally share 3 candies between his friends. They are 2. One girl and one boy. Can he equally split the candies to his friends? Place first the children in center, then drag the candies to each of them. Be careful, a rest will remain!"), + "instruction": qsTr("George wants to equally share 3 candies between 2 of his friends: one girl and one boy. Can he equally split the candies between his friends? First, place the children in center, then drag the candies to each of them. Be careful, a rest will remain!"), "totalBoys": 1, "totalGirls": 1, "totalCandies": 3, "showCount": true, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { - "instruction": qsTr("Maria wants to equally share 5 candies between her friends. They are 3. One girl and two boys. Can she equally split the candies to her friends? Place first the children in center, then drag the candies to each of them. Be careful, a rest will remain!"), + "instruction": qsTr("Maria wants to equally share 5 candies between 3 of her friends: one girl and two boys. Can she equally split the candies between her friends? First, place the children in center, then drag the candies to each of them. Be careful, a rest will remain!"), "totalBoys": 2, "totalGirls": 1, "totalCandies": 5, "showCount": true, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { - "instruction": qsTr("John wants to equally share 10 candies between his friends. They are 3. One boy and two girls. Can he equally split the candies to his friends? Place first the children in center, then drag the candies to each of them."), + "instruction": qsTr("John wants to equally share 10 candies between 3 of his friends: one boy and two girls. Can he equally split the candies between his friends? First, place the children in center, then drag the candies to each of them."), "totalBoys": 1, "totalGirls": 2, "totalCandies": 10, "showCount": true, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 } ] } diff --git a/src/activities/share/resource/board/board2.qml b/src/activities/share/resource/board/board2.qml index 1010c2dfb..d1b082ed1 100644 --- a/src/activities/share/resource/board/board2.qml +++ b/src/activities/share/resource/board/board2.qml @@ -1,68 +1,68 @@ /* GCompris * * Copyright (C) 2016 Stefan Toncu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.0 /* Numbers of kids are not given anymore in the left widget which forces kids to understand this part. No rest (basket). */ QtObject { property variant levels : [ { - "instruction": qsTr("Alice wants to equally share 3 candies between her friends. They are 3: one girl and two boys. Can you help her? Place first the children in the center, then drag the candies to each of them."), + "instruction": qsTr("Alice wants to equally share 3 candies between 3 of her friends: one girl and two boys. Can you help her? First, place the children in the center, then drag the candies to each of them."), "totalBoys": 2, "totalGirls": 1, "totalCandies": 3, "showCount": false, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Now, Alice wants to give 6 candies to her friends"), "totalBoys": 2, "totalGirls": 1, "totalCandies": 6, "showCount": false, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Can you help Alice give 9 candies to her friends: one girl and two boys?"), "totalBoys": 2, "totalGirls": 1, "totalCandies": 9, "showCount": false, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Alice has 12 candies left. She wants to give them all to her friends. Can you help her split the candies equally?"), "totalBoys": 2, "totalGirls": 1, "totalCandies": 12, "showCount": false, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 } ] } diff --git a/src/activities/share/resource/board/board3.qml b/src/activities/share/resource/board/board3.qml index a54f5d060..67591b35e 100644 --- a/src/activities/share/resource/board/board3.qml +++ b/src/activities/share/resource/board/board3.qml @@ -1,68 +1,68 @@ /* GCompris * * Copyright (C) 2016 Stefan Toncu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.0 /* Numbers of kids are not given anymore in the left widget. There is a rest (basket). */ QtObject { property variant levels : [ { - "instruction": qsTr("Michael wants to equally share 5 candies between his friends. They are 2. One girl and one boy. Can you help him? Place first the children in center, then drag the candies to each of them!"), + "instruction": qsTr("Michael wants to equally share 5 candies between 2 of his friends: one girl and one boy. Can you help him? First, place the children in center, then drag the candies to each of them!"), "totalBoys": 1, "totalGirls": 1, "totalCandies": 5, "showCount": false, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Helen has 3 friends: one boy and two girls. She wants to give them 7 candies. Help her split the candies between her friends!"), "totalBoys": 1, "totalGirls": 2, "totalCandies": 7, "showCount": false, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Michelle has 9 candies and wants to split them with two brothers and two sisters. Help her share the candies!"), "totalBoys": 2, "totalGirls": 2, "totalCandies": 9, "showCount": false, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Thomas wants to share his 11 candies with his friends: three boys and one girl. Can you help him?"), "totalBoys": 3, "totalGirls": 1, "totalCandies": 11, "showCount": false, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 0 } ] } diff --git a/src/activities/share/resource/board/board4.qml b/src/activities/share/resource/board/board4.qml index 1b2958645..9cd006f86 100644 --- a/src/activities/share/resource/board/board4.qml +++ b/src/activities/share/resource/board/board4.qml @@ -1,58 +1,58 @@ /* GCompris * * Copyright (C) 2016 Stefan Toncu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.0 /* Numbers of kids are not given anymore in the left widget. There is always a basket even if the rest can be equal to 0 */ QtObject { property variant levels : [ { - "instruction": qsTr("Charles wants to share his 8 candies to one boy and two girls. Can he split the candies equally?"), + "instruction": qsTr("Charles wants to share his 8 candies with 3 of his friends: one boy and two girls. Can he split the candies equally?"), "totalBoys": 1, "totalGirls": 2, "totalCandies": 8, "showCount": true, "forceShowBasket": true, "placedInGirls": 0, "placedInBoys": 0 }, { - "instruction": qsTr("For her birthday, Elizabeth has 12 candies to share with her friends. They are two girls and two boys. How should she split the candies to her friends?"), + "instruction": qsTr("For her birthday, Elizabeth has 12 candies to share with 4 of her friends: two girls and two boys. How should she split the candies to her friends?"), "totalBoys": 2, "totalGirls": 2, "totalCandies": 12, "showCount": true, "forceShowBasket": true, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Jason's father gave him 14 candies to share with his friends: two boys and three girls. Help him give the candies to his friends!"), "totalBoys": 2, "totalGirls": 3, "totalCandies": 14, "showCount": true, "forceShowBasket": true, "placedInGirls": 0, "placedInBoys": 0 } ] } diff --git a/src/activities/share/resource/board/board5.qml b/src/activities/share/resource/board/board5.qml index 87d811451..fd85de0d8 100644 --- a/src/activities/share/resource/board/board5.qml +++ b/src/activities/share/resource/board/board5.qml @@ -1,59 +1,59 @@ /* GCompris * * Copyright (C) 2016 Stefan Toncu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.0 /* Numbers of kids are not given anymore in the left widget. No rest (basket). Boy or Girl rectangles already contain a given number of candies. */ QtObject { property variant levels : [ { - "instruction": qsTr("Bob wants to give 5 candies to his friends: two boys and one girl, his girlfriend already has one candy. Can you help him equally split the candies so each friend will have the same amount of candies?"), + "instruction": qsTr("Bob wants to give 5 candies to his friends: two boys and one girl, his girlfriend already has one candy. Can you help him equally split the candies so that each friend will have the same amount of candies?"), "totalBoys": 2, "totalGirls": 1, "totalCandies": 6, "showCount": true, "forceShowBasket": false, "placedInGirls": 1, "placedInBoys": 0 }, { - "instruction": qsTr("Harry wants to equally share 8 candies between his friends: one boy and two girls. Place the children in center, then drag the candies to each of them so each of them has an equal number of candies."), + "instruction": qsTr("Harry wants to equally share 8 candies between his friends: one boy and two girls. Place the children in center, then drag the candies to each of them so that each of them has an equal number of candies."), "totalBoys": 1, "totalGirls": 2, "totalCandies": 9, "showCount": true, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 1 }, { "instruction": qsTr("Can you now give 6 of Harry's candies to his friends?"), "totalBoys": 1, "totalGirls": 2, "totalCandies": 8, "showCount": true, "forceShowBasket": false, "placedInGirls": 0, "placedInBoys": 2 } ] } diff --git a/src/activities/share/resource/board/board6.qml b/src/activities/share/resource/board/board6.qml index 4a2ea749c..9701b7862 100644 --- a/src/activities/share/resource/board/board6.qml +++ b/src/activities/share/resource/board/board6.qml @@ -1,59 +1,59 @@ /* GCompris * * Copyright (C) 2016 Stefan Toncu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.0 /* Numbers of kids are not given anymore in the left widget. No rest (basket). Boy or Girl rectangles already contain a given number of candies. */ QtObject { property variant levels : [ { - "instruction": qsTr("Help Jon split 9 candies to three boys and two girls. The rest will remain to Jon."), + "instruction": qsTr("Help Jon split 9 candies between three boys and two girls. The rest will remain to Jon."), "totalBoys": 3, "totalGirls": 2, "totalCandies": 9, "showCount": false, "forceShowBasket": true, "placedInGirls": 0, "placedInBoys": 0 }, { "instruction": qsTr("Jon wants to share the rest of his candies with his brother and his sister. Can you split them equally, knowing that his brother already has two candies?"), "totalBoys": 1, "totalGirls": 1, "totalCandies": 6, "showCount": false, "forceShowBasket": true, "placedInGirls": 0, "placedInBoys": 2 }, { "instruction": qsTr("Help Tux split some candies to his friends: 9 candies to one boy and two girls."), "totalBoys": 1, "totalGirls": 2, "totalCandies": 13, "showCount": false, "forceShowBasket": true, "placedInGirls": 2, "placedInBoys": 0 } ] } diff --git a/src/activities/tic_tac_toe/tic_tac_toe.svg b/src/activities/tic_tac_toe/tic_tac_toe.svg index 1295c039b..a4a898d7f 100644 --- a/src/activities/tic_tac_toe/tic_tac_toe.svg +++ b/src/activities/tic_tac_toe/tic_tac_toe.svg @@ -1,688 +1,631 @@ + inkscape:version="0.91 r13725" + width="100" + height="100"> + inkscape:window-maximized="1" /> - - - - - - - - - - - - + transform="translate(-526.65,-398.193)"> + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#3e5b9a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate" /> + style="fill:url(#radialGradient3157-9);stroke:url(#radialGradient3141-2);stroke-width:29.32823753;stroke-linecap:round;stroke-linejoin:round;filter:url(#filter3202-89)" + id="path3133-2" /> + style="display:inline;opacity:0.98999999;fill:#a78014;fill-opacity:1;stroke:none" /> + style="display:inline;fill:#a78014;fill-opacity:1;stroke:none" /> + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f2f2f2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate" /> + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#b28b16;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate" /> + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f1c43c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate" /> + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:Sans;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#b28b16;fill-opacity:1;stroke:none;stroke-width:1px;marker:none;enable-background:accumulate" /> + style="fill:url(#radialGradient3157-9-9-0);stroke:url(#radialGradient3141-2-8-5);stroke-width:29.32823753;stroke-linecap:round;stroke-linejoin:round;filter:url(#filter3202-89-0-7)" + id="path3133-2-0-9" /> image/svg+xml Openclipart 2009-01-17T12:20:59 https://openclipart.org/detail/21190/glossy-rectangle-black-by-steren Steren aqua button crystal glossy rectangle screen diff --git a/src/activities/tic_tac_toe_2players/tic_tac_toe_2players.svg b/src/activities/tic_tac_toe_2players/tic_tac_toe_2players.svg index 7861ac4a2..ee414d0e0 100644 --- a/src/activities/tic_tac_toe_2players/tic_tac_toe_2players.svg +++ b/src/activities/tic_tac_toe_2players/tic_tac_toe_2players.svg @@ -1,501 +1,442 @@ + width="100" + height="100"> + inkscape:window-maximized="1" /> - - - - - - - - - - - - - - + id="linearGradient4183-8" + x1="74.663681" + y1="17.278248" + x2="74.663681" + y2="128.68976" + gradientUnits="userSpaceOnUse" /> + id="radialGradient3157-9-9-0"> + id="stop3153-2-4-6" /> + id="stop3155-2-7-1" /> + id="radialGradient3141-2-8-5"> + id="stop3137-3-4-5" /> + id="stop3139-75-5-4" /> + id="filter3202-89-0-7"> + id="feGaussianBlur3204-7-3-6" /> + id="radialGradient3157-9"> + id="stop3153-2" /> + id="stop3155-2" /> + id="radialGradient3141-2"> + id="stop3137-3" /> + id="stop3139-75" /> + id="filter3202-89"> + id="feGaussianBlur3204-7" /> + + + + transform="translate(-526.65,-398.193)"> + style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#3e5b9a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate" /> - - - - + image/svg+xml Openclipart - + 2009-01-17T12:20:59 https://openclipart.org/detail/21190/glossy-rectangle-black-by-steren Steren aqua button crystal glossy rectangle screen diff --git a/src/core/main.qml b/src/core/main.qml index 63caec745..31647df32 100644 --- a/src/core/main.qml +++ b/src/core/main.qml @@ -1,346 +1,348 @@ /* GCompris - main.qml * * Copyright (C) 2014 Bruno Coudoin * * Authors: * Bruno Coudoin * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ import QtQuick 2.2 import QtQuick.Controls 1.0 import QtQuick.Window 2.1 import QtQml 2.2 import GCompris 1.0 import "qrc:/gcompris/src/core/core.js" as Core /** * GCompris' main QML file defining the top level window. * @ingroup infrastructure * * Handles application start (Component.onCompleted) and shutdown (onClosing) * on the QML layer. * * Contains the central GCAudio objects audio effects and audio voices. * * Contains the top level StackView presenting and animating GCompris' * full screen views. * * @sa BarButton, BarEnumContent * @inherit QtQuick.Window */ Window { id: main // Start in window mode at full screen size width: ApplicationSettings.previousWidth height: ApplicationSettings.previousHeight minimumWidth: 400 * ApplicationInfo.ratio minimumHeight: 400 * ApplicationInfo.ratio title: "GCompris" /// @cond INTERNAL_DOCS property var applicationState: Qt.application.state onApplicationStateChanged: { if (ApplicationInfo.isMobile && applicationState != Qt.ApplicationActive) { audioVoices.stop(); audioEffects.stop(); } } onClosing: Core.quit(main) GCAudio { id: audioVoices muted: !ApplicationSettings.isAudioVoicesEnabled Timer { id: delayedWelcomeTimer interval: 10000 /* Make sure, that playing welcome.ogg if delayed * because of not yet registered voices, will only * happen max 10sec after startup */ repeat: false onTriggered: { DownloadManager.voicesRegistered.disconnect(playWelcome); } function playWelcome() { audioVoices.append(ApplicationInfo.getAudioFilePath("voices-$CA/$LOCALE/misc/welcome.$CA")); } } Component.onCompleted: { if(ApplicationSettings.isAudioEffectsEnabled) append(ApplicationInfo.getAudioFilePath("qrc:/gcompris/src/core/resource/intro.$CA")) if (DownloadManager.areVoicesRegistered()) delayedWelcomeTimer.playWelcome(); else { DownloadManager.voicesRegistered.connect( delayedWelcomeTimer.playWelcome); delayedWelcomeTimer.start(); } } } GCAudio { id: audioEffects muted: !ApplicationSettings.isAudioEffectsEnabled } function playIntroVoice(name) { name = name.split("/")[0] audioVoices.append(ApplicationInfo.getAudioFilePath("voices-$CA/$LOCALE/intro/" + name + ".$CA")) } function checkWordset() { var wordset = ApplicationSettings.wordset if(wordset == '') // Maybe the wordset has been bundled or copied manually // we have to register it if we find it. wordset = 'data2/words/words.rcc' // check for words.rcc: if (DownloadManager.isDataRegistered("words")) { // words.rcc is already registered -> nothing to do } else if(DownloadManager.haveLocalResource(wordset)) { // words.rcc is there -> register old file first // then try to update in the background if(DownloadManager.updateResource(wordset)) { ApplicationSettings.wordset = wordset } } else if(ApplicationSettings.wordset) { // Only if wordset specified // words.rcc has not been downloaded yet -> ask for download Core.showMessageDialog( main, qsTr("The images for several activities are not yet installed. " + "Do you want to download them now?"), qsTr("Yes"), function() { if (DownloadManager.downloadResource(wordset)) var downloadDialog = Core.showDownloadDialog(pageView.currentItem, {}); }, qsTr("No"), null, function() { pageView.currentItem.focus = true } ); } } ChangeLog { id: changelog } Component.onCompleted: { console.log("enter main.qml (run #" + ApplicationSettings.exeCount + ", ratio=" + ApplicationInfo.ratio + ", fontRatio=" + ApplicationInfo.fontRatio + ", dpi=" + Math.round(Screen.pixelDensity*25.4) + ", sharedWritablePath=" + ApplicationInfo.getSharedWritablePath() + ")"); if (ApplicationSettings.exeCount === 1 && !ApplicationSettings.isKioskMode && ApplicationInfo.isDownloadAllowed) { // first run var dialog; dialog = Core.showMessageDialog( main, qsTr("Welcome to GCompris!") + '\n' + qsTr("You are running GCompris for the first time.") + '\n' + qsTr("You should verify that your application settings especially your language is set correctly, and that all language specific sound files are installed. You can do this in the Preferences Dialog.") + "\n" + qsTr("Have Fun!") + "\n" + qsTr("Your current language is %1 (%2).") .arg(Qt.locale(ApplicationInfo.getVoicesLocale(ApplicationSettings.locale)).nativeLanguageName) .arg(ApplicationInfo.getVoicesLocale(ApplicationSettings.locale)) + "\n" + qsTr("Do you want to download the corresponding sound files now?"), qsTr("Yes"), function() { if (DownloadManager.downloadResource( DownloadManager.getVoicesResourceForLocale(ApplicationSettings.locale))) var downloadDialog = Core.showDownloadDialog(pageView.currentItem, {}); }, qsTr("No"), null, function() { pageView.currentItem.focus = true checkWordset() } ); } else { // Register voices-resources for current locale, updates/downloads only if // not prohibited by the settings if (!DownloadManager.areVoicesRegistered()) { DownloadManager.updateResource( DownloadManager.getVoicesResourceForLocale(ApplicationSettings.locale)); } checkWordset() if(changelog.isNewerVersion(ApplicationSettings.lastGCVersionRan, ApplicationInfo.GCVersionCode)) { // display log between ApplicationSettings.lastGCVersionRan and ApplicationInfo.GCVersionCode var dialog; dialog = Core.showMessageDialog( main, qsTr("GCompris has been updated! Here are the new changes:
") + changelog.getLogBetween(ApplicationSettings.lastGCVersionRan, ApplicationInfo.GCVersionCode), "", null, "", null, function() { pageView.currentItem.focus = true } ); // Store new version ApplicationSettings.lastGCVersionRan = ApplicationInfo.GCVersionCode; } } } Loading { id: loading } StackView { id: pageView anchors.fill: parent initialItem: { "item": "qrc:/gcompris/src/activities/" + ActivityInfoTree.rootMenu.name, "properties": { 'audioVoices': audioVoices, 'audioEffects': audioEffects, 'loading': loading } } focus: ApplicationInfo.QTVersion >= "5.4.0" delegate: StackViewDelegate { id: root function getTransition(properties) { audioVoices.clearQueue() + audioVoices.stop() + if(!properties.exitItem.isDialog && // if coming from menu and !properties.enterItem.isDialog) // going into an activity then playIntroVoice(properties.enterItem.activityInfo.name); // play intro if (!properties.exitItem.isDialog || // if coming from menu or properties.enterItem.alwaysStart) // start signal enforced (for special case like transition from config-dialog to editor) properties.enterItem.start(); if(properties.name === "pushTransition") { if(properties.enterItem.isDialog) { return pushVTransition } else { return pushHTransition } } else { if(properties.exitItem.isDialog) { return popVTransition } else { return popHTransition } } } function transitionFinished(properties) { properties.exitItem.opacity = 1 if(!properties.enterItem.isDialog) { properties.exitItem.stop() } } property Component pushHTransition: StackViewTransition { PropertyAnimation { target: enterItem property: "x" from: target.width to: 0 duration: 500 easing.type: Easing.OutSine } PropertyAnimation { target: exitItem property: "x" from: 0 to: -target.width duration: 500 easing.type: Easing.OutSine } } property Component popHTransition: StackViewTransition { PropertyAnimation { target: enterItem property: "x" from: -target.width to: 0 duration: 500 easing.type: Easing.OutSine } PropertyAnimation { target: exitItem property: "x" from: 0 to: target.width duration: 500 easing.type: Easing.OutSine } } property Component pushVTransition: StackViewTransition { PropertyAnimation { target: enterItem property: "y" from: -target.height to: 0 duration: 500 easing.type: Easing.OutSine } PropertyAnimation { target: exitItem property: "y" from: 0 to: target.height duration: 500 easing.type: Easing.OutSine } } property Component popVTransition: StackViewTransition { PropertyAnimation { target: enterItem property: "y" from: target.height to: 0 duration: 500 easing.type: Easing.OutSine } PropertyAnimation { target: exitItem property: "y" from: 0 to: -target.height duration: 500 easing.type: Easing.OutSine } } property Component replaceTransition: pushHTransition } } /// @endcond }