Merge branch 'dev' (1.3.0 release)

preferencesAboutTextFull
Craig Watson 8 years ago
commit 789a4b61e1
  1. 5
      .gitignore
  2. 66
      OpenBoard.pro
  3. 3
      README
  4. 38
      README.md
  5. 27
      TEST_OpenBoard_Win32.txt
  6. 427
      buildDebianPackage.sh
  7. 844
      changes_porting_qt5.txt
  8. 173
      release_scripts/linux/build.sh
  9. 19
      release_scripts/linux/debian_package_files/prerm
  10. 402
      release_scripts/linux/package.sh
  11. 0
      release_scripts/osx/OpenBoard.packproj
  12. 45
      release_scripts/osx/release.macx.sh
  13. 118
      release_scripts/windows/OpenBoard.iss
  14. 28
      release_scripts/windows/release.win7.vc9.bat
  15. 4
      resources/OpenBoard.qrc
  16. 133
      resources/etc/OpenBoard.config
  17. 2
      resources/etc/OpenBoard.css
  18. 2
      resources/etc/npapi-wrapper.application.x-shockwave-flash.swf.htm
  19. 13
      resources/forms/mainWindow.ui
  20. 276
      resources/forms/preferences.ui
  21. 109
      resources/i18n/OpenBoard_ar.ts
  22. 109
      resources/i18n/OpenBoard_bg.ts
  23. 111
      resources/i18n/OpenBoard_ca.ts
  24. 109
      resources/i18n/OpenBoard_cs.ts
  25. 109
      resources/i18n/OpenBoard_da.ts
  26. 109
      resources/i18n/OpenBoard_de.ts
  27. 109
      resources/i18n/OpenBoard_el.ts
  28. 133
      resources/i18n/OpenBoard_en.ts
  29. 133
      resources/i18n/OpenBoard_en_UK.ts
  30. 109
      resources/i18n/OpenBoard_es.ts
  31. 115
      resources/i18n/OpenBoard_fr.ts
  32. 113
      resources/i18n/OpenBoard_fr_CH.ts
  33. 109
      resources/i18n/OpenBoard_it.ts
  34. 109
      resources/i18n/OpenBoard_iw.ts
  35. 113
      resources/i18n/OpenBoard_ja.ts
  36. 109
      resources/i18n/OpenBoard_ko.ts
  37. 109
      resources/i18n/OpenBoard_mg.ts
  38. 109
      resources/i18n/OpenBoard_nb.ts
  39. 113
      resources/i18n/OpenBoard_nl.ts
  40. 109
      resources/i18n/OpenBoard_pl.ts
  41. 109
      resources/i18n/OpenBoard_pt.ts
  42. 109
      resources/i18n/OpenBoard_ro.ts
  43. 109
      resources/i18n/OpenBoard_ru.ts
  44. 5198
      resources/i18n/OpenBoard_sk.ts
  45. 109
      resources/i18n/OpenBoard_sv.ts
  46. 109
      resources/i18n/OpenBoard_tr.ts
  47. 109
      resources/i18n/OpenBoard_zh.ts
  48. 109
      resources/i18n/OpenBoard_zh_CN.ts
  49. 109
      resources/i18n/OpenBoard_zh_TW.ts
  50. 74
      resources/images/angleMarker.svg
  51. BIN
      resources/images/banner.png
  52. 97
      resources/images/banner.svg
  53. BIN
      resources/images/banner_linear.png
  54. 91
      resources/images/banner_linear.svg
  55. BIN
      resources/images/toolbar/next.png
  56. BIN
      resources/images/toolbar/nextPage.png
  57. BIN
      resources/images/toolbar/nextPageOn.png
  58. BIN
      resources/images/toolbar/previous.png
  59. BIN
      resources/images/toolbar/previousPage.png
  60. BIN
      resources/images/toolbar/previousPageOn.png
  61. 7
      resources/library/applications/AnyEmbed.wgt/js/languages.js
  62. 712
      resources/library/applications/GeoInfo.wgt/js/languages.js
  63. 173
      resources/library/applications/GraphMe.wgt/JavaScript/languages.js
  64. 20
      resources/library/applications/Html.wgt/languages.js
  65. 2
      resources/library/applications/VideoPicker.wgt/config.xml
  66. BIN
      resources/library/applications/VideoPicker.wgt/imgs/capture_vimeo.png
  67. BIN
      resources/library/applications/VideoPicker.wgt/imgs/logos_web.jpg
  68. BIN
      resources/library/applications/VideoPicker.wgt/locales/en/capture_widget.jpg
  69. 2
      resources/library/applications/VideoPicker.wgt/locales/en/howto.html
  70. BIN
      resources/library/applications/VideoPicker.wgt/locales/fr/capture_widget.jpg
  71. 2
      resources/library/applications/VideoPicker.wgt/locales/fr/howto.html
  72. BIN
      resources/library/applications/VideoPicker.wgt/locales/ru/capture_widget.jpg
  73. 2
      resources/library/applications/VideoPicker.wgt/locales/ru/howto.html
  74. 6
      resources/library/applications/VideoPicker.wgt/scripts/languages.js
  75. 14
      resources/library/applications/WebBrowser.wgt/scripts/languages.js
  76. 6
      resources/library/applications/Wikipedia.wgt/config.xml
  77. 7
      resources/library/applications/Wikipedia.wgt/index.html
  78. 11
      resources/library/applications/Wikipedia.wgt/script/languages.js
  79. 9
      resources/library/applications/Wiktionnairy.wgt/script/languages.js
  80. BIN
      resources/library/interactivities/Ass audio.wgt/locales/sk/img/drop_img.png
  81. 60
      resources/library/interactivities/Ass audio.wgt/locales/sk/index.html
  82. 942
      resources/library/interactivities/Ass audio.wgt/locales/sk/js/script.js
  83. BIN
      resources/library/interactivities/Ass images.wgt/locales/sk/img/drop_img.png
  84. 60
      resources/library/interactivities/Ass images.wgt/locales/sk/index.html
  85. 828
      resources/library/interactivities/Ass images.wgt/locales/sk/js/script.js
  86. 16
      resources/library/interactivities/Calculation.wgt/i18n/Messages_sk.properties
  87. 19
      resources/library/interactivities/Calculation.wgt/js/help_sk-template.js
  88. 60
      resources/library/interactivities/Cat pict.wgt/locales/sk/index.html
  89. 836
      resources/library/interactivities/Cat pict.wgt/locales/sk/js/script.js
  90. 60
      resources/library/interactivities/Cat text.wgt/locales/sk/index.html
  91. 753
      resources/library/interactivities/Cat text.wgt/locales/sk/js/script.js
  92. 59
      resources/library/interactivities/Choose.wgt/locales/sk/index.html
  93. 792
      resources/library/interactivities/Choose.wgt/locales/sk/scripts/selQuestionApp.js
  94. 66
      resources/library/interactivities/Constrast.wgt/locales/sk/index.html
  95. 626
      resources/library/interactivities/Constrast.wgt/locales/sk/scripts/blackYellow.js
  96. 11
      resources/library/interactivities/Dial.wgt/i18n/Messages_sk.properties
  97. 16
      resources/library/interactivities/Dial.wgt/js/help_sk-template.js
  98. 14
      resources/library/interactivities/Dice.wgt/i18n/Messages_sk.properties
  99. 14
      resources/library/interactivities/Dice.wgt/js/help_sk-template.js
  100. 15
      resources/library/interactivities/Envelope.wgt/i18n/Messages_sk.properties
  101. Some files were not shown because too many files have changed in this diff Show More

5
.gitignore vendored

@ -50,6 +50,9 @@ Thumbs.db
.settings
Makefile.Sankore*
*.swp
*.vim
# Build files #
###############
build
@ -58,6 +61,8 @@ Makefile
Makefile.Debug
Makefile.Release
buildContext
# plugins #
###########

@ -9,17 +9,22 @@ CONFIG += debug_and_release \
VERSION_MAJ = 1
VERSION_MIN = 02
VERSION_MIN = 3
VERSION_PATCH = 0
VERSION_TYPE = r # a = alpha, b = beta, rc = release candidate, r = release, other => error
VERSION_PATCH = 10
VERSION_BUILD = 0
VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_PATCH}-$${VERSION_TYPE}.$${VERSION_BUILD}"
equals(VERSION_TYPE, r) {
VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_PATCH}"
}
VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_TYPE}.$${VERSION_PATCH}"
VERSION = $$replace(VERSION, "\\.r", "")
LONG_VERSION = "$${VERSION}.$${SVN_VERSION}"
macx:OSX_VERSION = "$${VERSION} (r$${SVN_VERSION})"
VERSION_RC = $$VERSION_MAJ,$$VERSION_MIN,$$VERSION_TYPE,$$VERSION_PATCH
VERSION_RC = $$VERSION_MAJ,$$VERSION_MIN,$$VERSION_PATCH,$$VERSION_TYPE,$$VERSION_BUILD
VERSION_RC = $$replace(VERSION_RC, "a", "160") # 0xA0
VERSION_RC = $$replace(VERSION_RC, "b", "176") # 0xB0
VERSION_RC = $$replace(VERSION_RC, "rc", "192" ) # 0xC0
@ -109,12 +114,20 @@ RCC_DIR = $$BUILD_DIR/rcc
UI_DIR = $$BUILD_DIR/ui
win32 {
LIBS += -lUser32
LIBS += -lGdi32
LIBS += -lAdvApi32
LIBS += -lOle32
RC_FILE = resources/win/OpenBoard.rc
CONFIG += qaxcontainer
CONFIG += axcontainer
exists(console):CONFIG += console
QMAKE_CXXFLAGS += /MP
QMAKE_CXXFLAGS += /MD
QMAKE_CXXFLAGS_RELEASE += /Od /Zi
QMAKE_LFLAGS_RELEASE += /DEBUG
QMAKE_LFLAGS += /VERBOSE:LIB
UB_LIBRARY.path = $$DESTDIR
UB_I18N.path = $$DESTDIR/i18n
UB_ETC.path = $$DESTDIR
@ -124,36 +137,41 @@ win32 {
system(echo "$$LONG_VERSION" > $$BUILD_DIR/longversion)
system(echo "$$SVN_VERSION" > $$BUILD_DIR/svnversion)
DEFINES += NOMINMAX # avoids compilation error in qdatetime.h
}
macx {
LIBS += -framework Foundation
LIBS += -framework Cocoa
LIBS += -framework Carbon
LIBS += -framework AVFoundation
LIBS += -framework CoreMedia
LIBS += -lcrypto
CONFIG(release, debug|release):CONFIG += x86
# [03-02-2011] We must use the 32bit version for the moment
# because the Quicktime components used by this application
# are not yet available in 64bits.
CONFIG(debug, debug|release):CONFIG += x86
CONFIG(release, debug|release):CONFIG += x86_64
CONFIG(debug, debug|release):CONFIG += x86_64
QMAKE_MAC_SDK = "/Developer/SDKs/MacOSX10.6.sdk"
QMAKE_MACOSX_DEPLOYMENT_TARGET = "10.5"
QMAKE_MAC_SDK = macosx
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.10
VERSION_RC_PATH = "$$BUILD_DIR/version_rc"
QMAKE_CXXFLAGS += -Wno-overloaded-virtual
#VERSION_RC_PATH = "$$BUILD_DIR/version_rc"
# No references to breakpad in the code =>is this still used?
# Embed version into executable for breakpad
QMAKE_LFLAGS += -sectcreate \
__DATA \
__version \
$$VERSION_RC_PATH
#QMAKE_LFLAGS += -sectcreate \
# __DATA \
# __version \
# $$VERSION_RC_PATH
QMAKE_CXXFLAGS_RELEASE += -gdwarf-2 \
-mdynamic-no-pic
QMAKE_CFLAGS += -fopenmp
QMAKE_CXXFLAGS += -fopenmp
QMAKE_LFLAGS += -fopenmp
# QMAKE_CFLAGS += -fopenmp
# QMAKE_CXXFLAGS += -fopenmp
# QMAKE_LFLAGS += -fopenmp
CONTENTS_DIR = "Contents"
RESOURCES_DIR = "Contents/Resources"
@ -364,7 +382,7 @@ macx {
system(mkdir -p $$BUILD_DIR)
system(printf \""$$OSX_VERSION"\" > $$BUILD_DIR/osx_version)
system(printf \""$$VERSION"\" > $$BUILD_DIR/version)
system(printf "%02x%02x%02x%02x" `printf $$VERSION_RC | cut -d ',' -f 1` `printf $$VERSION_RC | cut -d ',' -f 2` `printf $$VERSION_RC | cut -d ',' -f 3` `printf $$VERSION_RC | cut -d ',' -f 4` | xxd -r -p > "$$VERSION_RC_PATH")
# system(printf "%02x%02x%02x%02x" `printf $$VERSION_RC | cut -d ',' -f 1` `printf $$VERSION_RC | cut -d ',' -f 2` `printf $$VERSION_RC | cut -d ',' -f 3` `printf $$VERSION_RC | cut -d ',' -f 4` | xxd -r -p > "$$VERSION_RC_PATH")
}
linux-g++* {

@ -1,3 +0,0 @@
[Ubuntu Linux]
Fonts
- If you want to use the web compatible fonts, you need to install the package ttf-mscorefonts-installer.

@ -0,0 +1,38 @@
# OpenBoard
OpenBoard is an open source cross-platform interactive white board application designed primarily for use in schools. It was originally forked from Open-Sankoré, which was itself based on Uniboard.
Supported platforms are Windows (7+), OS X (10.9+) and Linux (tested on Ubuntu 14.04 and 16.04).
## Installing
Installers are available for Windows, OS X and Ubuntu on the [wiki](https://github.com/DIP-SEM/OpenBoard/wiki/Downloads).
## Building from source
First, obtain the third party libraries from the OpenBoard-ThirdParty repository, and build them (instructions are provided for each library).
Then, you may use the build (and packaging) scripts which are provided for all three platforms. These take care of compiling OpenBoard, including the translations (for OpenBoard and for Qt), stripping the debug symbols, creating the installers etc.
Minor modification to those scripts may be necessary depending on your configuration, to set the correct Qt path for example.
Alternatively, you can easily build OpenBoard with qmake and make:
qmake OpenBoard.pro -spec linux-g++-64 # replace linux-g++-64 by macx or win32 for other platforms
make
Compilers used are gcc (Linux), clang (OS X) and MSVC 2010 (Windows). Make sure that your version of Qt matches this, as it is not possible e.g to build OpenBoard with clang if Qt was built with gcc.
## Dependencies
The latest version (1.3) requires Qt 5.5. (While it has been shown to mostly work with Qt 5.2, we cannot guarantee compatibility with Qt versions other than 5.5.)
### Qt 5.5 on Linux
Due to a shared library conflict within Qt 5 in some distributions / some Qt versions (the Multimedia and Webkit modules were built against different versions of gstreamer by default), a specific installation of Qt5.5 may be needed for all of OpenBoard's features to work correctly.
It can either be built from source, with the configure flag `-gstreamer 1.0` (see [here](http://doc.qt.io/qt-5/linux-building.html)), or installed from Stephan Binner's PPAs on Ubuntu.
In the latter case, simply add the repositories and install Qt 5.5.1 like so (example provided for Ubuntu 14.04, aka "Trusty"):
sudo add-apt-repository ppa:beineri/opt-qt551-trusty
sudo apt-get update
sudo apt-get install qt-latest
Some distributions, such as Ubuntu 16.04, provide Qt 5.5.1 packages that work perfectly with OpenBoard, so you can simply install Qt from the official repository.

@ -1,27 +0,0 @@
****************************
* TEST OpenBoard *
* under Win32 (Windows 7) *
* *
****************************
======================|====================|
Modules | Status |
======================|====================|
Network Manager | web OK |
----------------------|--------------------|
the video media |.avi not working |
| .mp4 works in small|
| format |
----------------------|--------------------|
audio | OK |
----------------------|--------------------|
| |
----------------------|--------------------|
| |
----------------------|--------------------|
| |
----------------------|--------------------|

@ -1,427 +0,0 @@
#!/bin/bash
# --------------------------------------------------------------------
# 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 2 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 <http://www.gnu.org/licenses/>.
# ---------------------------------------------------------------------
#**********************
# functions
#**********************
checkUser()
{
if [ `id -u` -ne 0 ]; then
echo "Please run the script as root, may be using fakeroot command as follow"
echo "fakeroot ./buildDebianPackage.sh [options]"
exit 1
fi
}
initializeVariables()
{
APPLICATION_NAME="OpenBoard"
MAKE_TAG=true
STANDARD_QT_USED=false
PRODUCT_PATH="build/linux/release/product"
QT_PATH="/usr/local/Trolltech/Qt-4.8.0"
PLUGINS_PATH="$QT_PATH/plugins"
GUI_TRANSLATIONS_DIRECTORY_PATH="../Qt-4.8/translations"
QT_LIBRARY_DEST_PATH="$PRODUCT_PATH/qtlib"
QT_LIBRARY_SOURCE_PATH="$QT_PATH/lib"
if [ -z $ARCHITECTURE ]; then
ARCHITECTURE=`uname -m`
if [ "$ARCHITECTURE" == "x86_64" ]; then
ARCHITECTURE="amd64"
fi
if [ "$ARCHITECTURE" == "i686" ]; then
ARCHITECTURE="i386"
fi
fi
NOTIFY_CMD=`which notify-send`
QMAKE_PATH="$QT_PATH/bin/qmake"
LRELEASES="$QT_PATH/bin/lrelease"
ZIP_PATH=`which zip`
}
notifyError(){
if [ -e "$NOTIFY_CMD" ]; then
$NOTIFY_CMD -t 0 -i "/usr/share/icons/oxygen/64x64/status/dialog-error.png" "$1"
fi
printf "\033[31merror:\033[0m $1\n"
exit 1
}
notifyProgress(){
if [ -e "$NOTIFY_CMD" ]; then
$NOTIFY_CMD "$1" "$2"
fi
printf "\033[32m--> Achieved task:\033[0m $1:\n\t$2\n"
}
alertIfPreviousVersionInstalled(){
APT_CACHE=`which apt-cache`
if [ ! -e "$APT_CACHE" ]; then
notifyError "apt-cache command not found"
else
SEARCH_RESULT=`$APT_CACHE search ${APPLICATION_NAME}`
if [ `echo $SEARCH_RESULT | grep -c ${APPLICATION_NAME}` -ge 1 ]; then
notifyError "Found a previous version of ${APPLICATION_NAME}. Remove it to avoid to put it as dependency"
fi
fi
}
checkDir(){
if [ ! -d "$1" ]; then
notifyError "Directory not found : $1"
fi
}
checkExecutable(){
if [ ! -e "$1" ]; then
notifyError "$1 command not found"
fi
}
copyQtLibrary(){
if ls "$QT_LIBRARY_SOURCE_PATH/$1.so" &> /dev/null; then
cp $QT_LIBRARY_SOURCE_PATH/$1.so.? "$QT_LIBRARY_DEST_PATH/"
cp $QT_LIBRARY_SOURCE_PATH/$1.so.?.?.? "$QT_LIBRARY_DEST_PATH/"
else
notifyError "$1 library not found in path: $QT_LIBRARY_SOURCE_PATH"
fi
}
buildWithStandardQt(){
STANDARD_QT=`which qmake-qt4`
if [ $? == "0" ]; then
QT_VERSION=`$STANDARD_QT --version | grep -i "Using Qt version" | sed -e "s/Using Qt version \(.*\) in.*/\1/"`
if [ `echo $QT_VERSION | sed -e "s/\.//g"` -gt 480 ]; then
notifyProgress "Standard QT" "A recent enough qmake has been found. Using this one instead of custom one"
STANDARD_QT_USED=true
QMAKE_PATH=$STANDARD_QT
LRELEASES=`which lrelease`
if [ "`arch`" == "i686" ] || [ "$ARCHITECTURE" == "i386" ]; then
QT_PATH="/usr/lib/i386-linux-gnu"
else
QT_PATH="/usr/lib/`arch`-linux-gnu"
fi
PLUGINS_PATH="$QT_PATH/qt4/plugins"
fi
fi
}
buildImporter(){
IMPORTER_DIR="../OpenBoard-Importer/"
IMPORTER_NAME="OpenBoardImporter"
checkDir $IMPORTER_DIR
cd ${IMPORTER_DIR}
rm moc_*
rm -rf debug release
rm *.o
git reset --hard
git pull
$QMAKE_PATH ${IMPORTER_NAME}.pro
make clean
make -j4
checkExecutable $IMPORTER_NAME
cd -
}
#**********************
# script
#**********************
checkUser
for var in "$@"
do
if [ $var == "notag" ]; then
MAKE_TAG=false
fi
# forcing a architecture because of cross compiling
if [ $var == "i386" ]; then
ARCHITECTURE="i386"
fi
if [ $var == "amd64" ]; then
ARCHITECTURE="amd64"
fi
done
initializeVariables
buildWithStandardQt
alertIfPreviousVersionInstalled
# check of directories and executables
checkDir $QT_PATH
checkDir $PLUGINS_PATH
checkDir $GUI_TRANSLATIONS_DIRECTORY_PATH
checkExecutable $QMAKE_PATH
checkExecutable $LRELEASES
checkExecutable $ZIP_PATH
#build third party application
buildImporter
notifyProgress "OpenBoardImporter" "Built Importer"
# cleaning the build directory
rm -rf "build/linux/release"
rm -rf install
notifyProgress "QT" "Internalization"
$LRELEASES ${APPLICATION_NAME}.pro
cd $GUI_TRANSLATIONS_DIRECTORY_PATH
$LRELEASES translations.pro
cd -
notifyProgress "${APPLICATION_NAME}" "Building ${APPLICATION_NAME}"
if [ "$ARCHITECTURE" == "amd64" ]; then
$QMAKE_PATH ${APPLICATION_NAME}.pro -spec linux-g++-64
else
$QMAKE_PATH ${APPLICATION_NAME}.pro -spec linux-g++
fi
make -j 4 release-install
if [ ! -e "$PRODUCT_PATH/${APPLICATION_NAME}" ]; then
notifyError "${APPLICATION_NAME} build failed"
fi
notifyProgress "Git Hub" "Make a tag of the delivered version"
VERSION=`cat build/linux/release/version`
if [ ! -f build/linux/release/version ]; then
notifyError "version not found"
else
LAST_COMMITED_VERSION="`git describe $(git rev-list --tags --max-count=1)`"
if [ "v$VERSION" != "$LAST_COMMITED_VERSION" ]; then
if [ $MAKE_TAG == true ]; then
git tag -a "OBv$VERSION" -m "OpenBoard setup for v$VERSION"
git push origin --tags
fi
fi
fi
cp resources/linux/run.sh $PRODUCT_PATH
chmod a+x $PRODUCT_PATH/run.sh
cp -R resources/linux/qtlinux/* $PRODUCT_PATH/
notifyProgress "QT" "Copying plugins and library ..."
cp -R $PLUGINS_PATH $PRODUCT_PATH/
# copying customization
cp -R resources/customizations $PRODUCT_PATH/
# copying importer
mkdir -p $PRODUCT_PATH/Importer
cp -R ${IMPORTER_DIR}/${IMPORTER_NAME} $PRODUCT_PATH/Importer
if [ $STANDARD_QT_USED == false ]; then
#copying custom qt library
mkdir -p $QT_LIBRARY_DEST_PATH
copyQtLibrary libQtDBus
copyQtLibrary libQtScript
copyQtLibrary libQtSvg
copyQtLibrary libQtXmlPatterns
copyQtLibrary libQtNetwork
copyQtLibrary libQtXml
copyQtLibrary libQtGui
copyQtLibrary libQtCore
copyQtLibrary libphonon
copyQtLibrary libQtWebKit
fi
notifyProgress "QT" "Internalization"
if [ ! -e $PRODUCT_PATH/i18n ]; then
mkdir $PRODUCT_PATH/i18n
fi
#copying qt gui translation
cp $GUI_TRANSLATIONS_DIRECTORY_PATH/qt_??.qm $PRODUCT_PATH/i18n/
rm -rf install/linux
mkdir -p install/linux
#Removing .svn directories ...
cd $PRODUCT_PATH
find . -name .svn -exec rm -rf {} \; 2> /dev/null
cd -
notifyProgress "Building ${APPLICATION_NAME}" "Finished to build ${APPLICATION_NAME} building the package"
BASE_WORKING_DIR="packageBuildDir"
#creating package directory
mkdir $BASE_WORKING_DIR
mkdir "$BASE_WORKING_DIR/DEBIAN"
mkdir -p "$BASE_WORKING_DIR/usr/share/applications"
mkdir -p "$BASE_WORKING_DIR/usr/local"
cat > "$BASE_WORKING_DIR/DEBIAN/prerm" << EOF
#!/bin/bash
# --------------------------------------------------------------------
# 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 <http://www.gnu.org/licenses/>.
# ---------------------------------------------------------------------
xdg-desktop-menu uninstall /usr/share/applications/${APPLICATION_NAME}.desktop
exit 0
#DEBHELPER#
EOF
cat > "$BASE_WORKING_DIR/DEBIAN/postint" << EOF
#!/bin/bash
# --------------------------------------------------------------------
# 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 <http://www.gnu.org/licenses/>.
# ---------------------------------------------------------------------
xdg-desktop-menu install --novendor /usr/share/applications/${APPLICATION_NAME}.desktop
exit 0
#DEBHELPER#
EOF
APPLICATION_DIRECTORY_NAME="${APPLICATION_NAME}-$VERSION"
PACKAGE_DIRECTORY="$BASE_WORKING_DIR/usr/local/$APPLICATION_DIRECTORY_NAME"
#move build directory to packages directory
cp -R $PRODUCT_PATH $PACKAGE_DIRECTORY
cat > $BASE_WORKING_DIR/usr/local/$APPLICATION_DIRECTORY_NAME/run.sh << EOF
#!/bin/bash
# --------------------------------------------------------------------
# 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 <http://www.gnu.org/licenses/>.
# ---------------------------------------------------------------------
env LD_LIBRARY_PATH=/usr/local/$APPLICATION_DIRECTORY_NAME/qtlib:$LD_LIBRARY_PATH /usr/local/$APPLICATION_DIRECTORY_NAME/${APPLICATION_NAME}
EOF
CHANGE_LOG_FILE="$BASE_WORKING_DIR/DEBIAN/changelog-${APPLICATION_NAME}-$VERSION.txt"
CONTROL_FILE="$BASE_WORKING_DIR/DEBIAN/control"
CHANGE_LOG_TEXT="changelog.txt"
echo "${APPLICATION_NAME} ($VERSION) $ARCHITECTURE; urgency=low" > "$CHANGE_LOG_FILE"
echo >> "$CHANGE_LOG_FILE"
cat $CHANGE_LOG_TEXT >> "$CHANGE_LOG_FILE"
echo >> "$CHANGE_LOG_FILE"
echo "-- Claudio Valerio <claudio.valerio@oe-f.org> `date`" >> "$CHANGE_LOG_FILE"
echo "Package: ${APPLICATION_NAME}" > "$CONTROL_FILE"
echo "Version: $VERSION" >> "$CONTROL_FILE"
echo "Section: education" >> "$CONTROL_FILE"
echo "Priority: optional" >> "$CONTROL_FILE"
echo "Architecture: $ARCHITECTURE" >> "$CONTROL_FILE"
echo "Essential: no" >> "$CONTROL_FILE"
echo "Installed-Size: `du -s $PACKAGE_DIRECTORY | awk '{ print $1 }'`" >> "$CONTROL_FILE"
echo "Maintainer: ${APPLICATION_NAME} Developers team <dev@oe-f.org>" >> "$CONTROL_FILE"
echo "Homepage: http://www.openboard.org" >> "$CONTROL_FILE"
echo -n "Depends: " >> "$CONTROL_FILE"
unset tab
declare -a tab
let count=0
for l in `objdump -p $PACKAGE_DIRECTORY/${APPLICATION_NAME} | grep NEEDED | awk '{ print $2 }'`; do
for lib in `dpkg -S $l | awk -F":" '{ print $1 }'`; do
#echo $lib
presence=`echo ${tab[*]} | grep -c "$lib"`;
if [ "$presence" == "0" ]; then
tab[$count]=$lib;
((count++));
fi;
done;
done;
for ((i=0;i<${#tab[@]};i++)); do
if [ $i -ne "0" ]; then
echo -n ", " >> "$CONTROL_FILE"
fi
echo -n "${tab[$i]} (>= "`dpkg -p ${tab[$i]} | grep "Version: " | awk '{ print $2 }' | sed -e 's/\([:. 0-9?]*\).*/\1/g' | sed -e 's/\.$//'`") " >> "$CONTROL_FILE"
done
echo "" >> "$CONTROL_FILE"
echo "Description: This a interactive white board that uses a free standard format." >> "$CONTROL_FILE"
find $BASE_WORKING_DIR/usr/ -exec md5sum {} > $BASE_WORKING_DIR/DEBIAN/md5sums 2>/dev/null \;
APPLICATION_SHORTCUT="$BASE_WORKING_DIR/usr/share/applications/${APPLICATION_NAME}.desktop"
echo "[Desktop Entry]" > $APPLICATION_SHORTCUT
echo "Version=$VERSION" >> $APPLICATION_SHORTCUT
echo "Encoding=UTF-8" >> $APPLICATION_SHORTCUT
echo "Name=${APPLICATION_NAME} ($VERSION)" >> $APPLICATION_SHORTCUT
echo "GenericName=${APPLICATION_NAME}" >> $APPLICATION_SHORTCUT
echo "Comment=Logiciel de création de présentations pour tableau numérique interactif (TNI)" >> $APPLICATION_SHORTCUT
echo "Exec=/usr/local/$APPLICATION_DIRECTORY_NAME/run.sh" >> $APPLICATION_SHORTCUT
echo "Icon=/usr/local/$APPLICATION_DIRECTORY_NAME/${APPLICATION_NAME}.png" >> $APPLICATION_SHORTCUT
echo "StartupNotify=true" >> $APPLICATION_SHORTCUT
echo "Terminal=false" >> $APPLICATION_SHORTCUT
echo "Type=Application" >> $APPLICATION_SHORTCUT
echo "Categories=Education" >> $APPLICATION_SHORTCUT
cp "resources/images/${APPLICATION_NAME}.png" "$PACKAGE_DIRECTORY/${APPLICATION_NAME}.png"
chmod 755 "$BASE_WORKING_DIR/DEBIAN"
chmod 755 "$BASE_WORKING_DIR/DEBIAN/prerm"
chmod 755 "$BASE_WORKING_DIR/DEBIAN/postint"
mkdir -p "install/linux"
DEBIAN_PACKAGE_NAME="${APPLICATION_NAME}_`lsb_release -is`_`lsb_release -rs`_${VERSION}_$ARCHITECTURE.deb"
chown -R root:root $BASE_WORKING_DIR
dpkg -b "$BASE_WORKING_DIR" "install/linux/$DEBIAN_PACKAGE_NAME"
#clean up mess
rm -rf $BASE_WORKING_DIR
notifyProgress "${APPLICATION_NAME}" "Package built"
exit 0

@ -1,844 +0,0 @@
*******************************
* PORTING QT4->QT5 *
* CHANGES *
* win32 compilaton &exec *
*******************************
QtSingleApplication replacement for Qt5
----------------------------------------
http://blog.kadu.im/2015/01/qtsingleapplication-replacement-for-qt5.html
UBWidgetMessageAPI.cpp
------------------------
-replace mGraphicsWidgetItem->page()->mainFrame()->evaluateJavaScript(js); by (Line 67)
QtWebKitWidgets
UBGraphicsWidgetItem.h
---------------------
- add #include <QtWebKitWidgets/QWebFrame>
UBGraphicsMediaItem.cpp
*-----------------------
- comment //Phonon::createPath(mMediaObject, mAudioOutput); (line 109)
- replace //mMediaObject->setCurrentSource(QMediaSource(absoluteMediaFilename)); by mMediaObject->setMedia(QUrl::fromLocalFile(absoluteMediaFilename)); (Line 191)
- replace //mAudioOutput = new QMediaPlayer(format, this); by mAudioOutput = new QMediaPlayer;
- replace //mMediaObject->seek(mInitialPos); by mMediaObject->setPosition(mInitialPos);
UBGraphicsMediaItem.h
-----------------------
- replace QAudioOutput *mAudioOutput; by QMediaPlayer *mAudioOutput;
- replace //mMediaObject->setTickInterval(50); by mMediaObject->setPosition(50);
UBGraphicsMediaItemDelegate.h
-------------------------------
- add #include <QtMultimedia/QMediaPlayer> header file
UBGraphicsMediaItemDelegate.cpp
-------------------------------
- replace UBGraphicsMediaItemDelegate::UBGraphicsMediaItemDelegate(UBGraphicsMediaItem* pDelegated, QMediaObject* pMedia, QObject * parent)
by UBGraphicsMediaItemDelegate::UBGraphicsMediaItemDelegate(UBGraphicsMediaItem* pDelegated, QMediaPlayer* pMedia, QObject * parent)
- replace //mMediaObject->setCurrentSource(mSource); by mMediaObject->setMedia(QUrl::fromLocalFile(pMediaFileUrl));
- replace //QMediaObject* media = delegated()->mediaObject(); by QMediaPlayer* media = delegated()->mediaObject();
- replace //remainingTime() by ((media->duration()-media->position()) <= 0) {
- replace totalTime()); by duration() (L246)
- replace //QMediaObject* media = delegated()->mediaObject();
QMediaPlayer* media = delegated()->mediaObject();
//mMediaControl->totalTimeChanged(media->totalTime());
mMediaControl->totalTimeChanged(media->duration()); (line 267)
- replace QMediaPlayer* media = delegated()->mediaObject();if (media->state() == QMediaPlayer::PlayingState)
- replace // delegated()->mediaObject()->setCurrentSource(delegated()->mediaFileUrl());
delegated()->mediaObject()->setCurrentSource(delegated()->mediaFileUrl());
- replace // delegated()->mediaObject()->setCurrentSource(delegated()->mediaFileUrl());
delegated()->mediaObject()->setMedia(delegated()->mediaFileUrl()); line 230
UBGraphicsItemDelegate.cpp
----------------------------
-replace //mDelegate->mediaObject()->seek(tickPos); by mDelegate->mediaObject()->setPosition(tickPos); (line 1445)
- replace //button->scale(0.8,0.8); by button->setScale(0.8);
UBGraphicsGroupContainerItem.cpp
----------------------------------
replace //foreach(QGraphicsItem *child, children()) by foreach(QGraphicsItem *child, childItems()) Line 287
UBGraphicsScene.cpp
-------------------
- replace //graphicsWidget->scale(ssf, ssf); by graphicsWidget->setScale(ssf); (1394)
- replace //svgItem->scale(sscale, sscale); by svgItem->setscale(sscale); (1521)
- replace //item->scale(ratio, ratio); by item->setscale(ratio); (1817)
- replace //pixmapItem->scale(pScaleFactor, pScaleFactor); by pixmapItem->setScale(pScaleFactor); (1273)
UBFileSystemUtils.cpp
--------------------
- replace QDesktopServices by QStandardPaths ; (line 138,139,
UBGraphicsMediaItem
-------------------
- replace //translate(translation.x(), translation.y()); by setPos(translation.x(), translation.y()); line 355
UBGraphicsDelegateFrame.cpp
----------------------------
- replace //translate(center.x(), center.y()); by setPos(center.x(), center.y()); line 840
- replace //translate(-center.x(), -center.y()); by setPos(-center.x(), -center.y()); line 840
- replace rotate(-angle); by setRotation(rotation() - angle); line 840
GraphicsPDFItem.cpp
----------------------
- replace //#include <QtGui/QStyleOptionGraphicsItem> by #include <QtWidgets/QGraphicsItem>
UBThumbnailWidget.cpp
---------------------
- replace //setAcceptsHoverEvents(true); by setAcceptHoverEvents(enabled); (line775) (accept without "s")
UBFeaturesWidget.cpp
--------------------
- add #include <QtWebKitWidgets/QWebview>
- add #include <Qt
OpenBoard.pro
-------------
- add QT += gui
UBDownloadWidget.cpp
--------------------
- replace //mpTree->header()->setResizeMode(eItemColumn_Desc, QHeaderView::Stretch);
mpTree->header()->setSectionResizeMode(eItemColumn_Desc, QHeaderView::Stretch);
//mpTree->header()->setResizeMode(eItemColumn_Close, QHeaderView::Custom);
mpTree->header()->setSectionResizeMode(eItemColumn_Close, QHeaderView::Custom); (Line 64)
UBWebPluginPDFWidget.cpp
--------------------------
- add //#include <QtGui> by #include <QtWidgets>
UBSpinningWheel.h
------------------
- add #include <QAtomicInt>
UBFeaturesWidget.cpp
---------------------
- add replace QWidget *eventSource = (QWidget*)event->source(); by QWidget *eventSource = event->source();
UBSpinningWheel.cpp
-------------------
- replace //painter.rotate(30 * (mPosition % 12)); by int val = mPosition.load(); and painter.rotate(30 * (val % 12));
PDFRenderer.cpp
---------------
- replace //if (mRefCount == 0) by if (mRefCount.load() == 0)
UBThumbnailWidget.cpp
---------------------
- replace //mLassoRectItem = new QGraphicsRectItem(0, scene()); by QRectF rect_init(0,0,0,0); and mLassoRectItem = new QGraphicsRectItem(rect_init, (QGraphicsItem *)scene());
UBDocumentThumbnailWidget.cpp
-----------------------------
-replace //mDropCaretRectItem = new QGraphicsRectItem(0, scene()); by QRectF rectInit(0,0,0,0); and mDropCaretRectItem = new QGraphicsRectItem(rectInit, (QGraphicsItem*)scene());
UBPlatformUtils_win.cpp
------------------------
- replace //#include <QtGui> by #include <QtWidgets>
XPDFRenderer.cpp
----------------
- replace //if (sInstancesCount == 0 && globalParams) by if (sInstancesCount.load() == 0 && globalParams)
C:\Qt_ide\5.2.1\msvc2010\include\QtCore\qdatetime.h
---------------------------------------------------
qdatetime.h.patch
------------------
- error C2589: '('ÿ: jeton non conforme … droite de '::'
- error C2059: erreur de syntaxeÿ: '::'
--- qtbase/src/corelib/tools/qdatetime.h 9 03:11:14 2013
+++ qtbase/src/corelib/tools/qdatetime.h 30 18:15:30 2013
@@ -120,7 +120,7 @@
inline qint64 toJulianDay() const { return jd; }
private:
- static inline qint64 nullJd() { return std::numeric_limits<qint64>::min(); }
+ static inline qint64 nullJd() { return (std::numeric_limits<qint64>::min)(); }
static inline qint64 minJd() { return Q_INT64_C(-784350574879); }
static inline qint64 maxJd() { return Q_INT64_C( 784354017364); }
UBDisplayManager.h
--------------------
- replace //#include <QtGui> by #include <QtWidgets>
UBDockPalette.cpp
----------------
- replace //iconPixmap.setAlphaChannel(transparencyPix); by the block codes as following :
//----------------------------------------------
QImage image = iconPixmap.toImage() ;
image.setAlphaChannel(transparencyPix.toImage());
iconPixmap = iconPixmap.fromImage(image);
//-----------------------------------------------
UBWindowsMediaFile.cpp
---------------------
- replace //#include <QtGui> by #include <QtWidgets>
- replace //if (FAILED(mWMWriter->AllocateSample(pImage.numBytes(), &sampleBuffer))) by if (FAILED(mWMWriter->AllocateSample(pImage. byteCount()(), &sampleBuffer)))
- replace //memcpy((void*) rawBuffer, imageBuffer, pImage.numBytes()); by memcpy((void*) rawBuffer, imageBuffer, pImage.byteCount());
UBWaveRecorder.cpp
-------------------
UBGraphicsProtractor.h
----------------------
- replace //#include <QtGui> by #include <QtWidgets>
UBGraphicsCompass.cpp
----------------------
- replace //setAcceptsHoverEvents(true); by setAcceptHoverEvents(true);
UBGraphicsProtractor.h
----------------------
- replace //#include <QtGui> by
#include <QtWidgets>
#include <QtWidgets/QGraphicsItem>
#include <QtWidgets/QGraphicsView>
UBGraphicsProtractor.cpp
-------------------------
-replace //translate(rect().center().x(), rect().center().y()); by setPos(rect().center().x(), rect().center().y()); line 205
-replace //translate(-rect().center().x(), -rect().center().y()); by setPos(-rect().center().x(), -rect().center().y()); line 210
-replace //mResetSvgItem->translate(-resetButtonRect().left(), -resetButtonRect().top()); by mResetSvgItem->setpos(-resetButtonRect().left(), -resetButtonRect().top());
all translate->setPos (Lines 464,468,473,475,477,480,482,484,
- replace //mMarkerSvgItem->rotate(- mStartAngle - mCurrentAngle); by mMarkerSvgItem->setRotation(- mStartAngle - mCurrentAngle);
- replace //mRotateSvgItem->rotate(-mStartAngle); by mRotateSvgItem->setRotation( -mStartAngle); (Line 482)
- replace //mResetSvgItem->rotate(-mStartAngle); by mResetSvgItem->setRotation(-mStartAngle); (Line 467)
- replace //mResizeSvgItem->rotate(-mStartAngle); by mResizeSvgItem->setRotation(-mStartAngle); Line 478)
- replace //mMarkerSvgItem->scale(scale, scale);//this do not impact the bounding box of thr svg item... by mMarkerSvgItem->setScale( scale);//this do not impact the bounding box of thr svg item...
(line 503)
- replace //mRotateSvgItem->scale(scale, scale);//this do not impact the bounding box of thr svg item... (Line 492)
mRotateSvgItem->setScale(scale);//this do not impact the bounding box of thr svg item...
- replace //mResetSvgItem->scale(scale * antiSc, scale * antiSc);//this do not impact the bounding box of thr svg item...
mResetSvgItem->setScale(scale * antiSc);//this do not impact the bounding box of thr svg item... (Line 473)
- replace //scale(1.5, 1.5); by setScale(1.5); (Line 82)
- replace //mCloseSvgItem->rotate(-mStartAngle); by mCloseSvgItem->setRotation(-mStartAngle); (Line 458)
- replace //scale(scaleFactor); by setScale(scaleFactor);
- replace //mCloseSvgItem->scale(scale * antiSc, scale * antiSc);//this do not impact the bounding box of thr svg item... by
mCloseSvgItem->setSale(scale * antiSc);//this do not impact the bounding box of thr svg item... (Line 467)
- replace // mResizeSvgItem->scale(scale * antiSc, scale * antiSc);//this do not impact the bounding box of thr svg item...
mResizeSvgItem->setScale(scale * antiSc);//this do not impact the bounding box of thr svg item... (Line 490)
UBAbstractDrawRuler.h
----------------------
- replace //#include <QtGui> by
#include <QtWidgets>
UBWaveRecorder.cpp
-------------------
-replace // QString deviceName = QString:: fromUtf16(caps.szPname); by QString deviceName = QString::fromWCharArray(caps.szPname) ; (Line 67)
-replace //devices << QString::fromUtf16(caps.szPname); by devices << QString::fromWCharArray(caps.szPname); (Line 242)
UBAbstractDrawRuler.cpp
------------------------
- replace //item.setAcceptsHoverEvents(true); by item.setAcceptHoverEvents(true);
UBCustomCaptureWindow.h
------------------------
- replace //#include <QtGui> by include <QtWidgets>
UBWebKitUtils.h
---------------
-replace //#include <QtWebKit> by #include <QtWebKitWidgets>
UBWindowCaptureDelegate_win.h
------------------------------
- replace //#include <QtGui> by #include <QtWidgets>
UBOEmbedParser.cpp
------------------
-replace toAscii--> toLatin1 qurl.setEncodedUrl(url.toLatin1()); (line 230)
-replace
WBSqueezeLabel.h
-----------------
- replace //#include <QtGui/QLabel> by #include <QtWidgets>
UBWindowCaptureDelegate_win.cpp
--------------------------------
- replace //mCapturedPixmap = QPixmap::grabWindow(mCurrentWindow);
mCapturedPixmap = QScreen::grabWindow(mCurrentWindow);
UBOEmbedParser.cpp
-----------------
- replace //qurl.setEncodedUrl(url.toAscii()); by qurl.setUrl(url.toLatin1(),QUrl::TolerantMode);
WBChaseWidget.cpp
------------------
- replace //#include <QtGui> by #include <QtWidgets>
WBChaseWidget.h
-----------------
-replace //#include <QtGui> by #include <QtWidgets>
WBModelMenu.h
--------------
-replace //#include <QtGui> by #include <QtWidgets>
WBUrlLineEdit.cpp
-----------------
-replace //#include <QtGui> by #include <QtWidgets>
WBEditTableView.cpp
--------------------
- replace //#include <QtGui/QKeyEvent> by #include <QtWidgets>
WBEditTableView.h
------------------
-replace //#include <QtGui> by #include <QtWidgets>
WBSearchLineEdit.cpp
---------------------
-replace //#include <QtGui> by
#include <QtWidgets>
WBToolBarSearch.cpp
-------------------
//#include <QtGui>
#include <QtWidgets>
//#include <QtWebKit>
#include <QtWebKitWidgets>
WBToolBarSearch.h
------------------
-replace //#include <QtGui>
#include <QtWidgets>
WBSearchLineEdit.h
------------------
//#include <QtGui>
#include <QtWidgets>
WBWebTrapWebView.cpp
---------------------
- replace
//#include <QtGui>
//#include <QtWebKit>
by
#include <QtWidgets>
#include <QtWebKitWidgets>
WBWebTrapWebView.h
-------------------
- replace
//#include <QtGui>
//#include <QtWebKit>
by
#include <QtWidgets>
#include <QtWebKitWidgets>
WBToolBarSearch.cpp
-------------------
-add on the top of the file
#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
# include <QUrlQuery>
#endif
WBUrlLineEdit.h
---------------
- replace //#include <QtGui> by //#include <QtWebKit>
WBWebView.h
-----------
- replace //#include <QtGui>
//#include <QtWebKit>
#include <QtWidgets>
#include <QtWebKitWidgets>
WBDownloadManager.cpp
----------------------
- replace storageLocation by QStandardPaths => QStandardPaths::writableLocation( QStandardPaths::DesktopLocation
WBToolBarSearch.cpp
--------------------
urlQuery1.addQueryItem(QLatin1String("q"), searchText);
url.setQuery(urlQuery1);
urlQuery2.addQueryItem(QLatin1String("ie"), QLatin1String("UTF-8"));
url.setQuery(urlQuery2);
urlQuery3.addQueryItem(QLatin1String("oe"), QLatin1String("UTF-8"));
url.setQuery(urlQuery3);
urlQuery4.addQueryItem(QLatin1String("client"), QLatin1String("uniboard-browser"));
url.setQuery(urlQuery4);
/*url.addQueryItem(QLatin1String("q"), searchText);
url.addQueryItem(QLatin1String("ie"), QLatin1String("UTF-8"));
url.addQueryItem(QLatin1String("oe"), QLatin1String("UTF-8"));
url.addQueryItem(QLatin1String("client"), QLatin1String("uniboard-browser"));
*/
WBTabWidget.cpp
----------------
-replace //#include <QtGui> by #include <QtWidgets>
WBTabWidget.h
-------------
- replace //#include <QtGui> by #include <QtWidgets>
Utils.cpp
---------
- replace toascii() by toLatin1()
****
TODO
****
- solve //mCapturedPixmap = QPixmap::grabWindow(mCurrentWindow);
mCapturedPixmap = QScreen::grabWindow((HWND)mCurrentWindow);
UBGlobals.h
-----------
replace //#ifdef Q_WS_WIN by #ifdef Q_OS_WIN
UBCFFAdaptor.cpp
----------------
************************************************
TODO
************************************************
- to solve dstList.setInsertInOrder(true); (Line 1954)
qtsingleapplication.h
---------------------
- replace //#include <QtGui/QApplication> by #include <QGuiApplication>
- comment //QtSingleApplication(int &argc, char **argv, Type type);
WBTabWidget.h
--------------
- replace //#include <QtWebKit> by #include <QtWebKitWidgets>
WBBrowserWindow.h
------------------
- replace //#include <QtGui> ;//#include <QtWebKit> by
#include <QtWidgets>
#include <QtWebKitWidgets>
WBHistory.h
-----------
- replace //#include <QtGui> ;//#include <QtWebKit> by
#include <QtWidgets>
#include <QtWebKitWidgets>
UBGlobals.h
------------
- replace //#ifdef Q_WS_WIN by #ifdef Q_OS_WIN
UBWindowCaptureDelegate_win.cpp
-------------------------------
- solve the HWND -->WId window conversion from //mCapturedPixmap = QPixmap::grabWindow(mCurrentWindow);
=> solution : add into the UBWindowCaptureDelegate_win.h header : the inclusion header #include <qwindowdefs_win.h>
UBWindowCaptureDelegate_win.h
-------------------------------
#ifdef Q_OS_WIN
#include <qwindowdefs_win.h>
#endif
qtsingleapplication.cpp
------------------------
- replace the content by the source file repository (CW)
qtsingleapplication.h
------------------------
- replace the content by the source file repository (CW)
UBWindowCaptureDelegate_win.cpp
--------------------------------
************************************************
TODO
************************************************
- solve the // mCapturedPixmap = QPixmap::grabWindow(mCurrentWindow); => pb of conversion between HWND and WId.
qtlockedfile_win.cpp
---------------------
- add #if QT_VERSION >= 0x050000
#define QT_WA(unicode, ansi) unicode
#endif
qtsingleapplication.cpp
-------------------------
- remove the contentfrom source repository(CW).
qtsingleapplication.h
-------------------------
- remove the contentfrom source repository(CW).
qtlocalpeer.h
-------------
- replace the content by the old basis source repository (OpenBoard-Third-party)
qtlocalpeer.cpp
---------------
- replace the content by the old basis source repository (OpenBoard-Third-party)
UBNetworkAccessManager.cpp
--------------------------
- replace //#include <QtGui> by #include <QtWidgets>
- replace // introMessage = introMessage.arg(Qt::escape(reply->url().toString())).arg(Qt::escape(reply->url().toString())); by :
introMessage = introMessage.arg(QString(reply->url().toString())).toHtmlEscaped().arg(QString(reply->url().toString())).toHtmlEscaped();
WBHistory.cpp
--------------
- replace //#include <QtGui> by #include <QtWidgets>
- replace reset() by beginResetModel();
m_sourceRowCache.clear();
endResetModel(); (Line 1213,1268,)
-replace //reset(); by
beginResetModel();
endResetModel(); (Line 999,1006..)
}
- replace createIndex(row, column, 0); by (Line 969,1131,1140)
createIndex(row, column);
WBHistory.h
------------
- replace class WBHistoryFilterModel : public QAbstractProxyModel, by
class WBHistoryFilterModel : public QAbstractProxyModel, public QAbstractItemModel
- ?? pb at the level of compiler error:
UBBoardView.cpp
----------------
************************************************
TODO done cf below
************************************************
SOLVE THE ItemAt
- comment the mouseReleaseEvent method
- comment the mousePressEvent method
WBHistory.cpp
--------------
- comment and remove //beginResetModel(); and //endResetModel(); (Line 247)
- comment and remove //beginResetModel(); and //endResetModel(); (Line 837-843)
UBApplication.cpp
------------------
-remove and comment //QApplication::setStyle(new UBStyle()); // Style is owned and deleted by the application.
UBTrapFlashController.h
-----------------------
- replace //#include <QtGui> by #include <QtWidgets>.
UBTrapFlashController.cpp
-------------------------
- replace //#ifdef Q_WS_WIN // Defined on Windows. by#ifdef Q_OS_WIN // Defined on Windows.
UBPodcastController.cpp
-------------------------
-replace QDesktopServices::storageLocation. (Line 715)
-replace by QStandardPaths::writableLocation.
- replace repaintRect = repaintRect.unite(mSceneRepaintRectQueue.dequeue()); by repaintRect = repaintRect.united(mSceneRepaintRectQueue.dequeue());
- replace QRectF maxRect = rect.intersect(viewportRect); by RectF maxRect = rect.intersected(viewportRect);
- replace repaintRect = repaintRect.unite(mWidgetRepaintRectQueue.dequeue()); by repaintRect = repaintRect.united(mWidgetRepaintRectQueue.dequeue());
main.cpp
----------
- move QMessageLogContext context_m; on line 58
- replace // qt_message_output(type, msg); by qt_message_output(type,context_m, msg);
COMPILATION STATUS IN DEBUG STATUS :
************************************
- compile all libraries (freetype.lib quazip.lib,xpdf.lib) with success
- issue: error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0'
=> solution: complation in RELEASE MODE
- problem : LINK : fatal error LNK1123: échec lors de la conversion en fichier COFF msvc 2010 qt 5.2
=> solution :
Visual C++ 2010 SP1 Compiler Update for the Windows SDK 7.1
- install the followin tools in your computer quth the msvc 2010 config:
cf https://support.microsoft.com/fr-fr/kb/2934068 :
support microsoft : " Erreur se produit lorsque vous installez le Kit de développement logiciel Windows pour Windows 7 et.NET Framework 4 "
steps :
------
1) remove and reinstall Microsoft Visual C++ 2010 SP1 Redistributable Package (x32) : vcredist_x32.exe
2) remove and reinstall Microsoft Visual C++ 2010 SP1 Redistributable Package (x64) : vcredist_x64.exe
3) install Microsoft Windows SDK for Windows 7 and .NET Framework 4 (ISO).
4) reinstall Microsoft Visual Studio 2010 Service Pack 1 (Installer) download the iso from the link https://www.microsoft.com/en-us/download/confirmation.aspx?id=23691
cf link : https://msdn.microsoft.com/fr-fr/library/7dz62kfh.aspx
cf http://stackoverflow.com/questions/10888391/error-link-fatal-error-lnk1123-failure-during-conversion-to-coff-file-inval
=> solution : the tools cvtres.exe was broken so copy C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cvtres.exe
into C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe
OpenBoard.pro
--------------
- pb: fatal error LNK1123: échec lors de la conversion en fichier COFF vs 2010 qt 5.2 => add QMAKE_LFLAGS += /INCREMENTAL:NO
UBBoardView.cpp
----------------
the ItemAt issue was solved by the last update methods from the repository.
UBGraphicsTextItem.cpp
----------------------
- replace //#include <QtGui> by #include <QtWidgets>.

@ -0,0 +1,173 @@
#!/bin/bash
# --------------------------------------------------------------------
# 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 2 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 <http://www.gnu.org/licenses/>.
# ---------------------------------------------------------------------
initializeVariables()
{
APPLICATION_NAME="OpenBoard"
STANDARD_QT_USED=false
# Root directory
SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PROJECT_ROOT="$SCRIPT_PATH/../.."
BUILD_DIR="$PROJECT_ROOT/build/linux/release"
PRODUCT_PATH="$BUILD_DIR/product"
# Qt installation path. This may vary across machines
QT_PATH="/usr/lib/x86_64-linux-gnu/qt5"
PLUGINS_PATH="$QT_PATH/plugins"
GUI_TRANSLATIONS_DIRECTORY_PATH="/usr/share/qt5/translations"
QMAKE_PATH="$QT_PATH/bin/qmake"
LRELEASES="$QT_PATH/bin/lrelease"
NOTIFY_CMD=`which notify-send`
ZIP_PATH=`which zip`
if [ -z $ARCHITECTURE ]; then
ARCHITECTURE=`uname -m`
if [ $ARCHITECTURE == "x86_64" ]; then
ARCHITECTURE="amd64"
fi
fi
}
notifyError(){
if [ -e "$NOTIFY_CMD" ]; then
$NOTIFY_CMD -t 0 -i "/usr/share/icons/oxygen/64x64/status/dialog-error.png" "$1"
fi
printf "\033[31merror:\033[0m $1\n"
exit 1
}
notifyProgress(){
if [ -e "$NOTIFY_CMD" ]; then
$NOTIFY_CMD "$1" "$2"
fi
printf "\033[32m--> Achieved task:\033[0m $1:\n\t$2\n"
}
checkDir(){
if [ ! -d "$1" ]; then
notifyError "Directory not found : $1"
fi
}
checkExecutable(){
if [ ! -e "$1" ]; then
notifyError "$1 command not found"
fi
}
buildWithStandardQt(){
# if both Qt4 and Qt5 are installed, choose Qt5
export QT_SELECT=5
STANDARD_QT=`which qmake`
if [ $? == "0" ]; then
QT_VERSION=`$STANDARD_QT --version | grep -i "Using Qt version" | sed -e "s/Using Qt version \(.*\) in.*/\1/"`
if [ `echo $QT_VERSION | sed -e "s/\.//g"` -gt 480 ]; then
notifyProgress "Standard QT" "A recent enough qmake has been found. Using this one instead of custom one"
STANDARD_QT_USED=true
QMAKE_PATH=$STANDARD_QT
LRELEASES=`which lrelease`
PLUGINS_PATH="$STANDARD_QT/../plugins"
fi
fi
}
buildImporter(){
IMPORTER_DIR="../OpenBoard-Importer/"
IMPORTER_NAME="OpenBoardImporter"
checkDir $IMPORTER_DIR
cd ${IMPORTER_DIR}
rm moc_*
rm -rf debug release
rm *.o
notifyProgress "Building importer"
$QMAKE_PATH ${IMPORTER_NAME}.pro
make clean
make -j4
checkExecutable $IMPORTER_NAME
cd -
}
createBuildContext() {
BUILD_CONTEXT="buildContext"
echo $ARCHITECTURE > $BUILD_CONTEXT
}
# Check command-line arguments to force an architecture
for var in "$@"
do
if [ $var == "i386" ]; then
ARCHITECTURE="i386"
fi
if [ $var == "amd64" ]; then
ARCHITECTURE="amd64"
fi
done
initializeVariables
#buildWithStandardQt
createBuildContext
cd $PROJECT_ROOT
# check of directories and executables
checkDir $QT_PATH
checkDir $PLUGINS_PATH
checkDir $GUI_TRANSLATIONS_DIRECTORY_PATH
checkExecutable $QMAKE_PATH
checkExecutable $LRELEASES
checkExecutable $ZIP_PATH
#build third party application
buildImporter
notifyProgress "OpenBoardImporter" "Built Importer"
# cleaning the build directory
rm -rf $BUILD_DIR
# Generate translations
notifyProgress "QT" "Internationalization"
$LRELEASES ${APPLICATION_NAME}.pro
cd $GUI_TRANSLATIONS_DIRECTORY_PATH
$LRELEASES translations.pro
cd -
notifyProgress "${APPLICATION_NAME}" "Building ${APPLICATION_NAME}"
if [ "$ARCHITECTURE" == "amd64" ] || [ "$ARCHITECTURE" == "x86_64" ]; then
$QMAKE_PATH ${APPLICATION_NAME}.pro -spec linux-g++-64
else
$QMAKE_PATH ${APPLICATION_NAME}.pro -spec linux-g++
fi
make -j4 release-install
if [ ! -e "$PRODUCT_PATH/${APPLICATION_NAME}" ]; then
notifyError "${APPLICATION_NAME} build failed"
else
notifyProgress "Finished building OpenBoard. You may now run the packaging script."
fi

@ -0,0 +1,19 @@
#!/bin/bash
# --------------------------------------------------------------------
# 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 <http://www.gnu.org/licenses/>.
# ---------------------------------------------------------------------
xdg-desktop-menu uninstall /usr/share/applications/openboard.desktop
rm -f /usr/bin/openboard
exit 0

@ -0,0 +1,402 @@
#!/bin/bash
# --------------------------------------------------------------------
# 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 2 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 <http://www.gnu.org/licenses/>.
# ---------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Packaging script for OpenBoard, for Debian-compatible distributions.
#
# This should be run after `build.sh`.
#
# The generated package structure is as follows :
#
# DEBIAN/
# | control
# | md5sums
# | prerm
# | postinst
# usr/
# | bin/
# | | openboard <-- actually a symlink to run.sh or OpenBoard
# | share/
# | | applications/
# | | | openboard.desktop
# opt/
# | openboard/
# | | importer/
# | | library/
# | | etc/
# | | qtlib/ (*)
# | | plugins/ (*)
# | | OpenBoard
# | | OpenBoard.png
# | | run.sh (*)
#
# (*) Only included if Qt libs and plugins are bundled. It is necessary to
# bundle these if the target system doesn't provide Qt 5.5.1, for example.
# ----------------------------------------------------------------------------
initializeVariables()
{
# This script's path
SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PROJECT_ROOT="$SCRIPT_PATH/../.."
# Where the application was built (see build.sh)
BUILD_DIR="$PROJECT_ROOT/build/linux/release"
PRODUCT_PATH="$BUILD_DIR/product"
IMPORTER_DIR="$PROJECT_ROOT/../OpenBoard-Importer/"
IMPORTER_NAME="OpenBoardImporter"
# Where the package is built to
PACKAGE_BUILD_DIR="$PROJECT_ROOT/install"
# Temporary folder, where we put all the files that will be built into the
# package
BASE_WORKING_DIR="debianPackage"
APPLICATION_NAME="OpenBoard"
APPLICATION_CODE="openboard"
APPLICATION_PATH="opt"
PACKAGE_DIRECTORY=$BASE_WORKING_DIR/$APPLICATION_PATH/$APPLICATION_CODE
QT_PLUGINS_DEST_PATH="$PACKAGE_DIRECTORY/plugins"
QT_LIBRARY_DEST_PATH="$PACKAGE_DIRECTORY/qtlib"
DESKTOP_FILE_PATH="$BASE_WORKING_DIR/usr/share/applications"
APPLICATION_SHORTCUT="$DESKTOP_FILE_PATH/${APPLICATION_CODE}.desktop"
DESCRIPTION="OpenBoard, an interactive white board application"
VERSION=`cat $BUILD_DIR/version`
ARCHITECTURE=`cat buildContext`
# Include Qt libraries and plugins in the package, or not
# (this is necessary if the target system doesn't provide Qt 5.5.1)
BUNDLE_QT=false
# Qt installation path. This may vary across machines
QT_PATH="/usr/lib/x86_64-linux-gnu/qt5"
QT_PLUGINS_SOURCE_PATH="$QT_PATH/plugins"
GUI_TRANSLATIONS_DIRECTORY_PATH="/usr/share/qt5/translations"
QT_LIBRARY_SOURCE_PATH="$QT_PATH/.."
NOTIFY_CMD=`which notify-send`
ZIP_PATH=`which zip`
}
checkUser()
{
if [ `id -u` -ne 0 ]; then
echo "Please run the script as root"
exit 1
fi
}
checkBuild()
{
if [ -z "$ARCHITECTURE" ]; then
echo "Make sure you have built the software first using ./build.sh"
exit 1
fi
}
notifyError(){
if [ -e "$NOTIFY_CMD" ]; then
$NOTIFY_CMD -t 0 -i "/usr/share/icons/oxygen/64x64/status/dialog-error.png" "$1"
fi
printf "\033[31merror:\033[0m $1\n"
exit 1
}
notifyProgress(){
if [ -e "$NOTIFY_CMD" ]; then
$NOTIFY_CMD "$1" "$2"
fi
printf "\033[32m--> \033[0m $1:\n\t$2\n"
}
copyQtLibrary(){
echo -e "\t $1"
if ls "$QT_LIBRARY_SOURCE_PATH/$1.so" &> /dev/null; then
cp -P $QT_LIBRARY_SOURCE_PATH/$1.so.? "$QT_LIBRARY_DEST_PATH/"
cp -P $QT_LIBRARY_SOURCE_PATH/$1.so.?.? "$QT_LIBRARY_DEST_PATH/"
cp -P $QT_LIBRARY_SOURCE_PATH/$1.so.?.?.? "$QT_LIBRARY_DEST_PATH/"
strip $QT_LIBRARY_DEST_PATH/$1.so.?.?.?
chmod 644 $QT_LIBRARY_DEST_PATH/$1.so.?.?.? # 644 = rw-r-r
else
notifyError "$1 library not found in path: $QT_LIBRARY_SOURCE_PATH"
fi
}
copyQtPlugin(){
echo -e "\t $1"
if ls "$QT_PLUGINS_SOURCE_PATH/$1" &> /dev/null; then
cp -r $QT_PLUGINS_SOURCE_PATH/$1 $QT_PLUGINS_DEST_PATH/
strip $QT_PLUGINS_DEST_PATH/$1/*
chmod 644 $QT_PLUGINS_DEST_PATH/$1/* # 644 = rw-r-r
chmod +rx $QT_PLUGINS_DEST_PATH/$1
else
notifyError "$1 plugin not found in path: $QT_PLUGINS_SOURCE_PATH"
fi
}
# ----------------------------------------------------------------------------
# Copying the application, libs etc. to the temporary working directory
# ----------------------------------------------------------------------------
initializeVariables
checkBuild
checkUser
cd $PROJECT_ROOT
rm -rf $PACKAGE_DIRECTORY
mkdir -p $PACKAGE_DIRECTORY
rm -rf $PACKAGE_BUILD_DIR
notifyProgress "Copying product directory and resources"
cp -R $PRODUCT_PATH/* $PACKAGE_DIRECTORY
chown -R root:root $PACKAGE_DIRECTORY
cp -R resources/customizations $PACKAGE_DIRECTORY/
cp resources/linux/openboard-ubz.xml $PACKAGE_DIRECTORY/etc/
if $BUNDLE_QT; then
cp -R resources/linux/run.sh $PACKAGE_DIRECTORY/
chmod a+x $PACKAGE_DIRECTORY/run.sh
fi
notifyProgress "Copying importer"
mkdir -p $PACKAGE_DIRECTORY/importer
cp -R "$IMPORTER_DIR/$IMPORTER_NAME" "$PACKAGE_DIRECTORY/importer"
notifyProgress "Stripping importer and main executable"
strip $PACKAGE_DIRECTORY/$APPLICATION_NAME
strip $PACKAGE_DIRECTORY/importer/$IMPORTER_NAME
if $BUNDLE_QT; then
notifyProgress "Copying and stripping Qt plugins"
mkdir -p $QT_PLUGINS_DEST_PATH
copyQtPlugin audio
copyQtPlugin generic
copyQtPlugin iconengines
copyQtPlugin imageformats
copyQtPlugin mediaservice
copyQtPlugin platforminputcontexts
copyQtPlugin platforms
copyQtPlugin platformthemes
copyQtPlugin position
copyQtPlugin printsupport
copyQtPlugin qtwebengine
copyQtPlugin sceneparsers
copyQtPlugin xcbglintegrations
notifyProgress "Copying and stripping Qt libraries"
mkdir -p $QT_LIBRARY_DEST_PATH
copyQtLibrary libQt5Core
copyQtLibrary libQt5DBus
copyQtLibrary libQt5Gui
copyQtLibrary libQt5Multimedia
copyQtLibrary libQt5MultimediaWidgets
copyQtLibrary libQt5Network
copyQtLibrary libQt5OpenGL
copyQtLibrary libQt5Positioning
copyQtLibrary libQt5PrintSupport
copyQtLibrary libQt5Qml
copyQtLibrary libQt5Quick
copyQtLibrary libQt5Script
copyQtLibrary libQt5Sensors
copyQtLibrary libQt5Sql
copyQtLibrary libQt5Svg
copyQtLibrary libQt5WebChannel
copyQtLibrary libQt5WebKit
copyQtLibrary libQt5WebKitWidgets
copyQtLibrary libQt5Widgets
copyQtLibrary libQt5XcbQpa
copyQtLibrary libQt5Xml
copyQtLibrary libQt5XmlPatterns
copyQtLibrary libqgsttools_p
fi
notifyProgress "Copying Qt translations"
mkdir -p $PACKAGE_DIRECTORY/i18n
cp $GUI_TRANSLATIONS_DIRECTORY_PATH/qt_??.qm $PACKAGE_DIRECTORY/i18n/
# ----------------------------------------------------------------------------
# DEBIAN directory of package (control, md5sums, postinst etc)
# ----------------------------------------------------------------------------
notifyProgress "Generating control files for package"
mkdir -p "$BASE_WORKING_DIR/DEBIAN"
# Copy prerm script
cp -r "$SCRIPT_PATH/debian_package_files/prerm" "$BASE_WORKING_DIR/DEBIAN/"
chmod 755 "$BASE_WORKING_DIR/DEBIAN/prerm"
# Generate postinst script (can't copy it like prerm because some paths vary depending on
# the values of the variables in this script)
SYMLINK_TARGET="/$APPLICATION_PATH/$APPLICATION_CODE/$APPLICATION_NAME"
if $BUNDLE_QT ; then
SYMLINK_TARGET="/$APPLICATION_PATH/$APPLICATION_CODE/run.sh"
fi
cat > "$BASE_WORKING_DIR/DEBIAN/postinst" << EOF
#!/bin/bash
# --------------------------------------------------------------------
# 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 <http://www.gnu.org/licenses/>.
# ---------------------------------------------------------------------
xdg-desktop-menu install --novendor /usr/share/applications/${APPLICATION_CODE}.desktop
xdg-mime install --mode system /$APPLICATION_PATH/$APPLICATION_CODE/etc/openboard-ubz.xml
xdg-mime default /usr/share/applications/${APPLICATION_CODE}.desktop application/ubz
ln -s $SYMLINK_TARGET /usr/bin/$APPLICATION_CODE
exit 0
EOF
chmod 755 "$BASE_WORKING_DIR/DEBIAN/postinst"
# Generate md5 sums of everything in the application path (e.g /opt) and the desktop entry
cd $BASE_WORKING_DIR
find $APPLICATION_PATH/ -exec md5sum {} > DEBIAN/md5sums 2>/dev/null \;
find $DESKTOP_FILE_PATH/ -exec md5sum {} >> DEBIAN/md5sums 2>/dev/null \;
cd $PROJECT_ROOT
# Generate control file
CONTROL_FILE="$BASE_WORKING_DIR/DEBIAN/control"
echo "Package: ${APPLICATION_CODE}" > "$CONTROL_FILE"
echo "Version: $VERSION" >> "$CONTROL_FILE"
echo "Section: education" >> "$CONTROL_FILE"
echo "Priority: optional" >> "$CONTROL_FILE"
echo "Architecture: $ARCHITECTURE" >> "$CONTROL_FILE"
echo "Essential: no" >> "$CONTROL_FILE"
echo "Installed-Size: `du -s $PACKAGE_DIRECTORY | awk '{ print $1 }'`" >> "$CONTROL_FILE"
echo "Maintainer: ${APPLICATION_NAME} Developers team <dev@openboard.ch>" >> "$CONTROL_FILE"
echo "Homepage: https://github.com/DIP-SEM/OpenBoard" >> "$CONTROL_FILE"
# Generate dependency list
echo -n "Depends: " >> "$CONTROL_FILE"
unset tab
declare -a tab
let count=0
if $BUNDLE_QT; then
for l in `objdump -p $PACKAGE_DIRECTORY/${APPLICATION_NAME} | grep NEEDED | awk '{ print $2 }'`; do
for lib in `dpkg -S $l | grep -v "libqt5" | grep -v "qt55" | awk -F":" '{ print $1 }'`; do
presence=`echo ${tab[*]} | grep -c "$lib"`;
if [ "$presence" == "0" ]; then
tab[$count]=$lib;
((count++));
fi;
done;
done;
else
for l in `objdump -p $PACKAGE_DIRECTORY/${APPLICATION_NAME} | grep NEEDED | awk '{ print $2 }'`; do
for lib in `dpkg -S $l | awk -F":" '{ print $1 }'`; do
presence=`echo ${tab[*]} | grep -c "$lib"`;
if [ "$presence" == "0" ]; then
tab[$count]=$lib;
((count++));
fi;
done;
done;
fi
for ((i=0;i<${#tab[@]};i++)); do
if [ $i -ne "0" ]; then
echo -n ", " >> "$CONTROL_FILE"
fi
echo -n "${tab[$i]} (>= "`dpkg -p ${tab[$i]} | grep "Version: " | awk '{ print $2 }' | sed -e 's/\([:. 0-9?]*\).*/\1/g' | sed -e 's/\.$//'`") " >> "$CONTROL_FILE"
done
echo -n ", onboard" >> "$CONTROL_FILE"
if $BUNDLE_QT; then
# Listing some dependencies manually; ideally we should use dpkg -p recursively
# to get the dependencies of the bundled shared libs & plugins. Or use static libs.
echo -n ", libxcb-render-util0" >> "$CONTROL_FILE"
echo -n ", libxcb-icccm4" >> "$CONTROL_FILE"
echo -n ", libxcb-xkb1" >> "$CONTROL_FILE"
else
echo -n ", libqt5multimedia5-plugins" >> "$CONTROL_FILE"
fi
echo "" >> "$CONTROL_FILE"
echo "Description: $DESCRIPTION" >> "$CONTROL_FILE"
# ----------------------------------------------------------------------------
# .desktop file
# ----------------------------------------------------------------------------
mkdir -p $DESKTOP_FILE_PATH
echo "[Desktop Entry]" > $APPLICATION_SHORTCUT
echo "Version=$VERSION" >> $APPLICATION_SHORTCUT
echo "Encoding=UTF-8" >> $APPLICATION_SHORTCUT
echo "Name=${APPLICATION_NAME}" >> $APPLICATION_SHORTCUT
echo "Comment=$DESCRIPTION" >> $APPLICATION_SHORTCUT
echo "Exec=$APPLICATION_CODE %f" >> $APPLICATION_SHORTCUT
echo "Icon=/$APPLICATION_PATH/$APPLICATION_CODE/${APPLICATION_NAME}.png" >> $APPLICATION_SHORTCUT
echo "StartupNotify=true" >> $APPLICATION_SHORTCUT
echo "Terminal=false" >> $APPLICATION_SHORTCUT
echo "Type=Application" >> $APPLICATION_SHORTCUT
echo "MimeType=application/ubz" >> $APPLICATION_SHORTCUT
echo "Categories=Education;" >> $APPLICATION_SHORTCUT
cp "resources/images/${APPLICATION_NAME}.png" "$PACKAGE_DIRECTORY/${APPLICATION_NAME}.png"
# ----------------------------------------------------------------------------
# Building the package
# ----------------------------------------------------------------------------
notifyProgress "Building package"
mkdir -p "$PACKAGE_BUILD_DIR/linux"
PACKAGE_NAME="${APPLICATION_NAME}_`lsb_release -is`_`lsb_release -rs`_${VERSION}_$ARCHITECTURE.deb"
PACKAGE_NAME=`echo "$PACKAGE_NAME" | awk '{print tolower($0)}'`
dpkg -b "$BASE_WORKING_DIR" "$PACKAGE_BUILD_DIR/linux/$PACKAGE_NAME"
#clean up mess
rm -rf $BASE_WORKING_DIR
notifyProgress "${APPLICATION_NAME}" "Package built"
exit 0

@ -14,23 +14,26 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# ---------------------------------------------------------------------
SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PROJECT_ROOT="$SCRIPT_PATH/../.."
APPLICATION_NAME="OpenBoard"
BASE_TROLLTECH_DIRECTORY=/usr/local/Trolltech/Qt-4.8.0
BASE_QT_DIR=~/Qt/5.5/clang_64
# Executables
QMAKE=$BASE_TROLLTECH_DIRECTORY/bin/qmake
MACDEPLOYQT=$BASE_TROLLTECH_DIRECTORY/bin/macdeployqt
DMGUTIL="`pwd`/../Sankore-ThirdParty/refnum/dmgutil/dmgutil.pl"
QMAKE=$BASE_QT_DIR/bin/qmake
MACDEPLOYQT=$BASE_QT_DIR/bin/macdeployqt
DMGUTIL="$PROJECT_ROOT/../OpenBoard-ThirdParty/refnum/dmgutil/dmgutil.pl"
DSYMUTIL=/usr/bin/dsymutil
STRIP=/usr/bin/strip
PLISTBUDDY=/usr/libexec/PlistBuddy
ICEBERG=/usr/local/bin/freeze
LRELEASE=$BASE_TROLLTECH_DIRECTORY/bin/lrelease
LRELEASE=$BASE_QT_DIR/bin/lrelease
# Directories
BUILD_DIR="build/macx/release"
BUILD_DIR="$PROJECT_ROOT/build/macx/release"
PRODUCT_DIR="$BUILD_DIR/product"
BASE_QT_TRANSLATIONS_DIRECTORY=../Qt4.8/translations
BASE_QT_TRANSLATIONS_DIRECTORY=$BASE_QT_DIR/translations
function notify {
GROWLNOTIFY=`which growlnotify`
@ -90,8 +93,8 @@ function addImporter {
fi
cd ${importerDir}
git reset --hard
git pull
# git reset --hard
# git pull
rm -rf ${importerName}.app
rm MakeFile*
rm -rf release
@ -106,6 +109,8 @@ trap "defaults write org.oe-f.OpenBoard.release Running -bool NO" EXIT
notify "Running OpenBoard release script (`date`)"
cd $PROJECT_ROOT
script_is_running=`defaults read org.oe-f.OpenBoard.release Running 2>/dev/null`
if [[ $? -eq 0 ]] && [[ "$script_is_running" = "1" ]]; then
trap EXIT
@ -149,7 +154,7 @@ notify "Compiling ..."
make -j4 release
notify "Qt Translations ..."
$LRELEASE $BASE_QT_TRANSLATIONS_DIRECTORY/translations.pro
#$LRELEASE $BASE_QT_TRANSLATIONS_DIRECTORY/translations.pro
addQtTranslations
cp -R resources/customizations $PRODUCT_DIR/$APPLICATION_NAME.app/Contents/Resources
@ -159,19 +164,19 @@ VERSION=`cat "$BUILD_DIR/version"`
if [ ! -f "$BUILD_DIR/version" ]; then
echo "version not found"
exit 1
else
notify "Tagging ..."
LAST_COMMITED_VERSION="`git describe $(git rev-list --tags --max-count=1)`"
if [ "v$VERSION" != "$LAST_COMMITED_VERSION" ]; then
echo creating a tag with the version $VERSION
#else
# notify "Tagging ..."
# LAST_COMMITED_VERSION="`git describe $(git rev-list --tags --max-count=1)`"
# if [ "v$VERSION" != "$LAST_COMMITED_VERSION" ]; then
# echo creating a tag with the version $VERSION
# git tag -a "v$VERSION" -m "Generated setup for v$VERSION"
# git push origin --tags
fi
# fi
fi
if [ $? != 0 ]; then
abort "compilation failed"
fi
#if [ $? != 0 ]; then
# abort "compilation failed"
#fi
DMG="$APPLICATION_NAME.dmg"
@ -200,7 +205,7 @@ $DSYMUTIL "$APP/Contents/MacOS/$APPLICATION_NAME" -o "$DSYM"
$STRIP -S "$APP/Contents/MacOS/$APPLICATION_NAME"
if [ "$1" == "pkg" ]; then
BASE_ICEBERG_CONFIG_FILE="$APPLICATION_NAME.packproj"
BASE_ICEBERG_CONFIG_FILE="$SCRIPT_PATH/$APPLICATION_NAME.packproj"
#copy the standard file for working with
ICEBERG_CONFIG_FILE="$APPLICATION_NAME-working.packproj"
cp -r $BASE_ICEBERG_CONFIG_FILE $ICEBERG_CONFIG_FILE

@ -8,7 +8,7 @@
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{F6E79ADE-83AE-4A2E-92D7-145BDC014271}
AppId={{8CCA6AC7-BBF9-4DD2-8E70-A907E0FCA38F}}
AppName=OpenBoard
AppVerName=OpenBoard {#ApplicationVersion}
AppPublisher=Open Education Foundation
@ -20,9 +20,11 @@ AppUpdatesURL=http://get.openboard.org
DefaultDirName={pf}\OpenBoard
DefaultGroupName=OpenBoard
OutputDir=.\install\win32\
#define ProjectRoot GetEnv('PROJECT_ROOT')
OutputDir={#ProjectRoot}\install\win32\
OutputBaseFilename=OpenBoard
SetupIconFile=.\resources\win\OpenBoard.ico
SetupIconFile={#ProjectRoot}\resources\win\OpenBoard.ico
Compression=lzma
SolidCompression=yes
@ -46,62 +48,84 @@ Type: filesandordirs ; Name: "{app}\plugins"
Type: filesandordirs ; Name: "{app}\i18n"
Type: files ; Name: "{app}\*.dll"
#define QtLibs GetEnv('QT_BIN')
#define QtDir GetEnv('QT_DIR')
[Files]
Source: "..\OpenBoard-ThirdParty\microsoft\vcredist_x86.exe"; DestDir:"{tmp}"
Source: "build\win32\release\product\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "{#ProjectRoot}\..\OpenBoard-ThirdParty\microsoft\vcredist_x86.exe"; DestDir:"{tmp}"
Source: "{#ProjectRoot}\build\win32\release\product\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
;OpenSSL
Source: "..\OpenBoard-ThirdParty\openssl\openssl-1.0.0d\out32dll\libeay32.dll"; DestDir:"{app}"; Flags: ignoreversion
Source: "..\OpenBoard-ThirdParty\openssl\openssl-1.0.0d\out32dll\ssleay32.dll"; DestDir:"{app}"; Flags: ignoreversion
Source: "{#ProjectRoot}\..\OpenBoard-ThirdParty\openssl\openssl-1.0.2-win32\lib\libeay32.lib"; DestDir:"{app}"; Flags: ignoreversion
Source: "{#ProjectRoot}\..\OpenBoard-ThirdParty\openssl\openssl-1.0.2-win32\lib\ssleay32.lib"; DestDir:"{app}"; Flags: ignoreversion
;Qt base dll
Source: "..\Qt-4.8\lib\QtScript4.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\Qt-4.8\lib\QtGui4.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\Qt-4.8\lib\QtXml4.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\Qt-4.8\lib\QtCore4.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\Qt-4.8\lib\QtWebKit4.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\Qt-4.8\lib\phonon4.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\Qt-4.8\lib\QtNetwork4.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\Qt-4.8\lib\QtSvg4.dll"; DestDir: "{app}"; Flags: ignoreversion
;Qt plugins
Source: "..\Qt-4.8\plugins\accessible\qtaccessiblecompatwidgets4.dll"; DestDir: "{app}\accessible"; Flags: ignoreversion
Source: "..\Qt-4.8\plugins\accessible\qtaccessiblewidgets4.dll"; DestDir: "{app}\accessible"; Flags: ignoreversion
Source: "..\Qt-4.8\plugins\bearer\qgenericbearer4.dll"; DestDir: "{app}\bearer"; Flags: ignoreversion
Source: "..\Qt-4.8\plugins\bearer\qnativewifibearer4.dll"; DestDir: "{app}\bearer"; Flags: ignoreversion
Source: "..\Qt-4.8\plugins\codecs\qcncodecs4.dll"; DestDir: "{app}\codecs"; Flags: ignoreversion
Source: "..\Qt-4.8\plugins\codecs\qjpcodecs4.dll"; DestDir: "{app}\codecs"; Flags: ignoreversion
Source: "..\Qt-4.8\plugins\codecs\qkrcodecs4.dll"; DestDir: "{app}\codecs"; Flags: ignoreversion
Source: "..\Qt-4.8\plugins\codecs\qtwcodecs4.dll"; DestDir: "{app}\codecs"; Flags: ignoreversion
Source: "..\Qt-4.8\plugins\graphicssystems\qglgraphicssystem4.dll"; DestDir: "{app}\graphicssystems"; Flags: ignoreversion
Source: "..\Qt-4.8\plugins\graphicssystems\qtracegraphicssystem4.dll"; DestDir: "{app}\graphicssystems"; Flags: ignoreversion
Source: "..\Qt-4.8\plugins\iconengines\qsvgicon4.dll"; DestDir: "{app}\iconengines"; Flags: ignoreversion
Source: "..\Qt-4.8\plugins\imageformats\qgif4.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion
Source: "..\Qt-4.8\plugins\imageformats\qico4.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion
Source: "..\Qt-4.8\plugins\imageformats\qjpeg4.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion
Source: "..\Qt-4.8\plugins\imageformats\qmng4.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion
Source: "..\Qt-4.8\plugins\imageformats\qsvg4.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion
Source: "..\Qt-4.8\plugins\imageformats\qtiff4.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion
Source: "..\Qt-4.8\plugins\phonon_backend\phonon_ds94.dll"; DestDir: "{app}\phonon_backend"; Flags: ignoreversion
;Source: "OpenBoard.exe"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5Core.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5Gui.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5Multimedia.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5MultimediaWidgets.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5Network.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5Opengl.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5PrintSupport.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5Qml.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5Script.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5Sql.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5Svg.dll"; DestDir: "{app}"
;Source: "Qt5V8.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5WebKit.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5WebKitWidgets.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5Widgets.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5Xml.dll"; DestDir: "{app}"
Source: "{#QtLibs}\libGLESv2.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5Quick.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5Positioning.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5Sensors.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5WebChannel.dll"; DestDir: "{app}"
Source: "{#QtLibs}\libEGL.dll"; DestDir: "{app}"
;Source: "/etc/freezedWidgetWrapper.html"; DestDir: "{app}"
;Source: "*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "{#QtLibs}\icudt54.dll"; DestDir: "{app}"
Source: "{#QtLibs}\icuin54.dll"; DestDir: "{app}"
Source: "{#QtLibs}\icuuc54.dll"; DestDir: "{app}"
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
;qt multimedia plugins
Source: "c:\OpenBoard\plugins\mediaservice\qtmedia_audioengine.dll"; DestDir: "c:\OpenBoard\plugins\mediaservice"; Flags: ignoreversion
Source: "c:\OpenBoard\plugins\mediaservice\qtmedia_audioengined.dll"; DestDir: "c:\OpenBoard\plugins\mediaservice"; Flags: ignoreversion
Source: "c:\OpenBoard\plugins\mediaservice\dsengine.dll"; DestDir: "c:\OpenBoard\plugins\mediaservice"; Flags: ignoreversion
Source: "c:\OpenBoard\plugins\mediaservice\dsengined.dll"; DestDir: "c:\OpenBoard\plugins\mediaservice"; Flags: ignoreversion
;Qt windows plugins
Source: "{#QtDir}\plugins\platforms\qminimal.dll"; DestDir: "{app}\platforms"; Flags: ignoreversion
Source: "{#QtDir}\plugins\platforms\qoffscreen.dll"; DestDir: "{app}\platforms"; Flags: ignoreversion
Source: "{#QtDir}\plugins\platforms\qwindows.dll"; DestDir: "{app}\platforms"; Flags: ignoreversion
Source: "c:\OpenBoard\plugins\playlistformats\qtmultimediakit_m3u.dll"; DestDir: "c:\OpenBoard\plugins\playlistformats"; Flags: ignoreversion
Source: "c:\OpenBoard\plugins\playlistformats\qtmultimediakit_m3ud.dll"; DestDir: "c:\OpenBoard\plugins\playlistformats"; Flags: ignoreversion
;Qt images formats plugins
Source: "{#QtDir}\plugins\imageformats\qgif.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion
Source: "{#QtDir}\plugins\imageformats\qico.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion
Source: "{#QtDir}\plugins\imageformats\qjpeg.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion
Source: "{#QtDir}\plugins\imageformats\qmng.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion
Source: "{#QtDir}\plugins\imageformats\qsvg.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion
Source: "{#QtDir}\plugins\imageformats\qtiff.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion
;qt icon engine plugins
Source: "{#QtDir}\plugins\iconengines\qsvgicon.dll"; DestDir: "{app}\iconengines"; Flags: ignoreversion
;qt multimedia plugins
Source: "{#QtDir}\plugins\mediaservice\dsengine.dll"; DestDir: "{app}\mediaservice"; Flags: ignoreversion
Source: "{#QtDir}\plugins\mediaservice\dsengined.dll"; DestDir: "{app}\mediaservice"; Flags: ignoreversion
Source: "{#QtDir}\plugins\mediaservice\qtmedia_audioengine.dll"; DestDir: "{app}\mediaservice"; Flags: ignoreversion
Source: "{#QtDir}\plugins\mediaservice\qtmedia_audioengined.dll"; DestDir: "{app}\mediaservice"; Flags: ignoreversion
Source: "{#QtDir}\plugins\mediaservice\wmfengine.dll"; DestDir: "{app}\mediaservice"; Flags: ignoreversion
Source: "{#QtDir}\plugins\mediaservice\wmfengined.dll"; DestDir: "{app}\mediaservice"; Flags: ignoreversion
;OpenBoardImporter
Source: "..\OpenBoard-Importer\release\OpenBoardImporter.exe"; DestDir: "c:\OpenBoard\Importer"; Flags: ignoreversion
Source: "..\Qt-4.8\lib\QtGui4.dll"; DestDir: "c:\OpenBoard\Importer"; Flags: ignoreversion
Source: "..\Qt-4.8\lib\QtCore4.dll"; DestDir: "c:\OpenBoard\Importer"; Flags: ignoreversion
Source: "{#ProjectRoot}\..\OpenBoard-Importer\release\OpenBoardImporter.exe"; DestDir: "{app}\Importer"; Flags: ignoreversion
Source: "{#QtLibs}\Qt5Core.dll"; DestDir: "{app}"
Source: "{#QtLibs}\Qt5Gui.dll"; DestDir: "{app}"
;fonts for xpdf
Source: "resources\windows\xpdfrc"; DestDir: "{app}"; Flags: ignoreversion
Source: "resources\fonts\*"; DestDir: "{app}\fonts"; Flags: ignoreversion
Source: "{#ProjectRoot}\resources\windows\xpdfrc"; DestDir: "{app}"; Flags: ignoreversion
Source: "{#ProjectRoot}\resources\fonts\*"; DestDir: "{app}\fonts"; Flags: ignoreversion
[Icons]
Name: "{group}\OpenBoard"; Filename: "{app}\OpenBoard.exe"

@ -1,4 +1,5 @@
echo off
@echo off
@echo off
REM --------------------------------------------------------------------
REM This program is free software: you can redistribute it and/or modify
REM it under the terms of the GNU General Public License as published by
@ -14,18 +15,20 @@ REM You should have received a copy of the GNU General Public License
REM along with this program. If not, see <http://www.gnu.org/licenses/>.
REM ---------------------------------------------------------------------
set SCRIPT_PATH=%~dp0
set PROJECT_ROOT=%SCRIPT_PATH%\..\..
set APPLICATION_NAME=OpenBoard
set QT_DIR=..\Qt-4.8
set QT_DIR=C:\Qt\5.5\msvc2010
set QT_BIN=%QT_DIR%\bin
set PROGRAMS_FILE_PATH=C:\Program Files
set PROGRAMS_FILE_PATH=C:\Program Files (x86)
set GIT_BIN=%PROGRAMS_FILE_PATH%\Git\bin
set VS_BIN=%PROGRAMS_FILE_PATH%\Microsoft Visual Studio 9.0\VC\bin
set VS_BIN=%PROGRAMS_FILE_PATH%\Microsoft Visual Studio 10.0\VC\bin
set WIN_SDK_BIN=%PROGRAMS_FILE_PATH%\Microsoft SDKs\Windows\v6.0A\Bin
set INNO_EXE=%PROGRAMS_FILE_PATH%\Inno Setup 5\iscc.exe
set BUILD_DIR=build\win32\release
set BUILD_DIR=%PROJECT_ROOT%\build\win32\release
set LRELEASE=%QT_DIR%\bin\lrelease
set BASE_QT_TRANSLATIONS_DIRECTORY=%QT_DIR%\translations
@ -35,11 +38,14 @@ call "%VS_BIN%\vcvars32.bat"
echo %PATH%
cd %PROJECT_ROOT%
REM Third party impoter application
set IMPORTER_NAME=OpenBoardImporter
set IMPORTER_PATH="%cd%\..\OpenBoard-Importer"
set IMPORTER_PATH="..\OpenBoard-Importer"
IF NOT EXIST "%IMPORTER_PATH%" GOTO EXIT_WITH_ERROR
set HOME_DIR="%cd%"
cd %IMPORTER_PATH%
IF EXIST "release" (del "release\*.*" /Q)
@ -47,7 +53,7 @@ IF EXIST "debug" (del "debug\*.*" /Q)
IF EXIST "MakeFile" (del "MakeFile*" /Q)
IF EXIST "MakeFile" (del "MakeFile*" /Q)
IF EXIST "%IMPORTER_NAME%.exe" (del "%IMPORTER_NAME%.exe" /Q)
"%QT_BIN%\qmake.exe" %IMPORTER_NAME%.pro"
"%QT_BIN%\qmake.exe" %IMPORTER_NAME%.pro
nmake release
IF NOT EXIST release\"%IMPORTER_NAME%.exe" GOTO EXIT_WITH_ERROR
cd %HOME_DIR%
@ -55,7 +61,7 @@ cd %HOME_DIR%
REM this checks if the custom qt directory path
REM is correct. This is important because installer
REM pick up dll from this directory
IF NOT EXIST "%QT_DIR%\lib\QtCore4.dll" GOTO EXIT_WITH_ERROR
REM IF NOT EXIST "%QT_DIR%\bin\Qt5Core.dll" GOTO EXIT_WITH_ERROR
rmdir /S /Q %BUILD_DIR%
rmdir /S /Q install
@ -81,8 +87,8 @@ REM echo %LAST_TAG_VERSION%
nmake release-install
IF NOT EXIST build\win32\release\product\%APPLICATION_NAME%.exe GOTO EXIT_WITH_ERROR
xcopy C:\%APPLICATION_NAME%\lib\*.dll build\win32\release\product\
xcopy %QT_DIR%\lib\QtOpenGL4.dll build\win32\release\product\
xcopy C:\%APPLICATION_NAME%\bin\*.dll build\win32\release\product\
xcopy %QT_DIR%\bin\Qt5OpenGL.dll build\win32\release\product\
set CUSTOMIZATIONS=build\win32\release\product\customizations
mkdir %CUSTOMIZATIONS%
@ -96,7 +102,7 @@ del build\win32\release\product\i18n\qt_help*
del "build\win32\release\product\%APPLICATION_NAME%.pdb"
call "%INNO_EXE%" "%APPLICATION_NAME%.iss" /F"%APPLICATION_NAME%_Installer_%VERSION%"
call "%INNO_EXE%" "%SCRIPT_PATH%\%APPLICATION_NAME%.iss" /F"%APPLICATION_NAME%_Installer_%VERSION%"
GOTO END

@ -60,9 +60,9 @@
<file>images/toolbar/background.png</file>
<file>images/toolbar/documents.png</file>
<file>images/toolbar/newPage.png</file>
<file>images/toolbar/nextPage.png</file>
<file>images/toolbar/next.png</file>
<file>images/toolbar/nextPageOn.png</file>
<file>images/toolbar/previousPage.png</file>
<file>images/toolbar/previous.png</file>
<file>images/toolbar/previousPageOn.png</file>
<file>images/toolbar/redo.png</file>
<file>images/toolbar/redoOn.png</file>

@ -0,0 +1,133 @@
[App]
AngleTolerance=4
EnableAutomaticSoftwareUpdates=false
EnableSoftwareUpdates=true
EnableStartupHints=true
FavoriteToolURIs=openboardtool://openboard/mask, openboardtool://ruler, openboardtool://compass, openboardtool://protractor, openboardtool://triangle, openboardtool://magnifier, openboardtool://cache
IsInSoftwareUpdateProcess=false
LastSessionDocumentUUID=
LastSessionPageIndex=0
LookForOpenSankoreInstall=true
OnlineUserName=
PageCacheSize=20
PreferredLanguage=
ProductWebAddress=http://www.openboard.ch
StartMode=
SwapControlAndDisplayScreens=false
ToolBarDisplayText=true
ToolBarOrientationVertical=false
ToolBarPositionedAtTop=true
TutorialUrl=http://www.openboard.ch
UseMultiscreenMode=true
UseSystemOnScreenKeyboard=true
[Board]
AutoSaveIntervalInMinutes=3
CrossedBackground=0
DarkBackground=0
DefaultPageSize=@Size(1280 960)
EraserCircleWidthIndex=1
FeatureSliderPosition=40
KeyboardPaletteKeyBtnSize=16x16
LeftLibPaletteBoardModeIsCollapsed=true
LeftLibPaletteBoardModeWidth=270
LeftLibPaletteDesktopModeIsCollapsed=true
LeftLibPaletteDesktopModeWidth=270
MagnifierDrawingMode=0
MarkerAlpha=0.5
MarkerColorIndex=0
MarkerDarkBackgroundColors=#FFFF00, #FF4400, #66C0FF, #81FF5C, #B68360, #FF497E, #8D69FF, #FFFFFF
MarkerDarkBackgroundSelectedColors=#FFFF00, #FF4400, #66C0FF, #81FF5C, #B68360
MarkerFineWidth=12
MarkerLightBackgroundColors=#E3FF00, #FF0000, #004080, #008000, #C87400, #800040, #008080, #000000
MarkerLightBackgroundSelectedColors=#E3FF00, #FF0000, #004080, #008000, #C87400
MarkerMediumWidth=24
MarkerPressureSensitive=false
MarkerStrongWidth=48
PenColorIndex=0
PenDarkBackgroundColors=#FFFFFF, #FF3400, #66C0FF, #81FF5C, #FFFF00, #B68360, #FF497E, #8D69FF, #000000
PenDarkBackgroundSelectedColors=#FFFFFF, #FF3400, #66C0FF, #81FF5C, #FFFF00
PenFineWidth=1.5
PenLightBackgroundColors=#000000, #FF0000, #004080, #008000, #FFDD00, #C87400, #800040, #008080, #5F2D0A, #FFFFFF
PenLightBackgroundSelectedColors=#000000, #FF0000, #004080, #008000, #FFDD00
PenLineWidthIndex=0
PenMediumWidth=3
PenPressureSensitive=true
PenStrongWidth=8
RightLibPaletteBoardModeIsCollapsed=true
RightLibPaletteBoardModeWidth=270
RightLibPaletteDesktopModeIsCollapsed=true
RightLibPaletteDesktopModeWidth=270
ShowEraserPreviewCircle=true
ShowMarkerPreviewCircle=true
ShowToolsPalette=false
StartupKeyboardLocale=0
UseHighResTabletEvent=true
ZoomFactor=1.4099999999999999
pageDpi=0
[Community]
CredentialsPersistence=false
Password=
Username=
[Document]
EmptyGroupNames=@Invalid()
ThumbnailWidth=150
[IntranetPodcast]
Author=
PublishToIntranet=false
PublishingUrl=
[Library]
AnimationsDirectory=./library/animations
ApplicationsDirectory=./library/applications
AudiosDirectory=./library/audios
ImageDirectory=./library/pictures
ImageThumbnailWidth=150
InteractivitiesDirectory=./library/interactivities
LibIconSize=80
ShapeDirectory=./library/shape
ShapeThumbnailWidth=50
SoundThumbnailWidth=50
VideoThumbnailWidth=80
VideosDirectory=./library/videos
[Mirroring]
RefreshRateInFramePerSecond=2
[PDF]
Margin=20
PageFormat=A4
Resolution=300
[Podcast]
AudioRecordingDevice=Default
FramesPerSecond=10
PublishToYouTube=false
QuickTimeQuality=High
VideoSize=Medium
WindowsMediaBitsPerSecond=1700000
[SVG]
ViewBoxMargin=50
[Voting]
ReplyPlusAddressingMode=static
ReplyPlusConnectionURL=USB
ReplyPlusMaxKeypads=100
ReplyWWSerialPort=3
[Web]
AddBookmarkURL="http://www.myuniboard.com/bookmarks/save/?url="
BookmarksPage=http://www.myuniboard.com
HistoryLimit=15
Homepage=http://www.openboard.ch
ShowAddBookmarkButton=false
ShowPageImediatelyOnMirroredScreen=false
UseExternalBrowser=false
[YouTube]
CredentialsPersistence=false
UserEMail=

@ -321,7 +321,7 @@ QTabBar::tab
border-top-left-radius: 3px;
border-top-right-radius: 3px;
min-width: 15ex;
min-width: 12ex;
margin: 2px;
margin-top: 6px;
margin-bottom: 2px;

@ -22,7 +22,7 @@
<object type="application/x-shockwave-flash" data="{in.url}" width="100%" height="100%">
<param name="movie" value="{in.url}">
<param name="quality" value="high">
<param name="wmode" value="transparent">
<param name="wmode" value="window">
</object>
</div>
</body>

@ -445,10 +445,19 @@
<string>Color</string>
</property>
</action>
<action name="actionColor4">
<property name="icon">
<iconset resource="../OpenBoard.qrc">
<normaloff>:/images/toolbar/color.png</normaloff>:/images/toolbar/color.png</iconset>
</property>
<property name="text">
<string>Color</string>
</property>
</action>
<action name="actionWebBack">
<property name="icon">
<iconset resource="../OpenBoard.qrc">
<normaloff>:/images/toolbar/previousPageOn.png</normaloff>:/images/toolbar/previousPageOn.png</iconset>
<normaloff>:/images/toolbar/previous.png</normaloff>:/images/toolbar/previous.png</iconset>
</property>
<property name="text">
<string>Back</string>
@ -463,7 +472,7 @@
<action name="actionWebForward">
<property name="icon">
<iconset resource="../OpenBoard.qrc">
<normaloff>:/images/toolbar/nextPageOn.png</normaloff>:/images/toolbar/nextPageOn.png</iconset>
<normaloff>:/images/toolbar/next.png</normaloff>:/images/toolbar/next.png</iconset>
</property>
<property name="text">
<string>Forward</string>

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>759</width>
<height>692</height>
<height>718</height>
</rect>
</property>
<property name="windowTitle">
@ -24,42 +24,13 @@
<item row="1" column="0">
<widget class="QTabWidget" name="mainTabWidget">
<property name="currentIndex">
<number>5</number>
<number>6</number>
</property>
<widget class="QWidget" name="displayTab">
<attribute name="title">
<string>Display</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_3">
<item row="3" column="0">
<spacer name="toolbarSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="9" column="0">
<spacer name="keyboardSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="0">
<widget class="QGroupBox" name="multiDisplayGroupBox">
<property name="title">
@ -112,19 +83,6 @@
</layout>
</widget>
</item>
<item row="12" column="0">
<spacer name="modeSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="8" column="0">
<widget class="QGroupBox" name="toolbarGroupBox">
<property name="sizePolicy">
@ -213,19 +171,6 @@
</layout>
</widget>
</item>
<item row="7" column="0">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="0" rowspan="2">
<widget class="QGroupBox" name="stylusPaletteGroupBox">
<property name="minimumSize">
@ -328,65 +273,7 @@
</layout>
</widget>
</item>
<item row="10" column="0">
<widget class="QGroupBox" name="keyboardGroupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>Virtual Keyboard</string>
</property>
<layout class="QGridLayout" name="gridLayout_13">
<item row="0" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1" rowspan="2">
<layout class="QGridLayout" name="gridLayout_11">
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Keyboard button size:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="keyboardPaletteKeyButtonSize"/>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item row="13" column="0">
<item row="15" column="0">
<widget class="QGroupBox" name="modeGroupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
@ -455,7 +342,7 @@
</layout>
</widget>
</item>
<item row="14" column="0">
<item row="16" column="0">
<spacer name="verticalSpacer_7">
<property name="orientation">
<enum>Qt::Vertical</enum>
@ -468,6 +355,126 @@
</property>
</spacer>
</item>
<item row="7" column="0">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="9" column="0">
<spacer name="keyboardSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="14" column="0">
<spacer name="modeSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="0">
<spacer name="toolbarSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="13" column="0">
<widget class="QGroupBox" name="keyboardGroupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>Virtual Keyboard</string>
</property>
<layout class="QGridLayout" name="gridLayout_13">
<item row="0" column="1" colspan="2">
<layout class="QGridLayout" name="oskGridLayout">
<item row="3" column="1">
<widget class="QComboBox" name="keyboardPaletteKeyButtonSize"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="keyboardPaletteKeyButtonSize_Label">
<property name="text">
<string>Built-in virtual keyboard button size:</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="useSystemOSKCheckBox">
<property name="text">
<string>Use system keyboard (recommended)</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="3">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="penTab">
@ -2650,7 +2657,7 @@ Public License instead of this License. But first, please read
<string notr="true">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Lucida Grande'; font-size:13pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:12pt; font-weight:600;&quot;&gt;Translations&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;A special thanks to:&lt;/span&gt;&lt;/p&gt;
@ -2697,12 +2704,12 @@ p, li { white-space: pre-wrap; }
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://creativecommons.org/licenses/by/3.0/&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;Creative Commons BY-ND&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://douteau.ecolier.perso.sfr.fr/page_ecolier.htm&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#000000;&quot;&gt;DGESCO (&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;mailto:degre.numerique@education.gouv.fr&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;degre.numerique@education.gouv.fr&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;http://douteau.ecolier.perso.sfr.fr/page_ecolier.htm&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#000000;&quot;&gt;)&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://douteau.ecolier.perso.sfr.fr/page_ecolier.htm&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#000000;&quot;&gt;Source: &lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;http://eduscol.education.fr/cid72979/polices-de-caracteres-cursives-pour-l-enseignement-de-l-ecriture.html&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;http://eduscol.education.fr/cid72979/polices-de-caracteres-cursives-pour-l-enseignement-de-l-ecriture.html&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande'; font-size:13pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;GeTypo Libre&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;Creative Commons BY-NC-ND&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://www.ge.ch/sem/cc/by-nc-nd/&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;http://www.ge.ch/sem/cc/by-nc-nd/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://www.ge.ch/sem/cc/by-nc-nd/&quot;&gt;&lt;span style=&quot; font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;http://www.ge.ch/sem/cc/by-nc-nd/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;© 2005-2015, Vista Multimedia SA, Droit de diffusion Etat de Genève - DIP&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://edu.ge.ch/sem/node/1294&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;http://edu.ge.ch/sem/node/1294&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://edu.ge.ch/sem/node/1294&quot;&gt;&lt;span style=&quot; font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;http://edu.ge.ch/sem/node/1294&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt; color:#000000;&quot;&gt;Sonata para piano (.mp3)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt; color:#000000;&quot;&gt;Óscar G. Villegas&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/es&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;Creative Commons Attribution-NonCommercial-Share Alike 3.0 Unported&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
@ -2744,27 +2751,28 @@ p, li { white-space: pre-wrap; }
<string notr="true">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Lucida Grande'; font-size:13pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;table border=&quot;0&quot; style=&quot;-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;&quot;&gt;
&lt;tr&gt;
&lt;td style=&quot;border: none;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;OpenBoard 1.00.00&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;OpenBoard 1.3.0&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Cantarell'; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;OpenBoard is copyright © 2013 . All rights reserved.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;OpenBoard is copyright © 2015. All rights reserved.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Cantarell'; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;OpenBoard is derived from Open-Sankoré. Open-Sankoré is copyright © 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA). All right reserved.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;OpenBoard is derived from Open-Sankoré. Open-Sankoré is copyright © 2010-2015 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA). All right reserved.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Cantarell'; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;OpenBoard 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, version 3 of the License, with a specific linking exception for the OpenSSL project's &amp;quot;OpenSSL&amp;quot; library (or with modified versions of it that use the same license as the &amp;quot;OpenSSL&amp;quot; library). You can find the source code of this software at &amp;lt;https://github.com/OpenEducationFoundation&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;OpenBoard 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, version 3 of the License, with a specific linking exception for the OpenSSL project's &amp;quot;OpenSSL&amp;quot; library (or with modified versions of it that use the same license as the &amp;quot;OpenSSL&amp;quot; library). You can find the source code of this software at &lt;/span&gt;&lt;a href=&quot;https://github.com/DIP-SEM/OpenBoard&quot;&gt;&lt;span style=&quot; font-family:'.Helvetica Neue DeskInterface'; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;github.com/DIP-SEM/OpenBoard&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;, &lt;/span&gt;&lt;a href=&quot;https://github.com/DIP-SEM/OpenBoard-ThirdParty&quot;&gt;&lt;span style=&quot; font-family:'.Helvetica Neue DeskInterface'; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;github.com/DIP-SEM/OpenBoard-ThirdParty&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;, and &lt;/span&gt;&lt;a href=&quot;https://github.com/DIP-SEM/OpenBoard-Importer&quot;&gt;&lt;span style=&quot; font-family:'.Helvetica Neue DeskInterface'; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;github.com/DIP-SEM/OpenBoard-Importer.&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;OpenBoard 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 below for more details.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Cantarell'; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;Contact :&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;Open Education Foundation&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;c/o FBT Avocats SA&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;Rue du 31-Décembre 47&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;1207 Genève&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://www.oe-f.org&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;oe-f.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Cantarell'; font-size:10pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;email: &lt;/span&gt;&lt;a href=&quot;mailto:contact@oe-f.org&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;contact@oe-f.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;</string>
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;Service écoles-médias&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;Rue des Gazomètres 5&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;Case Postale 241&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;1211 Genève 8&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;Switzerland&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://www.openboard.ch&quot;&gt;&lt;span style=&quot; font-family:'.Helvetica Neue DeskInterface'; font-size:11pt; text-decoration: underline; color:#0000ff;&quot;&gt;openboard.ch&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'.Helvetica Neue DeskInterface'; font-size:11pt; text-decoration: underline; color:#0000ff;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt;&quot;&gt;email: &lt;/span&gt;&lt;a href=&quot;mailto:sem.logistique@edu.ge.ch&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;sem.logistique@edu.ge.ch&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="openExternalLinks">
<bool>true</bool>
@ -2810,7 +2818,7 @@ p, li { white-space: pre-wrap; }
</widget>
</item>
<item>
<widget class="QGroupBox" name="softwareUpdateGroupBox_2">
<widget class="QGroupBox" name="sankoreImporterGroupBox">
<property name="minimumSize">
<size>
<width>0</width>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="ar" sourcelanguage="fr">
<TS version="2.1" language="ar" sourcelanguage="fr">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>معرّف المكوّن =</translation>
<translation type="vanished">معرّف المكوّن =</translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>المحتوى غير مدعوم في النسق الهدف.</translation>
<translation type="vanished">المحتوى غير مدعوم في النسق الهدف.</translation>
</message>
<message>
<source>Remove Page</source>
@ -937,6 +937,14 @@
<source>Ungroup</source>
<translation>تفريق</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1137,6 +1145,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1232,23 +1248,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>التصدير للـIWB</translation>
<translation type="vanished">التصدير للـIWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>التصدير كملف IWB</translation>
<translation type="vanished">التصدير كملف IWB</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>تصدير الوثيقة...</translation>
<translation type="vanished">تصدير الوثيقة...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>تصدير ناجح.</translation>
<translation type="vanished">تصدير ناجح.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>فشل التصدير.</translation>
<translation type="vanished">فشل التصدير.</translation>
</message>
</context>
<context>
@ -1277,6 +1293,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1296,6 +1324,18 @@
<source>Export to PDF</source>
<translation>التصدير للـPDF</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1496,6 +1536,25 @@
<translation>الذهاب الى مصدر المحتوى</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1543,23 +1602,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>شكل ملف مشترك (</translation>
<translation type="vanished">شكل ملف مشترك (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>استيراد ملف 1%...</translation>
<translation type="vanished">استيراد ملف 1%...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>فشل تصدير الملف 1%</translation>
<translation type="vanished">فشل تصدير الملف 1%</translation>
</message>
<message>
<source>Import successful.</source>
<translation>استيراد ناجح</translation>
<translation type="vanished">استيراد ناجح</translation>
</message>
<message>
<source>Import failed.</source>
<translation>استيراد فاشل.</translation>
<translation type="vanished">استيراد فاشل.</translation>
</message>
</context>
<context>
@ -1685,10 +1744,6 @@ Do you want to ignore these errors for this host?</source>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1705,6 +1760,10 @@ Do you want to ignore these errors for this host?</source>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2427,7 +2486,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>حجم أزرار لوحة المفاتيح:</translation>
<translation type="vanished">حجم أزرار لوحة المفاتيح:</translation>
</message>
<message>
<source>Toolbar</source>
@ -2485,7 +2544,7 @@ p, li { white-space: pre-wrap; }
<source>Network</source>
<translation>شبكة</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>نسخة:</translation>
</message>
@ -2529,14 +2588,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>الشكر إلى</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="bg_BG">
<TS version="2.1" language="bg_BG">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>Номер на елемента =</translation>
<translation type="vanished">Номер на елемента =</translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>Това съдържание не се поддържа вкрайния формат.</translation>
<translation type="vanished">Това съдържание не се поддържа вкрайния формат.</translation>
</message>
<message>
<source>Remove Page</source>
@ -937,6 +937,14 @@
<source>Ungroup</source>
<translation>Премахни групирането</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1133,6 +1141,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1224,23 +1240,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Експортирай към интерактивната дъска</translation>
<translation type="vanished">Експортирай към интерактивната дъска</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Експортирай като файл за интерактивна дъска</translation>
<translation type="vanished">Експортирай като файл за интерактивна дъска</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>Експортиране на документ...</translation>
<translation type="vanished">Експортиране на документ...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Експортирането успешно.</translation>
<translation type="vanished">Експортирането успешно.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Експортирането се провали.</translation>
<translation type="vanished">Експортирането се провали.</translation>
</message>
</context>
<context>
@ -1269,6 +1285,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1288,6 +1316,18 @@
<source>Export to PDF</source>
<translation>Експортиране към PDF</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1488,6 +1528,25 @@
<translation>Отиди към източника на съдържанието</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1535,23 +1594,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Общ формат на файла (</translation>
<translation type="vanished">Общ формат на файла (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>Импортиране на файл %1...</translation>
<translation type="vanished">Импортиране на файл %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>Импортирането на файл %1 се провали.</translation>
<translation type="vanished">Импортирането на файл %1 се провали.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>Импортирането успешно.</translation>
<translation type="vanished">Импортирането успешно.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Грешка при импортирането.</translation>
<translation type="vanished">Грешка при импортирането.</translation>
</message>
</context>
<context>
@ -1683,10 +1742,6 @@ Do you want to ignore these errors for this host?</source>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1703,6 +1758,10 @@ Do you want to ignore these errors for this host?</source>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2414,7 +2473,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Големина на бутоните на клавиатурата:</translation>
<translation type="vanished">Големина на бутоните на клавиатурата:</translation>
</message>
<message>
<source>Positioned at the Top (recommended for tablets)</source>
@ -2472,7 +2531,7 @@ p, li { white-space: pre-wrap; }
<source>Marker</source>
<translation>Маркер</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>версия: ...</translation>
</message>
@ -2524,14 +2583,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>Изготвили</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="ca" sourcelanguage="en">
<TS version="2.1" language="ca" sourcelanguage="en">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>ID de l&apos;element = </translation>
<translation type="vanished">ID de l&apos;element = </translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>Aquest contingut no està suportat pel format escollit.</translation>
<translation type="vanished">Aquest contingut no està suportat pel format escollit.</translation>
</message>
<message>
<source>Remove Page</source>
@ -937,6 +937,14 @@
<source>Ungroup</source>
<translation>Desagrupa</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1118,7 +1126,6 @@
<translation>
<numerusform>Esteu segur que voleu eliminar %n pàgina del document seleccionat &apos;%1&apos;?</numerusform>
<numerusform>Esteu segur que voleu eliminar %n pàgines del document seleccionat &apos;%1&apos;?</numerusform>
<numerusform>Esteu segur que voleu eliminar %n pàgines del document seleccionat &apos;%1&apos;?</numerusform>
</translation>
</message>
<message>
@ -1133,6 +1140,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1199,7 +1214,6 @@
<translation>
<numerusform>%1 pàgina copiada</numerusform>
<numerusform>%1 pàgines copiades</numerusform>
<numerusform>%1 pàgines copiades</numerusform>
</translation>
</message>
</context>
@ -1225,23 +1239,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Exporta a IWB</translation>
<translation type="vanished">Exporta a IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Exporta com a fitxer IWB</translation>
<translation type="vanished">Exporta com a fitxer IWB</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>S&apos;està exportant el document...</translation>
<translation type="vanished">S&apos;està exportant el document...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>L&apos;exportació ha estat correcta.</translation>
<translation type="vanished">L&apos;exportació ha estat correcta.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>L&apos;exportació ha fallat.</translation>
<translation type="vanished">L&apos;exportació ha fallat.</translation>
</message>
</context>
<context>
@ -1270,6 +1284,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1289,6 +1315,18 @@
<source>Export successful.</source>
<translation>L&apos;exportació ha estat correcta.</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1489,6 +1527,25 @@
<translation>Ves a la font de contingut</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1536,23 +1593,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Format de fitxer comú (</translation>
<translation type="vanished">Format de fitxer comú (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>S&apos;està important el fitxer %1...</translation>
<translation type="vanished">S&apos;està important el fitxer %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>Ha fallat la importació del fitxer %1.</translation>
<translation type="vanished">Ha fallat la importació del fitxer %1.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>La importació ha estat correcta.</translation>
<translation type="vanished">La importació ha estat correcta.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Ha fallat la importació.</translation>
<translation type="vanished">Ha fallat la importació.</translation>
</message>
</context>
<context>
@ -1684,10 +1741,6 @@ Voleu ignorar aquests errors per a aquest amfitrió?</translation>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1704,6 +1757,10 @@ Voleu ignorar aquests errors per a aquest amfitrió?</translation>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2387,7 +2444,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation>Preferències</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>versió: </translation>
</message>
@ -2417,7 +2474,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Mida de les tecles:</translation>
<translation type="vanished">Mida de les tecles:</translation>
</message>
<message>
<source>Toolbar</source>
@ -2519,14 +2576,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>Crèdits</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="cs_CZ" sourcelanguage="en">
<TS version="2.1" language="cs_CZ" sourcelanguage="en">
<context>
<name>BlackoutWidget</name>
<message>
@ -843,11 +843,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation type="unfinished">ID objektu = </translation>
<translation type="obsolete">ID objektu = </translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>Obsah není podporován v cílovém formátu.</translation>
<translation type="vanished">Obsah není podporován v cílovém formátu.</translation>
</message>
<message>
<source>Remove Page</source>
@ -938,6 +938,14 @@
<source>Ungroup</source>
<translation>Odseskupit</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1134,6 +1142,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1226,23 +1242,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Export do IWB</translation>
<translation type="vanished">Export do IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Exportovat jako IWB soubor</translation>
<translation type="vanished">Exportovat jako IWB soubor</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>Exportuje se dokument...</translation>
<translation type="vanished">Exportuje se dokument...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Export byl úspěšně dokončen.</translation>
<translation type="vanished">Export byl úspěšně dokončen.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Export se nezdařil.</translation>
<translation type="vanished">Export se nezdařil.</translation>
</message>
</context>
<context>
@ -1271,6 +1287,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1290,6 +1318,18 @@
<source>Export successful.</source>
<translation>Export byl úspěšně dokončen.</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1490,6 +1530,25 @@
<translation>Viditelné na rozšířené obrazovce</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1537,23 +1596,23 @@
<name>UBImportCFF</name>
<message>
<source>Importing file %1...</source>
<translation>Importuje se soubor %1...</translation>
<translation type="vanished">Importuje se soubor %1...</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Import se nezdařil.</translation>
<translation type="vanished">Import se nezdařil.</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>Import souboru %1 se nezdařil.</translation>
<translation type="vanished">Import souboru %1 se nezdařil.</translation>
</message>
<message>
<source>Common File Format (</source>
<translation>Univerzální IWB soubor (</translation>
<translation type="vanished">Univerzální IWB soubor (</translation>
</message>
<message>
<source>Import successful.</source>
<translation>Import byl úspěšně dokončen.</translation>
<translation type="vanished">Import byl úspěšně dokončen.</translation>
</message>
</context>
<context>
@ -1685,10 +1744,6 @@ Chcete ignorovat tyto chyby na tomto serveru?</translation>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1705,6 +1760,10 @@ Chcete ignorovat tyto chyby na tomto serveru?</translation>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2457,7 +2516,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Velikost tlačítka klávesnice:</translation>
<translation type="vanished">Velikost tlačítka klávesnice:</translation>
</message>
<message>
<source>Stylus Palette</source>
@ -2479,7 +2538,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation>Předvolby</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>verze:...</translation>
</message>
@ -2527,14 +2586,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>Zásluhy</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="da_DK">
<TS version="2.1" language="da_DK">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>Element-ID = </translation>
<translation type="vanished">Element-ID = </translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>Indholdet understøttes ikke i destinationsformatet.</translation>
<translation type="vanished">Indholdet understøttes ikke i destinationsformatet.</translation>
</message>
<message>
<source>Remove Page</source>
@ -937,6 +937,14 @@
<source>Ungroup</source>
<translation>Opdel gruppe</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1132,6 +1140,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1223,23 +1239,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Eksporter til IWB</translation>
<translation type="vanished">Eksporter til IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Eksporter som IWB-fil</translation>
<translation type="vanished">Eksporter som IWB-fil</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>Eksporterer dokument...</translation>
<translation type="vanished">Eksporterer dokument...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Eksport gennemført.</translation>
<translation type="vanished">Eksport gennemført.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Eksport mislykkedes.</translation>
<translation type="vanished">Eksport mislykkedes.</translation>
</message>
</context>
<context>
@ -1268,6 +1284,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1287,6 +1315,18 @@
<source>Export to PDF</source>
<translation>Eksport til PDF</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1487,6 +1527,25 @@
<translation> til indholdskilde</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1534,23 +1593,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Almindelig filformat (</translation>
<translation type="vanished">Almindelig filformat (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>Importerer fil %1...</translation>
<translation type="vanished">Importerer fil %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>Import af fil %1 mislykkedes.</translation>
<translation type="vanished">Import af fil %1 mislykkedes.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>Import gennemført.</translation>
<translation type="vanished">Import gennemført.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Import mislykkedes.</translation>
<translation type="vanished">Import mislykkedes.</translation>
</message>
</context>
<context>
@ -1682,10 +1741,6 @@ Do you want to ignore these errors for this host?</source>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1702,6 +1757,10 @@ Do you want to ignore these errors for this host?</source>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2388,7 +2447,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation>Indstillinger</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>version: ...</translation>
</message>
@ -2422,7 +2481,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Størrelse tastaturknapper:</translation>
<translation type="vanished">Størrelse tastaturknapper:</translation>
</message>
<message>
<source>Toolbar</source>
@ -2520,14 +2579,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>Anerkendelse</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="de_DE">
<TS version="2.1" language="de_DE">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation type="unfinished">Element ID = </translation>
<translation type="obsolete">Element ID = </translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation type="unfinished">Inhalt wird im Zielformat nicht unterstützt.</translation>
<translation type="obsolete">Inhalt wird im Zielformat nicht unterstützt.</translation>
</message>
<message>
<source>Remove Page</source>
@ -937,6 +937,14 @@
<source>Ungroup</source>
<translation type="unfinished">Gruppierung auflösen</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1132,6 +1140,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1223,23 +1239,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Exportieren nach IWB</translation>
<translation type="vanished">Exportieren nach IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Exportieren als IWB-Datei</translation>
<translation type="vanished">Exportieren als IWB-Datei</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>Dokument wird exportiert...</translation>
<translation type="vanished">Dokument wird exportiert...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Export erfolgreich.</translation>
<translation type="vanished">Export erfolgreich.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Export fehlgeschlagen.</translation>
<translation type="vanished">Export fehlgeschlagen.</translation>
</message>
</context>
<context>
@ -1268,6 +1284,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1287,6 +1315,18 @@
<source>Export to PDF</source>
<translation>In PDF-Datei exportieren</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1487,6 +1527,25 @@
<translation>Gehen Sie zum ursprünglichen Inhalt</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1534,23 +1593,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Standard-Dateiformat (</translation>
<translation type="vanished">Standard-Dateiformat (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>Datei %1 wird importiert...</translation>
<translation type="vanished">Datei %1 wird importiert...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>Import der Datei %1 fehlgeschlagen.</translation>
<translation type="vanished">Import der Datei %1 fehlgeschlagen.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>Import erfolgreich.</translation>
<translation type="vanished">Import erfolgreich.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Import fehlgeschlagen.</translation>
<translation type="vanished">Import fehlgeschlagen.</translation>
</message>
</context>
<context>
@ -1682,10 +1741,6 @@ Möchten Sie diese Fehler auf diesem Computer ignorieren?</translation>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1702,6 +1757,10 @@ Möchten Sie diese Fehler auf diesem Computer ignorieren?</translation>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2392,7 +2451,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation>Einstellungen</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>Version: ...</translation>
</message>
@ -2426,7 +2485,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Tastengröße der Tastatur:</translation>
<translation type="vanished">Tastengröße der Tastatur:</translation>
</message>
<message>
<source>Toolbar</source>
@ -2525,14 +2584,22 @@ p, li { white-space: pre-wrap; }
<translatorcomment>do not translate!</translatorcomment>
<translation></translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="el_GR">
<TS version="2.1" language="el_GR">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>Αναγνωριστικό στοιχείου=</translation>
<translation type="vanished">Αναγνωριστικό στοιχείου=</translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>Η μορφή του περιεχομένου δεν υποστηριζεται στον προορισμό</translation>
<translation type="vanished">Η μορφή του περιεχομένου δεν υποστηριζεται στον προορισμό</translation>
</message>
<message>
<source>Remove Page</source>
@ -937,6 +937,14 @@
<source>Ungroup</source>
<translation>Αποομαδοποίηση</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1132,6 +1140,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1223,23 +1239,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Εξαγωγή σε IWB</translation>
<translation type="vanished">Εξαγωγή σε IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Εξαγωγή ως αρχείο IWB</translation>
<translation type="vanished">Εξαγωγή ως αρχείο IWB</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>Εξαγωγή εγγράφου...</translation>
<translation type="vanished">Εξαγωγή εγγράφου...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Επιτυχημένη εξαγωγή</translation>
<translation type="vanished">Επιτυχημένη εξαγωγή</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Αποτυχημένη εξαγωγή</translation>
<translation type="vanished">Αποτυχημένη εξαγωγή</translation>
</message>
</context>
<context>
@ -1268,6 +1284,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1287,6 +1315,18 @@
<source>Export to PDF</source>
<translation>Εξαγωγή σε PDF</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1487,6 +1527,25 @@
<translation>Μετάβαση στην Πηγή Περιεχομένου</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1534,23 +1593,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Συνηθισμένη μορφή αρχείου (</translation>
<translation type="vanished">Συνηθισμένη μορφή αρχείου (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>Εισαγωγή αρχείου %1...</translation>
<translation type="vanished">Εισαγωγή αρχείου %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>Η εισαγωγή του αρχείου %1 απέτυχε</translation>
<translation type="vanished">Η εισαγωγή του αρχείου %1 απέτυχε</translation>
</message>
<message>
<source>Import successful.</source>
<translation>Επιτυχημένη εισαγωγή</translation>
<translation type="vanished">Επιτυχημένη εισαγωγή</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Αποτυχημένη εισαγωγή</translation>
<translation type="vanished">Αποτυχημένη εισαγωγή</translation>
</message>
</context>
<context>
@ -1682,10 +1741,6 @@ Do you want to ignore these errors for this host?</source>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1702,6 +1757,10 @@ Do you want to ignore these errors for this host?</source>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2414,7 +2473,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Μέγεθος πλήκτρων πληκτρολογίου:</translation>
<translation type="vanished">Μέγεθος πλήκτρων πληκτρολογίου:</translation>
</message>
<message>
<source>Positioned at the Top (recommended for tablets)</source>
@ -2472,7 +2531,7 @@ p, li { white-space: pre-wrap; }
<source>Marker</source>
<translation>Μαρκαδόρος</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>έκδοση: ...</translation>
</message>
@ -2524,14 +2583,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>Εύσημα</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0">
<TS version="2.1">
<context>
<name>BlackoutWidget</name>
<message>
@ -840,14 +840,6 @@
</context>
<context>
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove Page</source>
<translation type="unfinished"></translation>
@ -937,6 +929,14 @@
<source>Ungroup</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1131,6 +1131,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1218,13 +1226,13 @@
</message>
</context>
<context>
<name>UBExportCFF</name>
<name>UBExportDocument</name>
<message>
<source>Export to IWB</source>
<source>Page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export as IWB File</source>
<source>Export as UBZ File</source>
<translation type="unfinished"></translation>
</message>
<message>
@ -1236,34 +1244,23 @@
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportDocument</name>
<message>
<source>Page</source>
<source>Exporting %1 %2 of %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export as UBZ File</source>
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exporting document...</source>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export successful.</source>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exporting %1 %2 of %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export to OpenBoard Format</source>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -1285,6 +1282,18 @@
<source>Export successful.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1485,6 +1494,25 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1528,29 +1556,6 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Importing file %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Import successful.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Import failed.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBImportDocument</name>
<message>
@ -1674,10 +1679,6 @@ Do you want to ignore these errors for this host?</source>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1694,6 +1695,10 @@ Do you want to ignore these errors for this host?</source>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2399,10 +2404,6 @@ p, li { white-space: pre-wrap; }
<source>Virtual Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Positioned at the Top (recommended for tablets)</source>
<translation type="unfinished"></translation>
@ -2459,7 +2460,7 @@ p, li { white-space: pre-wrap; }
<source>Marker</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation type="unfinished"></translation>
</message>
@ -2511,14 +2512,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0">
<TS version="2.1">
<context>
<name>BlackoutWidget</name>
<message>
@ -840,14 +840,6 @@
</context>
<context>
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove Page</source>
<translation type="unfinished"></translation>
@ -937,6 +929,14 @@
<source>Ungroup</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1131,6 +1131,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1218,13 +1226,13 @@
</message>
</context>
<context>
<name>UBExportCFF</name>
<name>UBExportDocument</name>
<message>
<source>Export to IWB</source>
<source>Page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export as IWB File</source>
<source>Export as UBZ File</source>
<translation type="unfinished"></translation>
</message>
<message>
@ -1236,34 +1244,23 @@
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportDocument</name>
<message>
<source>Page</source>
<source>Exporting %1 %2 of %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export as UBZ File</source>
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exporting document...</source>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export successful.</source>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exporting %1 %2 of %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export to OpenBoard Format</source>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -1285,6 +1282,18 @@
<source>Export to PDF</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1485,6 +1494,25 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1528,29 +1556,6 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Importing file %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Import successful.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Import failed.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBImportDocument</name>
<message>
@ -1674,10 +1679,6 @@ Do you want to ignore these errors for this host?</source>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1694,6 +1695,10 @@ Do you want to ignore these errors for this host?</source>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2399,10 +2404,6 @@ p, li { white-space: pre-wrap; }
<source>Virtual Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Positioned at the Top (recommended for tablets)</source>
<translation type="unfinished"></translation>
@ -2459,7 +2460,7 @@ p, li { white-space: pre-wrap; }
<source>Marker</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation type="unfinished"></translation>
</message>
@ -2511,14 +2512,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="es_ES">
<TS version="2.1" language="es_ES">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>Elemento ID = </translation>
<translation type="vanished">Elemento ID = </translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>El formato de destino no permite este contenido</translation>
<translation type="vanished">El formato de destino no permite este contenido</translation>
</message>
<message>
<source>Remove Page</source>
@ -937,6 +937,14 @@
<source>Ungroup</source>
<translation>Desagrupar</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1132,6 +1140,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1223,23 +1239,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Exportar a IWB</translation>
<translation type="vanished">Exportar a IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Exportar como fichero IWB</translation>
<translation type="vanished">Exportar como fichero IWB</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>Exportando documento...</translation>
<translation type="vanished">Exportando documento...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Exportación satisfactoria.</translation>
<translation type="vanished">Exportación satisfactoria.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Fallo en la exportación</translation>
<translation type="vanished">Fallo en la exportación</translation>
</message>
</context>
<context>
@ -1268,6 +1284,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1287,6 +1315,18 @@
<source>Export to PDF</source>
<translation>Exportar a PDF</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1487,6 +1527,25 @@
<translation>Ir a fuente de contenido</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1534,23 +1593,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Formato de archivo común (</translation>
<translation type="vanished">Formato de archivo común (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>Importando archivo %1...</translation>
<translation type="vanished">Importando archivo %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>Fallo en la importanción del archivo %1.</translation>
<translation type="vanished">Fallo en la importanción del archivo %1.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>Importación satisfactoria.</translation>
<translation type="vanished">Importación satisfactoria.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Fallo de la importación.</translation>
<translation type="vanished">Fallo de la importación.</translation>
</message>
</context>
<context>
@ -1676,10 +1735,6 @@ Do you want to ignore these errors for this host?</source>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1696,6 +1751,10 @@ Do you want to ignore these errors for this host?</source>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2386,7 +2445,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation>Preferencias</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>versión : </translation>
</message>
@ -2420,7 +2479,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Tamaño de los botones del teclado:</translation>
<translation type="vanished">Tamaño de los botones del teclado:</translation>
</message>
<message>
<source>Toolbar</source>
@ -2518,14 +2577,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>Créditos</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="fr_FR">
<TS version="2.1" language="fr_FR">
<context>
<name>BlackoutWidget</name>
<message>
@ -843,11 +843,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>ID de l&apos;élément = </translation>
<translation type="vanished">ID de l&apos;élément = </translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>Contenu non supporté dans le format souhaité.</translation>
<translation type="vanished">Contenu non supporté dans le format souhaité.</translation>
</message>
<message>
<source>Remove Page</source>
@ -938,6 +938,14 @@
<source>Ungroup</source>
<translation>Dégrouper</translation>
</message>
<message>
<source>Saving document...</source>
<translation>Sauvegarde du document...</translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation>Le document vient d&apos;être sauvegardé...</translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1133,6 +1141,18 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation>Le document &apos;%1&apos; a é créé avec une nouvelle version d&apos;OpenBoard (%2). En l&apos;ouvrant vous pourriez perdre des informations. Voulez-vous continuer ?</translation>
</message>
<message>
<source>Remove mutliple documents</source>
<translation type="vanished">Supprimer plusieurs documents</translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation>Voulez-vous vraiment supprimer tous les documents sélectionnés?</translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation>Supprimer plusieurs documents</translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1225,23 +1245,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Exporter au format CFF (*.iwb)</translation>
<translation type="vanished">Exporter au format CFF (*.iwb)</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Exporter au format CFF (*.iwb)</translation>
<translation type="vanished">Exporter au format CFF (*.iwb)</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>Exportation du document...</translation>
<translation type="vanished">Exportation du document...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Export réussi.</translation>
<translation type="vanished">Export réussi.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Echec de l&apos;export.</translation>
<translation type="vanished">Echec de l&apos;export.</translation>
</message>
</context>
<context>
@ -1270,6 +1290,18 @@
<source>Export to OpenBoard Format</source>
<translation>Exporter au format OpenBoard</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation>Impossible d&apos;exporter: pas de droits d&apos;écriture dans le répertoire</translation>
</message>
<message>
<source>Export failed</source>
<translation>Echec de l&apos;export</translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation>Impossible d&apos;exporter dans le dossier sélectionné. Vous n&apos;avez pas les permissions nécessaires pour sauvegarder le fichier.</translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1289,6 +1321,18 @@
<source>Export successful.</source>
<translation>Export terminé.</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation>Impossible d&apos;exporter: pas de droits d&apos;écriture dans le répertoire</translation>
</message>
<message>
<source>Export failed</source>
<translation>Echec de l&apos;export</translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation>Impossible d&apos;exporter dans le dossier sélectionné. Vous n&apos;avez pas les permissions nécessaires pour sauvegarder le fichier.</translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1492,6 +1536,25 @@
<translation>Aller à la source du contenu</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation>Ressource introuvable</translation>
</message>
<message>
<source>Unsupported media format</source>
<translation>Format multimédia non supporté</translation>
</message>
<message>
<source>Media playback service not found</source>
<translation>Service multimédia indisponible</translation>
</message>
<message>
<source>Media error: </source>
<translation>Erreur multimédia :</translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1539,23 +1602,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Format de fichier CFF (</translation>
<translation type="vanished">Format de fichier CFF (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>Importation du fichier %1...</translation>
<translation type="vanished">Importation du fichier %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>Echec de l&apos;import du fichier %1.</translation>
<translation type="vanished">Echec de l&apos;import du fichier %1.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>Import terminée.</translation>
<translation type="vanished">Import terminée.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Echec de l&apos;import.</translation>
<translation type="vanished">Echec de l&apos;import.</translation>
</message>
</context>
<context>
@ -1687,10 +1750,6 @@ Voulez-vous ignorer les erreurs pour ce serveur ?</translation>
<source>Open-Sankore Documents Detected</source>
<translation>Données dOpen-Sankoré détectées</translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation>Des documents Open-Sankoré sont présents sur votre ordinateur. Il est possible de les importer dans OpenBoard en appuyant sur le bouton Procéder pour lancer le processus dimportation.</translation>
</message>
<message>
<source>Show this panel next time</source>
<translation>Afficher ce panneau à la prochaine ouverture du logiciel</translation>
@ -1707,6 +1766,10 @@ Voulez-vous ignorer les erreurs pour ce serveur ?</translation>
<source>Proceed</source>
<translation>Procéder</translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation>Des documents Open-Sankoré sont présents sur votre ordinateur. Il est possible de les importer dans OpenBoard en appuyant sur le bouton Procéder pour lancer le processus dimportation.</translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2420,7 +2483,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Taille des touches du clavier virtuel:</translation>
<translation type="vanished">Taille des touches du clavier virtuel:</translation>
</message>
<message>
<source>Positioned at the Top (recommended for tablets)</source>
@ -2450,7 +2513,7 @@ p, li { white-space: pre-wrap; }
<source>Home Page:</source>
<translation>Page d&apos;accueil :</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>version :...</translation>
</message>
@ -2530,13 +2593,21 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>Crédits</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation>Importateur de documents Open-Sankoré</translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation>Vérifier si des données Open-Sankoré peuvent être importées au redémarrage.</translation>
<translation>Vérifier si des données Open-Sankoré peuvent être importées au redémarrage</translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation>Utiliser le clavier virtuel système (recommandé)</translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation>Taille des touches du clavier virtuel integré :</translation>
</message>
</context>
<context>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="fr_FR">
<TS version="2.1" language="fr_FR">
<context>
<name>BlackoutWidget</name>
<message>
@ -843,11 +843,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>ID de l&apos;élément = </translation>
<translation type="vanished">ID de l&apos;élément = </translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>Contenu non supporté dans le format souhaité.</translation>
<translation type="vanished">Contenu non supporté dans le format souhaité.</translation>
</message>
<message>
<source>Remove Page</source>
@ -938,6 +938,14 @@
<source>Ungroup</source>
<translation>Dégrouper</translation>
</message>
<message>
<source>Saving document...</source>
<translation>Sauvegarde du document...</translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation>Le document vient d&apos;être sauvegardé...</translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1133,6 +1141,18 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation>Le document &apos;%1&apos; a é créé avec une nouvelle version d&apos;OpenBoard (%2). En l&apos;ouvrant vous pourriez perdre des informations. Voulez-vous continuer ?</translation>
</message>
<message>
<source>Remove mutliple documents</source>
<translation type="vanished">Supprimer plusieurs documents</translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation>Voulez-vous vraiment supprimer tous les documents sélectionnés?</translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation>Supprimer plusieurs documents</translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1225,23 +1245,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Exporter au format CFF (*.iwb)</translation>
<translation type="vanished">Exporter au format CFF (*.iwb)</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Exporter au format CFF (*.iwb)</translation>
<translation type="vanished">Exporter au format CFF (*.iwb)</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>Exportation du document...</translation>
<translation type="vanished">Exportation du document...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Export réussi.</translation>
<translation type="vanished">Export réussi.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Echec de l&apos;export.</translation>
<translation type="vanished">Echec de l&apos;export.</translation>
</message>
</context>
<context>
@ -1270,6 +1290,18 @@
<source>Export to OpenBoard Format</source>
<translation>Exporter au format OpenBoard</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation>Impossible d&apos;exporter: pas de droits d&apos;écriture dans le répertoire</translation>
</message>
<message>
<source>Export failed</source>
<translation>Echec de l&apos;export</translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation>Impossible d&apos;exporter dans le dossier sélectionné. Vous n&apos;avez pas les permissions nécessaires pour sauvegarder le fichier.</translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1289,6 +1321,18 @@
<source>Export successful.</source>
<translation>Export terminé.</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation>Impossible d&apos;exporter: pas de droits d&apos;écriture dans le répertoire</translation>
</message>
<message>
<source>Export failed</source>
<translation>Echec de l&apos;export</translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation>Impossible d&apos;exporter dans le dossier sélectionné. Vous n&apos;avez pas les permissions nécessaires pour sauvegarder le fichier.</translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1492,6 +1536,25 @@
<translation>Aller à la source du contenu</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation>Ressource introuvable</translation>
</message>
<message>
<source>Unsupported media format</source>
<translation>Format multimédia non supporté</translation>
</message>
<message>
<source>Media playback service not found</source>
<translation>Service multimédia indisponible</translation>
</message>
<message>
<source>Media error: </source>
<translation>Erreur multimédia :</translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1539,23 +1602,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Format de fichier CFF (</translation>
<translation type="vanished">Format de fichier CFF (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>Importation du fichier %1...</translation>
<translation type="vanished">Importation du fichier %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>Echec de l&apos;import du fichier %1.</translation>
<translation type="vanished">Echec de l&apos;import du fichier %1.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>Import terminée.</translation>
<translation type="vanished">Import terminée.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Echec de l&apos;import.</translation>
<translation type="vanished">Echec de l&apos;import.</translation>
</message>
</context>
<context>
@ -1687,10 +1750,6 @@ Voulez-vous ignorer les erreurs pour ce serveur ?</translation>
<source>Open-Sankore Documents Detected</source>
<translation>Données dOpen-Sankoré détectées</translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation>Des documents Open-Sankoré sont présents sur votre ordinateur. Il est possible de les importer dans OpenBoard en appuyant sur le bouton Procéder pour lancer le processus dimportation.</translation>
</message>
<message>
<source>Show this panel next time</source>
<translation>Afficher ce panneau à la prochaine ouverture du logiciel</translation>
@ -1707,6 +1766,10 @@ Voulez-vous ignorer les erreurs pour ce serveur ?</translation>
<source>Proceed</source>
<translation>Procéder</translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation>Des documents Open-Sankoré sont présents sur votre ordinateur. Il est possible de les importer dans OpenBoard en cliquant le bouton &quot;Continuer&quot; pour lancer l&apos;application d&apos;import.</translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2420,7 +2483,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Taille des touches du clavier virtuel:</translation>
<translation type="vanished">Taille des touches du clavier virtuel:</translation>
</message>
<message>
<source>Positioned at the Top (recommended for tablets)</source>
@ -2450,7 +2513,7 @@ p, li { white-space: pre-wrap; }
<source>Home Page:</source>
<translation>Page d&apos;accueil :</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>version :...</translation>
</message>
@ -2530,14 +2593,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>Crédits</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation>Importateur de documents Open-Sankoré</translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation>Vérifier si des données Open-Sankoré peuvent être importées au redémarrage.</translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation>Utiliser le clavier virtuel système (recommandé)</translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation>Taille des touches du clavier virtuel integré :</translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0">
<TS version="2.1">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>Elemento ID =</translation>
<translation type="vanished">Elemento ID =</translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>Il contenuto non è supportato nel formato di destinazione.</translation>
<translation type="vanished">Il contenuto non è supportato nel formato di destinazione.</translation>
</message>
<message>
<source>Remove Page</source>
@ -937,6 +937,14 @@
<source>Ungroup</source>
<translation>Separa</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1132,6 +1140,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1223,23 +1239,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Esporta in IWB</translation>
<translation type="vanished">Esporta in IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Esporta come file IWB</translation>
<translation type="vanished">Esporta come file IWB</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>Esportazione documento in corso...</translation>
<translation type="vanished">Esportazione documento in corso...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Esportazione conclusa con successo.</translation>
<translation type="vanished">Esportazione conclusa con successo.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Esportazione fallita.</translation>
<translation type="vanished">Esportazione fallita.</translation>
</message>
</context>
<context>
@ -1268,6 +1284,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1287,6 +1315,18 @@
<source>Export to PDF</source>
<translation>Esporta in PDF</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1487,6 +1527,25 @@
<translation>Vai alla sorgente del contenuto</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1534,23 +1593,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Common File Format (</translation>
<translation type="vanished">Common File Format (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>Importazione del file %1 in corso...</translation>
<translation type="vanished">Importazione del file %1 in corso...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>L&apos;importazione del file %1 è fallita.</translation>
<translation type="vanished">L&apos;importazione del file %1 è fallita.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>Importazione completata con successo.</translation>
<translation type="vanished">Importazione completata con successo.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Importazione fallita.</translation>
<translation type="vanished">Importazione fallita.</translation>
</message>
</context>
<context>
@ -1682,10 +1741,6 @@ Vuoi ignorare gli errori per questo host?</translation>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1702,6 +1757,10 @@ Vuoi ignorare gli errori per questo host?</translation>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2392,7 +2451,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation>Preferenze</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>versione : ...</translation>
</message>
@ -2426,7 +2485,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Dimensione pulsanti tastiera:</translation>
<translation type="vanished">Dimensione pulsanti tastiera:</translation>
</message>
<message>
<source>Toolbar</source>
@ -2524,14 +2583,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>Riconoscimenti</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="he_IL">
<TS version="2.1" language="he_IL">
<context>
<name>BlackoutWidget</name>
<message>
@ -843,11 +843,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>זהות הרכיב:</translation>
<translation type="vanished">זהות הרכיב:</translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>התוכן אינו נתמך בפורמט היעד</translation>
<translation type="vanished">התוכן אינו נתמך בפורמט היעד</translation>
</message>
<message>
<source>Remove Page</source>
@ -938,6 +938,14 @@
<source>Ungroup</source>
<translation>בטל קיבוץ</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1133,6 +1141,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1225,23 +1241,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>ייצא ל-IWB</translation>
<translation type="vanished">ייצא ל-IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>ייצא כקובץ IWB</translation>
<translation type="vanished">ייצא כקובץ IWB</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>מייצא מסמך...</translation>
<translation type="vanished">מייצא מסמך...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>הייצוא בוצע בהצלחה.</translation>
<translation type="vanished">הייצוא בוצע בהצלחה.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>פעולת הייצוא נכשלה</translation>
<translation type="vanished">פעולת הייצוא נכשלה</translation>
</message>
</context>
<context>
@ -1270,6 +1286,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1289,6 +1317,18 @@
<source>Export to PDF</source>
<translation>ייצא ל- PDF</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1489,6 +1529,25 @@
<translation>עבור למקור התוכן</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1536,23 +1595,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>פורמט קובץ רגיל )</translation>
<translation type="vanished">פורמט קובץ רגיל )</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>מייבא קובץ %1...</translation>
<translation type="vanished">מייבא קובץ %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>ייבוא קובץ %1 נכשל.</translation>
<translation type="vanished">ייבוא קובץ %1 נכשל.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>הייבוא בוצע בהצלחה.</translation>
<translation type="vanished">הייבוא בוצע בהצלחה.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>הייבוא נכשל.</translation>
<translation type="vanished">הייבוא נכשל.</translation>
</message>
</context>
<context>
@ -1679,10 +1738,6 @@ Do you want to ignore these errors for this host?</source>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1699,6 +1754,10 @@ Do you want to ignore these errors for this host?</source>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2385,7 +2444,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation>העדפות</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>גרסא:...</translation>
</message>
@ -2419,7 +2478,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>גודל מקשי המקלדת:</translation>
<translation type="vanished">גודל מקשי המקלדת:</translation>
</message>
<message>
<source>Toolbar</source>
@ -2517,14 +2576,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>אשראי</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="ja_JP" sourcelanguage="en_US">
<TS version="2.1" language="ja_JP" sourcelanguage="en_US">
<context>
<name>BlackoutWidget</name>
<message>
@ -840,14 +840,6 @@
</context>
<context>
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove Page</source>
<translation type="unfinished"></translation>
@ -937,6 +929,14 @@
<source>Add file operation failed: file copying error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1131,6 +1131,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1221,23 +1229,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>IWBへエクスポート</translation>
<translation type="vanished">IWBへエクスポート</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>IWB </translation>
<translation type="vanished">IWB </translation>
</message>
<message>
<source>Exporting document...</source>
<translation>... </translation>
<translation type="vanished">... </translation>
</message>
<message>
<source>Export successful.</source>
<translation> </translation>
<translation type="vanished"> </translation>
</message>
<message>
<source>Export failed.</source>
<translation> </translation>
<translation type="vanished"> </translation>
</message>
</context>
<context>
@ -1266,6 +1274,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1285,6 +1305,18 @@
<source>Export to PDF</source>
<translation>PDFへエクスポート</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1485,6 +1517,25 @@
<translation> </translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1532,23 +1583,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation> ( </translation>
<translation type="vanished"> ( </translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>%1... </translation>
<translation type="vanished">%1... </translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>%1</translation>
<translation type="vanished">%1</translation>
</message>
<message>
<source>Import successful.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Import failed.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
</context>
<context>
@ -1681,10 +1732,6 @@ Do you want to ignore these errors for this host?</source>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1701,6 +1748,10 @@ Do you want to ignore these errors for this host?</source>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2387,7 +2438,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation></translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>: </translation>
</message>
@ -2421,7 +2472,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>: </translation>
<translation type="vanished">: </translation>
</message>
<message>
<source>Toolbar</source>
@ -2519,14 +2570,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation></translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="ko_KR" sourcelanguage="en_US">
<TS version="2.1" language="ko_KR" sourcelanguage="en_US">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation type="unfinished"> ID = </translation>
<translation type="obsolete"> ID = </translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation type="unfinished"> .</translation>
<translation type="obsolete"> .</translation>
</message>
<message>
<source>Remove Page</source>
@ -937,6 +937,14 @@
<source>Ungroup</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1131,6 +1139,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1224,23 +1240,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation type="unfinished">IWB로 </translation>
<translation type="obsolete">IWB로 </translation>
</message>
<message>
<source>Export as IWB File</source>
<translation type="unfinished">IWB </translation>
<translation type="obsolete">IWB </translation>
</message>
<message>
<source>Exporting document...</source>
<translation type="unfinished"> ...</translation>
<translation type="obsolete"> ...</translation>
</message>
<message>
<source>Export successful.</source>
<translation type="unfinished"> .</translation>
<translation type="obsolete"> .</translation>
</message>
<message>
<source>Export failed.</source>
<translation type="unfinished"> .</translation>
<translation type="obsolete"> .</translation>
</message>
</context>
<context>
@ -1269,6 +1285,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1288,6 +1316,18 @@
<source>Export to PDF</source>
<translation>PDF로 </translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1488,6 +1528,25 @@
<translation> </translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1535,23 +1594,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation> (</translation>
<translation type="vanished"> (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>%1 ...</translation>
<translation type="vanished">%1 ...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>%1 .</translation>
<translation type="vanished">%1 .</translation>
</message>
<message>
<source>Import successful.</source>
<translation> .</translation>
<translation type="vanished"> .</translation>
</message>
<message>
<source>Import failed.</source>
<translation> .</translation>
<translation type="vanished"> .</translation>
</message>
</context>
<context>
@ -1683,10 +1742,6 @@ Do you want to ignore these errors for this host?</source>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1703,6 +1758,10 @@ Do you want to ignore these errors for this host?</source>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2393,7 +2452,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation> </translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation> : </translation>
</message>
@ -2427,7 +2486,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation> :</translation>
<translation type="vanished"> :</translation>
</message>
<message>
<source>Toolbar</source>
@ -2525,14 +2584,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation type="unfinished">Credits</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="fr_CH">
<TS version="2.1" language="fr_CH">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>Isa famantaranaan&apos;ilay zavatra =</translation>
<translation type="vanished">Isa famantaranaan&apos;ilay zavatra =</translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>Tsy zakan&apos;ny andrefy tanjona ilay mpiatiny.</translation>
<translation type="vanished">Tsy zakan&apos;ny andrefy tanjona ilay mpiatiny.</translation>
</message>
<message>
<source>Remove Page</source>
@ -937,6 +937,14 @@
<source>Ungroup</source>
<translation>Avaho</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1132,6 +1140,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1223,23 +1239,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Alefa ho IWB</translation>
<translation type="vanished">Alefa ho IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Alefa ho rakitra IWB</translation>
<translation type="vanished">Alefa ho rakitra IWB</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>Mandefa ny rakitra ...</translation>
<translation type="vanished">Mandefa ny rakitra ...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Fandefasana nety.</translation>
<translation type="vanished">Fandefasana nety.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Fandefasana tsy nety.</translation>
<translation type="vanished">Fandefasana tsy nety.</translation>
</message>
</context>
<context>
@ -1268,6 +1284,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1287,6 +1315,18 @@
<source>Export successful.</source>
<translation>Fandefasana nety.</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1487,6 +1527,25 @@
<translation>Hande any amin&apos;ny fototr&apos;ilay mpiatiny</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1534,23 +1593,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Andrefin&apos;ny rakitra mahazatra (</translation>
<translation type="vanished">Andrefin&apos;ny rakitra mahazatra (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>Manafatra rakitra %1 ...</translation>
<translation type="vanished">Manafatra rakitra %1 ...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>Fanafarana ny rakitra %1 tsy nety.</translation>
<translation type="vanished">Fanafarana ny rakitra %1 tsy nety.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>Fanafarana nety.</translation>
<translation type="vanished">Fanafarana nety.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Fanafarana tsy nety.</translation>
<translation type="vanished">Fanafarana tsy nety.</translation>
</message>
</context>
<context>
@ -1682,10 +1741,6 @@ Tena tsy te hiraharaha an&apos;ireo tsy mety ho an&apos;ilay milina ve ianao?</t
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1702,6 +1757,10 @@ Tena tsy te hiraharaha an&apos;ireo tsy mety ho an&apos;ilay milina ve ianao?</t
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2414,7 +2473,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Haben&apos;ny kitendrin&apos;ny fafan-teny:</translation>
<translation type="vanished">Haben&apos;ny kitendrin&apos;ny fafan-teny:</translation>
</message>
<message>
<source>Positioned at the Top (recommended for tablets)</source>
@ -2472,7 +2531,7 @@ p, li { white-space: pre-wrap; }
<source>Marker</source>
<translation>Penina lehibe</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>kinova: ...</translation>
</message>
@ -2524,14 +2583,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>Voaka</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="nb_NO">
<TS version="2.1" language="nb_NO">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>Element-ID = </translation>
<translation type="vanished">Element-ID = </translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>Innhold er ikke støttet i mottaksformat.</translation>
<translation type="vanished">Innhold er ikke støttet i mottaksformat.</translation>
</message>
<message>
<source>Remove Page</source>
@ -937,6 +937,14 @@
<source>Ungroup</source>
<translation>Dele opp</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1133,6 +1141,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1224,23 +1240,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Eksporter til IWB</translation>
<translation type="vanished">Eksporter til IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Eksporter som IWB-fil</translation>
<translation type="vanished">Eksporter som IWB-fil</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>Eksporterer dokument ...</translation>
<translation type="vanished">Eksporterer dokument ...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Eksport gjennomført.</translation>
<translation type="vanished">Eksport gjennomført.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Eksport mislyktes.</translation>
<translation type="vanished">Eksport mislyktes.</translation>
</message>
</context>
<context>
@ -1269,6 +1285,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1288,6 +1316,18 @@
<source>Export to PDF</source>
<translation>Eksporter til PDF</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1488,6 +1528,25 @@
<translation> til kildeinnhold</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1535,23 +1594,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Vanlig filformat (</translation>
<translation type="vanished">Vanlig filformat (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>Importerer fil %1...</translation>
<translation type="vanished">Importerer fil %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>Importering av fil %1 mislyktes.</translation>
<translation type="vanished">Importering av fil %1 mislyktes.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>Importering gjennomført.</translation>
<translation type="vanished">Importering gjennomført.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Importering mislyktes.</translation>
<translation type="vanished">Importering mislyktes.</translation>
</message>
</context>
<context>
@ -1678,10 +1737,6 @@ Do you want to ignore these errors for this host?</source>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1698,6 +1753,10 @@ Do you want to ignore these errors for this host?</source>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2387,7 +2446,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation>Preferanser</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>versjon: ...</translation>
</message>
@ -2421,7 +2480,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Tastestørrelse tastatur:</translation>
<translation type="vanished">Tastestørrelse tastatur:</translation>
</message>
<message>
<source>Toolbar</source>
@ -2521,14 +2580,22 @@ p, li { white-space: pre-wrap; }
<translatorcomment>Translates as &quot;thanks to&quot;</translatorcomment>
<translation>Takk til</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="nl_BE">
<TS version="2.1" language="nl_BE">
<context>
<name>BlackoutWidget</name>
<message>
@ -840,14 +840,6 @@
</context>
<context>
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove Page</source>
<translation type="unfinished">Pagina verwijderen</translation>
@ -937,6 +929,14 @@
<source>Ungroup</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1132,6 +1132,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1223,23 +1231,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Exporteer naar IWB</translation>
<translation type="vanished">Exporteer naar IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Exporteer als IWB bestand</translation>
<translation type="vanished">Exporteer als IWB bestand</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>Document wordt geëxporteerd...</translation>
<translation type="vanished">Document wordt geëxporteerd...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Export gelukt.</translation>
<translation type="vanished">Export gelukt.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Export mislukt.</translation>
<translation type="vanished">Export mislukt.</translation>
</message>
</context>
<context>
@ -1268,6 +1276,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1287,6 +1307,18 @@
<source>Export to PDF</source>
<translation>Exporteren naar PDF bestand</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1487,6 +1519,25 @@
<translation>Naar inhoudsbron</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1534,23 +1585,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Standaard bestandformaat (</translation>
<translation type="vanished">Standaard bestandformaat (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>Importering van bestand %1...</translation>
<translation type="vanished">Importering van bestand %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>Importering van bestand %1 is mislukt.</translation>
<translation type="vanished">Importering van bestand %1 is mislukt.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>Import gelukt.</translation>
<translation type="vanished">Import gelukt.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Import mislukt.</translation>
<translation type="vanished">Import mislukt.</translation>
</message>
</context>
<context>
@ -1676,10 +1727,6 @@ Do you want to ignore these errors for this host?</source>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1696,6 +1743,10 @@ Do you want to ignore these errors for this host?</source>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2385,7 +2436,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation>Voorkeuren</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>versie : ....</translation>
</message>
@ -2419,7 +2470,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Formaat knoppen van toetsenbord:</translation>
<translation type="vanished">Formaat knoppen van toetsenbord:</translation>
</message>
<message>
<source>Toolbar</source>
@ -2517,14 +2568,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>Credits</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="pl_PL">
<TS version="2.1" language="pl_PL">
<context>
<name>BlackoutWidget</name>
<message>
@ -846,11 +846,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>ID elementu =</translation>
<translation type="vanished">ID elementu =</translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>Zawartość nie jest obsługiwana w formacie docelowym.</translation>
<translation type="vanished">Zawartość nie jest obsługiwana w formacie docelowym.</translation>
</message>
<message>
<source>Remove Page</source>
@ -941,6 +941,14 @@
<source>Ungroup</source>
<translation>Rozgrupuj</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1137,6 +1145,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1230,23 +1246,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Eksportowanie do IWB</translation>
<translation type="vanished">Eksportowanie do IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Eksportuj jako plik IWB</translation>
<translation type="vanished">Eksportuj jako plik IWB</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>Eksportowanie dokumentu...</translation>
<translation type="vanished">Eksportowanie dokumentu...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Eksportowanie zakończone powodzeniem.</translation>
<translation type="vanished">Eksportowanie zakończone powodzeniem.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Eksportowanie zakończone niepowodzeniem.</translation>
<translation type="vanished">Eksportowanie zakończone niepowodzeniem.</translation>
</message>
</context>
<context>
@ -1275,6 +1291,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1294,6 +1322,18 @@
<source>Export to PDF</source>
<translation>Eksportowanie do PDF</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1494,6 +1534,25 @@
<translation>Przejdź do źródła zawartości</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1541,23 +1600,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Wspólny format plików (</translation>
<translation type="vanished">Wspólny format plików (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>Importowanie pliku %1...</translation>
<translation type="vanished">Importowanie pliku %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>Importowanie pliku %1 zakończone niepowodzeniem.</translation>
<translation type="vanished">Importowanie pliku %1 zakończone niepowodzeniem.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>Importowanie zakończone powodzeniem.</translation>
<translation type="vanished">Importowanie zakończone powodzeniem.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Importowanie zakończone niepowodzeniem.</translation>
<translation type="vanished">Importowanie zakończone niepowodzeniem.</translation>
</message>
</context>
<context>
@ -1689,10 +1748,6 @@ Czy chcesz ignorować te błędy dla tego hosta?</translation>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1709,6 +1764,10 @@ Czy chcesz ignorować te błędy dla tego hosta?</translation>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2403,7 +2462,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation>Preferencje</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>wersja:...</translation>
</message>
@ -2437,7 +2496,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Rozmiar przycisków klawiatury:</translation>
<translation type="vanished">Rozmiar przycisków klawiatury:</translation>
</message>
<message>
<source>Toolbar</source>
@ -2535,14 +2594,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>Podziękowania</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="pt_PT" sourcelanguage="en_GB">
<TS version="2.1" language="pt_PT" sourcelanguage="en_GB">
<context>
<name>BlackoutWidget</name>
<message>
@ -844,11 +844,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>ID do Elemento</translation>
<translation type="vanished">ID do Elemento</translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>O conteúdo não é suportado no formato de destino.</translation>
<translation type="vanished">O conteúdo não é suportado no formato de destino.</translation>
</message>
<message>
<source>Remove Page</source>
@ -939,6 +939,14 @@
<source>Ungroup</source>
<translation>Desagrupar</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1134,6 +1142,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1225,23 +1241,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Exportar para IWB</translation>
<translation type="vanished">Exportar para IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Exportar como ficheiro IWB</translation>
<translation type="vanished">Exportar como ficheiro IWB</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>A exportar documento...</translation>
<translation type="vanished">A exportar documento...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Exportação bem sucedida.</translation>
<translation type="vanished">Exportação bem sucedida.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Falha na Exportação.</translation>
<translation type="vanished">Falha na Exportação.</translation>
</message>
</context>
<context>
@ -1270,6 +1286,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1289,6 +1317,18 @@
<source>Export to PDF</source>
<translation>Exportar para PDF</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1490,6 +1530,25 @@
<translation>Ir para a Fonte do Conteúdo</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1537,23 +1596,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Formato de Ficheiro Frequente (</translation>
<translation type="vanished">Formato de Ficheiro Frequente (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>A importar ficheiro %1...</translation>
<translation type="vanished">A importar ficheiro %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>Falha a importar ficheiro %1.</translation>
<translation type="vanished">Falha a importar ficheiro %1.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>Importação bem sucedida.</translation>
<translation type="vanished">Importação bem sucedida.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Falha na importação.</translation>
<translation type="vanished">Falha na importação.</translation>
</message>
</context>
<context>
@ -1685,10 +1744,6 @@ Quer ignorar estes erros, deste servidor?</translation>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1705,6 +1760,10 @@ Quer ignorar estes erros, deste servidor?</translation>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2390,7 +2449,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation>Preferências</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>versão : ...</translation>
</message>
@ -2424,7 +2483,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Tamanho dos botões do teclado:</translation>
<translation type="vanished">Tamanho dos botões do teclado:</translation>
</message>
<message>
<source>Toolbar</source>
@ -2524,14 +2583,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>Créditos</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="en_GB">
<TS version="2.1" language="en_GB">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>ID element =</translation>
<translation type="vanished">ID element =</translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>Conținutul nu este suportat în formatul de destinație.</translation>
<translation type="vanished">Conținutul nu este suportat în formatul de destinație.</translation>
</message>
<message>
<source>Remove Page</source>
@ -937,6 +937,14 @@
<source>Ungroup</source>
<translation>Degrupare</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1132,6 +1140,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1223,23 +1239,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Exportare în IWB</translation>
<translation type="vanished">Exportare în IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Exportare ca fișier IWB</translation>
<translation type="vanished">Exportare ca fișier IWB</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>Exportare document...</translation>
<translation type="vanished">Exportare document...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Exportare reuşită.</translation>
<translation type="vanished">Exportare reuşită.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Exportare nereuşită.</translation>
<translation type="vanished">Exportare nereuşită.</translation>
</message>
</context>
<context>
@ -1268,6 +1284,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1287,6 +1315,18 @@
<source>Export to PDF</source>
<translation>Exportare în PDF</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1487,6 +1527,25 @@
<translation>Accesare sursă conţinut</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1534,23 +1593,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Format de fişier comun (</translation>
<translation type="vanished">Format de fişier comun (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>Importare fişier %1...</translation>
<translation type="vanished">Importare fişier %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>Importare fişier %1 nereuşită.</translation>
<translation type="vanished">Importare fişier %1 nereuşită.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>Importare reuşită.</translation>
<translation type="vanished">Importare reuşită.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Importare nereuşită.</translation>
<translation type="vanished">Importare nereuşită.</translation>
</message>
</context>
<context>
@ -1682,10 +1741,6 @@ Doriţi să ignoraţi aceste erori pentru acest host?</translation>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1702,6 +1757,10 @@ Doriţi să ignoraţi aceste erori pentru acest host?</translation>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2392,7 +2451,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation>Preferinţe</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>versiune : ...</translation>
</message>
@ -2426,7 +2485,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Dimensiune buton tastatură:</translation>
<translation type="vanished">Dimensiune buton tastatură:</translation>
</message>
<message>
<source>Toolbar</source>
@ -2524,14 +2583,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>Credite</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="en_US">
<TS version="2.1" language="en_US">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>ID элемента =</translation>
<translation type="vanished">ID элемента =</translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>Не поддерживается в текущем формате.</translation>
<translation type="vanished">Не поддерживается в текущем формате.</translation>
</message>
<message>
<source>Remove Page</source>
@ -937,6 +937,14 @@
<source>Ungroup</source>
<translation>Разгруппировать</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1132,6 +1140,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1223,23 +1239,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Экспорт в IWB</translation>
<translation type="vanished">Экспорт в IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Экспортировать как IWB файл</translation>
<translation type="vanished">Экспортировать как IWB файл</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>Экспорт документа...</translation>
<translation type="vanished">Экспорт документа...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Экспорт успешно завершен.</translation>
<translation type="vanished">Экспорт успешно завершен.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Ошибка экспорта.</translation>
<translation type="vanished">Ошибка экспорта.</translation>
</message>
</context>
<context>
@ -1268,6 +1284,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1287,6 +1315,18 @@
<source>Export to PDF</source>
<translation>Экспорт в PDF</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1487,6 +1527,25 @@
<translation>Перейти к источнику содержимого</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1534,23 +1593,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Стандартный формат файла (</translation>
<translation type="vanished">Стандартный формат файла (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>Импорт файла %1...</translation>
<translation type="vanished">Импорт файла %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>Ошибка импорта файла %1.</translation>
<translation type="vanished">Ошибка импорта файла %1.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>Импорт успешно завершен.</translation>
<translation type="vanished">Импорт успешно завершен.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Ошибка импорта.</translation>
<translation type="vanished">Ошибка импорта.</translation>
</message>
</context>
<context>
@ -1682,10 +1741,6 @@ Do you want to ignore these errors for this host?</source>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1702,6 +1757,10 @@ Do you want to ignore these errors for this host?</source>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2392,7 +2451,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation>Настройки</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>версия: </translation>
</message>
@ -2426,7 +2485,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Размер клавиш клавиатуры:</translation>
<translation type="vanished">Размер клавиш клавиатуры:</translation>
</message>
<message>
<source>Toolbar</source>
@ -2524,14 +2583,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>Содержание</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

File diff suppressed because it is too large Load Diff

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="sv_SE">
<TS version="2.1" language="sv_SE">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>Element ID=</translation>
<translation type="vanished">Element ID=</translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>Innehållet stöds inte i destinationsformatet</translation>
<translation type="vanished">Innehållet stöds inte i destinationsformatet</translation>
</message>
<message>
<source>Remove Page</source>
@ -938,6 +938,14 @@
<source>Ungroup</source>
<translation>Avgruppera</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1133,6 +1141,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1224,23 +1240,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>Exporter till IWB</translation>
<translation type="vanished">Exporter till IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>Exportera som IWB-fil</translation>
<translation type="vanished">Exportera som IWB-fil</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>Exporterar dokument...</translation>
<translation type="vanished">Exporterar dokument...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Export lyckades.</translation>
<translation type="vanished">Export lyckades.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Export misslyckades.</translation>
<translation type="vanished">Export misslyckades.</translation>
</message>
</context>
<context>
@ -1269,6 +1285,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1288,6 +1316,18 @@
<source>Export to PDF</source>
<translation>Exportera till PDF</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1488,6 +1528,25 @@
<translation> till innehållskällan</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1535,23 +1594,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Gemensamt filformat</translation>
<translation type="vanished">Gemensamt filformat</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>Importerar fil %1...</translation>
<translation type="vanished">Importerar fil %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>Import av fil %1 misslyckades.</translation>
<translation type="vanished">Import av fil %1 misslyckades.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>Import lyckades.</translation>
<translation type="vanished">Import lyckades.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>Import msslyckades.</translation>
<translation type="vanished">Import msslyckades.</translation>
</message>
</context>
<context>
@ -1683,10 +1742,6 @@ Vill du ignorera felen för den här värden?</translation>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1703,6 +1758,10 @@ Vill du ignorera felen för den här värden?</translation>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2393,7 +2452,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation>Inställningar</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>version : </translation>
</message>
@ -2427,7 +2486,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Storlek tangentbordet knappar:</translation>
<translation type="vanished">Storlek tangentbordet knappar:</translation>
</message>
<message>
<source>Toolbar</source>
@ -2525,14 +2584,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>Poäng</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="tr_TR">
<TS version="2.1" language="tr_TR">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>Element ID = </translation>
<translation type="vanished">Element ID = </translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation>İçerik hedef içerik için uygun geğil.</translation>
<translation type="vanished">İçerik hedef içerik için uygun geğil.</translation>
</message>
<message>
<source>Remove Page</source>
@ -937,6 +937,14 @@
<source>Ungroup</source>
<translation>Gurubu Ayır</translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1131,6 +1139,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1222,23 +1238,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>IWB&apos;e Aktar</translation>
<translation type="vanished">IWB&apos;e Aktar</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>IWB Dosyası Olarak Aktar</translation>
<translation type="vanished">IWB Dosyası Olarak Aktar</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>Döküman dışa aktarılıyor...</translation>
<translation type="vanished">Döküman dışa aktarılıyor...</translation>
</message>
<message>
<source>Export successful.</source>
<translation>Dışa aktarma tamamlandı.</translation>
<translation type="vanished">Dışa aktarma tamamlandı.</translation>
</message>
<message>
<source>Export failed.</source>
<translation>Dışa aktarma başarısız oldu.</translation>
<translation type="vanished">Dışa aktarma başarısız oldu.</translation>
</message>
</context>
<context>
@ -1267,6 +1283,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1286,6 +1314,18 @@
<source>Export to PDF</source>
<translation>PDF Olarak Aktar</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1486,6 +1526,25 @@
<translation>İçerik Kaynağına Git</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1533,23 +1592,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation>Genel Dosya Biçimi (</translation>
<translation type="vanished">Genel Dosya Biçimi (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation>İçe aktarılan dosya: %1...</translation>
<translation type="vanished">İçe aktarılan dosya: %1...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>%1 adlı dosya içe aktarılamadı.</translation>
<translation type="vanished">%1 adlı dosya içe aktarılamadı.</translation>
</message>
<message>
<source>Import successful.</source>
<translation>İçe aktarım tamamlandı.</translation>
<translation type="vanished">İçe aktarım tamamlandı.</translation>
</message>
<message>
<source>Import failed.</source>
<translation>İçe aktarım tamamlanmadı.</translation>
<translation type="vanished">İçe aktarım tamamlanmadı.</translation>
</message>
</context>
<context>
@ -1680,10 +1739,6 @@ Bu host için yukarıdaki hatalar yok sayılsın mı?</translation>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1700,6 +1755,10 @@ Bu host için yukarıdaki hatalar yok sayılsın mı?</translation>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2412,7 +2471,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>Klavye tuş boyutu:</translation>
<translation type="vanished">Klavye tuş boyutu:</translation>
</message>
<message>
<source>Positioned at the Top (recommended for tablets)</source>
@ -2470,7 +2529,7 @@ p, li { white-space: pre-wrap; }
<source>Marker</source>
<translation>Fosforlu Kalem</translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>Versiyon: ...</translation>
</message>
@ -2522,14 +2581,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation>Künye</translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="zh_CN">
<TS version="2.1" language="zh_CN">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>Element ID = </translation>
<translation type="vanished">Element ID = </translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Remove Page</source>
@ -937,6 +937,14 @@
<source>Ungroup</source>
<translation></translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1131,6 +1139,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1221,23 +1237,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>IWB</translation>
<translation type="vanished">IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation> IWB文件格式导出</translation>
<translation type="vanished"> IWB文件格式导出</translation>
</message>
<message>
<source>Exporting document...</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Export successful.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Export failed.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
</context>
<context>
@ -1266,6 +1282,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1285,6 +1313,18 @@
<source>Export to PDF</source>
<translation>PDF文件格式导出</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1485,6 +1525,25 @@
<translation>访</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1532,23 +1591,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation> (</translation>
<translation type="vanished"> (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation> %1</translation>
<translation type="vanished"> %1</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>%1</translation>
<translation type="vanished">%1</translation>
</message>
<message>
<source>Import successful.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Import failed.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
</context>
<context>
@ -1680,10 +1739,6 @@ Do you want to ignore these errors for this host?</source>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1700,6 +1755,10 @@ Do you want to ignore these errors for this host?</source>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2390,7 +2449,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation></translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation></translation>
</message>
@ -2424,7 +2483,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Toolbar</source>
@ -2522,14 +2581,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation></translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="zh_CN">
<TS version="2.1" language="zh_CN">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>Element ID = </translation>
<translation type="vanished">Element ID = </translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Remove Page</source>
@ -937,6 +937,14 @@
<source>Ungroup</source>
<translation></translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1131,6 +1139,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1221,23 +1237,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>IWB</translation>
<translation type="vanished">IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation> IWB文件格式导出</translation>
<translation type="vanished"> IWB文件格式导出</translation>
</message>
<message>
<source>Exporting document...</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Export successful.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Export failed.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
</context>
<context>
@ -1266,6 +1282,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1285,6 +1313,18 @@
<source>Export to PDF</source>
<translation>PDF文件格式导出</translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1485,6 +1525,25 @@
<translation>访</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1532,23 +1591,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation> (</translation>
<translation type="vanished"> (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation> %1</translation>
<translation type="vanished"> %1</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation>%1</translation>
<translation type="vanished">%1</translation>
</message>
<message>
<source>Import successful.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Import failed.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
</context>
<context>
@ -1680,10 +1739,6 @@ Do you want to ignore these errors for this host?</source>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1700,6 +1755,10 @@ Do you want to ignore these errors for this host?</source>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2390,7 +2449,7 @@ p, li { white-space: pre-wrap; }
<source>Preferences</source>
<translation></translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation></translation>
</message>
@ -2424,7 +2483,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Toolbar</source>
@ -2522,14 +2581,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation></translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="zh_TW">
<TS version="2.1" language="zh_TW">
<context>
<name>BlackoutWidget</name>
<message>
@ -842,11 +842,11 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>ID =</translation>
<translation type="vanished">ID =</translation>
</message>
<message>
<source>Content is not supported in destination format.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Remove Page</source>
@ -937,6 +937,14 @@
<source>Ungroup</source>
<translation></translation>
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBBoardPaletteManager</name>
@ -1131,6 +1139,14 @@
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to remove all selected documents?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove multiple documents</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1221,23 +1237,23 @@
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation>IWB</translation>
<translation type="vanished">IWB</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation>IWB格式匯出</translation>
<translation type="vanished">IWB格式匯出</translation>
</message>
<message>
<source>Exporting document...</source>
<translation>...</translation>
<translation type="vanished">...</translation>
</message>
<message>
<source>Export successful.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Export failed.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
</context>
<context>
@ -1266,6 +1282,18 @@
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportFullPDF</name>
@ -1285,6 +1313,18 @@
<source>Export successful.</source>
<translation></translation>
</message>
<message>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBExportPDF</name>
@ -1485,6 +1525,25 @@
<translation></translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBGraphicsTextItem</name>
<message>
@ -1532,23 +1591,23 @@
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation> (</translation>
<translation type="vanished"> (</translation>
</message>
<message>
<source>Importing file %1...</source>
<translation> %1 ...</translation>
<translation type="vanished"> %1 ...</translation>
</message>
<message>
<source>Import of file %1 failed.</source>
<translation> %1 </translation>
<translation type="vanished"> %1 </translation>
</message>
<message>
<source>Import successful.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Import failed.</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
</context>
<context>
@ -1674,10 +1733,6 @@ Do you want to ignore these errors for this host?</source>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
@ -1694,6 +1749,10 @@ Do you want to ignore these errors for this host?</source>
<source>Proceed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPersistenceManager</name>
@ -2399,7 +2458,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Keyboard button size:</source>
<translation>:</translation>
<translation type="vanished">:</translation>
</message>
<message>
<source>Positioned at the Top (recommended for tablets)</source>
@ -2457,7 +2516,7 @@ p, li { white-space: pre-wrap; }
<source>Marker</source>
<translation></translation>
</message>
<message utf8="true">
<message>
<source>version : </source>
<translation>: </translation>
</message>
@ -2509,14 +2568,22 @@ p, li { white-space: pre-wrap; }
<source>Credits</source>
<translation></translation>
</message>
<message utf8="true">
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<message>
<source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>trapFlashDialog</name>

@ -1,15 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="40.815px" height="19.919px" viewBox="-10.719 10.182 40.815 19.919" enable-background="new -10.719 10.182 40.815 19.919"
xml:space="preserve">
<path fill="#707070" stroke="#000000" stroke-miterlimit="3.8637" d="M21.02,11.062c4.547-0.003,8.234,3.68,8.236,8.227l0.002,1.854
c0.002,4.547-3.682,8.234-8.228,8.236l-22.729,0.014c-4.545,0.002-8.232-3.682-8.236-8.227v-1.854
c-0.004-4.546,3.681-8.234,8.227-8.236L21.02,11.062z"/>
<path fill="#FFFFFF" d="M17.315,23.464c0.201-0.002,0.363,0.156,0.363,0.35c0,0.191-0.162,0.35-0.36,0.35l-16.677,0.01
c-0.199,0-0.361-0.156-0.362-0.35c0-0.195,0.161-0.35,0.36-0.35L17.315,23.464z M17.315,19.871c0.199,0.001,0.361,0.157,0.361,0.351
s-0.162,0.351-0.361,0.351L0.639,20.583c-0.201,0-0.362-0.157-0.362-0.351s0.161-0.351,0.36-0.351L17.315,19.871z M17.311,16.28
c0.201,0,0.363,0.156,0.363,0.349c0,0.194-0.162,0.351-0.361,0.351l-16.678,0.01c-0.199,0.001-0.359-0.156-0.361-0.35
c0-0.192,0.162-0.351,0.361-0.351L17.311,16.28z"/>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Layer_1"
x="0px"
y="0px"
width="18.512798"
height="8.9038639"
viewBox="-10.719 10.182 18.512799 8.9038636"
enable-background="new -10.719 10.182 40.815 19.919"
xml:space="preserve"
inkscape:version="0.91 r13725"
sodipodi:docname="angleMarker.svg"><metadata
id="metadata11"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs9" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="640"
inkscape:window-height="480"
id="namedview7"
showgrid="false"
units="px"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="6.7132184"
inkscape:cx="20.123506"
inkscape:cy="9.7515518"
inkscape:window-x="747"
inkscape:window-y="144"
inkscape:window-maximized="0"
inkscape:current-layer="Layer_1" /><path
stroke-miterlimit="3.8637"
d="m 3.7691007,10.4123 c 2.094337,-0.0014 3.7925601,1.694999 3.7934813,3.789336 l 9.179e-4,0.853947 c 9.179e-4,2.094337 -1.6959202,3.79256 -3.7897967,3.793482 l -10.4689215,0.0065 c -2.0934159,9.09e-4 -3.7916387,-1.695919 -3.7934817,-3.789336 l 0,-0.853947 c -0.0018,-2.093876 1.6954599,-3.79256 3.7893363,-3.793482 l 10.468461,-0.0065 z"
id="path3"
inkscape:connector-curvature="0"
style="fill:#707070;stroke:#000000;stroke-width:0.46059754;stroke-miterlimit:3.86369991" /><path
d="m 2.0625868,16.12463 c 0.09258,-9.09e-4 0.1671969,0.07186 0.1671969,0.16121 0,0.08797 -0.074617,0.161209 -0.1658151,0.161209 l -7.6813853,0.0046 c -0.091659,0 -0.1662757,-0.07186 -0.1667364,-0.161208 0,-0.08982 0.074156,-0.161209 0.1658152,-0.161209 l 7.6809247,-0.0046 z m 0,-1.654927 c 0.091659,4.61e-4 0.1662756,0.07231 0.1662756,0.16167 0,0.08935 -0.074617,0.16167 -0.1662756,0.16167 l -7.6809247,0.0046 c -0.09258,0 -0.1667363,-0.07231 -0.1667363,-0.16167 0,-0.08935 0.074156,-0.16167 0.1658151,-0.16167 l 7.6818459,-0.0046 z m -0.00184,-1.654006 c 0.09258,0 0.1671968,0.07186 0.1671968,0.160749 0,0.08935 -0.074617,0.16167 -0.1662757,0.16167 l -7.6818459,0.0046 c -0.091659,4.61e-4 -0.1653545,-0.07186 -0.1662756,-0.161209 0,-0.08843 0.074617,-0.16167 0.1662756,-0.16167 l 7.6809248,-0.0042 z"
id="path5"
inkscape:connector-curvature="0"
style="fill:#ffffff" /></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

@ -0,0 +1,97 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="359.93991mm"
height="175.1581mm"
viewBox="0 0 1275.3776 620.63892"
id="svg2"
version="1.1"
inkscape:version="0.91 r"
sodipodi:docname="logo.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.49497474"
inkscape:cx="434.14448"
inkscape:cy="124.32491"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1680"
inkscape:window-height="1023"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(326.70573,-158.19652)">
<g
id="g4180"
transform="translate(-80.000001,-1211.4286)"
inkscape:export-xdpi="90.052353"
inkscape:export-ydpi="90.052353">
<g
transform="matrix(0.70018513,0,0,0.70018513,773.20087,250.60192)"
id="g4153">
<path
inkscape:connector-curvature="0"
id="path4161"
d="m -628.62068,1697.4681 c 13.14312,0.2124 35.12086,16.4365 42.94711,32.0803 2.35808,4.7135 4.91382,12.368 5.69949,17.0701 1.01914,6.0995 1.32218,45.6874 1.06514,139.1498 -0.35795,130.1622 -0.36873,130.6498 -3.04254,137.6326 -6.98689,18.2469 -18.80254,30.1214 -37.31669,37.5024 l -7.5,2.99 -88.17598,0.3596 -88.17599,0.3595 -74.3201,74.328 c -40.876,40.8803 -74.7437,74.3279 -75.2615,74.3279 -0.5178,0 -0.95,-32.7656 -0.9606,-72.8125 l 0.003,-4e-4 c -0.01,-40.0469 -0.4509,-73.4919 -0.9787,-74.3224 -0.7293,-1.1474 -20.1541,-1.6024 -80.91836,-1.8956 -79.2912,-0.3824 -80.0205,-0.409 -87.3578,-3.1831 -20.4938,-7.7481 -35.7458,-25.1932 -39.4693,-45.1446 -1.6934,-9.0731 -1.654,-263.6831 0.042,-271.3919 4.2556,-19.3442 18.8058,-36.5688 37.1476,-43.9759 l 7.1787,-2.8991 210.93746,-0.3267 c 116.0157,-0.1797 210.93754,-0.017 210.93754,0.3604 m -22.71007,33.0913 -195.20747,0.028 c -186.11286,0.026 -195.44086,0.1335 -200.21816,2.3038 -6.3018,2.8629 -12.5827,9.9275 -14.2891,16.0721 -0.8754,3.1522 -1.3135,47.1598 -1.3182,132.3915 l -0.01,127.6697 3.4928,6.6859 c 2.5425,4.867 5.1512,7.7114 9.5886,10.4553 l 6.0958,3.7693 92.898,0.3434 92.89796,0.3434 0.3259,53.3027 c 0.2434,39.8 0.7021,53.428 1.8109,53.7974 0.8167,0.2721 26.048,-23.7104 56.0696,-53.2945 l 54.5847,-53.7893 90.18035,-0.3516 c 100.83729,-0.3931 93.47886,0.2938 102.37862,-9.5571 2.48072,-2.7459 5.10718,-7.1417 5.8366,-9.7685 1.87394,-6.7484 1.85479,-253.5001 -0.0203,-260.9466 -2.94132,-11.681 -13.39081,-19.3768 -26.37832,-19.4269"
style="fill:#505556;fill-opacity:1"
sodipodi:nodetypes="cssssscccsscccssccscsccssscccscccscscssssc" />
<path
sodipodi:nodetypes="cssssssccssssc"
inkscape:connector-curvature="0"
id="path4163"
d="m -650.46338,1731.932 -25.0324,43.3307 c -13.7678,23.8319 -28.9698,49.1185 -33.7823,56.1925 -19.4479,28.5869 -69.98167,94.2133 -81.23877,105.502 -5.5577,5.5732 -13.7438,8.7141 -19.4471,7.4614 -7.8682,-1.7282 -12.8519,-12.6325 -10.0491,-21.9875 3.1587,-10.5426 43.97117,-98.8133 56.00257,-121.1241 3.1513,-5.8438 14.4102,-23.4888 25.0198,-39.2113 77.9724,-114.4038 54.4668,-79.8679 77.9724,-114.4038 33.3219,-48.9912 33.8173,-49.51 47.2739,-49.51 6.9774,0 9.0105,0.5388 13.483,3.5733 5.7935,3.9308 10.3583,11.8124 10.3583,17.8848 0,6.3557 -2.2694,11.0695 -20.8474,43.3028 -9.8464,17.0838 -17.9026,31.7717 -17.9026,32.6398"
style="fill:#f48c4f;fill-opacity:1" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:231.51719666px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#f48c4f;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-253.65125"
y="1947.4333"
id="text4175"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4177"
x="-253.65125"
y="1947.4333"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'TeX Gyre Adventor';-inkscape-font-specification:'TeX Gyre Adventor Bold';fill:#f48c4f;fill-opacity:1">Open<tspan
id="tspan4178"
style="fill:#505556;fill-opacity:1">Board</tspan></tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="653.1532mm"
height="121.54588mm"
viewBox="0 0 2314.3223 430.67436"
id="svg2"
version="1.1"
inkscape:version="0.91 r"
sodipodi:docname="banner_linear.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.24748737"
inkscape:cx="1007.5567"
inkscape:cy="103.24622"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1680"
inkscape:window-height="1023"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(122.98666,-143.91082)">
<g
id="g4153"
transform="matrix(0.70018513,0,0,0.70018513,691.7723,-975.11238)">
<path
sodipodi:nodetypes="cssssscccsscccssccscsccssscccscccscscssssc"
style="fill:#505556;fill-opacity:1"
d="m -628.62068,1697.4681 c 13.14312,0.2124 35.12086,16.4365 42.94711,32.0803 2.35808,4.7135 4.91382,12.368 5.69949,17.0701 1.01914,6.0995 1.32218,45.6874 1.06514,139.1498 -0.35795,130.1622 -0.36873,130.6498 -3.04254,137.6326 -6.98689,18.2469 -18.80254,30.1214 -37.31669,37.5024 l -7.5,2.99 -88.17598,0.3596 -88.17599,0.3595 -74.3201,74.328 c -40.876,40.8803 -74.7437,74.3279 -75.2615,74.3279 -0.5178,0 -0.95,-32.7656 -0.9606,-72.8125 l 0.003,-4e-4 c -0.01,-40.0469 -0.4509,-73.4919 -0.9787,-74.3224 -0.7293,-1.1474 -20.1541,-1.6024 -80.91836,-1.8956 -79.2912,-0.3824 -80.0205,-0.409 -87.3578,-3.1831 -20.4938,-7.7481 -35.7458,-25.1932 -39.4693,-45.1446 -1.6934,-9.0731 -1.654,-263.6831 0.042,-271.3919 4.2556,-19.3442 18.8058,-36.5688 37.1476,-43.9759 l 7.1787,-2.8991 210.93746,-0.3267 c 116.0157,-0.1797 210.93754,-0.017 210.93754,0.3604 m -22.71007,33.0913 -195.20747,0.028 c -186.11286,0.026 -195.44086,0.1335 -200.21816,2.3038 -6.3018,2.8629 -12.5827,9.9275 -14.2891,16.0721 -0.8754,3.1522 -1.3135,47.1598 -1.3182,132.3915 l -0.01,127.6697 3.4928,6.6859 c 2.5425,4.867 5.1512,7.7114 9.5886,10.4553 l 6.0958,3.7693 92.898,0.3434 92.89796,0.3434 0.3259,53.3027 c 0.2434,39.8 0.7021,53.428 1.8109,53.7974 0.8167,0.2721 26.048,-23.7104 56.0696,-53.2945 l 54.5847,-53.7893 90.18035,-0.3516 c 100.83729,-0.3931 93.47886,0.2938 102.37862,-9.5571 2.48072,-2.7459 5.10718,-7.1417 5.8366,-9.7685 1.87394,-6.7484 1.85479,-253.5001 -0.0203,-260.9466 -2.94132,-11.681 -13.39081,-19.3768 -26.37832,-19.4269"
id="path4161"
inkscape:connector-curvature="0" />
<path
style="fill:#f48c4f;fill-opacity:1"
d="m -650.46338,1731.932 -25.0324,43.3307 c -13.7678,23.8319 -28.9698,49.1185 -33.7823,56.1925 -19.4479,28.5869 -69.98167,94.2133 -81.23877,105.502 -5.5577,5.5732 -13.7438,8.7141 -19.4471,7.4614 -7.8682,-1.7282 -12.8519,-12.6325 -10.0491,-21.9875 3.1587,-10.5426 43.97117,-98.8133 56.00257,-121.1241 3.1513,-5.8438 14.4102,-23.4888 25.0198,-39.2113 77.9724,-114.4038 54.4668,-79.8679 77.9724,-114.4038 33.3219,-48.9912 33.8173,-49.51 47.2739,-49.51 6.9774,0 9.0105,0.5388 13.483,3.5733 5.7935,3.9308 10.3583,11.8124 10.3583,17.8848 0,6.3557 -2.2694,11.0695 -20.8474,43.3028 -9.8464,17.0838 -17.9026,31.7717 -17.9026,32.6398"
id="path4163"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cssssssccssssc" />
</g>
<text
sodipodi:linespacing="125%"
id="text4175"
y="465.63739"
x="319.93332"
style="font-style:normal;font-weight:normal;font-size:337.87255859px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#f48c4f;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'TeX Gyre Adventor';-inkscape-font-specification:'TeX Gyre Adventor Bold';fill:#f48c4f;fill-opacity:1"
y="465.63739"
x="319.93332"
id="tspan4177"
sodipodi:role="line">Open<tspan
style="fill:#505556;fill-opacity:1"
id="tspan4178">Board</tspan></tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

@ -1,4 +1,4 @@
var sankoreLang = {
var sankoreLang = {
"en":{
"embed": "Embed"
},
@ -7,5 +7,8 @@ var sankoreLang = {
},
"fr":{
"embed": "Intégrer"
},
"sk":{
"embed": "Vložiť"
}
};
};

@ -1,4 +1,4 @@
var sankoreLang = {
var sankoreLang = {
"en":{
"capital":"Capital city",
"europe":"Europe",
@ -2128,5 +2128,715 @@ var sankoreLang = {
"city":"Sanaa",
"country":"Yémen"
}
},
"sk":{
"capital":"Hlavné mesto",
"europe":"Európa",
"asia":"Ázia",
"north_america":"Severná Amerika",
"south_america":"Južná Amerika",
"oceania":"Oceánia",
"africa":"Afrika",
"eurasia": "Eurázia",
"MA":{
"city":"Rabat",
"country":"Maroko"
},
"DZ":{
"city":"Alžír",
"country":"Alžírsko"
},
"TN":{
"city":"Tunis",
"country":"Tunisko"
},
"LY":{
"city":"Tripolis",
"country":"Líbya"
},
"EG":{
"city":"Káhira",
"country":"Egypt"
},
"Sahara_occidental":{
"city":"Al-´Ajún (Laayoune)",
"country":"Západná Sahara"
},
"MR":{
"city":"Nouakchott",
"country":"Mauritánia"
},
"ML":{
"city":"Bamako",
"country":"Mali"
},
"NE":{
"city":"Niamey",
"country":"Niger"
},
"TD":{
"city":"N'Djamena",
"country":"Čad"
},
"SD":{
"city":"Chartúm",
"country":"Sudán"
},
"ER":{
"city":"Asmara",
"country":"Eritrea"
},
"DJ":{
"city":"Džibutsko",
"country":"Džibuti"
},
"ET":{
"city":"Addis Abeba",
"country":"Etiópia"
},
"SO":{
"city":"Mogadišo",
"country":"Somálsko"
},
"KE":{
"city":"Nairobi",
"country":"Keňa"
},
"UG":{
"city":"Kampala",
"country":"Uganda"
},
"CD":{
"city":"Kinshasa",
"country":"Demokratická republika Kongo"
},
"CF":{
"city":"Bangui",
"country":"Stredoafrická republika"
},
"CM":{
"city":"Yaoundé",
"country":"Kamerun"
},
"NG":{
"city":"Abuja",
"country":"Nigéria"
},
"BJ":{
"city":"Porto-Novo",
"country":"Benin"
},
"TG":{
"city":"Lomé",
"country":"Togo"
},
"GH":{
"city":"Akkra",
"country":"Ghana"
},
"CI":{
"city":"Yamoussoukro",
"country":"Pobrežie Slonoviny"
},
"BF":{
"city":"Ouagadougou",
"country":"Burkina Faso"
},
"LR":{
"city":"Monrovia",
"country":"Libéria"
},
"SL":{
"city":"Freetown",
"country":"Sierra Leone"
},
"GN":{
"city":"Conakry",
"country":"Guinea"
},
"GW":{
"city":"Bissau",
"country":"Guinea-Bissau"
},
"SN":{
"city":"Dakar",
"country":"Senegal"
},
"GM":{
"city":"Banjul",
"country":"Gambia"
},
"RW":{
"city":"Kigali",
"country":"Rwanda"
},
"BI":{
"city":"Bujumbura",
"country":"Burundi"
},
"CG":{
"city":"Brazzaville",
"country":"Kongo"
},
"GA":{
"city":"Libreville",
"country":"Gabon"
},
"GQ":{
"city":"Malabo",
"country":"Rovníková Guinea"
},
"TZ":{
"city":"Dodoma",
"country":"Tanzánia"
},
"MW":{
"city":"Lilongwe",
"country":"Malawi"
},
"ZM":{
"city":"Lusaka",
"country":"Zambia"
},
"AO":{
"city":"Luanda",
"country":"Angola"
},
"MZ":{
"city":"Maputo",
"country":"Mozambik"
},
"ZW":{
"city":"Harare",
"country":"Zimbabwe"
},
"BW":{
"city":"Gaborone",
"country":"Botswana"
},
"NA":{
"city":"Windhoek",
"country":"Namíbia"
},
"ZA":{
"city":"Pretória",
"country":"Juhoafrická republika"
},
"LS":{
"city":"Maseru",
"country":"Lesotho"
},
"SZ":{
"city":"Mbabane",
"country":"Svazijsko"
},
"MG":{
"city":"Antananarivo",
"country":"Madagascar"
},
"AR":{
"city":"Buenos Aires",
"country":"Argentína"
},
"CL":{
"city":"Santiago",
"country":"Čile"
},
"UY":{
"city":"Montevideo",
"country":"Uruguaj"
},
"PY":{
"city":"Asunción",
"country":"Paraguaj"
},
"BO":{
"city":"Sucre",
"country":"Bolívia"
},
"BR":{
"city":"Brazília",
"country":"Brazília"
},
"PE":{
"city":"Lima",
"country":"Peru"
},
"EC":{
"city":"Quito",
"country":"Ekvádor"
},
"CO":{
"city":"Bogota",
"country":"Kolumbia"
},
"VE":{
"city":"Caracas",
"country":"Venezuela"
},
"GY":{
"city":"Georgetown",
"country":"Guyana"
},
"SR":{
"city":"Paramaribo",
"country":"Surinam"
},
"GF":{
"city":"Cayenne",
"country":"Francúzska Guyana"
},
"CA":{
"city":"Ottawa",
"country":"Kanada"
},
"GL":{
"city":"Nuuk",
"country":"Grónsko"
},
"US":{
"city":"Washington",
"country":"Spojené štáty americké"
},
"MX":{
"city":"Mexiko",
"country":"Mexiko"
},
"CU":{
"city":"Havana",
"country":"Kuba"
},
"HT":{
"city":"Port-au-Prince",
"country":"Haiti"
},
"DO":{
"city":"Santo Domingo",
"country":"Dominikánska republika"
},
"JM":{
"city":"Kingston",
"country":"Jamajka"
},
"BS":{
"city":"Nassau",
"country":"Bahamy"
},
"GT":{
"city":"Guatemala",
"country":"Guatemala"
},
"BZ":{
"city":"Belmopan",
"country":"Belize"
},
"SV":{
"city":"Salvádor",
"country":"San Salvador"
},
"HN":{
"city":"Tegucigalpa",
"country":"Honduras"
},
"NI":{
"city":"Managua",
"country":"Nikaragua"
},
"CR":{
"city":"San José",
"country":"Kostarika"
},
"PA":{
"city":"Panama",
"country":"Panama"
},
"AU":{
"city":"Canberra",
"country":"Austrália"
},
"NZ":{
"city":"Wellington",
"country":"Nový Zéland"
},
"PG":{
"city":"Port Moresby",
"country":"Papua Nová Guinea"
},
"ID":{
"city":"Jakarta",
"country":"Indonézia"
},
"SB":{
"city":"Honiara",
"country":"Šalamúnove ostrovy"
},
"VU":{
"city":"Port-Vila",
"country":"Vanuatu"
},
"NC":{
"city":"Noumea",
"country":"Nová Kaledónia"
},
"AL":{
"city":"Tirana",
"country":"Albánsko"
},
"DE":{
"city":"Berlín",
"country":"Nemecko"
},
"AD":{
"city":"Andorra la Vella",
"country":"Andorra"
},
"AM":{
"city":"Jerevan",
"country":"Arménsko"
},
"AT":{
"city":"Viedeň",
"country":"Rakúsko"
},
"AZ":{
"city":"Baku",
"country":"Azerbajdžan"
},
"BE":{
"city":"Brusel",
"country":"Belgicko"
},
"BY":{
"city":"Minsk",
"country":"Bielorusko"
},
"BA":{
"city":"Sarajevo",
"country":"Bosna a Hercegovina"
},
"BG":{
"city":"Sofia",
"country":"Bulharsko"
},
"CY":{
"city":"Nikózia",
"country":"Cyprus"
},
"HR":{
"city":"Záhreb",
"country":"Chorvátsko"
},
"DK":{
"city":"Kodaň",
"country":"Dánsko"
},
"ES":{
"city":"Madrid",
"country":"Španielsko"
},
"EE":{
"city":"Talin",
"country":"Estónsko"
},
"FI":{
"city":"Helsinki",
"country":"Fínsko"
},
"FR":{
"city":"Paríž",
"country":"Francúzsko"
},
"GE":{
"city":"Tbilisi",
"country":"Gruzínsko"
},
"EL":{
"city":"Atény",
"country":"Grécko"
},
"HU":{
"city":"Budapešť",
"country":"Maďarsko"
},
"IE":{
"city":"Dublin",
"country":"Írsko"
},
"IS":{
"city":"Reykjavík",
"country":"Island"
},
"IT":{
"city":"Rím",
"country":"Taliansko"
},
"LV":{
"city":"Riga",
"country":"Lotyšsko"
},
"LI":{
"city":"Vaduz",
"country":"Lichtenštajnsko"
},
"LT":{
"city":"Vilnius",
"country":"Litva"
},
"LU":{
"city":"Luxembursko",
"country":"Luxemburg"
},
"MK":{
"city":"Skopje",
"country":"Macedónsko"
},
"MT":{
"city":"Valetta",
"country":"Malta"
},
"MD":{
"city":"Kišiňov",
"country":"Moldavsko"
},
"MC":{
"city":"Monako",
"country":"Monako"
},
"ME":{
"city":"Podgorica",
"country":"Čierna Hora"
},
"NO":{
"city":"Oslo",
"country":"Nórsko"
},
"NL":{
"city":"Amsterdam",
"country":"Holandsko"
},
"PL":{
"city":"Varšava",
"country":"Poľsko"
},
"PT":{
"city":"Lisabon",
"country":"Portugalsko"
},
"CZ":{
"city":"Praha",
"country":"Česká republika"
},
"RO":{
"city":"Bukurešť",
"country":"Rumunsko"
},
"UK":{
"city":"Londýn",
"country":"Veľká Británia"
},
"SM":{
"city":"San Marino",
"country":"San Marino"
},
"RS":{
"city":"Belehrad",
"country":"Srbsko"
},
"SK":{
"city":"Bratislava",
"country":"Slovensko"
},
"SI":{
"city":"Ľubľana",
"country":"Slovinsko"
},
"SE":{
"city":"Štokholm",
"country":"Švédsko"
},
"CH":{
"city":"Bern",
"country":"Švajčiarsko"
},
"TR":{
"city":"Ankara",
"country":"Turecko"
},
"UA":{
"city":"Kijev",
"country":"Ukrajina"
},
"VA":{
"city":"Vatikán",
"country":"Vatikán"
},
"AF":{
"city":"Kábul",
"country":"Afganistan"
},
"SA":{
"city":"Rijád",
"country":"Saudská Arábia"
},
"BH":{
"city":"Manama",
"country":"Bahrajn"
},
"BD":{
"city":"Dháka",
"country":"Bangladéš"
},
"BT":{
"city":"Thimphu",
"country":"Bhután"
},
"BN":{
"city":"Bandar Seri Begawan",
"country":"Brunej"
},
"KH":{
"city":"Phnom Penh",
"country":"Kambodža"
},
"CN":{
"city":"Peking",
"country":"Čína"
},
"KP":{
"city":"Pchjongjang",
"country":"Severná Kórea"
},
"KR":{
"city":"Soul",
"country":"Južná Kórea"
},
"AE":{
"city":"Abú Zabí",
"country":"Spojené arabské emiráty"
},
"IN":{
"city":"Dillí",
"country":"India"
},
"IR":{
"city":"Teherán",
"country":"Irán"
},
"IQ":{
"city":"Bagdad",
"country":"Irak"
},
"IL":{
"city":"Jeruzalem",
"country":"Izrael"
},
"JP":{
"city":"Tokio",
"country":"Japonsko"
},
"JO":{
"city":"Ammán",
"country":"Jordánsko"
},
"KZ":{
"city":"Astana",
"country":"Kazachstan"
},
"KG":{
"city":"Biškek",
"country":"Kirgizstan"
},
"KW":{
"city":"Kuvajt",
"country":"Kuvajt"
},
"LA":{
"city":"Vientiane",
"country":"Laos"
},
"LB":{
"city":"Bejrút",
"country":"Libanon"
},
"MY":{
"city":"Kuala Lumpur",
"country":"Malajzia"
},
"MV":{
"city":"Male",
"country":"Maldivy"
},
"MN":{
"city":"Ulanbátar",
"country":"Mongolsko"
},
"MM":{
"city":"Rangún",
"country":"Mjanmarsko"
},
"NP":{
"city":"Káthmandu",
"country":"Nepál"
},
"OM":{
"city":"Maskat",
"country":"Omán"
},
"UZ":{
"city":"Taškent",
"country":"Uzbekistan"
},
"PK":{
"city":"Islamabad",
"country":"Pakistan"
},
"PH":{
"city":"Manila",
"country":"Filipíny"
},
"QA":{
"city":"Dauha",
"country":"Katar"
},
"RU":{
"city":"Moskva",
"country":"Rusko"
},
"SG":{
"city":"Singapur",
"country":"Singapur"
},
"LK":{
"city":"Kolombo",
"country":"Srí Lanka"
},
"SY":{
"city":"DamasK",
"country":"Sýria"
},
"TJ":{
"city":"Dušanbe",
"country":"Tadžikistan"
},
"TH":{
"city":"Bangkok",
"country":"Thajsko"
},
"TL":{
"city":"Dili",
"country":"Východný Timor"
},
"TM":{
"city":"Ašchabat",
"country":"Turkménsko"
},
"VN":{
"city":"Hanoi",
"country":"Vietnam"
},
"YE":{
"city":"Saná",
"country":"Jemen"
}
}
};

@ -1,4 +1,4 @@
var sankoreLang = {
var sankoreLang = {
"en":{
"fnc":"Function: ",
"display":"Display",
@ -502,5 +502,174 @@ var sankoreLang = {
"last_version":"Dernière version disponible en ligne:",
"using_web":"Ce widget est également utilisable dans un navigateur internet sur le site:",
"show_saved":"Options actuellement sauvegardées"
},
"sk":{
"fnc":"Funkcia: ",
"display":"Zobraziť",
"x_axis":"Os x",
"y_axis":"Os y",
"zoom":"Lupa",
"color":"Farba:",
"menus":"Menu",
"tools":"Nástroje",
"options":"Možnosti",
"help":"Pomoc",
"about":"O aplikácii",
"mouse_events":"Činnosti s myšou:",
"moving":"Presúvanie",
"tangente":"Dotyčnica",
"point":"Bod",
"choosing_color":"Výber farby:",
"value":"Hodnota:",
"saturation":"Nasýtenie:",
"red":"Červená:",
"green":"Zelená:",
"blue":"Modrá:",
"opacity":"Priehľadnosť:",
"check":"Vyskúšať",
"derivative":"Derivovaná funkcia:",
"square_under_func":"Štvorec pod funkciou:",
"from":"Od",
"to":"Do",
"calculate":"Vypočítať",
"draw":"Vyznačiť",
"point_calculate":"Vypočítať bod podľa funkcie:",
"estimate":"Odhadnúť",
"analysis_of_func":"Analýza funkcie:",
"start_to_analysis":"Spustiť analýzu",
"quit":"Koniec",
"display_test":"Zobraziť test:",
"test":"Test",
"widget":"Widget",
"widget_options":"Možnosti widgetu",
"themes_of_widget":"Farba widgetu:",
"black":"čierna",
"white":"biela",
"control_options":"Možnosti ovládania:",
"save":"Uložiť",
"load":"Spustiť",
"del":"Vymazať",
"save_a_widget_options":"Uloží nastavenia widgetu do cookies alebo spustí nastavenia z cookies alebo vymaže uložené nastavenia.",
"auto_update":"Automaticky aktualizovať pri otvorení widgetu.",
"reload_widget":"Znova spustiť widget",
"update":"Aktualizovať",
"the_graphical":"Spôsob grafického zobrazenia: ",
"lines":"čiary",
"points":"body",
"image":"obrázok",
"zoom_def":"Predvolená lupa:",
"update_zoom":"Aktualizovať lupu",
"show_grid":"Zobraziť mriežku",
"show_axis":"Zobraziť os",
"scale":"Mierka",
"thickness":"Hrúbka:",
"offset_diagram":"Posunúť diagram:",
"accuracy_graph":"Presnosť grafu:",
"show_the_style":"Zobraziť štýl:",
"surfaces":"plocha",
"points":"body",
"reset_display":"Obnoviť zobrazenie",
"accuracy_func":"Presnosť funkcie:",
"use_the_color":"Použiť farbu:",
"positive_value":"positívna hodnota",
"negative_value":"negatívna hodnota",
"general_value":"všeobecná hodnota",
"how_it_work":"Ako to funguje",
"this_widget_allow":"Tento widget vám umožňuje nakresliť graf matematickej funkcie. Zadajte funkciu do poľa v hornej časti a stlačte tlačidlo\"Zobraziť\"",
"you_can_enter":"Môžete zadať tieto matematické funkcie:",
"basic_operations":"Základné operácie",
"plus":"plus",
"minus":"mínus",
"multi":"násobenie",
"division":"delenie",
"mod":"mod",
"trigonometric":"Trigonometrické funkcie",
"sine":"sínus",
"cosine":"kosínus",
"tangent":"tangens",
"cotangent":"kotangens",
"secant":"sekant",
"cosecant":"kosekant",
"arc_sine":"arkus sínus",
"arc_cosine":"arkus kosínus",
"arc_tangent":"arkus tangens",
"arc_cotangent":"arkus kotangens",
"hyperbolic_func":"Hyperbolické funkcie",
"hyp_sine":"hyperbolický sínus",
"hyp_cosine":"hyperbolický kosínus",
"hyp_tangent":"hyperbolický tangens",
"hyp_cotangent":"hyperbolický kotangens",
"hyp_secant":"hyperbolický sekant",
"hyp_cosecant":"hyperbolický kosecant",
"hyp_arc_sine":"hyperbolický arkus sínus",
"hyp_arc_cosine":"hyperbolický arkus kosínus",
"hyp_arc_tangent":"hyperbolický arkus tangens",
"hyp_arc_cotangent":"hyperbolický arkus kotangens",
"square_roots_and_degrees":"Mocminy a odmocniny",
"square_root":"Druhá odmocnina",
"degree":"Mocniny",
"root":"Odmocniny",
"variable_x":"hodnota x umocnená na y",
"root_y":"Odmocnina y z čísla x",
"exponential":"Exponenciálne funkcie a logaritmy",
"natural_log":"Prirodzený logaritmus",
"decimal_log":"Dekadický logaritmus",
"abs":"Absolútna hodnota čísla",
"rounding":"Zaokrúhľovanie",
"round_nearest":"zaokrúhlenie na najbližšie celé číslo",
"round_nearest_big":"zaokrúhlenie na najbližšie väčšie celé číslo",
"round_nearest_small":"zaokrúhlenie na najbližšie menšie celé číslo",
"consts":"Konštanty",
"available_const":"K dispozíci je aj niekoľko konštánt:",
"keys":"Klávesové skratky",
"moved_left":"graf sa posunie doľava",
"moved_top":"graf sa posunie nahor",
"moved_right":"graf sa posunie doprava",
"moved_botom":"graf sa posunie nadol",
"guide":"Používateľská príručka",
"using":"Použitie",
"examples":"Príklady",
"other":"Iné",
"you_can_view":"Tento príklad si môžete zobraziť. Nezabudnite v možnostiach nastaviť presnosť, ak to bude potrebné.",
"save_graph":"Uloženie grafu",
"in_some_browsers":"V niektorých prehliadačoch pri použití metódy zobrazenia \"Plátno\" môžete uložiť graf tak, že naň kliknete pravým tlačidlom myši a vyberiete možnosť \"Uložiť obrázok\". Môžete ukladať aj 3D-grafy.",
"offset":"Posun",
"if_graph_isnt":"Ak graf nie je na správnom mieste (je väčší ako plátno), môžete nastaviť potrebné nastavenia v menu.",
"history":"História",
"current":"Súčasná",
"additional":"Ďalšia",
"left_arrow":"šípka doľava",
"right_arrow":"šípka doprava",
"top_arrow":"šípka nahor",
"bottom_arrow":"šípka nadol",
"or":"alebo",
"funcs":"Funkcie",
"widget_is_developed":"Widget programuje",
"if_you_want_to":"Ak nás chcete informovať o chybe, napísať nám podnet alebo sa len niečo opýtať, môžete napísať na tento e-mail:",
"if_you_want_to_change":"Ak chcete zmeniť dizajn pozadia, potom môžete napísať na túto adresu:",
"set_of_def":"Definičný obor:",
"parity":"Párnosť:",
"zeros":"Núl vo funcii:",
"signe":"Znamienko:",
"asympt":"Asymptoty",
"min":"Min",
"ev":"párna",
"unev":"nepárna",
"na":"–",
"curve_lower":"Krivka je nižšie ako HA",
"curve_higher":"Krivka je vyššie ako HA",
"max":"Max",
"no_min":"Žiadne minimum",
"no_max":"Žiadne maximum",
"tool_for":"Nástroj na analýzu funkcie nie je spoľahlivý na 100 %. Nezabudnite si skontrolovať výsledky analýzy predtým, ako ich použijete.",
"ah_left":"HA vľavo:",
"ah_right":"HA vpravo:",
"av":"AV:",
"options_saved":"Nastavenia uložené!",
"cur_version":"Súčasná verzia:",
"last_version":"Najnovšia on-line verzia:",
"using_web":"Tento widget je dostupný na používanie na stránke:",
"show_saved":"Teraz budú parametre uložené"
}
};
};

@ -1,6 +1,6 @@
var sankoreLang = {
var sankoreLang = {
"en":{
"enter_title": "Enter yuor title here...",
"enter_title": "Enter your title here...",
"welcome":"Welcome to HTML Editor",
"source":"Source",
"link":"Link",
@ -18,12 +18,22 @@ var sankoreLang = {
"alt_text":"Альтернативный текст"
},
"fr":{
"enter_title": "Entrer le titre yuor ici ...",
"enter_title": "Entrer un titre ici ...",
"welcome":"Bienvenue sur HTML Editor",
"source":"Ajouter un lien vers une image",
"link":"Ajouter une URL",
"source":"Source",
"link":"Lien",
"preview":"Aperçu",
"text_to_link":"Votre texte à lier",
"alt_text":"Texte alternatif"
},
"sk":{
"enter_title": "Sem napíšte názov...",
"welcome":"Vitajte v HTML editore",
"source":"Zdroj",
"link":"Odkaz",
"preview":"Ukážka",
"text_to_link":"Text odkazu",
"alt_text":"Alternatívny text"
}
};

@ -3,7 +3,7 @@
xmlns:ub="http://uniboard.mnemis.com/widgets"
id="http://uniboard.mnemis.com/widgets/videopicker"
version="1.1"
width="426"
width="440"
height="630"
ub:resizable="false">

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

@ -13,7 +13,7 @@
</div>
<table>
<tr>
<td class="column"><img src="imgs/capture_youtube.jpg" class="spacer"></td>
<td class="column"><img src="imgs/capture_vimeo.png" class="spacer"></td>
<td><img id="f" class="img" src="imgs/keys_copy.jpg"></td>
</tr>
<tr>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

@ -13,7 +13,7 @@
</div>
<table>
<tr>
<td class="column"><img src="imgs/capture_youtube.jpg" class="spacer"></td>
<td class="column"><img src="imgs/capture_vimeo.png" class="spacer"></td>
<td><img id="f" class="img" src="imgs/keys_copy.jpg"></td>
</tr>
<tr>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

@ -13,7 +13,7 @@
</div>
<table>
<tr>
<td class="column"><img src="imgs/capture_youtube.jpg" class="spacer"></td>
<td class="column"><img src="imgs/capture_vimeo.png" class="spacer"></td>
<td><img id="f" class="img" src="imgs/keys_copy.jpg"></td>
</tr>
<tr>

@ -1,4 +1,4 @@
var sankoreLang = {
var sankoreLang = {
"en":{
"show": "Show"
},
@ -7,6 +7,10 @@ var sankoreLang = {
},
"fr":{
"show": "Voir"
},
"sk":{
"show": "Zobraziť"
}
};

@ -1,4 +1,4 @@
var sankoreLang = {
var sankoreLang = {
"en":{
"previous":"Previous",
"next":"Next",
@ -25,7 +25,15 @@ var sankoreLang = {
"next_page":"Page suivante",
"open":"Ouvrez le site",
"alert":"Impossible d'ouvrir une page! Peut-être c'est à cause d'une politique de sécurité ou une URL erronée. Vérifiez aussi votre connexion internet."
},
"sk":{
"previous":"Predošlá",
"next":"Ďalšia",
"show":"Zobraziť",
"prev_page":"Predošlá stránka",
"next_page":"Ďalšia stránka",
"open":"Otvoriť stránku",
"alert":"Stránka sa nedá otvoriť! Možno je to kvôli spôsobu zabezpečenia alebo nesprávnej internetovej adrese. Skontrolujte aj svoje internetové pripojenie."
}
};
};

@ -3,10 +3,10 @@
xmlns:ub="http://uniboard.mnemis.com/widgets"
identifier="http://uniboard.mnemis.com/widgets/wikipedia"
version="1.2"
minimum_height="260"
minimum_height="300"
minimum_width="360"
width="370"
height="400"
width="755"
height="450"
ub:resizable = "true">
<name>Wikipedia</name>

@ -1,4 +1,3 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
@ -15,7 +14,7 @@
<script type="text/javascript">
var popupFlag = false
var popupFlag = false;
var browsing = false;
var lang = 'en';
var internalChange = false;
@ -195,7 +194,7 @@
toolbar.state = "started";
}
else
$('#web-browser').attr('src',"http://" + lang + ".mobile.wikipedia.org/wiki/" + textBoxInput);
$('#web-browser').attr('src',"http://" + lang + ".wikipedia.org/wiki/" + textBoxInput);
$('#url').val(kword);
$('#toolbar-button-search').css("background-image", "url(images/toolbarLoading.jpg)");
toolbar.loading = true;
@ -370,4 +369,4 @@
<iframe id="web-browser" name="web-browser" src="" onload="hideLoading()"></iframe>
</div>
</body>
</html>
</html>

@ -1,4 +1,4 @@
var sankoreLang = {
var sankoreLang = {
"en":{
"wikipedia": "Wikipedia",
"prev_word":"Previous word",
@ -16,5 +16,12 @@ var sankoreLang = {
"prev_word":"Mot précédent",
"next_word":"Mot suivant",
"search":"Rechercher"
},
"sk":{
"wikipedia": "Wikipédia",
"prev_word":"Predošlé slovo",
"next_word":"Ďalšie slovo",
"search":"Vyhľadať"
}
};
};

@ -1,4 +1,4 @@
var sankoreLang = {
var sankoreLang = {
"en":{
"wikipedia": "Wiktionary",
"prev_word":"Previous word",
@ -16,6 +16,13 @@ var sankoreLang = {
"prev_word":"Mot précédent",
"next_word":"Mot suivant",
"search":"Rechercher"
},
"sk":{
"wikipedia": "Wikislovník",
"prev_word":"Predošlé slovo",
"next_word":"Ďalšie slovo",
"search":"Vyhľadať"
}
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<title>D'n'd</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="../../css/basic.css"/>
<script type="text/javascript" src="../../js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="../../js/jquery-ui-1.8.9.custom.min.js"></script>
<script type="text/javascript" src="js/script.js"></script>
<script type="text/javascript">
$(document).ready(function(){
if(window.sankore)
sankore.enableDropOnWidget(false);
start();
});
</script>
</head>
<body>
<table class="body_table" cellpadding=0 cellspacing=0>
<tr style="height: 54px;">
<td class="b_top_left">&nbsp;</td>
<td class="b_top_center">
<div id="wgt_name"></div>
<div id="wgt_help"></div>
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
<tr>
<td class="b_center_left">&nbsp;</td>
<td>
<div id="help"></div>
<div id="data">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
</tr>
<tr style="height: 54px;">
<td class="b_bottom_left">&nbsp;</td>
<td class="b_bottom_center">&nbsp;</td>
<td class="b_bottom_right">&nbsp;</td>
</tr>
</table>
</body>
</html>

@ -0,0 +1,942 @@
var sankoreLang = {
display: "Zobraziť",
edit: "Upraviť",
short_desc: "Koľko zvukových signálov počujete?",
add: "Pridať nový blok",
enter: "Sem zadajte pokyny.",
wgt_name: "Priradenie ku zvuku",
reload: "Obnoviť",
slate: "bridlica",
pad: "tablet",
none: "žiadny",
help: "Pomoc",
help_content:
"<p> <h2>Priradenie k zvuku</h2> </p>" +
"<p> <h3> Priradenie správneho obrázka k zvukovej nahrávke</h3> </p>" +
"<p> Kliknite na obrázok a presuňte ho do poľa na odpoveď. Pri nesprávnej odpovedi sa pole zafarbí dočervena, pri správnej dozelena. </p> "+
"<p> Tlačidlom „Obnoviť“ vrátite cvičenie do pôvodného stavu. </p>" +
"<p>Po stlačení tlačidla „Upraviť“ môžete v&nbsp;režime úprav:</p>" +
"<ul> <li> zmeniť farebný motív na tablet, bridlicu alebo na žiadny (predvolený je žiadny),</li>" +
"<li> upraviť cvičenie.</li> </ul>" +
"<p>Úprava cvičenia v režime úprav: </p>" +
"<ul><li>ak chcete zmeniť pokyn, kliknite na textové pole,</li>" +
"<li>novú zvukovú nahrávku pridáte jej potiahnutím z&nbsp;knižnice,</li>" +
"<li>rámy pre ďalšie obrázky pridáte kliknutím na „+“,</li>" +
"<li>kliknite na obrázky v&nbsp;knižnici a&nbsp;presuňte ich do rámov,</li>" +
"<li>kliknutím na fajku na ráme obrázka označte správnu odpoveď,</li>" +
"<li>rám môžete vymazať kliknutím na krížik, ktorý nájdete priamo na ňom,</li>" +
"<li>súčasné obrázky nahradíte novými presunom nových obrázkov z&nbsp;knižnice na miesto súčasných.</li></ul>" +
"<p>Tlačidlom „Zobraziť“ sa z&nbsp;režimu úprav vrátite na aktivitu.</p>",
theme: "Farebný motív"
};
//main function
function start(){
$("#wgt_display").text(sankoreLang.display);
$("#wgt_edit").text(sankoreLang.edit);
$("#wgt_name").text(sankoreLang.wgt_name);
$("#wgt_reload").text(sankoreLang.reload);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
if(window.sankore){
if(sankore.preference("associer_sound","")){
var data = jQuery.parseJSON(sankore.preference("associer_sound",""));
importData(data);
}
else
showExample();
if(sankore.preference("as_snd_style","")){
changeStyle(sankore.preference("as_snd_style",""));
$("#style_select").val(sankore.preference("as_snd_style",""));
} else
changeStyle("3")
}
else
showExample();
//events
if (window.widget) {
window.widget.onleave = function(){
exportData();
sankore.setPreference("as_snd_style", $("#style_select").find("option:selected").val());
}
}
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#data").show();
});
} else {
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#data").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
});
}
});
$("#wgt_reload").click(function(){
if($("#wgt_display").hasClass("selected")){
$("#wgt_edit").trigger("click");
$("#wgt_display").trigger("click");
} else {
$("#wgt_display").trigger("click");
}
});
$("#wgt_reload, #wgt_display, #wgt_edit").mouseover(function(){
exportData();
});
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
$("#wgt_display, #wgt_edit").click(function(event){
if(this.id == "wgt_display"){
if(!$(this).hasClass("selected")){
if(window.sankore)
sankore.enableDropOnWidget(false);
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$("#parameters").css("display", "none");
// $(".add_block").remove();
$(".cont").each(function(){
var container = $(this);
var tmp_i = 0;
var tmp_array = [];
container.find(".text_cont .audio_desc").removeAttr("contenteditable");
container.find(".audio_block").removeAttr("ondragenter")
.removeAttr("ondragleave")
.removeAttr("ondragover")
.removeAttr("ondrop")
container.find(".add_img").remove();
// container.find(".close_cont").remove();
container.find(".img_block").each(function(){
if($(this).find("img").attr("src") != "img/drop_img.png"){
$(this).find(".close_img").remove();
$(this).find(".true_img").remove();
$(this).find(".false_img").remove();
$(this).removeAttr("ondragenter")
.removeAttr("ondragleave")
.removeAttr("ondragover")
.removeAttr("ondrop")
.addClass("img_gray");
} else
$(this).remove();
});
var img_answers = $("<div class='imgs_answers imgs_answers_gray'><img src='img/drop_img.png' style='margin-top: 11px;'/></div>").insertAfter(container.find(".sub_cont"));
container.find(".img_block").each(function(){
$(this).css("float","");
tmp_array.push($(this));
});
tmp_array = shuffle(tmp_array);
for(var i = 0; i<tmp_array.length;i++){
tmp_array[i].draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
tmp_array[i].appendTo(container.find(".imgs_cont"));
}
img_answers.droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if($(this).children()[0].tagName == "IMG")
$(this).children().remove();
else
$(ui.draggable).parent().append($(this).children());
$(this).append($(ui.draggable));
if($(this).children().length == 1){
if($(this).children().find("input").val() == "1")
$(this).removeClass("imgs_answers_gray")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_green");
else
$(this).removeClass("imgs_answers_gray")
.removeClass("imgs_answers_green")
.addClass("imgs_answers_red");
}
}
}
});
container.find(".imgs_cont").droppable({
hoverClass: 'dropBack',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if(this != $(ui.draggable).parent()[0]){
var tmp_cont = $(ui.draggable).parent();
$(this).append($(ui.draggable));
tmp_cont.append("<img src='img/drop_img.png' style='margin-top: 11px;'/>");
var answers = "";
$(this).parent().find(".imgs_answers .img_block").each(function(){
answers += $(this).find("input").val();
});
if(tmp_cont.children()[0].tagName == "IMG")
tmp_cont.removeClass("imgs_answers_green")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_gray");
else
if(tmp_cont.children().length == 1){
if(tmp_cont.children().find("input").val() == "1")
tmp_cont.removeClass("imgs_answers_gray")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_green");
else
tmp_cont.removeClass("imgs_answers_gray")
.removeClass("imgs_answers_green")
.addClass("imgs_answers_red");
}
}
}
}
});
});
$(this).css("display", "none");
$("#wgt_edit").css("display", "block");
}
} else {
if(!$(this).hasClass("selected")){
if(window.sankore)
sankore.enableDropOnWidget(true);
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$("#parameters").css("display", "block");
$(".cont").each(function(){
var container = $(this);
container.find(".imgs_answers").find(".img_block").each(function(){
$(this).appendTo(container.find(".imgs_cont"))
});
container.find(".imgs_answers").remove();
// $("<div class='close_cont'>").appendTo(container);
container.find(".imgs_cont").css("background-color", "");
container.find(".text_cont .audio_desc").attr("contenteditable","true");
container.find(".audio_block").attr("ondragenter", "return false;")
.attr("ondragleave", "$(this).removeClass('audio_gray'); return false;")
.attr("ondragover", "$(this).addClass('audio_gray'); return false;")
.attr("ondrop", "$(this).removeClass('audio_gray'); return onDropAudio(this,event);");
var add_img = $("<div class='add_img'>");
container.find(".img_block").each(function(){
$(this).draggable("destroy");
$(this).attr("ondragenter", "return false;")
.attr("ondragleave", "$(this).css(\"background-color\",\"\"); return false;")
.attr("ondragover", "$(this).css(\"background-color\",\"#ccc\"); return false;")
.attr("ondrop", "$(this).css(\"background-color\",\"\"); return onDropTarget(this,event);")
.css("float","left");
$("<div class='close_img'>").appendTo($(this));
if($(this).find("input").val() == "1"){
$("<div class='false_img'>").appendTo($(this));
}
else{
$("<div class='true_img'>").appendTo($(this));
}
});
container.find(".imgs_cont").append(add_img)
});
// $("<div class='add_block'>" + sankoreLang.add + "</div>").appendTo("#data");
$(this).css("display", "none");
$("#wgt_display").css("display", "block");
}
}
$("audio").each(function(){
this.pause();
$(this).parent().find(":first-child").removeClass("stop").addClass("play");
});
});
//add new block
// $(".add_block").live("click", function(){
// addContainer();
// });
//adding new img
$(".add_img").live("click", function(){
addImgBlock($(this));
});
//deleting a block
// $(".close_cont").live("click",function(){
// $(this).parent().remove();
// refreshBlockNumbers();
// });
//deleting the img block
$(".close_img").live("click", function(){
//N/C - NNE - 20140318 : Deleting the image on the hard drive
var src = $(this).parent().find('img').attr("src");
removeAsset(src);
$(this).parent().remove();
});
//correct image
$(".true_img").live("click",function(){
$(this).parent().parent().find(".img_block").each(function(){
$(this).find("input").val(0);
var tmp_div = $(this).find(".false_img");
if(tmp_div)
tmp_div.removeClass("false_img").addClass("true_img");
})
$(this).parent().find("input").val(1);
$(this).removeClass("true_img").addClass("false_img");
});
//wrong image
$(".false_img").live("click",function(){
$(this).parent().find("input").val(0);
$(this).removeClass("false_img").addClass("true_img");
});
//play/pause event
$(".play, .stop").live("click", function(){
var tmp_audio = $(this);
var audio = tmp_audio.parent().find("audio").get(0);
if($(this).hasClass("play")){
if(tmp_audio.parent().find("source").attr("src")){
tmp_audio.removeClass("play").addClass("stop");
var id = setInterval(function(){
if(audio.currentTime == audio.duration){
clearInterval(id);
tmp_audio.removeClass("stop").addClass("play");
}
}, 10);
tmp_audio.parent().find("input").val(id);
audio.play();
}
} else {
$(this).removeClass("stop").addClass("play");
clearInterval( tmp_audio.parent().find("input").val())
audio.pause();
}
});
$(".replay").live("click", function(){
var tmp_audio = $(this).prev();
var audio = $(this).parent().find("audio").get(0);
if(tmp_audio.parent().find("source").attr("src")){
$(this).prev().removeClass("play").addClass("stop");
clearInterval($(this).parent().find("input").val());
var id = setInterval(function(){
if(audio.currentTime == audio.duration){
clearInterval(id);
tmp_audio.removeClass("stop").addClass("play");
}
}, 10);
tmp_audio.parent().find("input").val(id);
audio.currentTime = 0;
audio.play();
}
});
}
//N/C - NNE - 20140318 : Remove an asset (resource) throught the sankore API
function removeAsset(src)
{
if(src != 'img/drop_img.png' && sankore){
sankore.removeFile(src);
}
}
//N/C - NNE - 20140318 : END
//export
function exportData(){
var array_to_export = [];
if($("#wgt_edit").hasClass("selected")){
$(".cont").each(function(){
var cont_obj = new Object();
cont_obj.text = $(this).find(".audio_desc").text();
cont_obj.audio = $(this).find("source").attr("src").replace("../../","");;
cont_obj.mode = "edit";
cont_obj.imgs = [];
$(this).find(".img_block").each(function(){
var img_obj = new Object();
img_obj.value = $(this).find("input").val();
img_obj.link = $(this).find("img").attr("src").replace("../../","");
img_obj.ht = $(this).find("img").height();
img_obj.wd = $(this).find("img").width();
cont_obj.imgs.push(img_obj);
});
array_to_export.push(cont_obj);
});
} else {
$(".cont").each(function(){
var cont_obj = new Object();
cont_obj.text = $(this).find(".audio_desc").text();
cont_obj.audio = $(this).find("source").attr("src").replace("../../","");
cont_obj.mode = "display";
cont_obj.imgs = [];
if($(this).find(".imgs_answers").children()[0].tagName == "DIV"){
var tmp_cont = $(this).find(".imgs_answers").find(".img_block");
var img_obj = new Object();
img_obj.value = tmp_cont.find("input").val();
img_obj.link = tmp_cont.find("img").attr("src").replace("../../","");
img_obj.ht = tmp_cont.find("img").height();
img_obj.wd = tmp_cont.find("img").width();
img_obj.cont = "answers";
cont_obj.imgs.push(img_obj);
}
$(this).find(".imgs_cont .img_block").each(function(){
var img_obj = new Object();
img_obj.value = $(this).find("input").val();
img_obj.link = $(this).find("img").attr("src").replace("../../","");
img_obj.ht = $(this).find("img").height();
img_obj.wd = $(this).find("img").width();
img_obj.cont = "cont";
cont_obj.imgs.push(img_obj);
});
array_to_export.push(cont_obj);
});
}
if(window.sankore)
sankore.setPreference("associer_sound", JSON.stringify(array_to_export));
}
//import
function importData(data){
for(var i in data){
if(data[i].mode == "edit"){
var tmp_array = [];
var container = $("<div class='cont'>");
var sub_container = $("<div class='sub_cont'>").appendTo(container);
var imgs_answers = $("<div class='imgs_answers imgs_answers_gray'><img src='img/drop_img.png' style='margin-top: 11px;'/></div>").appendTo(container);
var imgs_container = $("<div class='imgs_cont'>").appendTo(container);
// var number = $("<div class='number_cont'>"+ (++tmp) +"</div>").appendTo(sub_container);
var text = $("<div class='text_cont'>").appendTo(sub_container);
var audio_block = $("<div class='audio_block'>").appendTo(text);
$("<div class='play'>").appendTo(audio_block);
$("<div class='replay'>").appendTo(audio_block);
var source = $("<source/>").attr("src", "../../" + data[i].audio);
var audio = $("<audio>").appendTo(audio_block);
audio.append(source);
$("<input type='hidden'/>").appendTo(audio_block);
$("<div class='audio_desc'>" + data[i].text + "</div>").appendTo(text);
for(var j in data[i].imgs){
var img_block = $("<div class='img_block img_gray' style='text-align: center;'>");
var img = $("<img src='../../" + data[i].imgs[j].link + "' style='display: inline;'>");
img.height(data[i].imgs[j].ht);
if((120 - data[i].imgs[j].ht) > 0)
img.css("margin",(120 - data[i].imgs[j].ht)/2 + "px 0");
var hidden_input = $("<input type='hidden'>").val(data[i].imgs[j].value);
img_block.append(hidden_input).append(img);
tmp_array.push(img_block);
}
tmp_array = shuffle(tmp_array);
for(j in tmp_array){
tmp_array[j].draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
tmp_array[j].appendTo(imgs_container);
}
imgs_answers.droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if($(this).children()[0].tagName == "IMG")
$(this).children().remove();
else
$(ui.draggable).parent().append($(this).children());
$(this).append($(ui.draggable));
if($(this).children().length == 1){
if($(this).children().find("input").val() == "1")
$(this).removeClass("imgs_answers_gray")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_green");
else
$(this).removeClass("imgs_answers_gray")
.removeClass("imgs_answers_green")
.addClass("imgs_answers_red");
}
}
}
});
imgs_container.droppable({
hoverClass: 'dropBack',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if(this != $(ui.draggable).parent()[0]){
var tmp_cont = $(ui.draggable).parent();
$(this).append($(ui.draggable));
tmp_cont.append("<img src='img/drop_img.png' style='margin-top: 11px;'/>");
var answers = "";
$(this).parent().find(".imgs_answers .img_block").each(function(){
answers += $(this).find("input").val();
});
if(tmp_cont.children()[0].tagName == "IMG")
tmp_cont.removeClass("imgs_answers_green")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_gray");
else
if(tmp_cont.children().length == 1){
if(tmp_cont.children().find("input").val() == "1")
tmp_cont.removeClass("imgs_answers_gray")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_green");
else
tmp_cont.removeClass("imgs_answers_gray")
.removeClass("imgs_answers_green")
.addClass("imgs_answers_red");
}
}
}
}
});
container.appendTo("#data");
} else {
container = $("<div class='cont'>");
sub_container = $("<div class='sub_cont'>").appendTo(container);
imgs_answers = $("<div class='imgs_answers'></div>").appendTo(container);
$("<img src='img/drop_img.png' style='margin-top: 11px;'/>").appendTo(imgs_answers);
imgs_container = $("<div class='imgs_cont'>").appendTo(container);
// number = $("<div class='number_cont'>"+ (++tmp) +"</div>").appendTo(sub_container);
text = $("<div class='text_cont'>").appendTo(sub_container);
audio_block = $("<div class='audio_block'>").appendTo(text);
$("<div class='play'>").appendTo(audio_block);
$("<div class='replay'>").appendTo(audio_block);
source = $("<source/>").attr("src", "../../" + data[i].audio);
audio = $("<audio>").appendTo(audio_block);
audio.append(source);
$("<input type='hidden'/>").appendTo(audio_block);
$("<div class='audio_desc'>" + data[i].text + "</div>").appendTo(text);
for(j in data[i].imgs){
img_block = $("<div class='img_block img_gray' style='text-align: center;'>");
img = $("<img src='../../" + data[i].imgs[j].link + "' style='display: inline;'>");
img.height(data[i].imgs[j].ht);
if((120 - data[i].imgs[j].ht) > 0)
img.css("margin",(120 - data[i].imgs[j].ht)/2 + "px 0");
hidden_input = $("<input type='hidden'>").val(data[i].imgs[j].value);
img_block.append(hidden_input).append(img);
img_block.draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
if(data[i].imgs[j].cont == "cont")
img_block.appendTo(imgs_container);
else{
imgs_answers.empty();
img_block.appendTo(imgs_answers);
if(data[i].imgs[j].value == "1")
imgs_answers.addClass("imgs_answers_green");
else
imgs_answers.addClass("imgs_answers_red");
}
}
imgs_answers.droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if($(this).children()[0].tagName == "IMG")
$(this).children().remove();
else
$(ui.draggable).parent().append($(this).children());
$(this).append($(ui.draggable));
if($(this).children().length == 1){
if($(this).children().find("input").val() == "1")
$(this).removeClass("imgs_answers_gray")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_green");
else
$(this).removeClass("imgs_answers_gray")
.removeClass("imgs_answers_green")
.addClass("imgs_answers_red");
}
}
}
});
imgs_container.droppable({
hoverClass: 'dropBack',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if(this != $(ui.draggable).parent()[0]){
var tmp_cont = $(ui.draggable).parent();
$(this).append($(ui.draggable));
tmp_cont.append("<img src='img/drop_img.png' style='margin-top: 11px;'/>");
var answers = "";
$(this).parent().find(".imgs_answers .img_block").each(function(){
answers += $(this).find("input").val();
});
if(tmp_cont.children()[0].tagName == "IMG")
tmp_cont.removeClass("imgs_answers_green")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_gray");
else
if(tmp_cont.children().length == 1){
if(tmp_cont.children().find("input").val() == "1")
tmp_cont.removeClass("imgs_answers_gray")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_green");
else
tmp_cont.removeClass("imgs_answers_gray")
.removeClass("imgs_answers_green")
.addClass("imgs_answers_red");
}
}
}
}
});
container.appendTo("#data");
}
}
}
//example
function showExample(){
var tmp_array = [];
var container = $("<div class='cont'>").appendTo("#data");
var sub_container = $("<div class='sub_cont'>").appendTo(container);
var imgs_answers = $("<div class='imgs_answers imgs_answers_gray'><img src='img/drop_img.png' style='margin-top: 11px;'/></div>").appendTo(container);
var imgs_container = $("<div class='imgs_cont'>").appendTo(container);
// var number = $("<div class='number_cont'>1</div>").appendTo(sub_container);
var text = $("<div class='text_cont'>").appendTo(sub_container);
var audio_block = $("<div class='audio_block'>").appendTo(text);
$("<div class='play'>").appendTo(audio_block);
$("<div class='replay'>").appendTo(audio_block);
var source = $("<source/>").attr("src", "../../objects/beep.wav");
var audio = $("<audio>").appendTo(audio_block);
audio.append(source);
$("<input type='hidden'/>").appendTo(audio_block);
var audio_desc = $("<div class='audio_desc'>" + sankoreLang.short_desc + "</div>").appendTo(text);
$("<input type='hidden' value='1'/>").appendTo(imgs_container);
var img1 = $("<div class='img_block img_gray' style='text-align: center;'></div>");
$("<input type='hidden' value='0'/>").appendTo(img1);
$("<img src=\"../../objects/0.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img1);
var img2 = $("<div class='img_block img_gray' style='text-align: center;'></div>");
$("<input type='hidden' value='1'/>").appendTo(img2);
$("<img src=\"../../objects/1.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img2);
var img3 = $("<div class='img_block img_gray' style='text-align: center;'></div>");
$("<input type='hidden' value='0'/>").appendTo(img3);
$("<img src=\"../../objects/2.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img3);
var img4 = $("<div class='img_block img_gray' style='text-align: center;'></div>");
$("<input type='hidden' value='0'/>").appendTo(img4);
$("<img src=\"../../objects/3.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img4);
var img5 = $("<div class='img_block img_gray' style='text-align: center;'></div>");
$("<input type='hidden' value='0'/>").appendTo(img5);
$("<img src=\"../../objects/4.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img5);
tmp_array.push(img1, img2, img3, img4, img5);
tmp_array = shuffle(tmp_array);
for(var i = 0; i<tmp_array.length;i++){
tmp_array[i].draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
tmp_array[i].appendTo(imgs_container);
}
imgs_answers.droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if($(this).children()[0].tagName == "IMG")
$(this).children().remove();
else
$(ui.draggable).parent().append($(this).children());
$(this).append($(ui.draggable));
if($(this).children().length == 1){
if($(this).children().find("input").val() == "1")
$(this).removeClass("imgs_answers_gray")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_green");
else
$(this).removeClass("imgs_answers_gray")
.removeClass("imgs_answers_green")
.addClass("imgs_answers_red");
}
}
}
});
imgs_container.droppable({
hoverClass: 'dropBack',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if(this != $(ui.draggable).parent()[0]){
var tmp_cont = $(ui.draggable).parent();
$(this).append($(ui.draggable));
tmp_cont.append("<img src='img/drop_img.png' style='margin-top: 11px;'/>");
var answers = "";
$(this).parent().find(".imgs_answers .img_block").each(function(){
answers += $(this).find("input").val();
});
if(tmp_cont.children()[0].tagName == "IMG")
tmp_cont.removeClass("imgs_answers_green")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_gray");
else
if(tmp_cont.children().length == 1){
if(tmp_cont.children().find("input").val() == "1")
tmp_cont.removeClass("imgs_answers_gray")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_green");
else
tmp_cont.removeClass("imgs_answers_gray")
.removeClass("imgs_answers_green")
.addClass("imgs_answers_red");
}
}
}
}
});
}
//check result
function checkResult(event)
{
var str = "";
var right_str = $(event.target).find("input").val();
$(event.target).find(".img_block").each(function(){
str += $(this).find("input").val() + "*";
});
if(str == right_str)
$(event.target).css("background-color","#9f9");
}
//add new container
//function addContainer(){
// var container = $("<div class='cont'>");
// var sub_container = $("<div class='sub_cont'>").appendTo(container);
// var imgs_container = $("<div class='imgs_cont'>").appendTo(container);
//
// var close = $("<div class='close_cont'>").appendTo(container);
// var number = $("<div class='number_cont'>"+ ($(".cont").size() + 1) +"</div>").appendTo(sub_container);
// var text = $("<div class='text_cont'>").appendTo(sub_container);
// var audio_block = $("<div class='audio_block'>").appendTo(text);
// audio_block.attr("ondragenter", "return false;")
// .attr("ondragleave", "$(this).removeClass('audio_gray'); return false;")
// .attr("ondragover", "$(this).addClass('audio_gray'); return false;")
// .attr("ondrop", "$(this).removeClass('audio_gray'); return onDropAudio(this,event);");
// $("<div class='play'>").appendTo(audio_block);
// $("<div class='replay'>").appendTo(audio_block);
// var source = $("<source/>").attr("src", "");
// var audio = $("<audio>").appendTo(audio_block);
// audio.append(source);
// $("<input type='hidden'/>").appendTo(audio_block);
// var audio_desc = $("<div class='audio_desc' contenteditable>" + sankoreLang.enter + "</div>").appendTo(text);
//
// $("<input type='hidden' value='1'/>").appendTo(imgs_container);
// var add_img = $("<div class='add_img'>").appendTo(imgs_container);
// container.insertBefore($(".add_block"));
//}
//add new img block
function addImgBlock(dest){
var img_block = $("<div class='img_block img_gray' ondragenter='return false;' ondragleave='$(this).css(\"background-color\",\"\"); return false;' ondragover='$(this).css(\"background-color\",\"#ccc\"); return false;' ondrop='$(this).css(\"background-color\",\"\"); return onDropTarget(this,event);' style='text-align: center; float: left;'></div>").insertBefore(dest);
$("<div class='close_img'>").appendTo(img_block);
$("<div class='true_img'>").appendTo(img_block);
$("<input type='hidden' value='0'/>").appendTo(img_block);
$("<img src='img/drop_img.png' height='120'/>").appendTo(img_block);
}
//function refreshBlockNumbers(){
// var i = 0;
// $(".cont").each(function(){
// $(this).find(".number_cont").text(++i);
// })
//}
//shuffles an array
function shuffle( arr )
{
var pos, tmp;
for( var i = 0; i < arr.length; i++ )
{
pos = Math.round( Math.random() * ( arr.length - 1 ) );
tmp = arr[pos];
arr[pos] = arr[i];
arr[i] = tmp;
}
return arr;
}
function stringToXML(text){
if (window.ActiveXObject){
var doc=new ActiveXObject('Microsoft.XMLDOM');
doc.async='false';
doc.loadXML(text);
} else {
var parser=new DOMParser();
doc=parser.parseFromString(text,'text/xml');
}
return doc;
}
//changing the style
function changeStyle(val){
switch(val){
case "1":
$(".b_top_left").removeClass("btl_pad").removeClass("without_back");
$(".b_top_center").removeClass("btc_pad").removeClass("without_back");
$(".b_top_right").removeClass("btr_pad").removeClass("without_back");
$(".b_center_left").removeClass("bcl_pad").removeClass("without_back");
$(".b_center_right").removeClass("bcr_pad").removeClass("without_back");
$(".b_bottom_right").removeClass("bbr_pad").removeClass("without_back");
$(".b_bottom_left").removeClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").removeClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$("#wgt_display").addClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
$(".b_top_center").addClass("btc_pad").removeClass("without_back");
$(".b_top_right").addClass("btr_pad").removeClass("without_back");
$(".b_center_left").addClass("bcl_pad").removeClass("without_back");
$(".b_center_right").addClass("bcr_pad").removeClass("without_back");
$(".b_bottom_right").addClass("bbr_pad").removeClass("without_back");
$(".b_bottom_left").addClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").addClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
$(".b_top_center").addClass("without_back").removeClass("btc_pad");
$(".b_top_right").addClass("without_back").removeClass("btr_pad");
$(".b_center_left").addClass("without_back").removeClass("bcl_pad");
$(".b_center_right").addClass("without_back").removeClass("bcr_pad");
$(".b_bottom_right").addClass("without_back").removeClass("bbr_pad");
$(".b_bottom_left").addClass("without_back").removeClass("bbl_pad");
$(".b_bottom_center").addClass("without_back").removeClass("bbc_pad");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
}
function onDropTarget(obj, event) {
//N/C - NNE - 20140318
var img = $(obj).find("img");
removeAsset(img.attr("src"));
img.remove();
if (event.dataTransfer) {
var format = "text/plain";
var textData = event.dataTransfer.getData(format);
if (!textData) {
alert(":(");
}
textData = stringToXML(textData);
var tmp = textData.getElementsByTagName("path")[0].firstChild.textContent;
var tmp_img = $("<img/>").attr("src", "../../" + tmp);
$(obj).append(tmp_img);
setTimeout(function(){
if(tmp_img.height() >= tmp_img.width())
tmp_img.attr("height", "120");
else{
tmp_img.attr("width","120");
var h = tmp_img.height();
tmp_img.attr("height",h);
tmp_img.css("margin",(120 - tmp_img.height())/2 + "px 0");
}
}, 6)
}
else {
alert ("Your browser does not support the dataTransfer object.");
}
if (event.stopPropagation) {
event.stopPropagation ();
}
else {
event.cancelBubble = true;
}
return false;
}
function onDropAudio(obj, event) {
if (event.dataTransfer) {
var format = "text/plain";
var textData = event.dataTransfer.getData(format);
if (!textData) {
alert(":(");
}
textData = stringToXML(textData);
var tmp = textData.getElementsByTagName("path")[0].firstChild.textContent;
var tmp_type = textData.getElementsByTagName("type")[0].firstChild.textContent;
if(tmp_type.substr(0, 5) == "audio"){
var audio_block = $(obj);
//N/C - NNE - 20140318
var audioAsset = $(obj).find("audio");
removeAsset(audioAsset.find('source').attr("src"));
audioAsset.remove();
audio_block.find(":first-child").removeClass("stop").addClass("play");
var source = $("<source/>").attr("src", "../../" + tmp);
var audio = $("<audio>").appendTo(audio_block);
audio.append(source);
}
}
else {
alert ("Your browser does not support the dataTransfer object.");
}
if (event.stopPropagation) {
event.stopPropagation ();
}
else {
event.cancelBubble = true;
}
return false;
}
if (window.widget) {
window.widget.onremove = function(){
$("audio").each(function(){
this.pause();
$(this).parent().find(":first-child").removeClass("stop").addClass("play");
});
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<title>D'n'd</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="../../css/basic.css"/>
<script type="text/javascript" src="../../js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="../../js/jquery-ui-1.8.9.custom.min.js"></script>
<script type="text/javascript" src="js/script.js"></script>
<script type="text/javascript">
$(document).ready(function(){
if(window.sankore)
sankore.enableDropOnWidget(false);
start();
});
</script>
</head>
<body>
<table class="body_table" cellpadding=0 cellspacing=0>
<tr style="height: 54px;">
<td class="b_top_left">&nbsp;</td>
<td class="b_top_center">
<div id="wgt_name"></div>
<div id="wgt_help"></div>
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
<tr>
<td class="b_center_left">&nbsp;</td>
<td>
<div id="help"></div>
<div id="data">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
</tr>
<tr style="height: 54px;">
<td class="b_bottom_left">&nbsp;</td>
<td class="b_bottom_center">&nbsp;</td>
<td class="b_bottom_right">&nbsp;</td>
</tr>
</table>
</body>
</html>

@ -0,0 +1,828 @@
var sankoreLang = {
display: "Zobraziť",
edit: "Upraviť",
short_desc: "Vyberte číslo tri.",
add: "Pridať novú otázku",
enter: "Sem napíšte pokyny.",
wgt_name: "Priradenie obrázkov",
reload: "Obnoviť",
slate: "bridlica",
pad: "tablet",
none: "žiadny",
help: "Pomocník",
help_content:
"<p> <h2>Priradenie obrázka</h2> </p>" +
"<p> <h3>Výber správneho obrázka</h3> </p>" +
"<p> Kliknite na obrázok a presuňte ho do poľa na odpoveď. Pri nesprávnej odpovedi sa pole zafarbí dočervena, pri správnej dozelena.</p> "+
"<p> Tlačidlom „Obnoviť“ vrátite cvičenie do pôvodného stavu. </p>" +
"<p>Po stlačení tlačidla „Upraviť“ môžete v&nbsp;režime úprav:</p>" +
"<ul> <li> zmeniť farebný motív na tablet, bridlicu alebo na žiadny (predvolený je žiadny),</li>" +
"<li> upraviť cvičenie.</li> </ul>" +
"<p>Úprava cvičenia v režime úprav: </p>" +
"<div style='margin-left:20px;'><p>Ak chcete zmeniť pokyn, kliknite na textové pole.<br>" +
"<p>Rámy pre ďalšie obrázky pridáte kliknutím na „+“.</p>" +
"<p>Kliknite na obrázky v knižnici a potiahnite ich do rámov.</p>" +
"<p>Kliknutím na fajku na ráme obrázka označte správnu odpoveď.</p>" +
"<p>Rám môžete vymazať kliknutím na krížik, ktorý nájdete priamo na ňom.</p>" +
"<p>Obrázok môžete nahradiť kliknutím na ikonu obnovenia (okrúhla šípka) na ráme obrázka.</p></div>" +
"<p>Tlačidlom „Zobraziť“ sa z režimu úprav vrátite na aktivitu.</p>",
theme:"Farebný motív"
};
//main function
function start(){
$("#wgt_display").text(sankoreLang.display);
$("#wgt_edit").text(sankoreLang.edit);
$("#wgt_name").text(sankoreLang.wgt_name);
$("#wgt_reload").text(sankoreLang.reload);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
if(window.sankore){
if(sankore.preference("associer","")){
var data = jQuery.parseJSON(sankore.preference("associer",""));
importData(data);
} else {
showExample();
}
}
else
showExample();
//events
if (window.widget) {
window.widget.onleave = function(){
exportData();
}
}
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#data").show();
});
} else {
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#data").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
});
}
});
$("#wgt_reload").click(function(){
if($("#wgt_display").hasClass("selected")){
$("#wgt_edit").trigger("click");
$("#wgt_display").trigger("click");
} else {
$("#wgt_display").trigger("click");
}
});
$("#wgt_reload, #wgt_display, #wgt_edit").mouseover(function(){
exportData();
});
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
$("#wgt_display, #wgt_edit").click(function(event){
if(this.id == "wgt_display"){
if(!$(this).hasClass("selected")){
if(window.sankore)
sankore.enableDropOnWidget(false);
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$("#parameters").css("display", "none");
// $(".add_block").remove();
$(".cont").each(function(){
var container = $(this);
var tmp_i = 0;
var tmp_array = [];
container.find(".text_cont").removeAttr("contenteditable");
container.find(".add_img").remove();
// container.find(".close_cont").remove();
container.find(".img_block").each(function(){
if($(this).find("img").attr("src") != "img/drop_img.png"){
$(this).find(".close_img").remove();
$(this).find(".clear_img").remove();
$(this).find(".true_img").remove();
$(this).find(".false_img").remove();
$(this).removeAttr("ondragenter")
.removeAttr("ondragleave")
.removeAttr("ondragover")
.removeAttr("ondrop")
.addClass("img_gray");
} else
$(this).remove();
});
var img_answers = $("<div class='imgs_answers imgs_answers_gray'><img src='img/drop_img.png' style='margin-top: 11px;'/></div>").insertAfter(container.find(".sub_cont"));
container.find(".img_block").each(function(){
$(this).css("float","");
tmp_array.push($(this));
});
tmp_array = shuffle(tmp_array);
for(var i = 0; i<tmp_array.length;i++){
tmp_array[i].draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
tmp_array[i].appendTo(container.find(".imgs_cont"));
}
img_answers.droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if($(this).children()[0].tagName == "IMG")
$(this).children().remove();
else
$(ui.draggable).parent().append($(this).children());
$(this).append($(ui.draggable));
if($(this).children().length == 1){
if($(this).children().find("input").val() == "1")
$(this).removeClass("imgs_answers_gray")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_green");
else
$(this).removeClass("imgs_answers_gray")
.removeClass("imgs_answers_green")
.addClass("imgs_answers_red");
}
}
}
});
container.find(".imgs_cont").droppable({
hoverClass: 'dropBack',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if(this != $(ui.draggable).parent()[0]){
var tmp_cont = $(ui.draggable).parent();
$(this).append($(ui.draggable));
tmp_cont.append("<img src='img/drop_img.png' style='margin-top: 11px;'/>");
var answers = "";
$(this).parent().find(".imgs_answers .img_block").each(function(){
answers += $(this).find("input").val();
});
if(tmp_cont.children()[0].tagName == "IMG")
tmp_cont.removeClass("imgs_answers_green")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_gray");
else
if(tmp_cont.children().length == 1){
if(tmp_cont.children().find("input").val() == "1")
tmp_cont.removeClass("imgs_answers_gray")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_green");
else
tmp_cont.removeClass("imgs_answers_gray")
.removeClass("imgs_answers_green")
.addClass("imgs_answers_red");
}
}
}
}
});
});
$(this).css("display", "none");
$("#wgt_edit").css("display", "block");
}
} else {
if(!$(this).hasClass("selected")){
if(window.sankore)
sankore.enableDropOnWidget(true);
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$("#parameters").css("display", "block");
$(".cont").each(function(){
var container = $(this);
container.find(".imgs_answers").find(".img_block").each(function(){
$(this).appendTo(container.find(".imgs_cont"))
});
container.find(".imgs_answers").remove();
// $("<div class='close_cont'>").appendTo(container);
container.find(".text_cont").attr("contenteditable","true");
var add_img = $("<div class='add_img'>");
container.find(".img_block").each(function(){
$(this).draggable("destroy");
$(this).attr("ondragenter", "return false;")
.attr("ondragleave", "$(this).css(\"background-color\",\"\"); return false;")
.attr("ondragover", "$(this).css(\"background-color\",\"#ccc\"); return false;")
.attr("ondrop", "$(this).css(\"background-color\",\"\"); return onDropTarget(this,event);")
.css("float","left");
$("<div class='close_img'>").appendTo($(this));
$("<div class='clear_img'>").appendTo($(this));
if($(this).find("input").val() == "1"){
$("<div class='false_img'>").appendTo($(this));
}
else{
$("<div class='true_img'>").appendTo($(this));
}
});
container.find(".imgs_cont").append(add_img)
});
// $("<div class='add_block'>" + sankoreLang.add + "</div>").appendTo("#data");
$(this).css("display", "none");
$("#wgt_display").css("display", "block");
}
}
});
//add new block
// $(".add_block").live("click", function(){
// addContainer();
// });
//adding new img
$(".add_img").live("click", function(){
addImgBlock($(this));
});
//deleting a block
// $(".close_cont").live("click",function(){
// $(this).parent().remove();
// refreshBlockNumbers();
// });
//deleting the img block
$(".close_img").live("click", function(){
//N/C - NNE - 20140318 : Deleting the image on the hard drive
var src = $(this).parent().find('img').attr("src");
removeAsset(src);
$(this).parent().remove();
});
//cleaning an image
$(".clear_img").live("click",function(){
//N/C - NNE - 20140318 : Deleting the image on the hard drive
var img = $(this).parent().find("img");
removeAsset(img.attr("src"));
img.attr("src","img/drop_img.png");
});
//correct image
$(".true_img").live("click",function(){
$(this).parent().parent().find(".img_block").each(function(){
$(this).find("input").val(0);
var tmp_div = $(this).find(".false_img");
if(tmp_div)
tmp_div.removeClass("false_img").addClass("true_img");
})
$(this).parent().find("input").val(1);
$(this).removeClass("true_img").addClass("false_img");
});
//wrong image
$(".false_img").live("click",function(){
$(this).parent().find("input").val(0);
$(this).removeClass("false_img").addClass("true_img");
});
}
//N/C - NNE - 20140318 : Remove an asset (resource) throught the sankore API
function removeAsset(src)
{
if(src != 'img/drop_img.png' && sankore){
sankore.removeFile(src);
}
}
//N/C - NNE - 20140318 : END
//export
function exportData(){
var array_to_export = [];
if($("#wgt_edit").hasClass("selected")){
$(".cont").each(function(){
var cont_obj = new Object();
cont_obj.style = $("#style_select").find("option:selected").val();
cont_obj.text = $(this).find(".text_cont").text();
cont_obj.mode = "edit";
cont_obj.imgs = [];
$(this).find(".img_block").each(function(){
var img_obj = new Object();
img_obj.value = $(this).find("input").val();
img_obj.link = $(this).find("img").attr("src").replace("../../","");
img_obj.ht = $(this).find("img").height();
img_obj.wd = $(this).find("img").width();
cont_obj.imgs.push(img_obj);
});
array_to_export.push(cont_obj);
});
} else {
$(".cont").each(function(){
var cont_obj = new Object();
cont_obj.style = $("#style_select").find("option:selected").val();
cont_obj.text = $(this).find(".text_cont").text();
cont_obj.mode = "display";
cont_obj.imgs = [];
if($(this).find(".imgs_answers").children()[0].tagName == "DIV"){
var tmp_cont = $(this).find(".imgs_answers").find(".img_block");
var img_obj = new Object();
img_obj.value = tmp_cont.find("input").val();
img_obj.link = tmp_cont.find("img").attr("src").replace("../../","");
img_obj.ht = tmp_cont.find("img").height();
img_obj.wd = tmp_cont.find("img").width();
img_obj.cont = "answers";
cont_obj.imgs.push(img_obj);
}
$(this).find(".imgs_cont .img_block").each(function(){
var img_obj = new Object();
img_obj.value = $(this).find("input").val();
img_obj.link = $(this).find("img").attr("src").replace("../../","");
img_obj.ht = $(this).find("img").height();
img_obj.wd = $(this).find("img").width();
img_obj.cont = "cont";
cont_obj.imgs.push(img_obj);
});
array_to_export.push(cont_obj);
});
}
if($(".cont").size() == 0){
var cont_obj = new Object();
cont_obj.style = $("#style_select").find("option:selected").val();
cont_obj.tmp = "clear";
array_to_export.push(cont_obj);
}
if(window.sankore)
sankore.setPreference("associer", JSON.stringify(array_to_export));
}
//import
function importData(data){
for(var i in data){
if(data[i].tmp){
changeStyle(data[i].style);
$("#style_select").val(data[i].style);
} else {
if(i == 0){
changeStyle(data[i].style);
$("#style_select").val(data[i].style);
}
if(data[i].mode == "edit"){
var tmp_array = [];
var container = $("<div class='cont'>");
var sub_container = $("<div class='sub_cont'>").appendTo(container);
var imgs_answers = $("<div class='imgs_answers imgs_answers_gray'><img src='img/drop_img.png' style='margin-top: 11px;'/></div>").appendTo(container);
var imgs_container = $("<div class='imgs_cont'>").appendTo(container);
// var number = $("<div class='number_cont'>"+ (++tmp) +"</div>").appendTo(sub_container);
var text = $("<div class='text_cont'>" + data[i].text + "</div>").appendTo(sub_container);
for(var j in data[i].imgs){
var img_block = $("<div class='img_block img_gray' style='text-align: center;'>");
var img = $("<img src='../../" + data[i].imgs[j].link + "' style='display: inline;'>");
img.height(data[i].imgs[j].ht);
if((120 - data[i].imgs[j].ht) > 0)
img.css("margin",(120 - data[i].imgs[j].ht)/2 + "px 0");
var hidden_input = $("<input type='hidden'>").val(data[i].imgs[j].value);
img_block.append(hidden_input).append(img);
tmp_array.push(img_block);
}
tmp_array = shuffle(tmp_array);
for(j in tmp_array){
tmp_array[j].draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
tmp_array[j].appendTo(imgs_container);
}
imgs_answers.droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if($(this).children()[0].tagName == "IMG")
$(this).children().remove();
else
$(ui.draggable).parent().append($(this).children());
$(this).append($(ui.draggable));
if($(this).children().length == 1){
if($(this).children().find("input").val() == "1")
$(this).removeClass("imgs_answers_gray")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_green");
else
$(this).removeClass("imgs_answers_gray")
.removeClass("imgs_answers_green")
.addClass("imgs_answers_red");
}
}
}
});
imgs_container.droppable({
hoverClass: 'dropBack',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if(this != $(ui.draggable).parent()[0]){
var tmp_cont = $(ui.draggable).parent();
$(this).append($(ui.draggable));
tmp_cont.append("<img src='img/drop_img.png' style='margin-top: 11px;'/>");
var answers = "";
$(this).parent().find(".imgs_answers .img_block").each(function(){
answers += $(this).find("input").val();
});
if(tmp_cont.children()[0].tagName == "IMG")
tmp_cont.removeClass("imgs_answers_green")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_gray");
else
if(tmp_cont.children().length == 1){
if(tmp_cont.children().find("input").val() == "1")
tmp_cont.removeClass("imgs_answers_gray")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_green");
else
tmp_cont.removeClass("imgs_answers_gray")
.removeClass("imgs_answers_green")
.addClass("imgs_answers_red");
}
}
}
}
});
container.appendTo("#data");
} else {
container = $("<div class='cont'>");
sub_container = $("<div class='sub_cont'>").appendTo(container);
imgs_answers = $("<div class='imgs_answers'></div>").appendTo(container);
$("<img src='img/drop_img.png' style='margin-top: 11px;'/>").appendTo(imgs_answers);
imgs_container = $("<div class='imgs_cont'>").appendTo(container);
// number = $("<div class='number_cont'>"+ (++tmp) +"</div>").appendTo(sub_container);
text = $("<div class='text_cont'>" + data[i].text + "</div>").appendTo(sub_container);
for(j in data[i].imgs){
img_block = $("<div class='img_block img_gray' style='text-align: center;'>");
img = $("<img src='../../" + data[i].imgs[j].link + "' style='display: inline;'>");
img.height(data[i].imgs[j].ht);
if((120 - data[i].imgs[j].ht) > 0)
img.css("margin",(120 - data[i].imgs[j].ht)/2 + "px 0");
hidden_input = $("<input type='hidden'>").val(data[i].imgs[j].value);
img_block.append(hidden_input).append(img);
img_block.draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
if(data[i].imgs[j].cont == "cont")
img_block.appendTo(imgs_container);
else{
imgs_answers.empty();
img_block.appendTo(imgs_answers);
if(data[i].imgs[j].value == "1")
imgs_answers.addClass("imgs_answers_green");
else
imgs_answers.addClass("imgs_answers_red");
}
}
imgs_answers.droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if($(this).children()[0].tagName == "IMG")
$(this).children().remove();
else
$(ui.draggable).parent().append($(this).children());
$(this).append($(ui.draggable));
if($(this).children().length == 1){
if($(this).children().find("input").val() == "1")
$(this).removeClass("imgs_answers_gray")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_green");
else
$(this).removeClass("imgs_answers_gray")
.removeClass("imgs_answers_green")
.addClass("imgs_answers_red");
}
}
}
});
imgs_container.droppable({
hoverClass: 'dropBack',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if(this != $(ui.draggable).parent()[0]){
var tmp_cont = $(ui.draggable).parent();
$(this).append($(ui.draggable));
tmp_cont.append("<img src='img/drop_img.png' style='margin-top: 11px;'/>");
var answers = "";
$(this).parent().find(".imgs_answers .img_block").each(function(){
answers += $(this).find("input").val();
});
if(tmp_cont.children()[0].tagName == "IMG")
tmp_cont.removeClass("imgs_answers_green")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_gray");
else
if(tmp_cont.children().length == 1){
if(tmp_cont.children().find("input").val() == "1")
tmp_cont.removeClass("imgs_answers_gray")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_green");
else
tmp_cont.removeClass("imgs_answers_gray")
.removeClass("imgs_answers_green")
.addClass("imgs_answers_red");
}
}
}
}
});
container.appendTo("#data");
}
}
}
}
//example
function showExample(){
changeStyle("3");
var tmp_array = [];
var container = $("<div class='cont'>").appendTo("#data");
var sub_container = $("<div class='sub_cont'>").appendTo(container);
var imgs_answers = $("<div class='imgs_answers imgs_answers_gray'><img src='img/drop_img.png' style='margin-top: 11px;'/></div>").appendTo(container);
var imgs_container = $("<div class='imgs_cont'>").appendTo(container);
// var number = $("<div class='number_cont'>1</div>").appendTo(sub_container);
var text = $("<div class='text_cont'>" + sankoreLang.short_desc + "</div>").appendTo(sub_container);
$("<input type='hidden' value='1'/>").appendTo(imgs_container);
var img1 = $("<div class='img_block img_gray' style='text-align: center;'></div>");
$("<input type='hidden' value='0'/>").appendTo(img1);
$("<img src=\"../../objects/0.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img1);
var img2 = $("<div class='img_block img_gray' style='text-align: center;'></div>");
$("<input type='hidden' value='0'/>").appendTo(img2);
$("<img src=\"../../objects/1.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img2);
var img3 = $("<div class='img_block img_gray' style='text-align: center;'></div>");
$("<input type='hidden' value='0'/>").appendTo(img3);
$("<img src=\"../../objects/2.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img3);
var img4 = $("<div class='img_block img_gray' style='text-align: center;'></div>");
$("<input type='hidden' value='1'/>").appendTo(img4);
$("<img src=\"../../objects/3.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img4);
var img5 = $("<div class='img_block img_gray' style='text-align: center;'></div>");
$("<input type='hidden' value='0'/>").appendTo(img5);
$("<img src=\"../../objects/4.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img5);
tmp_array.push(img1, img2, img3, img4, img5);
tmp_array = shuffle(tmp_array);
for(var i = 0; i<tmp_array.length;i++){
tmp_array[i].draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
tmp_array[i].appendTo(imgs_container);
}
imgs_answers.droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if($(this).children()[0].tagName == "IMG")
$(this).children().remove();
else
$(ui.draggable).parent().append($(this).children());
$(this).append($(ui.draggable));
if($(this).children().length == 1){
if($(this).children().find("input").val() == "1")
$(this).removeClass("imgs_answers_gray")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_green");
else
$(this).removeClass("imgs_answers_gray")
.removeClass("imgs_answers_green")
.addClass("imgs_answers_red");
}
}
}
});
imgs_container.droppable({
hoverClass: 'dropBack',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if(this != $(ui.draggable).parent()[0]){
var tmp_cont = $(ui.draggable).parent();
$(this).append($(ui.draggable));
tmp_cont.append("<img src='img/drop_img.png' style='margin-top: 11px;'/>");
var answers = "";
$(this).parent().find(".imgs_answers .img_block").each(function(){
answers += $(this).find("input").val();
});
if(tmp_cont.children()[0].tagName == "IMG")
tmp_cont.removeClass("imgs_answers_green")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_gray");
else
if(tmp_cont.children().length == 1){
if(tmp_cont.children().find("input").val() == "1")
tmp_cont.removeClass("imgs_answers_gray")
.removeClass("imgs_answers_red")
.addClass("imgs_answers_green");
else
tmp_cont.removeClass("imgs_answers_gray")
.removeClass("imgs_answers_green")
.addClass("imgs_answers_red");
}
}
}
}
});
}
//changing the style
function changeStyle(val){
switch(val){
case "1":
$(".b_top_left").removeClass("btl_pad").removeClass("without_back");
$(".b_top_center").removeClass("btc_pad").removeClass("without_back");
$(".b_top_right").removeClass("btr_pad").removeClass("without_back");
$(".b_center_left").removeClass("bcl_pad").removeClass("without_back");
$(".b_center_right").removeClass("bcr_pad").removeClass("without_back");
$(".b_bottom_right").removeClass("bbr_pad").removeClass("without_back");
$(".b_bottom_left").removeClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").removeClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$("#wgt_display").addClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
$(".b_top_center").addClass("btc_pad").removeClass("without_back");
$(".b_top_right").addClass("btr_pad").removeClass("without_back");
$(".b_center_left").addClass("bcl_pad").removeClass("without_back");
$(".b_center_right").addClass("bcr_pad").removeClass("without_back");
$(".b_bottom_right").addClass("bbr_pad").removeClass("without_back");
$(".b_bottom_left").addClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").addClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
$(".b_top_center").addClass("without_back").removeClass("btc_pad");
$(".b_top_right").addClass("without_back").removeClass("btr_pad");
$(".b_center_left").addClass("without_back").removeClass("bcl_pad");
$(".b_center_right").addClass("without_back").removeClass("bcr_pad");
$(".b_bottom_right").addClass("without_back").removeClass("bbr_pad");
$(".b_bottom_left").addClass("without_back").removeClass("bbl_pad");
$(".b_bottom_center").addClass("without_back").removeClass("bbc_pad");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
}
//check result
function checkResult(event)
{
var str = "";
var right_str = $(event.target).find("input").val();
$(event.target).find(".img_block").each(function(){
str += $(this).find("input").val() + "*";
});
if(str == right_str)
$(event.target).css("background-color","#9f9");
}
//add new container
//function addContainer(){
// var container = $("<div class='cont'>");
// var sub_container = $("<div class='sub_cont'>").appendTo(container);
// var imgs_container = $("<div class='imgs_cont'>").appendTo(container);
//
// var close = $("<div class='close_cont'>").appendTo(container);
// var number = $("<div class='number_cont'>"+ ($(".cont").size() + 1) +"</div>").appendTo(sub_container);
// var text = $("<div class='text_cont' contenteditable>" + sankoreLang.enter + "</div>").appendTo(sub_container);
//
// $("<input type='hidden' value='1*2*3*4*5*'/>").appendTo(imgs_container);
// var add_img = $("<div class='add_img'>").appendTo(imgs_container);
// container.insertBefore($(".add_block"));
//}
//add new img block
function addImgBlock(dest){
var img_block = $("<div class='img_block img_gray' ondragenter='return false;' ondragleave='$(this).css(\"background-color\",\"\"); return false;' ondragover='$(this).css(\"background-color\",\"#ccc\"); return false;' ondrop='$(this).css(\"background-color\",\"\"); return onDropTarget(this,event);' style='text-align: center; float: left;'></div>").insertBefore(dest);
$("<div class='close_img'>").appendTo(img_block);
$("<div class='clear_img'>").appendTo(img_block);
$("<div class='true_img'>").appendTo(img_block);
$("<input type='hidden' value='0'/>").appendTo(img_block);
$("<img src='img/drop_img.png' height='120'/>").appendTo(img_block);
}
//function refreshBlockNumbers(){
// var i = 0;
// $(".cont").each(function(){
// $(this).find(".number_cont").text(++i);
// })
//}
//shuffles an array
function shuffle( arr )
{
var pos, tmp;
for( var i = 0; i < arr.length; i++ )
{
pos = Math.round( Math.random() * ( arr.length - 1 ) );
tmp = arr[pos];
arr[pos] = arr[i];
arr[i] = tmp;
}
return arr;
}
function stringToXML(text){
if (window.ActiveXObject){
var doc=new ActiveXObject('Microsoft.XMLDOM');
doc.async='false';
doc.loadXML(text);
} else {
var parser=new DOMParser();
doc=parser.parseFromString(text,'text/xml');
}
return doc;
}
function onDropTarget(obj, event) {
//N/C - NNE - 20140318
var img = $(obj).find("img");
removeAsset(img.attr("src"));
img.remove();
if (event.dataTransfer) {
var format = "text/plain";
var textData = event.dataTransfer.getData(format);
if (!textData) {
alert(":(");
}
textData = stringToXML(textData);
var tmp = textData.getElementsByTagName("path")[0].firstChild.textContent;
var tmp_img = $("<img/>").attr("src", "../../" + tmp);
$(obj).append(tmp_img);
setTimeout(function(){
if(tmp_img.height() >= tmp_img.width())
tmp_img.attr("height", "120");
else{
tmp_img.attr("width","120");
var h = tmp_img.height();
tmp_img.attr("height",h);
tmp_img.css("margin",(120 - tmp_img.height())/2 + "px 0");
}
}, 6)
}
else {
alert ("Your browser does not support the dataTransfer object.");
}
if (event.stopPropagation) {
event.stopPropagation ();
}
else {
event.cancelBubble = true;
}
return false;
}

@ -0,0 +1,16 @@
fr.njin.i18n.document.title = Príklady
fr.njin.i18n.toolbar.edit = Upraviť
fr.njin.i18n.toolbar.view = Zobraziť
fr.njin.i18n.toolbar.reload = Obnoviť
fr.njin.i18n.toolbar.help = Pomoc
fr.njin.i18n.parameters.label.themes = Farebný motív
fr.njin.i18n.parameters.label.slate.themes = bridlica
fr.njin.i18n.parameters.label.pad.themes = tablet
fr.njin.i18n.parameters.label.none.themes = žiadny
fr.njin.i18n.calcul.parameters.label.operator = Znamienko
fr.njin.i18n.calcul.parameters.label.range = Veľkosť
fr.njin.i18n.calcul.parameters.label.count = Počet čísel
fr.njin.i18n.calcul.parameters.label.operations = Počet príkladov

@ -0,0 +1,19 @@
<h3> Príklady </h3>
<h4> Aritmetika, jednoduché úkony </h4>
<p>Táto interaktívna aktivita slúži na pre&shy;cvičenie sčítania, odčítania a&nbsp;násobenia. Treba zadať správne výsledky príkladov. Na kontrolu odpovede použite tlačidlo v&nbsp;tvare fajky.
Ak výsledok nie je správny, výpočet sa zafarbí dočervena. Ak je výsledok správny, výpočet sa zafarbí dozelena.</p>
<p>Po vypočítaní a&nbsp;skontrolovaní všetkých príkladov sa všetky výpočty zobrazia na jednej stránke.</p>
<p>Po stlačení tlačidla Obnoviť sa zobrazia nové príklady.</p>
<p>Po stlačení tlačidla Upraviť môžete v&nbsp;režime úprav zmeniť:</p>
<ul><li>farebný motív na tablet, bridlicu alebo na žiadny (predvolený je tablet), </li>
<li>počtový úkon (sčítanie, odčítanie, násobenie),</li>
<li>veľkosť zobrazovaných čísel,</li>
<li>počet čísel v&nbsp;zadaní príkladu (od 2 &ndash; 4),</li>
<li>počet príkladov (od 2 &ndash; 10).</li></ul>
<p>Výsledky pre účely kontroly si interaktívna aktivita vypočíta automaticky.</p>
<p>Tlačidlom Zobraziť sa z režimu úprav vrátite na aktivitu.</p>

@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<title>D'n'd</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="../../css/basic.css"/>
<script type="text/javascript" src="../../js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="../../js/jquery-ui-1.8.9.custom.min.js"></script>
<script type="text/javascript" src="js/script.js"></script>
<script type="text/javascript">
$(document).ready(function(){
if(window.sankore)
sankore.enableDropOnWidget(false);
start();
});
</script>
</head>
<body>
<table class="body_table" cellpadding=0 cellspacing=0>
<tr style="height: 54px;">
<td class="b_top_left">&nbsp;</td>
<td class="b_top_center">
<div id="wgt_name"></div>
<div id="wgt_help"></div>
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
<tr>
<td class="b_center_left">&nbsp;</td>
<td>
<div id="help"></div>
<div id="data">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
</tr>
<tr style="height: 54px;">
<td class="b_bottom_left">&nbsp;</td>
<td class="b_bottom_center">&nbsp;</td>
<td class="b_bottom_right">&nbsp;</td>
</tr>
</table>
</body>
</html>

@ -0,0 +1,836 @@
var sankoreLang = {
display: "Zobraziť",
edit: "Upraviť",
first_desc: "Nepárne čísla",
second_desc: "Párne čísla",
enter: "Sem zadajte názov kategórie.",
add: "Pridať nový blok",
wgt_name: "Triedenie obrázkov",
reload: "Obnoviť",
slate: "bridlica",
pad: "tablet",
none: "žiadny",
help: "Pomoc",
help_content:
"<p><h2>Triedenie obrázkov</h2></p>" +
"<p><h3>Zaraďte obrázky do správnej kategórie</h3></p>" +
"<p>Úlohou žiakov je kliknúť na každý obrázok a&nbsp;presunúť ho do príslušnej kategórie. Interaktívna aktivita bude vyhodnotená, až keď zaradia všetky obrázky. Pri nesprávnej odpovedi sa priestor okolo obrázkov zafarbí dočervena, pri správnej dozelena.</p>"+
"<p>Tlačidlom „Obnoviť“ vrátite cvičenie do pôvodného stavu.</p>" +
"<p>Po stlačení tlačidla „Upraviť“ môžete v&nbsp;režime úprav:</p>" +
"<ul> <li> zmeniť farebný motív na tablet, bridlicu alebo na žiadny (predvolený je žiadny),</li>" +
"<li>upraviť cvičenie.</li> </ul>" +
"<p>Úprava cvičenia v režime úprav: </p>" +
"<ul> <li> názov kategórie zmeníte tak, že naň kliknete a ten pôvodný prepíšete,</li>" +
"<li> novú kategóriu pridáte kliknutím na „+“,</li>" +
"<li> obrázky z knižnice potiahnite do správnej kategórie,</li>" +
"<li> obrázok vymažete kliknutím na tlačidlo v&nbsp;tvare krížika, ktoré nájdete na jeho ráme,</li>" +
"<li> kategóriu odstránite kliknutím na znamienko „-“ na pravej strane.</li></ul>" +
"<p> Tlačidlom „Zobraziť“ sa z režimu úprav vrátite na aktivitu.</p>",
theme: "Farebný motív"
};
//main function
function start(){
$("#wgt_display").text(sankoreLang.display);
$("#wgt_edit").text(sankoreLang.edit);
$("#wgt_name").text(sankoreLang.wgt_name);
$("#wgt_reload").text(sankoreLang.reload);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
if(window.sankore){
if(sankore.preference("categoriser_images","")){
var data = jQuery.parseJSON(sankore.preference("categoriser_images",""));
importData(data);
} else {
showExample();
}
}
else
showExample();
if (window.widget) {
window.widget.onleave = function(){
exportData();
}
}
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#data").show();
});
} else {
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#data").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
});
}
});
$("#wgt_reload").click(function(){
if($("#wgt_display").hasClass("selected")){
$("#wgt_edit").trigger("click");
$("#wgt_display").trigger("click");
} else {
$("#wgt_display").trigger("click");
}
});
$("#wgt_reload, #wgt_display, #wgt_edit").mouseover(function(){
exportData();
});
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
$("#wgt_display, #wgt_edit").click(function(event){
if(this.id == "wgt_display"){
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$("#parameters").css("display","none");
if(window.sankore)
sankore.enableDropOnWidget(false);
// $(".add_block").remove();
$(".cont").each(function(){
var container = $(this);
var tmp_i = 0;
var tmp_right = "";
var tmp_array = [];
// container.find(".close_cont").remove();
container.find(".imgs_cont").each(function(){
$(this).find(".del_category").remove();
$(this).find(".add_category").remove();
$(this).removeAttr("ondragenter")
.removeAttr("ondragleave")
.removeAttr("ondragover")
.removeAttr("ondrop")
.find(".cat_desc").attr("disabled","disabled");
var tmp_count = $(this).find(".img_block").size();
$(this).find("input[name='count']").val(tmp_count);
$(this).find(".img_block").each(function(){
$(this).find(".close_img").remove();
tmp_array.push($(this));
$(this).remove();
});
$(this).droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
});
$(this).removeAttr("style");
});
var all_imgs = $("<div class='all_imgs'>").appendTo(container);
tmp_array = shuffle(tmp_array);
for(var i = 0; i<tmp_array.length;i++){
tmp_array[i].draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
tmp_array[i].appendTo(all_imgs);
}
all_imgs.droppable({
hoverClass: 'dropBack',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if(this != $(ui.draggable).parent()[0]){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
}
});
});
$(this).css("display", "none");
$("#wgt_edit").css("display", "block");
}
} else {
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$("#parameters").css("display","block");
if(window.sankore)
sankore.enableDropOnWidget(true);
$(".cont").each(function(){
var container = $(this);
// $("<div class='close_cont'>").appendTo(container);
container.find(".imgs_cont").each(function(){
$("<button class='del_category'></button>").appendTo($(this));
$("<button class='add_category'></button>").appendTo($(this));
$(this).attr("ondragenter", "return false;")
.attr("ondragleave", "$(this).css(\"background-color\",\"#E6F6FF\"); return false;")
.attr("ondragover", "$(this).css(\"background-color\",\"#C3E9FF\"); return false;")
.attr("ondrop", "$(this).css(\"background-color\",\"#E6F6FF\"); return onDropTarget(this,event);")
.removeClass("red_cont")
.removeClass("green_cont")
.addClass("def_cont")
.droppable("destroy")
.find(".cat_desc").removeAttr("disabled");
var tmp_img_cont = $(this);
var tmp_mask = $(this).find("input[name='mask']").val();
container.find(".img_block").each(function(){
if($(this).find("input").val() == tmp_mask){
$("<div class='close_img'>").appendTo($(this));
$(this).appendTo(tmp_img_cont);
}
});
});
container.find(".all_imgs").remove();
});
// $("<div class='add_block'>" + sankoreLang.add + "</div>").appendTo("#data");
$(this).css("display", "none");
$("#wgt_display").css("display", "block");
}
}
});
//add new block
// $(".add_block").live("click", function(){
// addContainer();
// });
//adding new img
$(".add_img").live("click", function(){
addImgBlock($(this));
});
//deleting a block
// $(".close_cont").live("click",function(){
// $(this).parent().remove();
// refreshBlockNumbers();
// });
//deleting the img block
$(".close_img").live("click", function(){
var img = $(this).parent().children('img');
//N/C - NNE - 20140314 : deleting the image on the disk
sankore.removeFile(img.attr('src'));
$(this).parent().remove();
});
//adding new category
$(".add_category").live("click",function(){
addCategory($(this).parent());
});
//deleting the category
$(".del_category").live("click",function(){
if($(this).parent().parent().find(".imgs_cont").size() == 1){
//N/C - NNE - 20140314 : deleting the images on the disk
var imgBlock = $(this).parent().find(".img_block");
var img = imgBlock.find('img');
for(var i = 0; i < img.length; i++){
sankore.removeFile(img.attr('src'));
}
$(this).parent().find(".cat_desc").val(sankoreLang.enter);
} else {
//N/C - NNE - 20140314 : deleting the images on the disk
var img = $(this).parent().find('img');
img.each(function(){
sankore.removeFile($(this).attr('src'));
});
$(this).parent().remove();
}
});
}
//export
function exportData(){
var array_to_export = [];
if($("#wgt_edit").hasClass("selected")){
$(".cont").each(function(){
var cont_obj = new Object();
cont_obj.style = $("#style_select").find("option:selected").val();
cont_obj.mode = "edit";
cont_obj.conts = [];
$(this).find(".imgs_cont").each(function(){
var img_cont = new Object();
img_cont.mask = $(this).find("input[name='mask']").val();
img_cont.count = $(this).find(".img_block").size();
img_cont.text = $(this).find(".cat_desc").val();
img_cont.imgs = [];
$(this).find(".img_block").each(function(){
var img_obj = new Object();
img_obj.value = $(this).find("input").val();
img_obj.link = $(this).find("img").attr("src").replace("../../","");
img_obj.ht = $(this).find("img").height();
img_obj.wd = $(this).find("img").width();
img_cont.imgs.push(img_obj);
});
cont_obj.conts.push(img_cont);
});
array_to_export.push(cont_obj);
});
} else {
$(".cont").each(function(){
var cont_obj = new Object();
cont_obj.style = $("#style_select").find("option:selected").val();
cont_obj.mode = "display";
cont_obj.conts = [];
$(this).find(".imgs_cont").each(function(){
var img_cont = new Object();
img_cont.mask = $(this).find("input[name='mask']").val();
img_cont.count = $(this).find("input[name='count']").val();
img_cont.text = $(this).find(".cat_desc").val();
img_cont.imgs = [];
$(this).find(".img_block").each(function(){
var img_obj = new Object();
img_obj.value = $(this).find("input").val();
img_obj.link = $(this).find("img").attr("src").replace("../../","");
img_obj.ht = $(this).find("img").height();
img_obj.wd = $(this).find("img").width();
img_cont.imgs.push(img_obj);
});
cont_obj.conts.push(img_cont);
});
cont_obj.all_imgs = [];
$(this).find(".all_imgs .img_block").each(function(){
var img = new Object();
img.value = $(this).find("input").val();
img.link = $(this).find("img").attr("src").replace("../../","");
img.ht = $(this).find("img").height();
img.wd = $(this).find("img").width();
cont_obj.all_imgs.push(img);
});
array_to_export.push(cont_obj);
});
}
if($(".cont").size() == 0){
var cont_obj = new Object();
cont_obj.style = $("#style_select").find("option:selected").val();
cont_obj.tmp = "clear";
array_to_export.push(cont_obj);
}
if(window.sankore)
sankore.setPreference("categoriser_images", JSON.stringify(array_to_export));
}
//import
function importData(data){
for(var i in data){
if(data[i].tmp){
changeStyle(data[i].style);
$("#style_select").val(data[i].style);
} else {
if(i == 0){
changeStyle(data[i].style);
$("#style_select").val(data[i].style);
}
if(data[i].mode == "edit"){
var tmp_array = [];
var container = $("<div class='cont'>");
var sub_container = $("<div class='sub_cont'>").appendTo(container);
// $("<div class='number_cont'>"+ (++tmp) +"</div>").appendTo(sub_container);
for(var j in data[i].conts){
var imgs_container = $("<div class='imgs_cont def_cont'>").appendTo(container);
$("<input type='hidden' name='mask' value='" + data[i].conts[j].mask + "'/>").appendTo(imgs_container);
$("<input type='hidden' name='count' value='" + data[i].conts[j].count + "'/>").appendTo(imgs_container);
var tmp_div = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container);
// Issue 1516 - CFA - 20131029 : gestion des quotes dans le input
html_text = data[i].conts[j].text.replace(/"/g, '&quot;');
$('<input type="text" class="cat_desc" value="' + html_text + '" disabled/>').appendTo(tmp_div);
for(var k in data[i].conts[j].imgs){
var block_img = $("<div class='img_block' style='text-align: center;'></div>");
$("<input type='hidden' value='" + data[i].conts[j].imgs[k].value + "'/>").appendTo(block_img);
var img = $("<img src=\"../../" + data[i].conts[j].imgs[k].link + "\" style=\"display: inline;\"/>").appendTo(block_img);
img.height(data[i].conts[j].imgs[k].ht);
if((120 - data[i].conts[j].imgs[k].ht) > 0)
img.css("margin",(120 - data[i].conts[j].imgs[k].ht)/2 + "px 0");
tmp_array.push(block_img);
}
imgs_container.droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
});
}
var all_imgs = $("<div class='all_imgs'>").appendTo(container);
tmp_array = shuffle(tmp_array);
for(j in tmp_array){
tmp_array[j].draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
tmp_array[j].appendTo(all_imgs);
}
all_imgs.sortable();
all_imgs.droppable({
hoverClass: 'dropBack',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if(this != $(ui.draggable).parent()[0]){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
}
});
container.appendTo("#data");
} else {
container = $("<div class='cont'>");
sub_container = $("<div class='sub_cont'>").appendTo(container);
// $("<div class='number_cont'>" + (++tmp) + "</div>").appendTo(sub_container);
for(j in data[i].conts){
var tmp_img_array = [];
imgs_container = $("<div class='imgs_cont def_cont'>").appendTo(container);
$("<input type='hidden' name='mask' value='" + data[i].conts[j].mask + "'/>").appendTo(imgs_container);
$("<input type='hidden' name='count' value='" + data[i].conts[j].count + "'/>").appendTo(imgs_container);
tmp_div = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container);
// Issue 1516 - CFA - 20131029 : gestion des quotes dans le input
html_text = data[i].conts[j].text.replace(/"/g, '&quot;');
$('<input type="text" class="cat_desc" value="' + html_text + '" disabled/>').appendTo(tmp_div);
for(k in data[i].conts[j].imgs){
block_img = $("<div class='img_block' style='text-align: center;'></div>");
$("<input type='hidden' value='" + data[i].conts[j].imgs[k].value + "'/>").appendTo(block_img);
img = $("<img src=\"../../" + data[i].conts[j].imgs[k].link + "\" style=\"display: inline;\"/>").appendTo(block_img);
img.height(data[i].conts[j].imgs[k].ht);
if((120 - data[i].conts[j].imgs[k].ht) > 0)
img.css("margin",(120 - data[i].conts[j].imgs[k].ht)/2 + "px 0");
tmp_img_array.push(block_img);
}
tmp_img_array = shuffle(tmp_img_array);
for(k in tmp_img_array){
tmp_img_array[k].draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
tmp_img_array[k].appendTo(imgs_container);
}
imgs_container.droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
});
}
all_imgs = $("<div class='all_imgs'>").appendTo(container);
var all_imgs_arr = [];
for(j in data[i].all_imgs){
block_img = $("<div class='img_block' style='text-align: center;'></div>");
$("<input type='hidden' value='" + data[i].all_imgs[j].value + "'/>").appendTo(block_img);
img = $("<img src=\"../../" + data[i].all_imgs[j].link + "\" style=\"display: inline;\"/>").appendTo(block_img);
img.height(data[i].all_imgs[j].ht);
if((120 - data[i].all_imgs[j].ht) > 0)
img.css("margin",(120 - data[i].all_imgs[j].ht)/2 + "px 0");
all_imgs_arr.push(block_img);
}
all_imgs_arr = shuffle(all_imgs_arr);
for(k in all_imgs_arr){
all_imgs_arr[k].draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
all_imgs_arr[k].appendTo(all_imgs);
}
all_imgs.sortable();
all_imgs.droppable({
hoverClass: 'dropBack',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if(this != $(ui.draggable).parent()[0]){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
}
});
container.appendTo("#data");
checkCorrectness(all_imgs);
}
}
}
}
//example
function showExample(){
changeStyle("3");
var tmp_array = [];
var container = $("<div class='cont'>").appendTo("#data");
var sub_container = $("<div class='sub_cont'>").appendTo(container);
var imgs_container_one = $("<div class='imgs_cont def_cont'>").appendTo(container);
var imgs_container_two = $("<div class='imgs_cont def_cont'>").appendTo(container);
var all_imgs = $("<div class='all_imgs'>").appendTo(container);
// var number = $("<div class='number_cont'>1</div>").appendTo(sub_container);
$("<input type='hidden' name='mask' value='1'/>").appendTo(imgs_container_one);
$("<input type='hidden' name='count' value='2'/>").appendTo(imgs_container_one);
var tmp_div_one = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container_one);
$("<input type='text' class='cat_desc' value='" + sankoreLang.first_desc + "' disabled/>").appendTo(tmp_div_one);
$("<input type='hidden' name='mask' value='2'/>").appendTo(imgs_container_two);
$("<input type='hidden' name='count' value='3'/>").appendTo(imgs_container_two);
var tmp_div_two = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container_two);
$("<input type='text' class='cat_desc' value='" + sankoreLang.second_desc + "' disabled/>").appendTo(tmp_div_two);
var img1 = $("<div class='img_block' style='text-align: center;'></div>");
$("<input type='hidden' value='2'/>").appendTo(img1);
$("<img src=\"../../objects/0.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img1);
var img2 = $("<div class='img_block' style='text-align: center;'></div>");
$("<input type='hidden' value='1'/>").appendTo(img2);
$("<img src=\"../../objects/1.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img2);
var img3 = $("<div class='img_block' style='text-align: center;'></div>");
$("<input type='hidden' value='2'/>").appendTo(img3);
$("<img src=\"../../objects/2.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img3);
var img4 = $("<div class='img_block' style='text-align: center;'></div>");
$("<input type='hidden' value='1'/>").appendTo(img4);
$("<img src=\"../../objects/3.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img4);
var img5 = $("<div class='img_block' style='text-align: center;'></div>");
$("<input type='hidden' value='2'/>").appendTo(img5);
$("<img src=\"../../objects/4.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img5);
tmp_array.push(img1, img2, img3, img4, img5);
tmp_array = shuffle(tmp_array);
for(var i = 0; i<tmp_array.length;i++){
tmp_array[i].draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
tmp_array[i].appendTo(all_imgs);
}
all_imgs.sortable();
imgs_container_one.droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
});
imgs_container_two.droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
});
all_imgs.droppable({
hoverClass: 'dropBack',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if(this != $(ui.draggable).parent()[0]){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
}
});
}
//function that allows to add new category
function addCategory(obj){
var imgs_container = $("<div class='imgs_cont def_cont'>").insertAfter(obj);
$("<input type='hidden' name='mask' value='" + returnId() + "'/>").appendTo(imgs_container);
$("<input type='hidden' name='count' value=''/>").appendTo(imgs_container);
var tmp_div = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container);
$("<input type='text' class='cat_desc' value='" + sankoreLang.enter + "'>").appendTo(tmp_div);
$("<button class='del_category'></button>").appendTo(imgs_container);
$("<button class='add_category'></button>").appendTo(imgs_container);
imgs_container.attr("ondragenter", "return false;")
.attr("ondragleave", "$(this).css(\"background-color\",\"#e6f6ff\"); return false;")
.attr("ondragover", "$(this).css(\"background-color\",\"#c3e9ff\"); return false;")
.attr("ondrop", "$(this).css(\"background-color\",\"#e6f6ff\"); return onDropTarget(this,event);");
}
//add new container
//function addContainer(){
// var container = $("<div class='cont'>");
// var sub_container = $("<div class='sub_cont'>").appendTo(container);
// var imgs_container = $("<div class='imgs_cont def_cont'>").appendTo(container);
//
// var close = $("<div class='close_cont'>").appendTo(container);
// var number = $("<div class='number_cont'>"+ ($(".cont").size() + 1) +"</div>").appendTo(sub_container);
//
// $("<input type='hidden' name='mask' value='" + returnId() + "'/>").appendTo(imgs_container);
// $("<input type='hidden' name='count' value=''/>").appendTo(imgs_container);
// var tmp_div = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container);
// $("<input type='text' class='cat_desc' value='" + sankoreLang.enter + "'/>").appendTo(tmp_div);
// $("<button class='del_category'></button>").appendTo(imgs_container);
// $("<button class='add_category'></button>").appendTo(imgs_container);
// imgs_container.attr("ondragenter", "return false;")
// .attr("ondragleave", "$(this).css(\"background-color\",\"#e6f6ff\"); return false;")
// .attr("ondragover", "$(this).css(\"background-color\",\"#c3e9ff\"); return false;")
// .attr("ondrop", "$(this).css(\"background-color\",\"#e6f6ff\"); return onDropTarget(this,event);");
// container.insertBefore($(".add_block"));
//}
//function refreshBlockNumbers(){
// var i = 0;
// $(".cont").each(function(){
// $(this).find(".number_cont").text(++i);
// })
//}
//shuffles an array
function shuffle( arr )
{
var pos, tmp;
for( var i = 0; i < arr.length; i++ )
{
pos = Math.round( Math.random() * ( arr.length - 1 ) );
tmp = arr[pos];
arr[pos] = arr[i];
arr[i] = tmp;
}
return arr;
}
//changing the style
function changeStyle(val){
switch(val){
case "1":
$(".b_top_left").removeClass("btl_pad").removeClass("without_back");
$(".b_top_center").removeClass("btc_pad").removeClass("without_back");
$(".b_top_right").removeClass("btr_pad").removeClass("without_back");
$(".b_center_left").removeClass("bcl_pad").removeClass("without_back");
$(".b_center_right").removeClass("bcr_pad").removeClass("without_back");
$(".b_bottom_right").removeClass("bbr_pad").removeClass("without_back");
$(".b_bottom_left").removeClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").removeClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$("#wgt_display").addClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
$(".b_top_center").addClass("btc_pad").removeClass("without_back");
$(".b_top_right").addClass("btr_pad").removeClass("without_back");
$(".b_center_left").addClass("bcl_pad").removeClass("without_back");
$(".b_center_right").addClass("bcr_pad").removeClass("without_back");
$(".b_bottom_right").addClass("bbr_pad").removeClass("without_back");
$(".b_bottom_left").addClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").addClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
$(".b_top_center").addClass("without_back").removeClass("btc_pad");
$(".b_top_right").addClass("without_back").removeClass("btr_pad");
$(".b_center_left").addClass("without_back").removeClass("bcl_pad");
$(".b_center_right").addClass("without_back").removeClass("bcr_pad");
$(".b_bottom_right").addClass("without_back").removeClass("bbr_pad");
$(".b_bottom_left").addClass("without_back").removeClass("bbl_pad");
$(".b_bottom_center").addClass("without_back").removeClass("bbc_pad");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
}
function stringToXML(text){
if (window.ActiveXObject){
var doc=new ActiveXObject('Microsoft.XMLDOM');
doc.async='false';
doc.loadXML(text);
} else {
var parser=new DOMParser();
doc=parser.parseFromString(text,'text/xml');
}
return doc;
}
//return id
function returnId(){
var tmp = Math.random().toString();
return tmp.substr(2);
}
//a func for checking when smth will drop
function checkOnDrop(dest){
var tmp_count = dest.find("input[name='count']").val();
var tmp_mask = dest.find("input[name='mask']").val();
if(dest.find(".img_block").size() == tmp_count){
var tmp_right = true;
dest.find(".img_block").each(function(){
if($(this).find("input").val() != tmp_mask)
tmp_right = false;
});
if(tmp_right)
dest.removeClass("def_cont").removeClass("red_cont").addClass("green_cont");
else
dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont");
} else
dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont");
}
//checking source on correctness
function checkCorrectness(source){
if(!source.hasClass("all_imgs")){
if(source.parent().find(".all_imgs").find(".img_block").size() == 0){
source.parent().find(".imgs_cont").each(function(){
checkOnDrop($(this))
})
} else {
source.parent().find(".imgs_cont").each(function(){
$(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont");
})
}
} else {
if(source.find(".img_block").size() > 0){
source.parent().find(".imgs_cont").each(function(){
$(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont");
})
} else {
source.parent().find(".imgs_cont").each(function(){
checkOnDrop($(this))
})
}
}
}
function onDropTarget(obj, event) {
if (event.dataTransfer) {
var format = "text/plain";
var textData = event.dataTransfer.getData(format);
if (!textData) {
alert(":(");
}
textData = stringToXML(textData);
if(textData.getElementsByTagName("ready")[0].firstChild.textContent == "true"){
var tmp = textData.getElementsByTagName("path")[0].firstChild.textContent;
var img_block = $("<div class='img_block' style='text-align: center;'>");
$("<div class='close_img'>").appendTo(img_block);
$("<input type='hidden' value='" + $(obj).find("input[name='mask']").val() + "'/>").appendTo(img_block);
var tmp_img = $("<img style='display: inline;'/>").attr("src", "../../" + tmp).appendTo(img_block);
img_block.draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
$(obj).append(img_block);
if(tmp_img.height() == 0){
var tmp_id = setInterval(function(){
if(tmp_img.height() != 0){
if(tmp_img.height() >= tmp_img.width())
tmp_img.attr("height", "120");
else{
tmp_img.attr("width","120");
var h = tmp_img.height();
tmp_img.attr("height",h);
tmp_img.css("margin",(120 - tmp_img.height())/2 + "px 0");
}
clearInterval(tmp_id);
}
}, 10);
} else {
if(tmp_img.height() >= tmp_img.width())
tmp_img.attr("height", "120");
else{
tmp_img.attr("width","120");
var h = tmp_img.height();
tmp_img.attr("height",h);
tmp_img.css("margin",(120 - tmp_img.height())/2 + "px 0");
}
}
}
}
else {
alert ("Your browser does not support the dataTransfer object.");
}
if (event.stopPropagation) {
event.stopPropagation ();
}
else {
event.cancelBubble = true;
}
return false;
}

@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<title>D'n'd</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="../../css/basic.css"/>
<script type="text/javascript" src="../../js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="../../js/jquery-ui-1.8.9.custom.min.js"></script>
<script type="text/javascript" src="js/script.js"></script>
<script type="text/javascript">
$(document).ready(function(){
if(window.sankore)
sankore.enableDropOnWidget(false);
start();
});
</script>
</head>
<body>
<table class="body_table" cellpadding=0 cellspacing=0>
<tr style="height: 54px;">
<td class="b_top_left">&nbsp;</td>
<td class="b_top_center">
<div id="wgt_name"></div>
<div id="wgt_help"></div>
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
<tr>
<td class="b_center_left">&nbsp;</td>
<td>
<div id="help"></div>
<div id="data">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
</tr>
<tr style="height: 54px;">
<td class="b_bottom_left">&nbsp;</td>
<td class="b_bottom_center">&nbsp;</td>
<td class="b_bottom_right">&nbsp;</td>
</tr>
</table>
</body>
</html>

@ -0,0 +1,753 @@
var sankoreLang = {
display: "Zobraziť",
edit: "Upraviť",
first_desc: "Ovocie",
second_desc: "Zelenina",
potatoes: "zemiak",
carrot: "mrkva",
onion: "cibuľa",
apple: "jablko",
pear: "hruška",
enter: "Sem zadajte názov kategórie.",
add: "Pridať nový blok",
text: "Nejaký text",
wgt_name: "Triedenie textu",
reload: "Obnoviť",
slate: "bridlica",
pad: "tablet",
none: "žiadny",
help: "Pomoc",
help_content:
"<p><h2>Triedenie textu</h2></p>" +
"<p><h3>Zaraďte slová do správnej kategórie</h3></p>" +
"<p>Úlohou žiakov je kliknúť na každé slovo a&nbsp;presunúť ho do príslušnej kategórie. Interaktívna aktivita bude vyhodnotená, až keď zaradia všetky slová. Pri nesprávnom zaradení sa kategória zafarbí dočervena, pri správnom dozelena.</p>" +
"<p>Tlačidlom „Obnoviť“ vrátite cvičenie do pôvodného stavu.</p>" +
"<p>Po stlačení tlačidla „Upraviť“ môžete v&nbsp;režime úprav:</p>" +
"<ul><li> zmeniť farebný motív na tablet, bridlicu alebo na žiadny (predvolený je žiadny),</li>" +
"<li>upraviť cvičenie.</li> </ul>" +
"<p>Úprava cvičenia v režime úprav: </p>" +
"<ul><li>názov kategórie zmeníte tak, že naň kliknete a&nbsp;ten pôvodný prepíšete,</li>" +
"<li>novú kategóriu pridáte kliknutím na „(malé) +“,</li>" +
"<li>nové slovo pridáte kliknutím na „(veľké) +“ v&nbsp;príslušnej kategórii,</li>" +
"<li>textové pole môžete upraviť, keď naň kliknite,</li>" +
"<li>slovo vymažete kliknutím na tlačidlo s krížikom na ráme štítka,</li>" +
"<li>kategóriu odstránite kliknutím na znamienko „-“ na pravej strane.</li></ul>" +
"<p>Tlačidlom „Zobraziť“ sa z režimu úprav vrátite na aktivitu.</p>",
theme: "Farebný motív"
};
//main function
function start(){
$("#wgt_display").text(sankoreLang.display);
$("#wgt_edit").text(sankoreLang.edit);
$("#wgt_name").text(sankoreLang.wgt_name);
$("#wgt_reload").text(sankoreLang.reload);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
if(window.sankore){
if(sankore.preference("categoriser_text","")){
var data = jQuery.parseJSON(sankore.preference("categoriser_text",""));
importData(data);
} else {
showExample();
}
}
else
showExample();
if (window.widget) {
window.widget.onleave = function(){
exportData();
}
}
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#data").show();
});
} else {
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#data").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
});
}
});
$("#wgt_reload").click(function(){
if($("#wgt_display").hasClass("selected")){
$("#wgt_edit").trigger("click");
$("#wgt_display").trigger("click");
} else {
$("#wgt_display").trigger("click");
}
});
$("#wgt_reload, #wgt_display, #wgt_edit").mouseover(function(){
exportData();
});
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
$("#wgt_display, #wgt_edit").click(function(event){
if(this.id == "wgt_display"){
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$("#parameters").css("display","none");
// $(".add_block").remove();
$(".cont").each(function(){
var container = $(this);
var tmp_i = 0;
var tmp_right = "";
var tmp_array = [];
// container.find(".close_cont").remove();
container.find(".imgs_cont").each(function(){
$(this).find(".del_category").remove();
$(this).find(".add_img").remove();
$(this).find(".add_category").remove();
$(this).removeAttr("ondragenter")
.removeAttr("ondragleave")
.removeAttr("ondragover")
.removeAttr("ondrop")
.find(".cat_desc").attr("disabled","disabled");
var tmp_count = $(this).find(".img_block").size();
$(this).find("input[name='count']").val(tmp_count);
$(this).find(".img_block").each(function(){
$(this).find(".close_img").remove();
var tmp_text = $(this).find(".text_cont");
tmp_text.removeAttr("contenteditable")
.css("margin", ($(this).height() - tmp_text.height())/2 + "px 0px");
tmp_array.push($(this));
$(this).remove();
});
$(this).droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
});
$(this).removeAttr("style");
});
var all_imgs = $("<div class='all_imgs'>").appendTo(container);
tmp_array = shuffle(tmp_array);
for(var i = 0; i<tmp_array.length;i++){
tmp_array[i].draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
tmp_array[i].appendTo(all_imgs);
}
all_imgs.droppable({
hoverClass: 'dropBack',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if(this != $(ui.draggable).parent()[0]){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
}
});
});
$(this).css("display", "none");
$("#wgt_edit").css("display", "block");
}
} else {
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$("#parameters").css("display","block");
$(".cont").each(function(){
var container = $(this);
// $("<div class='close_cont'>").appendTo(container);
container.find(".imgs_cont").each(function(){
$("<button class='del_category'></button>").appendTo($(this));
$("<button class='add_category'></button>").appendTo($(this));
$(this).removeClass("red_cont")
.removeClass("green_cont")
.addClass("def_cont")
.droppable("destroy")
.find(".cat_desc").removeAttr("disabled");
var tmp_img_cont = $(this);
var tmp_mask = $(this).find("input[name='mask']").val();
container.find(".img_block").each(function(){
$(this).draggable("destroy")
.find(".text_cont").attr("contenteditable","true")
.removeAttr("style");
if($(this).find("input").val() == tmp_mask){
$("<div class='close_img'>").appendTo($(this));
$(this).appendTo(tmp_img_cont);
}
});
$("<div class='add_img'>").appendTo($(this));
});
container.find(".all_imgs").remove();
});
// $("<div class='add_block'>" + sankoreLang.add + "</div>").appendTo("#data");
$(this).css("display", "none");
$("#wgt_display").css("display", "block");
}
}
});
// //add new block
// $(".add_block").live("click", function(){
// addContainer();
// });
//adding new img
$(".add_img").live("click", function(){
addText($(this).parent(), $(this));
});
// //deleting a block
// $(".close_cont").live("click",function(){
// $(this).parent().remove();
// refreshBlockNumbers();
// });
//deleting the img block
$(".close_img").live("click", function(){
$(this).parent().remove();
});
//adding new category
$(".add_category").live("click",function(){
addCategory($(this).parent());
});
//deleting the category
$(".del_category").live("click",function(){
if($(this).parent().parent().find(".imgs_cont").size() == 1){
$(this).parent().find(".img_block").remove();
$(this).parent().find(".cat_desc").val(sankoreLang.enter);
} else {
$(this).parent().remove();
}
});
}
//export
function exportData(){
var array_to_export = [];
if($("#wgt_edit").hasClass("selected")){
$(".cont").each(function(){
var cont_obj = new Object();
cont_obj.mode = "edit";
cont_obj.conts = [];
$(this).find(".imgs_cont").each(function(){
var img_cont = new Object();
cont_obj.style = $("#style_select").find("option:selected").val();
img_cont.mask = $(this).find("input[name='mask']").val();
img_cont.count = $(this).find(".img_block").size();
img_cont.text = $(this).find(".cat_desc").val();
img_cont.imgs = [];
$(this).find(".img_block").each(function(){
var img_obj = new Object();
img_obj.value = $(this).find("input").val();
img_obj.text = $(this).find(".text_cont").text();
img_cont.imgs.push(img_obj);
});
cont_obj.conts.push(img_cont);
});
array_to_export.push(cont_obj);
});
} else {
$(".cont").each(function(){
var cont_obj = new Object();
cont_obj.mode = "display";
cont_obj.conts = [];
$(this).find(".imgs_cont").each(function(){
var img_cont = new Object();
cont_obj.style = $("#style_select").find("option:selected").val();
img_cont.mask = $(this).find("input[name='mask']").val();
img_cont.count = $(this).find("input[name='count']").val();
img_cont.text = $(this).find(".cat_desc").val();
img_cont.imgs = [];
$(this).find(".img_block").each(function(){
var img_obj = new Object();
img_obj.value = $(this).find("input").val();
img_obj.text = $(this).find(".text_cont").text();
img_cont.imgs.push(img_obj);
});
cont_obj.conts.push(img_cont);
});
cont_obj.all_imgs = [];
$(this).find(".all_imgs .img_block").each(function(){
var img = new Object();
img.value = $(this).find("input").val();
img.text = $(this).find(".text_cont").text();
cont_obj.all_imgs.push(img);
});
array_to_export.push(cont_obj);
});
}
if($(".cont").size() == 0){
var cont_obj = new Object();
cont_obj.style = $("#style_select").find("option:selected").val();
cont_obj.tmp = "clear";
array_to_export.push(cont_obj);
}
if(window.sankore)
sankore.setPreference("categoriser_text", JSON.stringify(array_to_export));
}
//import
function importData(data){
for(var i in data){
if(data[i].tmp){
changeStyle(data[i].style);
$("#style_select").val(data[i].style);
}
else {
if(i == 0){
changeStyle(data[i].style);
$("#style_select").val(data[i].style);
}
if(data[i].mode == "edit"){
var tmp_array = [];
var container = $("<div class='cont'>").appendTo("#data");
var sub_container = $("<div class='sub_cont'>").appendTo(container);
// $("<div class='number_cont'>"+ (++tmp) +"</div>").appendTo(sub_container);
for(var j in data[i].conts){
var imgs_container = $("<div class='imgs_cont def_cont'>").appendTo(container);
$("<input type='hidden' name='mask' value='" + data[i].conts[j].mask + "'/>").appendTo(imgs_container);
$("<input type='hidden' name='count' value='" + data[i].conts[j].count + "'/>").appendTo(imgs_container);
var tmp_div = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container);
// Issue 1516 - CFA - 20131029 : gestion des quotes dans le input
html_text = data[i].conts[j].text.replace(/"/g, '&quot;');
$('<input type="text" class="cat_desc" value="' + html_text + '" disabled/>').appendTo(tmp_div);
for(var k in data[i].conts[j].imgs){
var block_img = $("<div class='img_block' style='text-align: center;'></div>");
$("<input type='hidden' value='" + data[i].conts[j].imgs[k].value + "'/>").appendTo(block_img);
$("<div class='text_cont'>" + data[i].conts[j].imgs[k].text + "</div>").appendTo(block_img);
tmp_array.push(block_img);
}
imgs_container.droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
});
}
var all_imgs = $("<div class='all_imgs'>").appendTo(container);
tmp_array = shuffle(tmp_array);
for(j in tmp_array){
tmp_array[j].draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
tmp_array[j].appendTo(all_imgs);
var tmp_text = tmp_array[j].find(".text_cont");
tmp_text.css("margin", (tmp_array[j].height() - tmp_text.height())/2 + "px 0px");
}
all_imgs.sortable();
all_imgs.droppable({
hoverClass: 'dropBack',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if(this != $(ui.draggable).parent()[0]){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
}
});
} else {
container = $("<div class='cont'>").appendTo("#data");
sub_container = $("<div class='sub_cont'>").appendTo(container);
// $("<div class='number_cont'>" + (++tmp) + "</div>").appendTo(sub_container);
for(j in data[i].conts){
var tmp_img_array = [];
imgs_container = $("<div class='imgs_cont def_cont'>").appendTo(container);
$("<input type='hidden' name='mask' value='" + data[i].conts[j].mask + "'/>").appendTo(imgs_container);
$("<input type='hidden' name='count' value='" + data[i].conts[j].count + "'/>").appendTo(imgs_container);
tmp_div = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container);
// Issue 1516 - CFA - 20131029 : gestion des quotes dans le input
html_text = data[i].conts[j].text.replace(/"/g, '&quot;');
$('<input type="text" class="cat_desc" value="' + html_text + '" disabled/>').appendTo(tmp_div);
for(k in data[i].conts[j].imgs){
block_img = $("<div class='img_block' style='text-align: center;'></div>");
$("<input type='hidden' value='" + data[i].conts[j].imgs[k].value + "'/>").appendTo(block_img);
$("<div class='text_cont'>" + data[i].conts[j].imgs[k].text + "</div>").appendTo(block_img);
tmp_img_array.push(block_img);
}
tmp_img_array = shuffle(tmp_img_array);
for(k in tmp_img_array){
tmp_img_array[k].draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
tmp_img_array[k].appendTo(imgs_container);
tmp_text = tmp_img_array[k].find(".text_cont");
tmp_text.css("margin", (tmp_img_array[k].height() - tmp_text.height())/2 + "px 0px");
}
imgs_container.droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
});
}
all_imgs = $("<div class='all_imgs'>").appendTo(container);
var all_imgs_arr = [];
for(j in data[i].all_imgs){
block_img = $("<div class='img_block' style='text-align: center;'></div>");
$("<input type='hidden' value='" + data[i].all_imgs[j].value + "'/>").appendTo(block_img);
$("<div class='text_cont'>" + data[i].all_imgs[j].text + "</div>").appendTo(block_img);
all_imgs_arr.push(block_img);
}
all_imgs_arr = shuffle(all_imgs_arr);
for(k in all_imgs_arr){
all_imgs_arr[k].draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
all_imgs_arr[k].appendTo(all_imgs);
tmp_text = all_imgs_arr[k].find(".text_cont");
tmp_text.css("margin", (all_imgs_arr[k].height() - tmp_text.height())/2 + "px 0px");
}
all_imgs.sortable();
all_imgs.droppable({
hoverClass: 'dropBack',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if(this != $(ui.draggable).parent()[0]){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
}
});
checkCorrectness(all_imgs);
}
}
}
}
//example
function showExample(){
changeStyle("3");
var tmp_array = [];
var container = $("<div class='cont'>").appendTo("#data");
var sub_container = $("<div class='sub_cont'>").appendTo(container);
var imgs_container_one = $("<div class='imgs_cont def_cont'>").appendTo(container);
var imgs_container_two = $("<div class='imgs_cont def_cont'>").appendTo(container);
var all_imgs = $("<div class='all_imgs'>").appendTo(container);
// var number = $("<div class='number_cont'>1</div>").appendTo(sub_container);
$("<input type='hidden' name='mask' value='1'/>").appendTo(imgs_container_one);
$("<input type='hidden' name='count' value='2'/>").appendTo(imgs_container_one);
var tmp_div_one = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container_one);
$("<input type='text' class='cat_desc' value='" + sankoreLang.first_desc + "' disabled/>").appendTo(tmp_div_one);
$("<input type='hidden' name='mask' value='2'/>").appendTo(imgs_container_two);
$("<input type='hidden' name='count' value='3'/>").appendTo(imgs_container_two);
var tmp_div_two = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container_two);
$("<input type='text' class='cat_desc' value='" + sankoreLang.second_desc + "' disabled/>").appendTo(tmp_div_two);
var text1 = $("<div class='img_block' style='text-align: center;'></div>");
$("<input type='hidden' value='2'/>").appendTo(text1);
$("<div class='text_cont'>" + sankoreLang.potatoes + "</div>").appendTo(text1);
var text2 = $("<div class='img_block' style='text-align: center;'></div>");
$("<input type='hidden' value='1'/>").appendTo(text2);
$("<div class='text_cont'>" + sankoreLang.apple + "</div>").appendTo(text2);
var text3 = $("<div class='img_block' style='text-align: center;'></div>");
$("<input type='hidden' value='2'/>").appendTo(text3);
$("<div class='text_cont'>" + sankoreLang.carrot + "</div>").appendTo(text3);
var text4 = $("<div class='img_block' style='text-align: center;'></div>");
$("<input type='hidden' value='1'/>").appendTo(text4);
$("<div class='text_cont'>" + sankoreLang.pear + "</div>").appendTo(text4);
var text5 = $("<div class='img_block' style='text-align: center;'></div>");
$("<input type='hidden' value='2'/>").appendTo(text5);
$("<div class='text_cont'>" + sankoreLang.onion + "</div>").appendTo(text5);
tmp_array.push(text1, text2, text3, text4, text5);
tmp_array = shuffle(tmp_array);
for(var i = 0; i<tmp_array.length;i++){
tmp_array[i].draggable({
helper:'clone',
zIndex:100,
appendTo: '#data'
});
tmp_array[i].find(".text_cont").css("margin", "21px 0px");
tmp_array[i].appendTo(all_imgs);
}
all_imgs.sortable();
imgs_container_one.droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
});
imgs_container_two.droppable({
hoverClass: 'dropHere',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
});
all_imgs.droppable({
hoverClass: 'dropBack',
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
if(this != $(ui.draggable).parent()[0]){
var tmp_ui = $(ui.draggable).parent();
$(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
}
});
}
//add text block
function addText(dest, source){
var text_block = $("<div class='img_block' style='text-align: center;'>").insertBefore(source);
$("<div class='close_img'>").appendTo(text_block);
$("<input type='hidden' value='" + dest.find("input[name='mask']").val() + "'/>").appendTo(text_block);
$("<div class='text_cont' contenteditable='true'>" + sankoreLang.text + "</div>").appendTo(text_block);
}
//function that allows to add new category
function addCategory(obj){
var imgs_container = $("<div class='imgs_cont def_cont'>").insertAfter(obj);
$("<input type='hidden' name='mask' value='" + returnId() + "'/>").appendTo(imgs_container);
$("<input type='hidden' name='count' value=''/>").appendTo(imgs_container);
var tmp_div = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container);
$("<input type='text' class='cat_desc' value='" + sankoreLang.enter + "'>").appendTo(tmp_div);
$("<button class='del_category'></button>").appendTo(imgs_container);
$("<button class='add_category'></button>").appendTo(imgs_container);
$("<div class='add_img'>").appendTo(imgs_container);
}
//add new container
//function addContainer(){
// var container = $("<div class='cont'>");
// var sub_container = $("<div class='sub_cont'>").appendTo(container);
// var imgs_container = $("<div class='imgs_cont def_cont'>").appendTo(container);
//
// var close = $("<div class='close_cont'>").appendTo(container);
// var number = $("<div class='number_cont'>"+ ($(".cont").size() + 1) +"</div>").appendTo(sub_container);
//
// $("<input type='hidden' name='mask' value='" + returnId() + "'/>").appendTo(imgs_container);
// $("<input type='hidden' name='count' value=''/>").appendTo(imgs_container);
// var tmp_div = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container);
// $("<input type='text' class='cat_desc' value='" + sankoreLang.enter + "'/>").appendTo(tmp_div);
// $("<button class='del_category'></button>").appendTo(imgs_container);
// $("<button class='add_category'></button>").appendTo(imgs_container);
// $("<div class='add_img'>").appendTo(imgs_container);
// container.insertBefore($(".add_block"));
//}
//function refreshBlockNumbers(){
// var i = 0;
// $(".cont").each(function(){
// $(this).find(".number_cont").text(++i);
// })
//}
//shuffles an array
function shuffle( arr )
{
var pos, tmp;
for( var i = 0; i < arr.length; i++ )
{
pos = Math.round( Math.random() * ( arr.length - 1 ) );
tmp = arr[pos];
arr[pos] = arr[i];
arr[i] = tmp;
}
return arr;
}
function stringToXML(text){
if (window.ActiveXObject){
var doc=new ActiveXObject('Microsoft.XMLDOM');
doc.async='false';
doc.loadXML(text);
} else {
var parser=new DOMParser();
doc=parser.parseFromString(text,'text/xml');
}
return doc;
}
//return id
function returnId(){
var tmp = Math.random().toString();
return tmp.substr(2);
}
//changing the style
function changeStyle(val){
switch(val){
case "1":
$(".b_top_left").removeClass("btl_pad").removeClass("without_back");
$(".b_top_center").removeClass("btc_pad").removeClass("without_back");
$(".b_top_right").removeClass("btr_pad").removeClass("without_back");
$(".b_center_left").removeClass("bcl_pad").removeClass("without_back");
$(".b_center_right").removeClass("bcr_pad").removeClass("without_back");
$(".b_bottom_right").removeClass("bbr_pad").removeClass("without_back");
$(".b_bottom_left").removeClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").removeClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$("#wgt_display").addClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
$(".b_top_center").addClass("btc_pad").removeClass("without_back");
$(".b_top_right").addClass("btr_pad").removeClass("without_back");
$(".b_center_left").addClass("bcl_pad").removeClass("without_back");
$(".b_center_right").addClass("bcr_pad").removeClass("without_back");
$(".b_bottom_right").addClass("bbr_pad").removeClass("without_back");
$(".b_bottom_left").addClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").addClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
$(".b_top_center").addClass("without_back").removeClass("btc_pad");
$(".b_top_right").addClass("without_back").removeClass("btr_pad");
$(".b_center_left").addClass("without_back").removeClass("bcl_pad");
$(".b_center_right").addClass("without_back").removeClass("bcr_pad");
$(".b_bottom_right").addClass("without_back").removeClass("bbr_pad");
$(".b_bottom_left").addClass("without_back").removeClass("bbl_pad");
$(".b_bottom_center").addClass("without_back").removeClass("bbc_pad");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
}
//a func for checking when smth will drop
function checkOnDrop(dest){
var tmp_count = dest.find("input[name='count']").val();
var tmp_mask = dest.find("input[name='mask']").val();
if(dest.find(".img_block").size() == tmp_count){
var tmp_right = true;
dest.find(".img_block").each(function(){
if($(this).find("input").val() != tmp_mask)
tmp_right = false;
});
if(tmp_right)
dest.removeClass("def_cont").removeClass("red_cont").addClass("green_cont");
else
dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont");
} else
dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont");
}
//checking source on correctness
function checkCorrectness(source){
if(!source.hasClass("all_imgs")){
if(source.parent().find(".all_imgs").find(".img_block").size() == 0){
source.parent().find(".imgs_cont").each(function(){
checkOnDrop($(this))
})
} else {
source.parent().find(".imgs_cont").each(function(){
$(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont");
})
}
} else {
if(source.find(".img_block").size() > 0){
source.parent().find(".imgs_cont").each(function(){
$(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont");
})
} else {
source.parent().find(".imgs_cont").each(function(){
checkOnDrop($(this))
})
}
}
}

@ -0,0 +1,59 @@
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../css/basic.css"/>
<script type="text/javascript" src="../../scripts/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="scripts/selQuestionApp.js"></script>
<script type="text/javascript">
$(document).ready(function(){
init();
});
</script>
</head>
<body>
<table class="body_table" cellpadding=0 cellspacing=0>
<tr style="height: 54px;">
<td class="b_top_left">&nbsp;</td>
<td class="b_top_center">
<div id="wgt_name"></div>
<div id="wgt_help"></div>
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
<tr>
<td class="b_center_left">&nbsp;</td>
<td>
<div id="help"></div>
<div id="data">
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
</div>
</div>
</div>
</td>
<td class="b_center_right">&nbsp;</td>
</tr>
<tr style="height: 54px;">
<td class="b_bottom_left">&nbsp;</td>
<td class="b_bottom_center">&nbsp;</td>
<td class="b_bottom_right">&nbsp;</td>
</tr>
</table>
</body>
</html>

@ -0,0 +1,792 @@
/*
* 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 <http://www.gnu.org/licenses/>.
*/
var sankoreLang = {
edit: "Upraviť",
display:"Zobraziť",
question:"Otázka",
example_question:"Sem zadajte otázku.",
answer:"Toto je možná odpoveď č. ",
q:"Ot",
add_new_question:"Pridajte novú otázku.",
options:"Možnosti",
close:"Zatvoriť",
delete_question:"Vymazať otázku",
delete_answer:"Vymazať možnosť",
right_answer:"Správna odpoveď",
template_question:"Sem zadajte otázku.",
template_answer:"Sem zadajte jednu odpoveď.",
add_answer:"Pridať možnú odpoveď",
select_text:"Vyberte správnu odpoveď",
options_desc:"Môžete si vybrať jeden z troch variantov zobrazenia možností.",
radio_desc:"Iba jedna správna odpoveď a&nbsp;možnosti zobrazené ako gombíky na rádiu.",
checkbox_desc:"Viac správnych odpovedí a&nbsp;možnosti zobrazené ako zaškrtávacie políčka.",
select_desc:"Iba jedna správna odpoveď a&nbsp;možnosti zobrazené v&nbsp;rozbaľovacom menu.",
a:"Od",
wgt_name: "Výber správnej odpovede",
reload: "Obnoviť",
slate: "bridlica",
pad: "tablet",
none: "žiadny",
help: "Pomoc",
help_content:
"<p><h2> Výber správnej odpovede</h2></p>" +
"<p><h3> Výber z viacerých možností</h3></p>" +
"<p>Otázka s výberom odpovede. Cieľom je vybrať správnu odpoveď.</p>" +
"<p>Tlačidlom „Obnoviť“ vrátite cvičenie do pôvodného stavu.</p>" +
"<p>Po stlačení tlačidla „Upraviť“ môžete v&nbsp;režime úprav:</p>" +
"<ul> <li> zmeniť farebný motív na tablet, bridlicu alebo na žiadny (predvolený je žiadny),</li>" +
"<li> upraviť cvičenie.</li> </ul>" +
"<p>Úprava cvičenia v režime úprav:</p>" +
"<ul><li> kliknite na tlačidlo „Pridať novú otázku“,</li>" +
"<li>po kliknutí na textové pole a&nbsp;prepísaní textu „Sem zadajte otázku.“ môžete zadať vlastnú otázku,</li>" +
"<li>kliknite na „Možnosti“ a&nbsp;zvoľte si typ otázky s&nbsp;výberom správnej odpovede (jedna správna odpoveď, viac správnych odpovedí, rozbaľovacie menu) a&nbsp;zatvorte „Možnosti“,</li>" +
"<li>ak treba, pridajte novú odpoveď,</li> " +
"<li>textové pole môžete upravovať, keď naň kliknete,</li>" +
"<li>správnu odpoveď označte kliknutím na zaškrtávacie políčko, ktoré nájdete naľavo od textového poľa,</li>" +
"<li>interaktívnu aktivitu odstránite kliknutím na tlačidlo v&nbsp;tvare krížika, ktoré nájdete na jej ráme,</li>" +
"<li>odpoveď odstránite po kliknutím na krížik, ktorý sa nachádza napravo od odpovede.</li></ul>" +
"<p>Tlačidlom „Zobraziť“ sa z režimu úprav vrátite na aktivitu.</p>",
theme: "Farebný motív"
};
var questionArray;
var currentQstId = "";
var lang = ""; //locale language
var begin = true;
function init(){
//variables
var toggleFlag = false;
var endFlag = false;
var mode = true;
questionArray = new Array();
var popupFlag = false
var flagForSelect = false;
$("#wgt_display").text(sankoreLang.display);
$("#wgt_edit").text(sankoreLang.edit);
$("#wgt_name").text(sankoreLang.wgt_name);
$("#wgt_reload").text(sankoreLang.reload);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
//popup message
var popupText = $("<div id='popupWordInfo' class='popupWordInfo'></div>").appendTo("#data");
// adding question block
var addQstDiv = $("<div id='addQstDiv' class='addQstDiv'>").appendTo("#data");
var addQstButton = $("<button id='addQstButton' class='addQstButton'>").appendTo("#addQstDiv");
var addQsqSpan1 = $("<span id='addQsqSpan1'>" + sankoreLang.q + "1</span>").appendTo("#addQstButton");
var addQsqSpan2 = $("<span id='addQsqSpan2'>" + sankoreLang.add_new_question + "</span>").appendTo("#addQstButton");
//import saved data
if(window.sankore){
if(sankore.preference("qstArrayData","") && sankore.preference("qstArrayData","") != "[]")
questionArray = jQuery.parseJSON(sankore.preference("qstArrayData",""));
else
questionArray = jQuery.parseJSON('[{"text":"' + sankoreLang.example_question + '","type":"1","id":538,"rightAns":"2","answers":[{"id":953,"text":"' + sankoreLang.answer + ' 1.","value":1,"state":"","was":false},{"id":526,"text":"' + sankoreLang.answer + ' 2.","value":2,"state":"","was":false},{"id":473,"text":"' + sankoreLang.answer + ' 3.","value":3,"state":"","was":false}]}]');
for(i in questionArray){
addQstBlock(questionArray[i].id, questionArray[i].text, questionArray[i].type,"style='display: none;'");
for(j in questionArray[i].answers)
addAnsBlock(questionArray[i].answers[j].id, questionArray[i].id, questionArray[i].answers[j].text, true, questionArray[i].rightAns, questionArray[i].type);
}
displayData();
}
else{
questionArray = jQuery.parseJSON('[{"text":"' + sankoreLang.example_question + '","type":"1","id":538,"rightAns":"2","answers":[{"id":953,"text":"' + sankoreLang.answer + ' 1.","value":1,"state":"","was":false},{"id":526,"text":"' + sankoreLang.answer + ' 2.","value":2,"state":"","was":false},{"id":473,"text":"' + sankoreLang.answer + ' 3.","value":3,"state":"","was":false}]}]');
for(i in questionArray){
addQstBlock(questionArray[i].id, questionArray[i].text, questionArray[i].type,"style='display: none;'");
for(j in questionArray[i].answers)
addAnsBlock(questionArray[i].answers[j].id, questionArray[i].id, questionArray[i].answers[j].text, true, questionArray[i].rightAns, questionArray[i].type);
}
displayData();
}
//saving widget data into sankore object for a correct import
if (window.widget) {
window.widget.onleave = function(){
sankore.setPreference("qstArrayData", JSON.stringify(questionArray));
sankore.setPreference("choisir_style", $("#style_select").find("option:selected").val());
}
}
if(window.sankore)
if(sankore.preference("choisir_style","")){
changeStyle(sankore.preference("choisir_style",""));
$("#style_select").val(sankore.preference("choisir_style",""));
} else
changeStyle("3")
$("#wgt_display, #wgt_edit").click(function(event){
if(this.id == "wgt_display"){
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$("#parameters").css("display","none");
$(this).css("display", "none");
$("#wgt_edit").css("display", "block");
displayData(true);
mode = true;
if(window.sankore){
sankore.setPreference("qstArrayData", JSON.stringify(questionArray));
sankore.setPreference("choisir_style", $("#style_select").find("option:selected").val());
}
}
} else {
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$("#parameters").css("display","block");
$(this).css("display", "none");
$("#wgt_display").css("display", "block");
editData();
mode = false;
}
}
});
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#data").show();
});
} else {
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#data").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
});
}
});
$("#wgt_reload").text(sankoreLang.reload).click(function(){
if($("#wgt_edit").css("display") == "none")
$("#wgt_display").trigger("click");
else{
editData();
mode = false;
displayData(true);
mode = true;
}
});
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
// add question
addQstButton.click(function(){
//question block
var id = Math.round(Math.random()*1000);
var obj = new Question();
obj.id = id;
questionArray.push(obj);
addQstBlock(id, sankoreLang.template_question, "","");
if(window.sankore)
sankore.setPreference("qstArrayData", JSON.stringify(questionArray));
});
//set used at this moment question id into the variable
$(".qstDiv").live('mouseover', function() {
currentQstId = this.id;
});
//set used at this moment question id into the variable
$(".qstDivDisplay").live('mouseover', function() {
if(!flagForSelect)
currentQstId = this.id.replace("qstDivDisplay","");
});
//adding new answer
$(".ansAdd").live('click', function(){
var id = Math.round(Math.random()*1000);
var obj = new Answer();
obj.id = id;
getNeededElement(questionArray, currentQstId).answers.push(obj);
addAnsBlock(id, currentQstId, sankoreLang.template_answer);
});
//set answer text
$(".ansContent").live('keyup', function(event){
var id = $(event.target).attr("id").replace("ansContent","");
getNeededElement(getNeededElement(questionArray, currentQstId).answers,id).text = $(event.target).text();
});
//set question text
$(".qstContent").live('keyup', function(event){
var id = $(event.target).attr("id").replace("qstContent","");
getNeededElement(questionArray, id).text = $(event.target).text();
});
//question div border
$(".qstContent").live('mouseover', function(event){
$(event.target).css({
border:"3px solid #00C6FF"
});
});
// deleting question div border
$(".qstContent").live('mouseout', function(event){
$(event.target).css({
border:"3px solid #ccc"
});
});
//answer div border
$(".ansContent").live('mouseover', function(event){
$(event.target).css({
border:"3px solid #00C6FF"
});
});
// deleting answer div border
$(".ansContent").live('mouseout', function(event){
$(event.target).css({
border:"3px solid #ccc"
});
});
//delete answer
$(".ansDelete").live('click', function(){
popupText.hide();
var id = this.id.replace("ansDelete","");
$("#" + currentQstId + " #" + id).remove();
for(var i in questionArray)
if(questionArray[i].id == currentQstId){
questionArray[i].rightAns = questionArray[i].rightAns.replace($("#" + currentQstId + " #" + id + " input:checkbox").val(),"");
for(var j in questionArray[i].answers)
if(questionArray[i].answers[j].id == id){
if(j == 0)
questionArray[i].answers.shift();
else
if((j+1) == questionArray[i].answers.length)
questionArray[i].answers.pop();
else
questionArray[i].answers = questionArray[i].answers.slice(0,j).concat(questionArray[i].answers.slice(j+1));
break;
}
}
refreshAns();
});
//delete question
// $(".qstDelete").live('click', function(){
// popupText.hide();
// $("#" + currentQstId).remove();
// for(var i in questionArray)
// if(questionArray[i].id == currentQstId){
// if(i == 0)
// questionArray.shift();
// else
// if((i+1) == questionArray.length)
// questionArray.pop();
// else
// questionArray = questionArray.slice(0,i).concat(questionArray.slice(i+1));
// break;
// }
// refreshQst();
// });
//change options
$(".changeOptions").live('click', function(){
$("#" + currentQstId + "qstOptions .changeOptions").hide();
$("#" + currentQstId + "qstOptions .applyChanges").show();
$("#" + currentQstId + "qstOptChoice").show('fast');
});
//apply changes
$(".applyChanges").live('click', function(){
$("#" + currentQstId + "qstOptions .applyChanges").hide();
$("#" + currentQstId + "qstOptions .changeOptions").show();
$("#" + currentQstId + "qstOptChoice").hide('fast');
});
//select option
$(".qstOptChoice input:radio").live('click', function(event){
if(!mode){
$("#" + currentQstId + "qstOptChoice input:radio").removeAttr("checked");
$(event.target).attr("checked", "checked");
getNeededElement(questionArray, currentQstId).type = $(event.target).attr("value");
}
});
//select right ansver in edit mode and answer question in display mode
$(".newAnswer input").live('click', function(event){
if(!mode){
if(getNeededElement(questionArray, currentQstId).type == "1" || getNeededElement(questionArray, currentQstId).type == "3"){
$("#" + currentQstId + "ansDiv input").removeAttr("checked");
$(event.target).attr("checked", "checked");
getNeededElement(questionArray, currentQstId).rightAns = $(event.target).attr("value");
} else {
(event.target.checked) ? $(event.target).attr("checked", "checked") : $(event.target).removeAttr("checked", "checked");
getNeededElement(questionArray, currentQstId).rightAns = "";
for(var i in $("#" + currentQstId + "ansDiv input")){
if($("#" + currentQstId + "ansDiv input")[i].checked)
getNeededElement(questionArray, currentQstId).rightAns += $("#" + currentQstId + "ansDiv input")[i].value + ", ";
}
}
} else {
if(event.target.type == "radio"){
checkingAnswers("radio", getNeededElement(questionArray, currentQstId).answers, event.target.value);
if(event.target.value == getNeededElement(questionArray, currentQstId).rightAns)
$(event.target).next().next().css("background-color","#6c0");
else
$(event.target).next().next().css("background-color","red");
} else {
checkingAnswers("box", getNeededElement(questionArray, currentQstId).answers, event.target.value, event.target.checked);
if(getNeededElement(questionArray, currentQstId).rightAns.replace(/,/g,"").indexOf(event.target.value + " ", 0) != -1)
$(event.target).next().next().css("background-color","#6c0");
else
$(event.target).next().next().css("background-color","red");
}
}
});
//popup messages
// $(".qstDelete").live('mouseover', function(evt){
// popupFlag = true;
// popupText.text(sankoreLang.delete_question)
// .css("top", evt.pageY + 15)
// .css("left", evt.pageX - 40)
// .css({
// width:"130px"
// })
// .show("fast", function(){
// if(!popupFlag)
// popupText.hide();
// });
// });
$(".ansDelete").live('mouseover', function(evt){
popupFlag = true;
popupText.text(sankoreLang.delete_answer)
.css("top", evt.pageY + 15)
.css("left", evt.pageX - 40)
.css({
width:"130px"
})
.show("fast", function(){
if(!popupFlag)
popupText.hide();
});
});
$(".newAnswer input").live('mouseover', function(evt){
if(!mode){
popupFlag = true;
popupText.text(sankoreLang.right_answer)
.css("top", evt.pageY + 15)
.css("left", evt.pageX - 40)
.css({
width:"130px"
})
.show("fast", function(){
if(!popupFlag)
popupText.hide();
});
}
});
$(".ansDelete, .newAnswer input").live('mousemove', function(evt){
if(!mode){
popupText.css("top", evt.pageY + 15)
.css("left", evt.pageX - 40);
}
});
$(".ansDelete, .newAnswer input").live('mouseout', function(evt){
if(!mode){
popupFlag = false;
popupText.hide();
}
});
//answer the questions
$("select").live('change', function(evt){
if(mode){
checkingAnswers("sel", getNeededElement(questionArray, currentQstId).answers, event.target.value);
if(event.target.value == getNeededElement(questionArray, currentQstId).rightAns)
$(event.target).css("background-color","#6c0");
else
$(event.target).css("background-color","red");
if(event.target.value == 0)
$(event.target).css("background-color","");
flagForSelect = false;
}
});
$("select").live('mousedown', function(evt){
if(mode){
flagForSelect = true;
}
});
//toggle button click trigger
//toggleButton.trigger("click");
//show data in display mode
function displayData(){
// $("#addQstDiv").hide();
$(".qstDiv").hide();
addToPage(questionArray);
}
//set widget in edit mode
function editData(){
for(var i in questionArray)
for(var j in questionArray[i].answers){
questionArray[i].answers[j].state = "";
questionArray[i].answers[j].was = false
}
$(".qstDivDisplay").remove();
// $("#addQstDiv").show('fast');
$(".qstDiv").show('fast');
}
// show questions and answers in display mode
function addToPage(array){
var counter = 1;
for(var i in array){
var qstDiv = $("<div class='qstDivDisplay' id='" + array[i].id + "qstDivDisplay'>");
var spanOptConn = $("<div class='spanOptConn'>").appendTo(qstDiv);
// var qstNumber = $("<span class='qstNumber'>" + sankoreLang.question + " " + counter + "</span>").appendTo(spanOptConn);
var qstContent = $("<div class='qstContentDisplay'>" + array[i].text + "</div>").appendTo(qstDiv);
var ansDiv = $("<div class='ansDiv' id='" + array[i].id + "ansDiv'>").appendTo(qstDiv);
var ansCount = 1;
var type = array[i].type;
var selInput = $("<select>");
if(type == 3){
var newAnswer = $("<div class='newAnswer'>");
newAnswer.appendTo(ansDiv);
var selectSpan = $("<span id='answerText'>").appendTo(newAnswer);
selInput.appendTo(selectSpan);
$("<option value='0'>" + sankoreLang.select_text + "</option>").appendTo(selInput);
}
for(var j in array[i].answers){
switch(type){
case "1":
var local_state = "";
var local_color = "";
if(begin){
local_state = array[i].answers[j].state;
local_color = (array[i].answers[j].value == array[i].rightAns)?((array[i].answers[j].was)?"style='background-color: #6c0;'":""):((array[i].answers[j].was)?"style='background-color: red;'":"");
}
newAnswer = $("<div class='newAnswer'>");
var ansInput = $("<input type='radio' name='" + counter + "' value='" + array[i].answers[j].value + "' " + local_state + " style='float: left; margin-right: 10px;'/>").appendTo(newAnswer);
var ansSpan = $("<span class='ansSpanDisplay'>" + ansCount + ".</span>").appendTo(newAnswer);
var ansContent = $("<div class='ansContentDisplay' " + local_color + "><span id='answerText'>" + array[i].answers[j].text + "</span></div>").appendTo(newAnswer);
newAnswer.appendTo(ansDiv);
break;
case "2":
local_state = "";
local_color = "";
if(begin){
local_state = (array[i].answers[j].state)?"checked":"";
local_color = (array[i].rightAns.replace(/,/g,"").indexOf(array[i].answers[j].value + " ", 0) != -1)?((array[i].answers[j].was)?"style='background-color: #6c0;'":""):((array[i].answers[j].was)?"style='background-color: red;'":"");
}
newAnswer = $("<div class='newAnswer'>");
ansInput = $("<input type='checkbox' value='" + array[i].answers[j].value + "' " + local_state + " style='float: left; margin-right: 10px;'/>").appendTo(newAnswer);
ansSpan = $("<span class='ansSpanDisplay'>" + ansCount + ".</span>").appendTo(newAnswer);
ansContent = $("<div class='ansContentDisplay' " + local_color + "><span id='answerText'>" + array[i].answers[j].text + "</span></div>").appendTo(newAnswer);
newAnswer.appendTo(ansDiv);
break;
case "3":
local_state = "";
local_color = "";
if(begin){
local_state = (array[i].answers[j].state)?"selected":"";
local_color = (array[i].answers[j].value == array[i].rightAns)?((array[i].answers[j].was)?"#6c0":""):((array[i].answers[j].was)?"red":"");
}
ansInput = $("<option value='" + array[i].answers[j].value + "' " + local_state + ">" + array[i].answers[j].text + "</option>").appendTo(selInput);
if(local_state && local_color)
selInput.css("background-color",local_color);
break;
}
ansCount++;
}
qstDiv.appendTo("#data");
counter++;
}
begin = false;
}
}
//add new question block in a edit mode
function addQstBlock(id, text, type, style){
var qstDiv = $("<div class='qstDiv' id='" + id + "' " + style + ">");
var spanOptConn = $("<div class='spanOptConn'>").appendTo(qstDiv);
// var count = $(".qstNumber").size();
// var qstNumber = $("<span class='qstNumber'>" + sankoreLang.q + (count + 1) + "</span>").appendTo(spanOptConn);
var qstOptions = $("<div class='qstOptions' id='" + id + "qstOptions'>").appendTo(spanOptConn);
var changeOptions = $("<button class='changeOptions'>" + sankoreLang.options + "</button>").appendTo(qstOptions);
var applyChanges = $("<button class='applyChanges' style='display: none;'>" + sankoreLang.close + "</button>").appendTo(qstOptions);
// var qstDelete = $("<button class='qstDelete'>").appendTo(qstOptions);
var qstOptChoice = $("<div class='qstOptChoice' id='" + id + "qstOptChoice' style='display: none;'>").appendTo(qstDiv);
var optDesc = $("<div style='height: 65px;'>").appendTo(qstOptChoice);
var optDescImg = $("<div class='optDescImg'>").appendTo(optDesc);
var optDescText = $("<div class='optDescText'>" + sankoreLang.options_desc + "</div>").appendTo(optDesc);
var type1 = $("<div class='type'>").appendTo(qstOptChoice);
var contentType1 = $("<div class='contentType'>").appendTo(type1);
var divType1 = $("<div class='divType1'>").appendTo(contentType1);
var textType1 = $("<div class='textType'>" + sankoreLang.radio_desc + "</div>").appendTo(contentType1);
var type2 = $("<div class='type'>").appendTo(qstOptChoice);
var contentType2 = $("<div class='contentType'>").appendTo(type2);
var divType2 = $("<div class='divType2'>").appendTo(contentType2);
var textType2 = $("<div class='textType'>" + sankoreLang.checkbox_desc + "</div>").appendTo(contentType2);
var type3 = $("<div class='type'>").appendTo(qstOptChoice);
var contentType3 = $("<div class='contentType'>").appendTo(type3);
var divType3 = $("<div class='divType3'>").appendTo(contentType3);
var textType3 = $("<div class='textType'>" + sankoreLang.select_desc + "</div>").appendTo(contentType3);
switch(type){
case "1":
var radioType1 = $("<div class='radioDiv'><div class='radioType'><input type='radio' value='1' checked/><div></div>").appendTo(type1);
var radioType2 = $("<div class='radioDiv'><div class='radioType'><input type='radio' value='2'/><div></div>").appendTo(type2);
var radioType3 = $("<div class='radioDiv'><div class='radioType'><input type='radio' value='3'/><div></div>").appendTo(type3);
break;
case "2":
radioType1 = $("<div class='radioDiv'><div class='radioType'><input type='radio' value='1'/><div></div>").appendTo(type1);
radioType2 = $("<div class='radioDiv'><div class='radioType'><input type='radio' value='2' checked/><div></div>").appendTo(type2);
radioType3 = $("<div class='radioDiv'><div class='radioType'><input type='radio' value='3'/><div></div>").appendTo(type3);
break;
case "3":
radioType1 = $("<div class='radioDiv'><div class='radioType'><input type='radio' value='1'/><div></div>").appendTo(type1);
radioType2 = $("<div class='radioDiv'><div class='radioType'><input type='radio' value='2'/><div></div>").appendTo(type2);
radioType3 = $("<div class='radioDiv'><div class='radioType'><input type='radio' value='3' checked/><div></div>").appendTo(type3);
break;
default:
radioType1 = $("<div class='radioDiv'><div class='radioType'><input type='radio' value='1'/><div></div>").appendTo(type1);
radioType2 = $("<div class='radioDiv'><div class='radioType'><input type='radio' value='2'/><div></div>").appendTo(type2);
radioType3 = $("<div class='radioDiv'><div class='radioType'><input type='radio' value='3'/><div></div>").appendTo(type3);
break;
}
var qstContent = $("<div class='qstContent' id='" + id + "qstContent' contenteditable='true'>" + text + "</div>").appendTo(qstDiv);
var ansDiv = $("<div class='ansDiv' id='" + id + "ansDiv'>").appendTo(qstDiv);
var ansAdd = $("<button class='ansAdd'>" + sankoreLang.add_answer + "</button>").appendTo(ansDiv);
qstDiv.insertBefore("#addQstDiv");
// $("#addQsqSpan1").text(sankoreLang.q + (count + 2));
}
//add answers
function addAnsBlock(id, currId, text, stage, rightAns, type){
var newAnswer = $("<div class='newAnswer' id='" + id + "'>");
var value;
var check = "";
if(stage){
value = getNeededElement(getNeededElement(questionArray, currId).answers,id).value;
if(type != "2"){
if(rightAns == value)
check = "checked='true'";
}
else {
rightAns = rightAns.replace(/,/g,"");
if(rightAns.indexOf(value + " ", 0) != -1)
check = "checked='true'";
}
}
else {
value = ($("#" + currId + " .newAnswer input:checkbox").last().val()) ? parseInt($("#" + currId + " .newAnswer input:checkbox").last().val()) + 1 : 1;
getNeededElement(getNeededElement(questionArray, currId).answers,id).value = value;
}
var count = $("#" + currId + " .newAnswer").size() + 1;
var input = $("<input type='checkbox' style='float: left;' value='" + value + "' " + check + ">").appendTo(newAnswer);
var ansSpan = $("<span class='ansSpan'>" + sankoreLang.a + count + "</span>").appendTo(newAnswer);
var ansContent = $("<div class='ansContent' id='" + id +"ansContent' contenteditable='true'>" + text + "</div>").appendTo(newAnswer);
var ansDelete = $("<button class='ansDelete' id='" + id + "ansDelete'>").appendTo(newAnswer);
newAnswer.insertBefore("#" + currId + "ansDiv .ansAdd");
if(window.sankore)
sankore.setPreference("qstArrayData", JSON.stringify(questionArray));
}
//get needed array element
function getNeededElement(array,id){
for(var i in array)
if(array[i].id == id)
return array[i];
}
//check on fill
function checkArrayOnFill(array){
var count = 0;
for(var i in array)
count++;
return count;
}
//refresh answers numbers
function refreshAns(){
var count = $("#" + currentQstId + " .newAnswer").size();
for(var i = 0; i < count; i ++)
$($("#" + currentQstId + " .newAnswer span")[i]).text(sankoreLang.a + (i+1));
}
//refresh questions numbers
function refreshQst(){
var count = $(".qstNumber").size();
for(var i = 0; i < count; i ++)
$($(".qstNumber")[i]).text(sankoreLang.q + (i+1));
$("#addQsqSpan1").text(sankoreLang.q + ++count);
}
//check answers
function checkingAnswers(type, array, value, state){
switch(type){
case "radio":
for(var i in array)
if(array[i].value == value){
array[i].state = "checked";
array[i].was = true;
} else
array[i].state = "";
break;
case "box":
for(i in array)
if(array[i].value == value){
array[i].state = state;
array[i].was = true;
}
break;
case "sel":
for(i in array)
if(array[i].value == value){
array[i].state = "selected";
array[i].was = true;
} else
array[i].state = "";
break;
}
}
//question constructor
function Question(){
this.text = "";
this.type = "1";
this.id = "";
this.rightAns = "";
this.answers = new Array();
}
//answer constructor
function Answer(){
this.id = "";
this.text = "";
this.value = "";
this.state = "";
this.was = false;
}
//changing the style
function changeStyle(val){
switch(val){
case "1":
$(".b_top_left").removeClass("btl_pad").removeClass("without_back");
$(".b_top_center").removeClass("btc_pad").removeClass("without_back");
$(".b_top_right").removeClass("btr_pad").removeClass("without_back");
$(".b_center_left").removeClass("bcl_pad").removeClass("without_back");
$(".b_center_right").removeClass("bcr_pad").removeClass("without_back");
$(".b_bottom_right").removeClass("bbr_pad").removeClass("without_back");
$(".b_bottom_left").removeClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").removeClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$("#wgt_display").addClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
$(".b_top_center").addClass("btc_pad").removeClass("without_back");
$(".b_top_right").addClass("btr_pad").removeClass("without_back");
$(".b_center_left").addClass("bcl_pad").removeClass("without_back");
$(".b_center_right").addClass("bcr_pad").removeClass("without_back");
$(".b_bottom_right").addClass("bbr_pad").removeClass("without_back");
$(".b_bottom_left").addClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").addClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
$(".b_top_center").addClass("without_back").removeClass("btc_pad");
$(".b_top_right").addClass("without_back").removeClass("btr_pad");
$(".b_center_left").addClass("without_back").removeClass("bcl_pad");
$(".b_center_right").addClass("without_back").removeClass("bcr_pad");
$(".b_bottom_right").addClass("without_back").removeClass("bbr_pad");
$(".b_bottom_left").addClass("without_back").removeClass("bbl_pad");
$(".b_bottom_center").addClass("without_back").removeClass("bbc_pad");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
}

@ -0,0 +1,66 @@
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../css/basic.css"/>
<script type="text/javascript" src="../../scripts/jquery-1.6.2.min.js"></script>
<script src="../../scripts/jquery.disable.text.select.js" type="text/javascript"></script>
<script type="text/javascript" src="scripts/blackYellow.js"></script>
<script type="text/javascript">
$(document).ready(function(){
init();
});
</script>
</head>
<body>
<table class="body_table" cellpadding=0 cellspacing=0>
<tr style="height: 54px;">
<td class="b_top_left">&nbsp;</td>
<td class="b_top_center">
<div id="wgt_name"></div>
<div id="wgt_help"></div>
<div id="wgt_reload"></div>
<div id="wgt_display" class="selected"></div>
<div id="wgt_edit"></div>
</td>
<td class="b_top_right">&nbsp;</td>
</tr>
<tr>
<td class="b_center_left">&nbsp;</td>
<td>
<div id="help"></div>
<div id="parameters">
<div class="inline">
<label>
<select id="style_select">
<option value="1"></option>
<option value="2"></option>
<option value="3"></option>
</select>
</label>
<button id="wgt_add"></button>
</div>
</div>
<div id="data">
</div>
</td>
<td class="b_center_right">&nbsp;</td>
</tr>
<tr style="height: 54px;">
<td class="b_bottom_left">&nbsp;</td>
<td class="b_bottom_center">&nbsp;</td>
<td class="b_bottom_right">&nbsp;</td>
</tr>
</table>
</body>
</html>

@ -0,0 +1,626 @@
/*
* 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 <http://www.gnu.org/licenses/>.
*/
var sankoreLang = {
display: "Zatvoriť",
edit: "Upraviť",
add: "Pridať",
enter_data: "Zadajte vstupné údaje:",
enter_result: "Zadajte výsledok:",
ok: "OK",
cancel: "Zrušiť",
wgt_name: "Kontrast",
reload: "Obnoviť",
slate: "bridlica",
pad: "tablet",
none: "žiadny",
help: "Pomoc",
help_content:
"<p><h2>Kontrast</h2> </p>" +
"<p><h3>Hra farieb</h3> </p>" +
"<p>Schovávajte a odkrývajte text pomocou (žltého alebo čierneho) pozadia. Skryť jednu časť textu a&nbsp;zobraziť druhú časť textu môžete potiahnutím textového poľa doprava alebo doľava.</p> "+
"<p>Tlačidlom „Obnoviť“ vrátite cvičenie do pôvodného stavu.</p>" +
"<p>Po stlačení tlačidla „Upraviť“ môžete v&nbsp;režime úprav:</p>" +
"<ul><li>zmeniť farebný motív na tablet, bridlicu alebo na žiadny (predvolený je žiadny),</li>" +
"<li>upraviť cvičenie alebo vytvoriť nové.</li></ul>" +
"<p>Ak chcete pridať nový štítok:</p>" +
"<ol><li> Kliknite na tlačidlo „Pridať“.</li>" +
"<li>Do jedného poľa zadajte údaje, napr. 3 x 5.</li>" +
"<li>Do druhého zadajte výsledok, napr. 15 a kliknite na „OK“. </li> </ol>" +
"<p>Ak chcete upraviť vstupné údaje alebo výsledok, kliknite priamo na dané textové pole.</p>" +
"<p>Ak ho chcete vymazať, kliknite na „X“.</p>" +
"<p>Tlačidlom „Zobraziť“ sa z režimu úprav vrátite na aktivitu.</p>",
theme: "Farebný motív"
};
function init(){
//variables
var toggleFlag = false; // detects toggling in toggle button
var endFlag = false; // ending of toggling in toggle button
var addToggleStart = false; // detects toggling in add button
var addToggleEnd = false; // ending of toggling in add button
var shadowOver = false;
var mode = false;
var popupFlag = false
var flagForSelect = false;
var dragElement = null; //the element that must be dragging
var lang = ""; //locale language
var resizeFlag = true;
var coords = {
left:0,
top:0
}
var resizeObj = {
y:false,
x:false,
width:0,
height:0
}
var opacityChanged = false;
$("#wgt_display").text(sankoreLang.display);
$("#wgt_edit").text(sankoreLang.edit);
$("#wgt_add").text(sankoreLang.add);
$("#wgt_name").text(sankoreLang.wgt_name);
$("#wgt_reload").text(sankoreLang.reload);
$("#wgt_help").text(sankoreLang.help);
$("#help").html(sankoreLang.help_content);
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select option[value='3']").text(sankoreLang.none);
var tmpl = $("div.inline label").html();
$("div.inline label").html(sankoreLang.theme + tmpl)
if(window.sankore){
if(sankore.preference("blackYellowData","")){
var importArray = jQuery.parseJSON(sankore.preference("blackYellowData",""));
for(var i in importArray){
var tmpReadyTask = $("<div class='readyTask'>");
var exprContainer = $("<div class='taskContainer' style='color: yellow;'>" + importArray[i].data1 + "</div>").appendTo(tmpReadyTask);
var resContainer = $("<div class='taskContainer' style='color: black;'>"+ importArray[i].data2 + "</div>").appendTo(tmpReadyTask);
tmpReadyTask.width(importArray[i].width)
.height(importArray[i].height)
.css("position","absolute")
.css("top",importArray[i].top)
.css("left",importArray[i].left);
tmpReadyTask.appendTo("#data");
}
}
$(document).disableTextSelect();
}
/* ------------- BUTTONS -------------*/
if(window.sankore){
if(sankore.preference("by_style","")){
changeStyle(sankore.preference("by_style",""));
$("#style_select").val(sankore.preference("by_style",""));
} else
changeStyle("3")
} else
changeStyle("3")
$("#wgt_display, #wgt_edit").click(function(event){
if(this.id == "wgt_display"){
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_edit").removeClass("selected");
$("#parameters").css("display","none");
var tmpwh = $(window).height();
var tmpww = $(window).width();
resizeFlag = true;
window.resizeTo(tmpww, tmpwh - 44)
$("#data").css("padding-bottom","");
$("#leftDiv").css("border-top-left-radius","7px");
$("#rightDiv").css("border-top-right-radius","7px");
$(this).css("display", "none");
$("#wgt_edit").css("display", "block");
mode = false;
$(".leftDiv, .rightDiv").animate({
"opacity":"1"
},"fast",function(){
if(opacityChanged){
if($(".editContainer").size() != 0){
$(".editContainer").each(function(index, domElem){
var tmpReadyTask = $(domElem).find(".readyTask");
tmpReadyTask.width($(domElem).width())
.height($(domElem).height())
.css("position","absolute")
.css("top",$(domElem).position().top - 40)
.css("left",$(domElem).position().left)
.find(".taskContainer").removeAttr("contenteditable");
$(domElem).remove();
tmpReadyTask.appendTo("#data");
});
}
opacityChanged = false;
}
});
$(document).disableTextSelect();
}
} else {
if(!$(this).hasClass("selected")){
$(this).addClass("selected");
$("#wgt_display").removeClass("selected");
$("#parameters").css("display","block");
tmpwh = $(window).height();
tmpww = $(window).width();
resizeFlag = true;
window.resizeTo(tmpww, tmpwh + 44)
$("#data").css("padding-bottom","42px");
$("#leftDiv").css("border-top-left-radius","0px");
$("#rightDiv").css("border-top-right-radius","0px");
$(this).css("display", "none");
$("#wgt_display").css("display", "block");
mode = true;
$(document).enableTextSelect();
$(".leftDiv, .rightDiv").animate({
"opacity":"0.4"
},"fast",function(){
if(!opacityChanged){
if($(".readyTask").size() != 0){
var tmp_arr = [];
$(".readyTask").each(function(){
tmp_arr.push($(this));
})
orderItems(tmp_arr);
$(".readyTask").each(function(index, domElem){
var editContent = $("<div class='editContainer'>").width($(domElem).width() + 10).height($(domElem) + 10).appendTo("#data");
var closeItem = $("<div class='closeItem'>").appendTo(editContent);
editContent.css("top", $(domElem).position().top).css("left", $(domElem).position().left);
$(domElem).css("position","static")
.width("100%")
.height("100%")
.find(".taskContainer").attr("contenteditable", "true");
$(domElem).appendTo(editContent);
});
}
opacityChanged = true;
}
});
}
}
});
$("#wgt_help").click(function(){
var tmp = $(this);
if($(this).hasClass("open")){
$(this).removeClass("help_pad").removeClass("help_wood")
$("#help").slideUp("100", function(){
tmp.removeClass("open");
$("#data").show();
($("#wgt_edit").hasClass("selected"))?$("#parameters").show():'';
});
} else {
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad");
$("#data, #parameters").hide();
$("#help").slideDown("100", function(){
tmp.addClass("open");
});
}
});
$("#wgt_reload").click(function(){
reloadItems();
});
$("#wgt_add").click(function(){
if($("#wgt_help").hasClass("open")){
$("#help").slideUp("100", function(){
$("#wgt_help").removeClass("open");
$("#data").show();
});
}
shadowDiv.show();
shadowOver = true;
popupBack.show("slow");
$(document).disableTextSelect();
});
$("#style_select option[value='1']").text(sankoreLang.slate);
$("#style_select option[value='2']").text(sankoreLang.pad);
$("#style_select").change(function (event){
changeStyle($(this).find("option:selected").val());
})
/* -------------- END OF WORK WITH BUTTONS ---------------*/
//basic divs
var leftDiv = $("<div id='leftDiv' class='leftDiv'>").appendTo("#data");
var rightDiv = $("<div id='rightDiv' class='rightDiv'>").appendTo("#data");
//divs for adding a new item
var shadowDiv = $("<div id='shadowDiv' class='shadowDiv'>").appendTo("html");
var popupBack = $("<div id='popupBack' class='popupBack'>").appendTo("#data");
//input fields and buttons for a popup window
var expressionDiv = $("<div id='expressionDiv' class='popupContainers'>").appendTo(popupBack);
var experssionLabel = $("<span id='experssionLabel' class='popupLabels'><b>" + sankoreLang.enter_data + "</b></span>").appendTo(expressionDiv);
var expresionText = $("<input type='text' id='expresionText' class='expresionInput'/>").appendTo(expressionDiv);
var resultDiv = $("<div id='resultDiv' class='popupContainers'>").appendTo(popupBack);
var resultLabel = $("<span id='resultLabel' class='popupLabels'><b>" + sankoreLang.enter_result + "</b></span>").appendTo(resultDiv);
var resultText = $("<input type='text' id='resultText' class='expresionInput'/>").appendTo(resultDiv);
var popupButtonsDiv= $("<div id='popupButtonsDiv' class='popupContainers'>").appendTo(popupBack);
var cancelButton = $("<input type='button' id='cancelButton' class='popupButtons' value='" + sankoreLang.cancel + "'/>").appendTo(popupButtonsDiv);
var okButton = $("<input type='button' id='okButton' class='popupButtons' value='" + sankoreLang.ok + "'/>").appendTo(popupButtonsDiv);
/* -------------- A WORK WITH POPUP BUTTONS AND FIELDS ---------------*/
$("#resultText, #expresionText").keyup(function(){
if($(this).val()){
$(this).css("background-color", "#ff9");
}
});
cancelButton.click(function(){
popupBack.hide("slow", function(){
$("#resultText, #expresionText").val("")
.css("background-color", "#ffc");
shadowDiv.hide();
shadowOver = false;
$(document).enableTextSelect();
});
});
okButton.click(function(){
if(checkEmptyFields(expresionText) && checkEmptyFields(resultText)){
popupBack.hide("slow", function(){
shadowDiv.hide();
shadowOver = false;
addTask(expresionText.val(), resultText.val());
exportToSankore();
$("#resultText, #expresionText").val("")
.css("background-color", "#ffc");
$(document).enableTextSelect();
})
}
});
/* -------------- THE END OF WORK WITH POPUP BUTTONS AND FIELDS ---------------*/
// a work with dragging possibility
$("input:text").mouseover(function(){
$(document).enableTextSelect();
});
$("input:text").mouseout(function(){
$(document).disableTextSelect();
});
$(".readyTask, .editContainer").live("mousedown",function(event){
if($("#wgt_display").hasClass("selected")){
if(!shadowOver){
dragElement = $(this);
coords.left = event.pageX - $(this).position().left;
coords.top = event.pageY - $(this).position().top;
resizeObj.width = $(this).width();
resizeObj.height = $(this).height();
}
$(document).disableTextSelect();
}
});
$("body").mouseup(function(event){
if($("#wgt_display").hasClass("selected")){
if(!shadowOver){
if (dragElement) {
exportToSankore();
}
dragElement = null;
resizeObj.x = false;
resizeObj.y = false;
}
}
});
$("body").mousemove(function(event){
if(dragElement && !shadowOver && $("#wgt_display").hasClass("selected")){
var top = event.pageY - coords.top;
var left = event.pageX - coords.left;
var bottom = top + dragElement.height();
var right = left + dragElement.width();
if(resizeObj.x){
if(right < ($(window).width() - 54))
dragElement.width(event.pageX - dragElement.position().left);
}
else if(resizeObj.y){
if(bottom < ($(window).height() - 54))
dragElement.height(event.pageY - dragElement.position().top);
}
else {
if((top > 54) && (bottom < ($(window).height() - 54)))
dragElement.css("top",event.pageY - coords.top);
if((left >= 54) && (right < ($(window).width() - 54)))
dragElement.css("left", event.pageX - coords.left);
}
}
});
//closing item
$(".closeItem").live("click", function(){
if(!shadowOver){
$(this).parent().remove();
if($(".editContainer").size() > 0){
var prev = $(".editContainer:first");
if((prev.position().left == 54) && (prev.position().top != 60))
prev.css("top", "60px");
var prevBottom = prev.position().top + prev.height(),
prevLeft = prev.position().left;
if(prev.next().length)
recursionCall(prevBottom, prevLeft, prev.next());
}
}
});
$(".taskContainer").live("keyup", function(){
if($(".editContainer").size() > 1){
var prev = $(".editContainer:first"),
prevBottom = prev.position().top + prev.height(),
prevLeft = prev.position().left;
recursionCall(prevBottom, prevLeft, prev.next());
}
})
function recursionCall(prevBottom, prevLeft, curr){
var curHeight = curr.height(),
curLeft = curr.position().left;
if(prevLeft == curLeft){
if((prevBottom + 15 + curHeight) < ($(window).height() - 54))
curr.css("top", prevBottom + 15 + "px");
else
curr.css("top", "100px").css("left", prevLeft + 255 + "px");
} else {
if((prevBottom + 15 + curHeight) < ($(window).height() - 54))
curr.css("top", prevBottom + 15 + "px").css("left", prevLeft + "px");
else
curr.css("top", "100px").css("left", prevLeft + 255 + "px");
}
prevBottom = curr.position().top + curr.height(),
prevLeft = curr.position().left;
if(curr.next().length)
recursionCall(prevBottom, prevLeft, curr.next());
}
//$("#leftDiv,#rightDiv,#shadowDiv").css("height", $(window).height());
popupBack.css("top", ($(window).height() - 138)*50/$(window).height() + "%");
popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%");
$(window).resize(function(){
if(!resizeFlag){
if($("#wgt_edit").hasClass("selected")){
if($(".editContainer").size() > 1){
var prev = $(".editContainer:first"),
prevBottom = prev.position().top + prev.height(),
prevLeft = prev.position().left;
recursionCall(prevBottom, prevLeft, prev.next());
}
} else {
var tmp_array = [];
$(".readyTask").each(function(){
tmp_array.push($(this));
});
orderItems(tmp_array);
}
popupBack.css("top", ($(window).height() - 138)*50/$(window).height() + "%");
popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%");
} else
resizeFlag = false;
});
if (window.widget) {
window.widget.onleave = function(){
exportToSankore();
sankore.setPreference("by_style", $("#style_select").find("option:selected").val());
}
}
// export data
function exportToSankore(){
var arrayToExport = new Array();
if(mode){
if($(".editContainer").size() != 0){
$(".editContainer").each(function(index, domElem){
var objToExport = {
data1:"",
data2:"",
width:0,
height:0,
top:0,
left:0
}
objToExport.data1 = $(domElem).find(".readyTask").find(":first-child").text();
objToExport.data2 = $(domElem).find(".readyTask").find(":last-child").text();
objToExport.width = $(domElem).width();
objToExport.height = $(domElem).height();
objToExport.top = $(domElem).position().top - 40;
objToExport.left = $(domElem).position().left;
arrayToExport.push(objToExport);
});
}
} else {
if($(".readyTask").size() != 0){
$(".readyTask").each(function(index, domElem){
var objToExport = {
data1:"",
data2:"",
width:0,
height:0,
top:0,
left:0
}
objToExport.data1 = $(domElem).find(":first-child").text();
objToExport.data2 = $(domElem).find(":last-child").text();
objToExport.width = $(domElem).width();
objToExport.height = $(domElem).height();
objToExport.top = $(domElem).position().top;
objToExport.left = $(domElem).position().left;
arrayToExport.push(objToExport);
});
}
}
if(window.sankore)
sankore.setPreference("blackYellowData", JSON.stringify(arrayToExport));
}
}
//checking empty fields
function checkEmptyFields(field){
if(field.val() == ""){
field.css("background-color", "red");
return false;
} else {
field.css("background-color", "#ff9");
return true;
}
}
//reload
function reloadItems(){
if($("#wgt_edit").hasClass("selected"))
$("#wgt_display").trigger("click");
else{
var tmp_array = [];
$(".readyTask").each(function(){
tmp_array.push($(this));
});
tmp_array = shuffle(tmp_array);
orderItems(tmp_array);
}
}
//order items
function orderItems(items){
var bottom = ($("#wgt_edit").hasClass("selected"))?85:45,
lastItemLeft = 54;
for (var i in items){
if((bottom + items[i].height()) < ($(window).height() - 54)){
items[i].css("top", bottom + 15 + "px").css("left", lastItemLeft + "px").appendTo("#data");
bottom += items[i].height() + 15;
} else {
bottom = 100;
lastItemLeft += 255;
items[i].css("top", bottom + "px").css("left", lastItemLeft + "px").appendTo("#data");
bottom += items[i].height();
}
}
}
//shuffles an array
function shuffle( arr )
{
var pos, tmp;
for( var i = 0; i < arr.length; i++ )
{
pos = Math.round( Math.random() * ( arr.length - 1 ) );
tmp = arr[pos];
arr[pos] = arr[i];
arr[i] = tmp;
}
return arr;
}
//adding a new task to the page
function addTask(expression, result){
var lastItem = $(".editContainer:last"),
lastItemPos = lastItem.length ? lastItem.position().top : 85,
lastItemHeight = lastItem.length ? lastItem.height() : 0,
lastItemLeft = lastItem.length ? lastItem.position().left : 54;
var bottom = lastItemPos + lastItemHeight + 85;
var editContent = $("<div class='editContainer'>");
$("<div class='closeItem'>").appendTo(editContent);
var main = $("<div class='readyTask'>");
$("<div class='taskContainer' style='color: yellow;' contenteditable='true'>" + expression + "</div>").appendTo(main);
$("<div class='taskContainer' style='color: black;' contenteditable='true'>"+ result + "</div>").appendTo(main);
if(bottom < ($(window).height() - 54)){
editContent.css("top", lastItemPos + lastItemHeight + 15 + "px").css("left", lastItemLeft + "px").appendTo("#data");
} else {
lastItemPos = 85;
editContent.css("top", lastItemPos + 15 + "px").css("left", lastItemLeft + 255 + "px").appendTo("#data");
}
main.appendTo(editContent);
}
//changing the style
function changeStyle(val){
switch(val){
case "1":
$(".b_top_left").removeClass("btl_pad").removeClass("without_back");
$(".b_top_center").removeClass("btc_pad").removeClass("without_back");
$(".b_top_right").removeClass("btr_pad").removeClass("without_back");
$(".b_center_left").removeClass("bcl_pad").removeClass("without_back");
$(".b_center_right").removeClass("bcr_pad").removeClass("without_back");
$(".b_bottom_right").removeClass("bbr_pad").removeClass("without_back");
$(".b_bottom_left").removeClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").removeClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload");
$("#wgt_help").removeClass("pad_color").removeClass("pad_help");
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit");
$("#wgt_name").removeClass("pad_color");
$("#wgt_display").addClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").addClass("radius_ft");
break;
case "2":
$(".b_top_left").addClass("btl_pad").removeClass("without_back");
$(".b_top_center").addClass("btc_pad").removeClass("without_back");
$(".b_top_right").addClass("btr_pad").removeClass("without_back");
$(".b_center_left").addClass("bcl_pad").removeClass("without_back");
$(".b_center_right").addClass("bcr_pad").removeClass("without_back");
$(".b_bottom_right").addClass("bbr_pad").removeClass("without_back");
$(".b_bottom_left").addClass("bbl_pad").removeClass("without_back");
$(".b_bottom_center").addClass("bbc_pad").removeClass("without_back");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").removeClass("without_radius").removeClass("radius_ft");
break;
case "3":
$(".b_top_left").addClass("without_back").removeClass("btl_pad");
$(".b_top_center").addClass("without_back").removeClass("btc_pad");
$(".b_top_right").addClass("without_back").removeClass("btr_pad");
$(".b_center_left").addClass("without_back").removeClass("bcl_pad");
$(".b_center_right").addClass("without_back").removeClass("bcr_pad");
$(".b_bottom_right").addClass("without_back").removeClass("bbr_pad");
$(".b_bottom_left").addClass("without_back").removeClass("bbl_pad");
$(".b_bottom_center").addClass("without_back").removeClass("bbc_pad");
$("#wgt_help").addClass("pad_color").addClass("pad_help");
$("#wgt_reload").addClass("pad_color").addClass("pad_reload");
$("#wgt_edit").addClass("pad_color").addClass("pad_edit");
$("#wgt_name").addClass("pad_color");
$("#wgt_display").removeClass("display_wood");
$("#style_select").val(val);
$("body, html").addClass("without_radius").removeClass("radius_ft");
break;
}
if($("#wgt_edit").hasClass("selected"))
$(document).enableTextSelect();
}

@ -0,0 +1,11 @@
fr.njin.i18n.document.title = Ciferník
fr.njin.i18n.toolbar.edit = Upraviť
fr.njin.i18n.toolbar.view = Zobraziť
fr.njin.i18n.toolbar.reload = Obnoviť
fr.njin.i18n.toolbar.help = Pomoc
fr.njin.i18n.parameters.label.themes = Farebný motív
fr.njin.i18n.parameters.label.slate.themes = bridlica
fr.njin.i18n.parameters.label.pad.themes = tablet
fr.njin.i18n.parameters.label.none.themes = žiadny

@ -0,0 +1,16 @@
<h3>Ciferník</h3>
<h4>Počítanie spamäti</h4>
<p>V tejto interaktívnej aktivite treba zistiť neznáme číslo (počet dní) sčítaním, odčítaním, násobením alebo delením
čísel na ciferníku. Jej cieľom je precvičiť počítanie spamäti. Kliknite na číslo a&nbsp;znamienko na ciferníku.
Po kliknutí na otáznik sa zobrazí výsledok (neznáme číslo, čiže počet dní).</p>
<p>Výber čísla a znamienka zrušíte tlačidlom Obnoviť. </p>
<p>Po stlačení tlačidla Upraviť môžete v&nbsp;režime úprav zmeniť:</p>
<ul><li>farebný motív na tablet, bridlicu alebo na žiadny (predvolený je tablet),</li>
<li>číslo v strede ciferníka.</li></ul>
<p>Ak chcete zmeniť číslo v strede ciferníka, kliknite naň a prepíšte ho.</p>
<p>Tlačidlom Zobraziť sa z režimu úprav vrátite na aktivitu.</p>

@ -0,0 +1,14 @@
fr.njin.i18n.document.title = Kocky
fr.njin.i18n.toolbar.edit = Upraviť
fr.njin.i18n.toolbar.view = Zobraziť
fr.njin.i18n.toolbar.reload = Obnoviť
fr.njin.i18n.toolbar.help = Pomoc
fr.njin.i18n.parameters.label.themes = Farebný motív
fr.njin.i18n.parameters.label.slate.themes = bridlica
fr.njin.i18n.parameters.label.pad.themes = tablet
fr.njin.i18n.parameters.label.none.themes = žiadny
fr.njin.i18n.de.parameters.label.count = Počet kociek
fr.njin.i18n.de.actions.label.launch = Hodiť!

@ -0,0 +1,14 @@
<h3>Kocky</h3>
<h4>Na počítanie nahlas alebo iné hry</h4>
<p>Interaktívna aktivita Kocky vám umožňuje zobraziť náhodne vybrané steny hracích kociek.</p>
<p>Po kliknutí na šípku alebo na tlačidlo Hodiť! sa zobrazia iné čísla.
So zo&shy;brazenými číslami môžete precvičovať počítanie nahlas alebo hrať iné hry.
</p>
<p>Výpočty a ich postup môžu byť za&shy;písané na interaktívnu tabuľu (mimo interaktívnej aktivity).</p>
<p>Po stlačení tlačidla Upraviť môžete v&nbsp;režime úprav zmeniť:</p>
<ul>
<li>farebný motív na bridlicu, tablet alebo na žiadny (predvolená je bridlica),<br></li>
<li>počet kociek, ktoré vo svojej aktivite použijete (2 &ndash; 6).</li>
</ul>
<p>Tlačidlom Zobraziť sa z režimu úprav vrátite na aktivitu.</p>

@ -0,0 +1,15 @@
fr.njin.i18n.document.title = Obálka
fr.njin.i18n.toolbar.edit = Upraviť
fr.njin.i18n.toolbar.view = Zatvoriť
fr.njin.i18n.toolbar.reload = Obnoviť
fr.njin.i18n.toolbar.help = Pomocník
fr.njin.i18n.parameters.label.themes = Farebný motív
fr.njin.i18n.parameters.label.slate.themes = bridlica
fr.njin.i18n.parameters.label.pad.themes = tablet
fr.njin.i18n.parameters.label.none.themes = žiadny
fr.njin.i18n.boite.parameters.label.count = Počet sponiek
fr.njin.i18n.boite.parameters.label.remove = -
fr.njin.i18n.boite.parameters.label.duplicate = +

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save