diff --git a/README.md b/README.md index 3d257ad..32b8457 100644 --- a/README.md +++ b/README.md @@ -50,3 +50,10 @@ An adapted version of the QZXing-library is used for QRCode-decoding The qrencode library is used for QRCode-encoding existing tokens for export to other devices. http://fukuchi.org/works/qrencode/ +## Translations + +The following people have contributed to translating SailOTP: + + * Swedish: Åke Engelbrektson (eson57) + * English: Stefan Brand (seiichiro0185) + * German: Stefan Brand (seiichiro0185) diff --git a/harbour-sailotp.pro b/harbour-sailotp.pro index 2ca910d..f5a9cc9 100644 --- a/harbour-sailotp.pro +++ b/harbour-sailotp.pro @@ -47,7 +47,8 @@ lupdate_only { qml/components/*.qml TRANSLATIONS = i18n/de.ts \ - i18n/en.ts + i18n/en.ts \ + i18n/sv.ts } include(src/qzxing/QZXing.pri) diff --git a/i18n/de.ts b/i18n/de.ts index 114db66..7a30a33 100644 --- a/i18n/de.ts +++ b/i18n/de.ts @@ -12,24 +12,29 @@ Copyright: Stefan Brand<br/>Lizenz: BSD (3-Klausel) - + A Simple Sailfish OTP Generator (RFC 6238/4226 compatible) Ein einfacher Sailfish OTP-Generator (RFC 6238/4226-kompatibel) - + Copyright: Stefan Brand License: BSD (3-clause) Copyright: Stefan Brand Lizenz: BSD (3-Klausel) - + SailOTP uses the following third party libs: SailOTP verwendet folgende externe Bibliotheken: + + + Translators: + Übersetzer: + AddOTP @@ -217,7 +222,7 @@ Lizenz: BSD (3-Klausel) MainView - + About Über @@ -230,57 +235,57 @@ Lizenz: BSD (3-Klausel) Datenbank importieren - + Export / Import Export / Import - + Add Token Token hinzufügen - + Nothing here Hier ist nichts - + Pull down to add a OTP Nach unten ziehen zum hinzufügen - + Deleting Lösche - + Token for Token für - + copied to clipboard kopiert - + Move up Nach oben - + Move down Nach unten - + Edit Bearbeiten - + Delete Löschen @@ -296,32 +301,32 @@ Lizenz: BSD (3-Klausel) ScanOTP - + Can't access temporary directory Kein Zugriff auf temporäres Verzeichnis. - + Add manually Manuell hinzufügen - + Scan Code Code scannen - + Scanning... scanne... - + No valid Token data found. Kein gültiges Token gefunden. - + Tap the picture to start / stop scanning. Pull down to add Token manually. Vorschau antippen um den Scan zu starten / zu stoppen. Nach unten ziehen um manuell hinzu zu fügen. diff --git a/i18n/en.ts b/i18n/en.ts index 72a7a50..75939ea 100644 --- a/i18n/en.ts +++ b/i18n/en.ts @@ -4,22 +4,27 @@ About - + A Simple Sailfish OTP Generator (RFC 6238/4226 compatible) - + Copyright: Stefan Brand License: BSD (3-clause) - + SailOTP uses the following third party libs: + + + Translators: + Translators: + AddOTP @@ -207,62 +212,62 @@ License: BSD (3-clause) MainView - + About - + Export / Import - + Add Token - + Nothing here - + Pull down to add a OTP - + Deleting - + Token for - + copied to clipboard - + Move up Move up - + Move down Move down - + Edit - + Delete @@ -278,32 +283,32 @@ License: BSD (3-clause) ScanOTP - + Can't access temporary directory - + Add manually - + Scan Code - + Scanning... - + No valid Token data found. - + Tap the picture to start / stop scanning. Pull down to add Token manually. diff --git a/i18n/sv.ts b/i18n/sv.ts new file mode 100644 index 0000000..01cfa84 --- /dev/null +++ b/i18n/sv.ts @@ -0,0 +1,318 @@ + + + + + About + + + A Simple Sailfish OTP Generator +(RFC 6238/4226 compatible) + En enkel Sailfish OTP-generator +(RFC 6238/4226-kompatibel) + + + + Copyright: Stefan Brand +License: BSD (3-clause) + Copyright: Stefan Brand +Licens: BSD (3-clause) + + + + SailOTP uses the following third party libs: + SailOTP använder följande tredjeparts bibliotek: + + + + Translators: + Översättare: + + + + AddOTP + + + Show QR-Code + Visa QR-kod + + + + Can't create QR-Code from incomplete settings! + Kan inte skapa QR-kod från ofullständiga inställningar! + + + + Save + Spara + + + + Add + Lägg till + + + + Type + Typ + + + + Time-based (TOTP) + Tidsbaserad (TOTP) + + + + Counter-based (HOTP) + Räknarbaserad (HOTP) + + + + Title + Namn + + + + Title for the OTP + Namn på OTP:n + + + + Secret (at least 16 characters) + Hemlighet (Minst 16 tecken) + + + + Secret OTP Key + Hemlig OTP-nyckel + + + + Next Counter Value + Nästa räknarvärde + + + + Next Value of the Counter + Nästa värde på räknaren + + + + ExportPage + + + File already exists, choose "Overwrite existing" to overwrite it. + Filen finns redan. Välj "Skriv över befintlig" för att skriva över den. + + + + Given file does not exist! + Angiven fil finns inte! + + + + + Export + Exportera + + + + + Import + Importera + + + + Filename + Filnamn + + + + File to import + Fil att importera + + + + File to export + Fil att exportera + + + + Overwrite existing + Skriv över befintlig + + + + Password + Lösenord + + + + Password for the file + Lösenord för filen + + + + Passwords don't match! + Lösenorden stämmer inte! + + + + Passwords match! + Lösenorden stämmer! + + + + Repeated Password for the file + Upprepat lösenord för filen + + + + Here you can Import Tokens from a file. Put in the file location and the password you used on export. Pull left to start the import. + Här kan du importera Token från en fil. Ange filens sökväg och lösenordet du angav vid exporten. Svep åt vänster för att starta importen. + + + + Here you can export Tokens to a file. The exported file will be encrypted with AES-256-CBC and Base64 encoded. Choose a strong password, the file will contain the secrets used to generate the Tokens for your accounts. Pull left to start the export. + Här kan du exportera Token till en fil. Den exporterade filen kommer att krypteras med AES-256-CBC och Base64. Välj ett starkt lösenord, filen kommer att innehålla hemligheterna som användes för att generera Token för ditt konto. Svep åt vänster för att starta exporten. + + + + Error writing to file + Fel vid skrivning till fil + + + + Token Database exported to + Token-databas exporterad till + + + + Could not encrypt tokens. Error: + Kunde inte kryptera token. Fel: + + + + Could not read tokens from Database + Kunde inte läsa in token från databasen + + + + Tokens imported from + Token importerad från + + + + Unable to decrypt file, did you use the right password? + Kunde inte dekryptera filen. Angav du rätt lösenord? + + + + Could not read from file + Kunde inte läsa från fil + + + + MainView + + + About + Om + + + + Export / Import + Export / Import + + + + Add Token + Lägg till Token + + + + Nothing here + Inget här + + + + Pull down to add a OTP + Dra neråt för att lägga till en OTP + + + + Deleting + Tar bort + + + + Token for + Token för + + + + copied to clipboard + kopierad till urklipp + + + + Move up + Flytta upp + + + + Move down + Flytta ner + + + + Edit + Redigera + + + + Delete + Ta bort + + + + QRPage + + + Can't create QR-Code from incomplete settings! + Kan inte skapa QR-kod från ofullständiga inställningar! + + + + ScanOTP + + + Can't access temporary directory + Kan inte komma åt temp-mapp + + + + Add manually + Lägg till manuellt + + + + Scan Code + Skanna kod + + + + Scanning... + Skannar... + + + + No valid Token data found. + Ingen giltig Token-data hittades. + + + + Tap the picture to start / stop scanning. Pull down to add Token manually. + Tryck på bilden för att starta / stoppa skanning. Dra neråt för att lägga till Token manuellt. + + + diff --git a/qml/pages/About.qml b/qml/pages/About.qml index 1c7a721..6f3031c 100644 --- a/qml/pages/About.qml +++ b/qml/pages/About.qml @@ -5,25 +5,25 @@ * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * - * 1. Redistributions of source code must retain the above copyright notice, this + * 1. Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or other + * list of conditions and the following disclaimer in the documentation and/or other * materials provided with the distribution. - * - * 3. The names of the contributors may not be used to endorse or promote products + * + * 3. The names of the contributors may not be used to endorse or promote products * derived from this software without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ @@ -33,59 +33,77 @@ import Sailfish.Silica 1.0 // Define the Layout of the About Page Page { id: aboutPage - Image { - id: logo - source: "../sailotp.png" - anchors.horizontalCenter: parent.horizontalCenter - y: 140 - } - Label { - id: name - anchors.horizontalCenter: parent.horizontalCenter - y: 260 - font.bold: true - text: "SailOTP " + Qt.application.version - } - TextArea { - id: desc - anchors.horizontalCenter: parent.horizontalCenter - anchors.top: name.bottom - anchors.topMargin: 20 + SilicaFlickable { + id: flickable + anchors.fill: parent width: parent.width - horizontalAlignment: TextEdit.Center - readOnly: true - text: qsTr("A Simple Sailfish OTP Generator\n(RFC 6238/4226 compatible)") - color: "white" - } - TextArea { - id: copyright - anchors.horizontalCenter: parent.horizontalCenter - anchors.top: desc.bottom - width: parent.width - horizontalAlignment: TextEdit.Center - readOnly: true - text: qsTr("Copyright: Stefan Brand\nLicense: BSD (3-clause)") - color: "white" - } - Button { - id: homepage - anchors.horizontalCenter: parent.horizontalCenter - anchors.top: copyright.bottom - text: "Source Code" - onClicked: { - Qt.openUrlExternally("https://www.seiichiro0185.org/gitlab/seiichiro0185/harbour-sailotp.git") + contentHeight: column.height + + Column { + id: column + width: parent.width + spacing: Theme.paddingLarge + + Image { + id: logo + source: "../sailotp.png" + anchors.topMargin: 20 + anchors.horizontalCenter: parent.horizontalCenter + } + Label { + id: name + anchors.horizontalCenter: parent.horizontalCenter + font.bold: true + text: "SailOTP " + Qt.application.version + } + TextArea { + id: desc + anchors.horizontalCenter: parent.horizontalCenter + width: parent.width + horizontalAlignment: TextEdit.Center + readOnly: true + text: qsTr("A Simple Sailfish OTP Generator\n(RFC 6238/4226 compatible)") + color: "white" + } + TextArea { + id: copyright + anchors.horizontalCenter: parent.horizontalCenter + width: parent.width + horizontalAlignment: TextEdit.Center + readOnly: true + text: qsTr("Copyright: Stefan Brand\nLicense: BSD (3-clause)") + color: "white" + } + Button { + id: homepage + anchors.horizontalCenter: parent.horizontalCenter + text: "Source Code" + onClicked: { + Qt.openUrlExternally("https://www.seiichiro0185.org/gitlab/seiichiro0185/harbour-sailotp.git") + } + } + TextArea { + id: acknowledgement + anchors.horizontalCenter: parent.horizontalCenter + width: parent.width + font.pixelSize: Theme.fontSizeSmall + horizontalAlignment: TextEdit.Center + readOnly: true + text: qsTr("SailOTP uses the following third party libs:")+"\n\nhttp://caligatio.github.io/jsSHA/\nhttps://github.com/mdp/gibberish-aes/\nhttp://sourceforge.net/projects/qzxing/\nhttp://fukuchi.org/works/qrencode/" + color: "white" + } + + TextArea { + id: translators + anchors.horizontalCenter: parent.horizontalCenter + width: parent.width + font.pixelSize: Theme.fontSizeSmall + horizontalAlignment: TextEdit.Center + readOnly: true + text: qsTr("Translators:")+"\n\nSwedish: Åke Engelbrektson\nEnglish: Stefan Brand\nGerman: Stefan Brand" + color: "white" + } } - } - TextArea { - id: acknowledgement - anchors.horizontalCenter: parent.horizontalCenter - anchors.top: homepage.bottom - anchors.topMargin: 20 - width: parent.width - font.pixelSize: Theme.fontSizeSmall - horizontalAlignment: TextEdit.Center - readOnly: true - text: qsTr("SailOTP uses the following third party libs:")+"\n\nhttp://caligatio.github.io/jsSHA/\nhttps://github.com/mdp/gibberish-aes/\nhttp://sourceforge.net/projects/qzxing/\nhttp://fukuchi.org/works/qrencode/" - color: "white" + VerticalScrollDecorator { } } } diff --git a/rpm/harbour-sailotp.changes b/rpm/harbour-sailotp.changes index 294f52e..d0deb1b 100644 --- a/rpm/harbour-sailotp.changes +++ b/rpm/harbour-sailotp.changes @@ -1,3 +1,6 @@ +* Sat May 30 2015 Stefan Brand 1.2-1 +- Added Swedish translation (Thanks to Åke Engelbrektson) + * Fri May 22 2015 Stefan Brand 1.1-1 - Added URL-decoding for OTP-titles when scanning QR-codes diff --git a/rpm/harbour-sailotp.yaml b/rpm/harbour-sailotp.yaml index f481a35..1867833 100644 --- a/rpm/harbour-sailotp.yaml +++ b/rpm/harbour-sailotp.yaml @@ -1,6 +1,6 @@ Name: harbour-sailotp Summary: SailOTP -Version: 1.1 +Version: 1.2 Release: 1 Group: Security URL: https://github.com/seiichiro0185/sailotp/