Update to 1.3.0

This commit is contained in:
Claudio Maradonna 2019-08-28 10:53:22 +02:00
parent 23d2f8aa0c
commit 54de12edc2
Signed by: claudiomaradonna
GPG Key ID: 57175942B4134838
13 changed files with 476 additions and 89 deletions

View File

@ -8,6 +8,11 @@ CONFIG += sailfishapp_i18n
QT += core qml multimedia dbus
QMAKE_TARGET_COMPANY = Unitoo
QMAKE_TARGET_PRODUCT = Boxing Timer
QMAKE_TARGET_DESCRIPTION = A customizable timer for fighting sports like boxe
QMAKE_TARGET_COPYRIGHT = Copyright © 2017-2019 Claudio Maradonna <claudio[at]unitoo[dot]name>
SOURCES += src/harbour-boxing-timer.cpp \
src/boxingtimer.cpp \
src/boxingsettings.cpp
@ -21,16 +26,6 @@ OTHER_FILES += qml/harbour-boxing-timer.qml \
SAILFISHAPP_ICONS += 86x86 108x108 128x128 172x172 256x256
# to disable building translations every time, comment out the
# following CONFIG line
# CONFIG += sailfishapp_i18n
# German translation is enabled as an example. If you aren't
# planning to localize your app, remember to comment out the
# following TRANSLATIONS line. And also do not forget to
# modify the localized app name in the the .desktop file.
# TRANSLATIONS += translations/harbour-boxing-timer-de.ts
DISTFILES += \
qml/ScreenBlank.qml \
qml/pages/TimerPage.qml \
@ -56,4 +51,13 @@ RESOURCES += \
harbour-boxing-timer.qrc
TRANSLATIONS += \
translations/harbour-boxing-timer.ts
translations/harbour-boxing-timer-en_US.ts \
translations/harbour-boxing-timer-it_IT.ts
translations.name = Translations
translations.input = TRANSLATIONS
translations.output = $$_PRO_FILE_PWD_/translations/${QMAKE_FILE_BASE}.qm
translations.commands = $$[QT_INSTALL_BINS]/lrelease ${QMAKE_FILE_IN}
translations.CONFIG = no_link
QMAKE_EXTRA_COMPILERS += translations
PRE_TARGETDEPS += compiler_translations_make_all

View File

@ -5,4 +5,8 @@
<file>resources/stop.wav</file>
<file>resources/inner.wav</file>
</qresource>
<qresource prefix="/">
<file>translations/harbour-boxing-timer-en_US.qm</file>
<file>translations/harbour-boxing-timer-it_IT.qm</file>
</qresource>
</RCC>

View File

@ -36,7 +36,7 @@ import "pages"
ApplicationWindow {
ScreenBlank {
enabled: true
enabled: boxingTimer.isActive
}
BoxingTimer {

View File

@ -61,10 +61,10 @@ You can save, load and delete your settings giving a name to them.
font.pixelSize: Theme.fontSizeSmall
plainText: qsTr("
Copyright (C) 2017 Claudio Maradonna
Copyright (C) 2017-2019 Claudio Maradonna
Unitoo Team, Italy
Sources at: https://github.com/UnitooTeam/harbour-boxing-timer
Sources at: https://gitlab.com/unitoo/harbour-boxing-timer
")
textFormat: Text.RichText

View File

@ -8,8 +8,9 @@
# * date Author's Name <author's email> version-release
# - Summary of changes
* Thu Aug 27 2019 Claudio Maradonna <claudio@unitoo.pw> 1.2.4-1
* Thu Aug 27 2019 Claudio Maradonna <claudio@unitoo.pw> 1.3.0-1
- Update for Sailfish X (Tested on Xperia XA2 Plus)
- Adding translations (actually only it_IT - Italian)
* Fri Sep 08 2017 Claudio Maradonna <claudio@unitoo.pw> 1.2.3-4
- Fixed bug when saving multiple inner timers

View File

@ -13,7 +13,7 @@ Name: harbour-boxing-timer
%{!?qtc_make:%define qtc_make make}
%{?qtc_builddir:%define _builddir %qtc_builddir}
Summary: Boxing timer
Version: 1.2.4
Version: 1.3.0
Release: 1
Group: Applications/Utilities
License: GPLv3

View File

@ -1,6 +1,6 @@
Name: harbour-boxing-timer
Summary: Boxing timer
Version: 1.2.4
Version: 1.3.0
Release: 1
# The contents of the Group field should be one of the groups listed here:
# http://gitorious.org/meego-developer-tools/spectacle/blobs/master/data/GROUPS

View File

@ -28,6 +28,8 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <QtGlobal>
#include <QGuiApplication>
#include <QtQuick>
#include <QList>
@ -38,19 +40,27 @@
int main(int argc, char *argv[])
{
// SailfishApp::main() will display "qml/template.qml", if you need more
// control over initialization, you can use:
//
// - SailfishApp::application(int, char *[]) to get the QGuiApplication *
// - SailfishApp::createView() to get a new QQuickView * instance
// - SailfishApp::pathTo(QString) to get a QUrl to a resource file
//
// To display the view, call "show()" (will show fullscreen on device).
QGuiApplication::setApplicationDisplayName("Boxing Timer");
QCoreApplication::setApplicationName("harbour-boxing-timer");
QCoreApplication::setOrganizationName("Unitoo");
QCoreApplication::setOrganizationDomain("unitoo.it");
QScopedPointer<QGuiApplication> app(SailfishApp::application(argc, argv));
QString lc = QLocale().name();
QTranslator tr;
if (tr.load("harbour-boxing-timer-" + lc, ":/translations"))
app->installTranslator(&tr);
qRegisterMetaTypeStreamOperators<QList<int>>("QList<int>");
qmlRegisterType<BoxingTimer>("Pw.Unitoo.Backend", 1, 0, "BoxingTimer");
qmlRegisterType<BoxingSettings>("Pw.Unitoo.Backend", 1, 0, "BoxingSettings");
return SailfishApp::main(argc, argv);
QScopedPointer<QQuickView> viewer(SailfishApp::createView());
QObject::connect(viewer->engine(), SIGNAL(quit()), app.data(), SLOT(quit()));
viewer->setSource(SailfishApp::pathTo("qml/harbour-boxing-timer.qml"));
viewer->show();
return app->exec();
}

Binary file not shown.

View File

@ -0,0 +1,188 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en" sourcelanguage="en">
<context>
<name>AboutPage</name>
<message>
<source>About</source>
<translation>About</translation>
</message>
<message>
<source>
&quot;Boxing Timer&quot; is a customizable timer for fighting sports like boxe.
You can set duration, rest and number of rounds. If you set 0 rounds, timer loops and count number of rounds.
You can add inner timers too.
You can save, load and delete your settings giving a name to them.
</source>
<translation>
&quot;Boxing Timer&quot; is a customizable timer for fighting sports like boxe.
You can set duration, rest and number of rounds. If you set 0 rounds, timer loops and count number of rounds.
You can add inner timers too.
You can save, load and delete your settings giving a name to them.
</translation>
</message>
<message>
<source>Developers and sources</source>
<translation>Developers and sources</translation>
</message>
<message>
<source>Artists</source>
<translation>Artists</translation>
</message>
<message>
<source>
Stefano Amandonico
GrafixPrint, Italy
info@grafixprint.it
http://www.grafixprint.it
</source>
<translation>
Stefano Amandonico
GrafixPrint, Italy
info@grafixprint.it
http://www.grafixprint.it
</translation>
</message>
<message>
<source>License</source>
<translation>License</translation>
</message>
<message>
<source>
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.&lt;br&gt;&lt;br&gt;
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.&lt;br&gt;&lt;br&gt;
You should have received a copy of the GNU General Public License
along with this program. If not, see &lt;a href=&quot;http://www.gnu.org/licenses&quot;&gt;http://www.gnu.org/licenses&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;br&gt;
All artworks are licensed under a &lt;a href=&quot;https://creativecommons.org/licenses/by-sa/4.0/&quot;&gt;Creative Commons Attribution-ShareAlike 4.0 International&lt;/a&gt;
</source>
<translation>
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.&lt;br&gt;&lt;br&gt;
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.&lt;br&gt;&lt;br&gt;
You should have received a copy of the GNU General Public License
along with this program. If not, see &lt;a href=&quot;http://www.gnu.org/licenses&quot;&gt;http://www.gnu.org/licenses&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;br&gt;
All artworks are licensed under a &lt;a href=&quot;https://creativecommons.org/licenses/by-sa/4.0/&quot;&gt;Creative Commons Attribution-ShareAlike 4.0 International&lt;/a&gt;
</translation>
</message>
<message>
<source>
Copyright (C) 2017-2019 Claudio Maradonna
Unitoo Team, Italy
Sources at: https://gitlab.com/unitoo/harbour-boxing-timer
</source>
<translation>
Copyright (C) 2017-2019 Claudio Maradonna
Unitoo Team, Italy
Sources at: https://gitlab.com/unitoo/harbour-boxing-timer
</translation>
</message>
</context>
<context>
<name>PresetList</name>
<message>
<source>Saved presets</source>
<translation>Saved presets</translation>
</message>
<message>
<source>Deleting</source>
<translation>Deleting</translation>
</message>
<message>
<source>Delete</source>
<translation>Delete</translation>
</message>
</context>
<context>
<name>SettingsPage</name>
<message>
<source>Save</source>
<translation>Save</translation>
</message>
<message>
<source>Add inner time</source>
<translation>Add inner time</translation>
</message>
<message>
<source>Remove last inner time</source>
<translation>Remove last inner time</translation>
</message>
<message>
<source>Settings</source>
<translation>Settings</translation>
</message>
<message>
<source>Round&apos;s settings</source>
<translation>Round&apos;s settings</translation>
</message>
<message>
<source>Preset name</source>
<translation>Preset name</translation>
</message>
<message>
<source>Duration</source>
<translation>Duration</translation>
</message>
<message>
<source>Rest</source>
<translation>Rest</translation>
</message>
<message>
<source>Total rounds</source>
<translation>Total rounds</translation>
</message>
<message>
<source>Inner timers</source>
<translation>Inner timers</translation>
</message>
</context>
<context>
<name>TimerPage</name>
<message>
<source>About</source>
<translation>About</translation>
</message>
<message>
<source>Settings</source>
<translation>Settings</translation>
</message>
<message>
<source>Stop</source>
<translation>Stop</translation>
</message>
<message>
<source>Reset</source>
<translation>Reset</translation>
</message>
<message>
<source>Boxing timer</source>
<translation>Boxing timer</translation>
</message>
</context>
</TS>

View File

@ -0,0 +1,188 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT" sourcelanguage="en">
<context>
<name>AboutPage</name>
<message>
<source>About</source>
<translation>Chi siamo</translation>
</message>
<message>
<source>
&quot;Boxing Timer&quot; is a customizable timer for fighting sports like boxe.
You can set duration, rest and number of rounds. If you set 0 rounds, timer loops and count number of rounds.
You can add inner timers too.
You can save, load and delete your settings giving a name to them.
</source>
<translation>
&quot;Boxing Timer&quot; è un timer personalizzabile per gli sport da combattimento come la boxe.
Puoi personalizzare la durata, il riposo e il numero di round. Se imposti 0 round, il timer va in loop e conta il numero di round effettuati.
Puoi creare anche dei round intermedi.
Puoi salvare, caricare e cancellare le tue impostazioni impostando un nome a esse.
</translation>
</message>
<message>
<source>Developers and sources</source>
<translation>Sviluppatori e sorgenti</translation>
</message>
<message>
<source>Artists</source>
<translation>Artisti</translation>
</message>
<message>
<source>
Stefano Amandonico
GrafixPrint, Italy
info@grafixprint.it
http://www.grafixprint.it
</source>
<translation>
Stefano Amandonico
GrafixPrint, Italia
info@grafixprint.it
http://www.grafixprint.it
</translation>
</message>
<message>
<source>License</source>
<translation>Licenza</translation>
</message>
<message>
<source>
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.&lt;br&gt;&lt;br&gt;
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.&lt;br&gt;&lt;br&gt;
You should have received a copy of the GNU General Public License
along with this program. If not, see &lt;a href=&quot;http://www.gnu.org/licenses&quot;&gt;http://www.gnu.org/licenses&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;br&gt;
All artworks are licensed under a &lt;a href=&quot;https://creativecommons.org/licenses/by-sa/4.0/&quot;&gt;Creative Commons Attribution-ShareAlike 4.0 International&lt;/a&gt;
</source>
<translation>
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.&lt;br&gt;&lt;br&gt;
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.&lt;br&gt;&lt;br&gt;
You should have received a copy of the GNU General Public License
along with this program. If not, see &lt;a href=&quot;http://www.gnu.org/licenses&quot;&gt;http://www.gnu.org/licenses&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;br&gt;
All artworks are licensed under a &lt;a href=&quot;https://creativecommons.org/licenses/by-sa/4.0/&quot;&gt;Creative Commons Attribution-ShareAlike 4.0 International&lt;/a&gt;
</translation>
</message>
<message>
<source>
Copyright (C) 2017-2019 Claudio Maradonna
Unitoo Team, Italy
Sources at: https://gitlab.com/unitoo/harbour-boxing-timer
</source>
<translation>
Copyright (C) 2017-2019 Claudio Maradonna
Unitoo Team, Italia
Sorgenti: https://gitlab.com/unitoo/harbour-boxing-timer
</translation>
</message>
</context>
<context>
<name>PresetList</name>
<message>
<source>Saved presets</source>
<translation>Presets salvati</translation>
</message>
<message>
<source>Deleting</source>
<translation>Sto eliminando</translation>
</message>
<message>
<source>Delete</source>
<translation>Elimina</translation>
</message>
</context>
<context>
<name>SettingsPage</name>
<message>
<source>Save</source>
<translation>Salva</translation>
</message>
<message>
<source>Add inner time</source>
<translation>Aggiungi tempo intermedio</translation>
</message>
<message>
<source>Remove last inner time</source>
<translation>Rimuovi ultimo tempo intermedio</translation>
</message>
<message>
<source>Settings</source>
<translation>Impostazioni</translation>
</message>
<message>
<source>Round&apos;s settings</source>
<translation>Impostazioni del round</translation>
</message>
<message>
<source>Preset name</source>
<translation>Nome del preset</translation>
</message>
<message>
<source>Duration</source>
<translation>Durata</translation>
</message>
<message>
<source>Rest</source>
<translation>Riposo</translation>
</message>
<message>
<source>Total rounds</source>
<translation>Totale round</translation>
</message>
<message>
<source>Inner timers</source>
<translation>Tempi intermedi</translation>
</message>
</context>
<context>
<name>TimerPage</name>
<message>
<source>About</source>
<translation>Chi siamo</translation>
</message>
<message>
<source>Settings</source>
<translation>Impostazioni</translation>
</message>
<message>
<source>Stop</source>
<translation>Stop</translation>
</message>
<message>
<source>Reset</source>
<translation>Resetta</translation>
</message>
<message>
<source>Boxing timer</source>
<translation>Boxing timer</translation>
</message>
</context>
</TS>

View File

@ -1,13 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT" sourcelanguage="en">
<TS version="2.1">
<context>
<name>AboutPage</name>
<message>
<location filename="../qml/pages/AboutPage.qml" line="23"/>
<source>About</source>
<translation>Chi siamo</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/AboutPage.qml" line="37"/>
<source>
&quot;Boxing Timer&quot; is a customizable timer for fighting sports like boxe.
@ -16,38 +18,30 @@ You can add inner timers too.
You can save, load and delete your settings giving a name to them.
</source>
<translation>
&quot;Boxing Timer&quot; è un timer personalizzabile per gli sport da combattimento come la boxe.
Puoi personalizzare la durata, il riposo e il numero di round. Se imposti 0 round, il timer va in loop e conta il numero di round effettuati.
Puoi creare anche dei round intermedi.
Puoi salvare, caricare e cancellare le tue impostazioni impostando un nome a esse.
</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/AboutPage.qml" line="47"/>
<source>Developers and sources</source>
<translation>Sviluppatori e sorgenti</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/AboutPage.qml" line="63"/>
<source>
Copyright (C) 2017 Claudio Maradonna
Copyright (C) 2017-2019 Claudio Maradonna
Unitoo Team, Italy
Sources at: https://github.com/UnitooTeam/harbour-boxing-timer
Sources at: https://gitlab.com/unitoo/harbour-boxing-timer
</source>
<translation>
Copyright (C) 2017 Claudio Maradonna
Unitoo Team, Italia
Sorgenti: https://github.com/UnitooTeam/harbour-boxing-timer
</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/AboutPage.qml" line="112"/>
<source>Artists</source>
<translation>Artisti</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/AboutPage.qml" line="128"/>
<source>
Stefano Amandonico
GrafixPrint, Italy
@ -55,19 +49,15 @@ GrafixPrint, Italy
info@grafixprint.it
http://www.grafixprint.it
</source>
<translation>
Stefano Amandonico
GrafixPrint, Italia
info@grafixprint.it
http://www.grafixprint.it
</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/AboutPage.qml" line="139"/>
<source>License</source>
<translation>Licenza</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/AboutPage.qml" line="155"/>
<source>
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
@ -85,104 +75,106 @@ along with this program. If not, see &lt;a href=&quot;http://www.gnu.org/licens
All artworks are licensed under a &lt;a href=&quot;https://creativecommons.org/licenses/by-sa/4.0/&quot;&gt;Creative Commons Attribution-ShareAlike 4.0 International&lt;/a&gt;
</source>
<translation>
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.&lt;br&gt;&lt;br&gt;
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.&lt;br&gt;&lt;br&gt;
You should have received a copy of the GNU General Public License
along with this program. If not, see &lt;a href=&quot;http://www.gnu.org/licenses&quot;&gt;http://www.gnu.org/licenses&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;br&gt;
All artworks are licensed under a &lt;a href=&quot;https://creativecommons.org/licenses/by-sa/4.0/&quot;&gt;Creative Commons Attribution-ShareAlike 4.0 International&lt;/a&gt;
</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PresetList</name>
<message>
<location filename="../qml/pages/PresetList.qml" line="17"/>
<source>Saved presets</source>
<translation>Presets salvati</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/PresetList.qml" line="38"/>
<source>Deleting</source>
<translation>Sto eliminando</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/PresetList.qml" line="57"/>
<source>Delete</source>
<translation>Elimina</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsPage</name>
<message>
<location filename="../qml/pages/SettingsPage.qml" line="66"/>
<source>Save</source>
<translation>Salva</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/SettingsPage.qml" line="86"/>
<source>Add inner time</source>
<translation>Aggiungi tempo intermedio</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/SettingsPage.qml" line="91"/>
<source>Remove last inner time</source>
<translation>Rimuovi ultimo tempo intermedio</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/SettingsPage.qml" line="108"/>
<source>Settings</source>
<translation>Impostazioni</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/SettingsPage.qml" line="110"/>
<source>Round&apos;s settings</source>
<translation>Impostazioni del round</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/SettingsPage.qml" line="117"/>
<source>Preset name</source>
<translation>Nome del preset</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/SettingsPage.qml" line="133"/>
<source>Duration</source>
<translation>Durata</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/SettingsPage.qml" line="146"/>
<source>Rest</source>
<translation>Riposo</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/SettingsPage.qml" line="159"/>
<source>Total rounds</source>
<translation>Totale round</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/SettingsPage.qml" line="163"/>
<source>Inner timers</source>
<translation>Tempi intermedi</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TimerPage</name>
<message>
<location filename="../qml/pages/TimerPage.qml" line="47"/>
<source>About</source>
<translation>Chi siamo</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/TimerPage.qml" line="56"/>
<source>Settings</source>
<translation>Impostazioni</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/TimerPage.qml" line="67"/>
<source>Stop</source>
<translation>Stop</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/TimerPage.qml" line="71"/>
<source>Reset</source>
<translation>Resetta</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/pages/TimerPage.qml" line="84"/>
<source>Boxing timer</source>
<translation>Boxing timer</translation>
<translation type="unfinished"></translation>
</message>
</context>
</TS>