Merge PR #271: Update password entry fields
This commit is contained in:
commit
abc33a4f52
@ -2227,7 +2227,7 @@ Bitte versuche es erneut.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>nymea is a registered trademark of guh GmbH.</source>
|
||||
<translation>nymea ist ein eingetragener Markenname der guh GmbH.</translation>
|
||||
<translation type="vanished">nymea ist ein eingetragener Markenname der guh GmbH.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Licensed under the terms of the GNU general public license, version 2. Please visit the GitHub page for source code and build instructions.</source>
|
||||
@ -2261,6 +2261,10 @@ Bitte versuche es erneut.</translation>
|
||||
<source>License text</source>
|
||||
<translation>Lizenztext</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>nymea is a registered trademark of nymea GmbH.</source>
|
||||
<translation>nymea ist ein eingetragenes Markenzeichen der nymea GmbH</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InputTriggerDevicePage</name>
|
||||
@ -3396,6 +3400,13 @@ Möchtest Du fortfahren?</translation>
|
||||
<translation>Neue Magie</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewScenePage</name>
|
||||
<message>
|
||||
<source>New scene</source>
|
||||
<translation>Neue Szene</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewThingMagicPage</name>
|
||||
<message>
|
||||
@ -3568,10 +3579,12 @@ Möchtest Du fortfahren?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>light</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>Beleuchtung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>sensor</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>Sensor</translation>
|
||||
</message>
|
||||
<message>
|
||||
@ -3584,10 +3597,12 @@ Möchtest Du fortfahren?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>battery powered thing</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>batteriebetriebenes Gerät</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>connectable thing</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>verbindbares Gerät</translation>
|
||||
</message>
|
||||
<message>
|
||||
@ -3616,14 +3631,17 @@ Möchtest Du fortfahren?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>switchable thing</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>einschalbare Geräte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>daylight sensor</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>Tageslichtsensor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>presence sensor</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>Anwesenheitssensor</translation>
|
||||
</message>
|
||||
<message>
|
||||
@ -3632,28 +3650,48 @@ Möchtest Du fortfahren?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>doorbell</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>Türklingel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>alert</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>Alarm</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>button</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>Taster</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>access control</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>Zugangskontrolle</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>smart meter</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>Smart Meter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>media player</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>Medienabspielgerät</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fingerprint reader</source>
|
||||
<translation>Fingerabdruck Lesegerät</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>moisture sensor</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>Feuchtigkeitssensor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>thing to notify</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>"Thing" zum Benachrichtigen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NymeaConnection</name>
|
||||
@ -3711,6 +3749,30 @@ Möchtest Du fortfahren?</translation>
|
||||
<source>Pick a password</source>
|
||||
<translation>Wähle ein Passwort</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimum %1 characters</source>
|
||||
<translation>Minimum %1 Zeichen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lowercase letters</source>
|
||||
<translation>Kleinbuchstaben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Uppercase letters</source>
|
||||
<translation>Großbuchstaben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Numbers</source>
|
||||
<translation>Zahlen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Special characters</source>
|
||||
<translation>Sonderzeichen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirm password</source>
|
||||
<translation>Passwort bestätigen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PluginParamsPage</name>
|
||||
@ -3846,15 +3908,15 @@ Möchtest Du fortfahren?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirm password</source>
|
||||
<translation>Passwort bestätigen</translation>
|
||||
<translation type="vanished">Passwort bestätigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><font color="%1">The passwords match.</font></source>
|
||||
<translation><font color="%1">Die Passwörter stimmen überein.</font></translation>
|
||||
<translation type="vanished"><font color="%1">Die Passwörter stimmen überein.</font></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><font color="%1">The passwords </font><font color="%2">do not</font><font color="%1"> match.</font></source>
|
||||
<translation><font color="%1">Die Passwörter stimmen </font><font color="%2">nicht</font><font color="%1"> überein.</font></translation>
|
||||
<translation type="vanished"><font color="%1">Die Passwörter stimmen </font><font color="%2">nicht</font><font color="%1"> überein.</font></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><font color="%1">The password needs to be </font><font color="%2">at least 12 characters long</font><font color="%1">, contain </font><font color="%3">lowercase</font><font color="%1">, </font><font color="%4">uppercase</font><font color="%1"> letters as well as </font><font color="%5">numbers</font><font color="%1"> and </font><font color="%6">special characters</font><font color="%1">.</font></source>
|
||||
@ -3862,7 +3924,7 @@ Möchtest Du fortfahren?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><font color="%1">The password needs to be </font><font color="%2">at least %3 characters long</font><font color="%1">, contain </font><font color="%4">lowercase</font><font color="%1">, </font><font color="%5">uppercase</font><font color="%1"> letters as well as </font><font color="%6">numbers</font><font color="%1"> and </font><font color="%7">special characters</font><font color="%1">.</font></source>
|
||||
<translation><font color="%1">Das Passwort muss </font><font color="%2">mindestens %3 Zeichen lang</font><font color="%1"> sein, </font><font color="%4">Kleinbuchstaben</font><font color="%1">, </font><font color="%5">Großbuchstaben</font><font color="%1"> sowie </font><font color="%6">Zahlen</font><font color="%1"> und </font><font color="%7">Sonderzeichen</font><font color="%1"> beinhalten.</font></translation>
|
||||
<translation type="vanished"><font color="%1">Das Passwort muss </font><font color="%2">mindestens %3 Zeichen lang</font><font color="%1"> sein, </font><font color="%4">Kleinbuchstaben</font><font color="%1">, </font><font color="%5">Großbuchstaben</font><font color="%1"> sowie </font><font color="%6">Zahlen</font><font color="%1"> und </font><font color="%7">Sonderzeichen</font><font color="%1"> beinhalten.</font></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -4009,7 +4071,7 @@ Möchtest Du fortfahren?</translation>
|
||||
<name>SelectThingPage</name>
|
||||
<message>
|
||||
<source>Select a thing</source>
|
||||
<translation>"Thing" auswählen</translation>
|
||||
<translation type="vanished">"Thing" auswählen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>A specific thing</source>
|
||||
@ -4021,16 +4083,32 @@ Möchtest Du fortfahren?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select a kind of things</source>
|
||||
<translation>Typ von "Things" auswählen</translation>
|
||||
<translation type="vanished">Typ von "Things" auswählen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select a %1</source>
|
||||
<translation>%1 auswählen</translation>
|
||||
<translation type="vanished">%1 auswählen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Any %1</source>
|
||||
<translation>Jede(s) %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select kind of things</source>
|
||||
<translation>"Thing" Kategorie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select %1</source>
|
||||
<translation>%1 auswählen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select thing</source>
|
||||
<translation>"Thing" auswählen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>OK</source>
|
||||
<translation>OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SensorDevicePagePost110</name>
|
||||
@ -4397,6 +4475,14 @@ Möchtest Du fortfahren?</translation>
|
||||
<source>Next</source>
|
||||
<translation>Weiter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>OAuth is not supported on this platform. Please use this app on a different device to set up this thing.</source>
|
||||
<translation>OAuth wird auf diesem System nicht unterstützt. Bitte benutze diese App auf einem anderen Gerät um dieses "Thing" einzurichten.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>In order to use OAuth on this platform, make sure qml-module-qtwebview is installed.</source>
|
||||
<translation>Um OAuth auf diesem System zu benutzen, stelle sicher, dass qml-module-qtwebview installiert ist.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutterDeviceListPage</name>
|
||||
@ -4637,6 +4723,10 @@ Do you want to proceed?</source>
|
||||
<translation>
|
||||
Möchtest Du fortfahren?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Failure adding repository.</source>
|
||||
<translation>Fehler beim Hinzufügen der Paketquelle.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TimeEventDelegate</name>
|
||||
|
||||
@ -1669,10 +1669,6 @@ Please try again.</source>
|
||||
<source>Howdy cowboy!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>nymea is a registered trademark of guh GmbH.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Licensed under the terms of the GNU general public license, version 2. Please visit the GitHub page for source code and build instructions.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@ -1705,6 +1701,10 @@ Please try again.</source>
|
||||
<source>License text</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>nymea is a registered trademark of nymea GmbH.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Interfaces</name>
|
||||
@ -2598,6 +2598,13 @@ Please try again.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewScenePage</name>
|
||||
<message>
|
||||
<source>New scene</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewThingMagicPage</name>
|
||||
<message>
|
||||
@ -2786,30 +2793,37 @@ Please try again.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>light</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>sensor</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>battery powered thing</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>connectable thing</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>switchable thing</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>daylight sensor</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>presence sensor</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
@ -2818,26 +2832,46 @@ Please try again.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>doorbell</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>alert</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>button</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>access control</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>smart meter</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>media player</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fingerprint reader</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>moisture sensor</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>thing to notify</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
@ -2897,6 +2931,30 @@ Please try again.</source>
|
||||
<source>Pick a password</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimum %1 characters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lowercase letters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Uppercase letters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Numbers</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Special characters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirm password</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PluginParamsPage</name>
|
||||
@ -3006,18 +3064,6 @@ Please try again.</source>
|
||||
<comment>example: "and temperature > 5"</comment>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirm password</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><font color="%1">The passwords match.</font></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><font color="%1">The passwords </font><font color="%2">do not</font><font color="%1"> match.</font></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>only if %1 %2 %3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@ -3026,10 +3072,6 @@ Please try again.</source>
|
||||
<source>and %1 %2 %3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><font color="%1">The password needs to be </font><font color="%2">at least %3 characters long</font><font color="%1">, contain </font><font color="%4">lowercase</font><font color="%1">, </font><font color="%5">uppercase</font><font color="%1"> letters as well as </font><font color="%6">numbers</font><font color="%1"> and </font><font color="%7">special characters</font><font color="%1">.</font></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SelectActionPage</name>
|
||||
@ -3154,22 +3196,26 @@ Please try again.</source>
|
||||
</context>
|
||||
<context>
|
||||
<name>SelectThingPage</name>
|
||||
<message>
|
||||
<source>Select a kind of things</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select a %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select a thing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Any %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select kind of things</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select thing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>OK</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SensorDevicePagePost110</name>
|
||||
@ -3428,6 +3474,14 @@ Please try again.</source>
|
||||
<source>Next</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>OAuth is not supported on this platform. Please use this app on a different device to set up this thing.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>In order to use OAuth on this platform, make sure qml-module-qtwebview is installed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutterDeviceListPage</name>
|
||||
@ -3605,6 +3659,10 @@ Please only use this if you are sure you want this and consider reporting the is
|
||||
Do you want to proceed?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Failure adding repository.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TimeEventDelegate</name>
|
||||
|
||||
@ -1669,10 +1669,6 @@ Please try again.</source>
|
||||
<source>Howdy cowboy!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>nymea is a registered trademark of guh GmbH.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Licensed under the terms of the GNU general public license, version 2. Please visit the GitHub page for source code and build instructions.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@ -1705,6 +1701,10 @@ Please try again.</source>
|
||||
<source>License text</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>nymea is a registered trademark of nymea GmbH.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Interfaces</name>
|
||||
@ -2598,6 +2598,13 @@ Please try again.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewScenePage</name>
|
||||
<message>
|
||||
<source>New scene</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewThingMagicPage</name>
|
||||
<message>
|
||||
@ -2786,30 +2793,37 @@ Please try again.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>light</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>sensor</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>battery powered thing</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>connectable thing</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>switchable thing</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>daylight sensor</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>presence sensor</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
@ -2818,26 +2832,46 @@ Please try again.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>doorbell</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>alert</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>button</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>access control</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>smart meter</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>media player</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fingerprint reader</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>moisture sensor</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>thing to notify</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
@ -2897,6 +2931,30 @@ Please try again.</source>
|
||||
<source>Pick a password</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimum %1 characters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lowercase letters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Uppercase letters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Numbers</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Special characters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirm password</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PluginParamsPage</name>
|
||||
@ -3006,18 +3064,6 @@ Please try again.</source>
|
||||
<comment>example: "and temperature > 5"</comment>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirm password</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><font color="%1">The passwords match.</font></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><font color="%1">The passwords </font><font color="%2">do not</font><font color="%1"> match.</font></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>only if %1 %2 %3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@ -3026,10 +3072,6 @@ Please try again.</source>
|
||||
<source>and %1 %2 %3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><font color="%1">The password needs to be </font><font color="%2">at least %3 characters long</font><font color="%1">, contain </font><font color="%4">lowercase</font><font color="%1">, </font><font color="%5">uppercase</font><font color="%1"> letters as well as </font><font color="%6">numbers</font><font color="%1"> and </font><font color="%7">special characters</font><font color="%1">.</font></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SelectActionPage</name>
|
||||
@ -3154,22 +3196,26 @@ Please try again.</source>
|
||||
</context>
|
||||
<context>
|
||||
<name>SelectThingPage</name>
|
||||
<message>
|
||||
<source>Select a kind of things</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select a %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select a thing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Any %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select kind of things</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select thing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>OK</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SensorDevicePagePost110</name>
|
||||
@ -3428,6 +3474,14 @@ Please try again.</source>
|
||||
<source>Next</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>OAuth is not supported on this platform. Please use this app on a different device to set up this thing.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>In order to use OAuth on this platform, make sure qml-module-qtwebview is installed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutterDeviceListPage</name>
|
||||
@ -3605,6 +3659,10 @@ Please only use this if you are sure you want this and consider reporting the is
|
||||
Do you want to proceed?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Failure adding repository.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TimeEventDelegate</name>
|
||||
|
||||
@ -1707,7 +1707,7 @@ Please try again.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>nymea is a registered trademark of guh GmbH.</source>
|
||||
<translation>nymea는 guh GmbH의 등록 상표입니다.</translation>
|
||||
<translation type="vanished">nymea는 guh GmbH의 등록 상표입니다.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Licensed under the terms of the GNU general public license, version 2. Please visit the GitHub page for source code and build instructions.</source>
|
||||
@ -1741,6 +1741,10 @@ Please try again.</source>
|
||||
<source>License text</source>
|
||||
<translation>라이센스</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>nymea is a registered trademark of nymea GmbH.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Interfaces</name>
|
||||
@ -2633,6 +2637,13 @@ Please try again.</source>
|
||||
<translation>마법 만들기</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewScenePage</name>
|
||||
<message>
|
||||
<source>New scene</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NewThingMagicPage</name>
|
||||
<message>
|
||||
@ -2821,30 +2832,37 @@ Please try again.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>light</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>빛</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>sensor</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>센서</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>battery powered thing</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>배터리로 작동하는 것</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>connectable thing</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>연결 가능한 것</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>switchable thing</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>스위치 있는 것</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>daylight sensor</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>일광 센서</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>presence sensor</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>움직임 감지 센서</translation>
|
||||
</message>
|
||||
<message>
|
||||
@ -2853,28 +2871,48 @@ Please try again.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>doorbell</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>초인종</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>alert</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>경보</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>button</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>버튼</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>access control</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>액세스 제어</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>smart meter</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>스마트 미터</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>media player</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation>미디어 플레이어</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fingerprint reader</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>moisture sensor</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>thing to notify</source>
|
||||
<extracomment>Select ...</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NymeaConnection</name>
|
||||
@ -2932,6 +2970,30 @@ Please try again.</source>
|
||||
<source>Pick a password</source>
|
||||
<translation>암호 선택</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimum %1 characters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lowercase letters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Uppercase letters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Numbers</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Special characters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirm password</source>
|
||||
<translation type="unfinished">비밀번호 확인</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PluginParamsPage</name>
|
||||
@ -3043,15 +3105,15 @@ Please try again.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>Confirm password</source>
|
||||
<translation>비밀번호 확인</translation>
|
||||
<translation type="vanished">비밀번호 확인</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><font color="%1">The passwords match.</font></source>
|
||||
<translation><font color="%1" >암호가 일치 합니다.</font></translation>
|
||||
<translation type="vanished"><font color="%1" >암호가 일치 합니다.</font></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><font color="%1">The passwords </font><font color="%2">do not</font><font color="%1"> match.</font></source>
|
||||
<translation><font color="%1">비밀번호가 </font><font color="%2"></font><font color="%1">틀립니다.</font></translation>
|
||||
<translation type="vanished"><font color="%1">비밀번호가 </font><font color="%2"></font><font color="%1">틀립니다.</font></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>only if %1 %2 %3</source>
|
||||
@ -3063,7 +3125,7 @@ Please try again.</source>
|
||||
</message>
|
||||
<message>
|
||||
<source><font color="%1">The password needs to be </font><font color="%2">at least %3 characters long</font><font color="%1">, contain </font><font color="%4">lowercase</font><font color="%1">, </font><font color="%5">uppercase</font><font color="%1"> letters as well as </font><font color="%6">numbers</font><font color="%1"> and </font><font color="%7">special characters</font><font color="%1">.</font></source>
|
||||
<translation><font color="%1">비밀번호는 </font><font color="%4">소문자 </font><font color = "% 1">, </ font> <font color = "% 5"> 대문자 </ font> <font color="%1">, </font><font color = "% 1 "> 문자 및 </ font> <font color ="% 6 "> 숫자 </ font><font color="%1">, </font> <font color ="% 7 "> 특수 문자 </ font> <font color="%1">포함 </font><font color="%1">,</font> <font color="%2">최소 % 3 자 이상이어야 합니다<font color="%1">. </ font></translation>
|
||||
<translation type="vanished"><font color="%1">비밀번호는 </font><font color="%4">소문자 </font><font color = "% 1">, </ font> <font color = "% 5"> 대문자 </ font> <font color="%1">, </font><font color = "% 1 "> 문자 및 </ font> <font color ="% 6 "> 숫자 </ font><font color="%1">, </font> <font color ="% 7 "> 특수 문자 </ font> <font color="%1">포함 </font><font color="%1">,</font> <font color="%2">최소 % 3 자 이상이어야 합니다<font color="%1">. </ font></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -3191,20 +3253,36 @@ Please try again.</source>
|
||||
<name>SelectThingPage</name>
|
||||
<message>
|
||||
<source>Select a kind of things</source>
|
||||
<translation>종류 선택</translation>
|
||||
<translation type="vanished">종류 선택</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select a %1</source>
|
||||
<translation>%1 선택</translation>
|
||||
<translation type="vanished">%1 선택</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select a thing</source>
|
||||
<translation>사물(장치) 선택</translation>
|
||||
<translation type="vanished">사물(장치) 선택</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Any %1</source>
|
||||
<translation>아무나 %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select kind of things</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select thing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>OK</source>
|
||||
<translation type="unfinished">확인</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SensorDevicePagePost110</name>
|
||||
@ -3463,6 +3541,14 @@ Please try again.</source>
|
||||
<source>Next</source>
|
||||
<translation>다음</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>OAuth is not supported on this platform. Please use this app on a different device to set up this thing.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>In order to use OAuth on this platform, make sure qml-module-qtwebview is installed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShutterDeviceListPage</name>
|
||||
@ -3640,6 +3726,10 @@ Do you want to proceed?</source>
|
||||
<translation>
|
||||
진행 하시겠습니까?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Failure adding repository.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TimeEventDelegate</name>
|
||||
|
||||
@ -180,23 +180,10 @@ Page {
|
||||
}
|
||||
RowLayout {
|
||||
Layout.leftMargin: app.margins; Layout.rightMargin: app.margins
|
||||
TextField {
|
||||
PasswordTextField {
|
||||
id: passwordTextField
|
||||
Layout.fillWidth: true
|
||||
echoMode: hiddenPassword ? TextInput.Password : TextInput.Normal
|
||||
property bool hiddenPassword: true
|
||||
}
|
||||
ColorIcon {
|
||||
Layout.preferredHeight: app.iconSize
|
||||
Layout.preferredWidth: app.iconSize
|
||||
name: "../images/eye.svg"
|
||||
color: passwordTextField.hiddenPassword ? keyColor : app.accentColor
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: {
|
||||
passwordTextField.hiddenPassword = !passwordTextField.hiddenPassword
|
||||
}
|
||||
}
|
||||
signup: false
|
||||
}
|
||||
}
|
||||
|
||||
@ -208,7 +195,7 @@ Page {
|
||||
enabled: usernameTextField.acceptableInput
|
||||
onClicked: {
|
||||
busyOverlay.shown = true
|
||||
AWSClient.login(usernameTextField.text, passwordTextField.text);
|
||||
AWSClient.login(usernameTextField.text, passwordTextField.password);
|
||||
}
|
||||
}
|
||||
|
||||
@ -338,13 +325,18 @@ Page {
|
||||
id: passwordTextField
|
||||
Layout.leftMargin: app.margins; Layout.rightMargin: app.margins
|
||||
Layout.fillWidth: true
|
||||
minPasswordLength: 8
|
||||
requireLowerCaseLetter: true
|
||||
requireUpperCaseLetter: true
|
||||
requireNumber: true
|
||||
requireSpecialChar: false
|
||||
}
|
||||
|
||||
Button {
|
||||
Layout.fillWidth: true
|
||||
Layout.leftMargin: app.margins; Layout.rightMargin: app.margins; Layout.topMargin: app.margins
|
||||
text: qsTr("Sign up")
|
||||
enabled: usernameTextField.acceptableInput && passwordTextField.isValidPassword
|
||||
enabled: usernameTextField.acceptableInput && passwordTextField.isValid
|
||||
onClicked: {
|
||||
busyOverlay.shown = true;
|
||||
AWSClient.signup(usernameTextField.text, passwordTextField.password)
|
||||
@ -576,13 +568,18 @@ Page {
|
||||
|
||||
PasswordTextField {
|
||||
id: passwordTextField
|
||||
minPasswordLength: 8
|
||||
requireLowerCaseLetter: true
|
||||
requireUpperCaseLetter: true
|
||||
requireNumber: true
|
||||
requireSpecialChar: false
|
||||
Layout.fillWidth: true; Layout.leftMargin: app.margins; Layout.rightMargin: app.margins
|
||||
}
|
||||
|
||||
Button {
|
||||
Layout.fillWidth: true; Layout.leftMargin: app.margins; Layout.rightMargin: app.margins
|
||||
text: qsTr("Reset password")
|
||||
enabled: passwordTextField.isValidPassword && codeTextField.text.length > 0
|
||||
enabled: passwordTextField.isValid && codeTextField.text.length > 0
|
||||
onClicked: {
|
||||
busyOverlay.shown = true
|
||||
AWSClient.confirmForgotPassword(confirmResetPasswordPage.email, codeTextField.text, passwordTextField.password)
|
||||
|
||||
@ -5,18 +5,31 @@ import QtQuick.Layouts 1.2
|
||||
ColumnLayout {
|
||||
id: root
|
||||
|
||||
property int minPasswordLength: 12
|
||||
property bool signup: true
|
||||
|
||||
// Only used when signup is true
|
||||
property int minPasswordLength: 12
|
||||
property bool requireSpecialChar: true
|
||||
property bool requireNumber: true
|
||||
property bool requireUpperCaseLetter: true
|
||||
property bool requireLowerCaseLetter: true
|
||||
|
||||
readonly property alias password: passwordTextField.text
|
||||
|
||||
readonly property bool isValidPassword: isLongEnough && hasLower && hasUpper && hasNumbers && hasSpecialChar && (confirmationMatches || !signup)
|
||||
readonly property bool isValidPassword:
|
||||
isLongEnough &&
|
||||
(hasLower || !requireLowerCaseLetter) &&
|
||||
(hasUpper || !requireUpperCaseLetter) &&
|
||||
(hasNumbers || !requireNumber) &&
|
||||
(hasSpecialChar || !requireSpecialChar)
|
||||
|
||||
readonly property bool isValid: !signup || (isValidPassword && confirmationMatches)
|
||||
|
||||
readonly property bool isLongEnough: passwordTextField.text.length >= minPasswordLength
|
||||
readonly property bool hasLower: passwordTextField.text.search(/[a-z]/) >= 0
|
||||
readonly property bool hasUpper: passwordTextField.text.search(/[A-Z/]/) >= 0
|
||||
readonly property bool hasNumbers: passwordTextField.text.search(/[0-9]/) >= 0
|
||||
readonly property bool hasSpecialChar: passwordTextField.text.search(/[\.,\*!"$%&/()=?`'+#'¡^°²³¼\[\]|{}\\@]/) >= 0
|
||||
readonly property bool hasNumbers: passwordTextField.text.search(/[0-9]/) >= 0
|
||||
readonly property bool hasSpecialChar: passwordTextField.text.search(/(?=.*?[$*.\[\]{}()?\-'"!@#%&/\\,><':;|_~`^])/) >= 0
|
||||
readonly property bool confirmationMatches: passwordTextField.text === confirmationPasswordTextField.text
|
||||
|
||||
property bool hiddenPassword: true
|
||||
@ -29,6 +42,41 @@ ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
echoMode: root.hiddenPassword ? TextInput.Password : TextInput.Normal
|
||||
placeholderText: root.signup ? qsTr("Pick a password") : ""
|
||||
|
||||
ToolTip.visible: root.signup && focus && !root.isValidPassword
|
||||
ToolTip.delay: 1000
|
||||
ToolTip.onVisibleChanged: print("Tooltip visible changed:", ToolTip.visible, focus, root.isValidPassword)
|
||||
ToolTip.text: {
|
||||
var texts = []
|
||||
var checks = []
|
||||
texts.push(qsTr("Minimum %1 characters").arg(root.minPasswordLength))
|
||||
checks.push(root.isLongEnough)
|
||||
if (root.requireLowerCaseLetter) {
|
||||
texts.push(qsTr("Lowercase letters"))
|
||||
checks.push(root.hasLower)
|
||||
}
|
||||
if (root.requireUpperCaseLetter) {
|
||||
texts.push(qsTr("Uppercase letters"))
|
||||
checks.push(root.hasUpper)
|
||||
}
|
||||
if (root.requireNumber) {
|
||||
texts.push(qsTr("Numbers"))
|
||||
checks.push(root.hasNumbers)
|
||||
}
|
||||
if (root.requireSpecialChar) {
|
||||
texts.push(qsTr("Special characters"))
|
||||
checks.push(root.hasSpecialChar)
|
||||
}
|
||||
var ret = []
|
||||
for (var i = 0; i < texts.length; i++) {
|
||||
var entry = "<font color=\"%1\">• ".arg(checks[i] ? app.foregroundColor : app.accentColor)
|
||||
entry += texts[i]
|
||||
entry += "</font>"
|
||||
ret.push(entry)
|
||||
}
|
||||
return ret.join("<br>")
|
||||
}
|
||||
|
||||
}
|
||||
ColorIcon {
|
||||
Layout.preferredHeight: app.iconSize
|
||||
@ -44,24 +92,6 @@ ColumnLayout {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
wrapMode: Text.WordWrap
|
||||
visible: root.signup
|
||||
|
||||
// TRANSLATORS: %1 will be replaced with the normal text color, %2 the color for the length check
|
||||
text: qsTr("<font color=\"%1\">The password needs to be </font><font color=\"%2\">at least %3 characters long</font><font color=\"%1\">, contain </font><font color=\"%4\">lowercase</font><font color=\"%1\">, </font><font color=\"%5\">uppercase</font><font color=\"%1\"> letters as well as </font><font color=\"%6\">numbers</font><font color=\"%1\"> and </font><font color=\"%7\">special characters</font><font color=\"%1\">.</font>")
|
||||
.arg(app.accentColor)
|
||||
.arg(!root.isLongEnough ? "red" : app.accentColor)
|
||||
.arg(root.minPasswordLength)
|
||||
.arg(!root.hasLower ? "red" : app.accentColor)
|
||||
.arg(!root.hasUpper ? "red" : app.accentColor)
|
||||
.arg(!root.hasNumbers ? "red" : app.accentColor)
|
||||
.arg(!root.hasSpecialChar ? "red" : app.accentColor)
|
||||
font.pixelSize: app.smallFont
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
visible: root.signup
|
||||
|
||||
@ -71,28 +101,5 @@ ColumnLayout {
|
||||
echoMode: root.hiddenPassword ? TextInput.Password : TextInput.Normal
|
||||
placeholderText: qsTr("Confirm password")
|
||||
}
|
||||
|
||||
ColorIcon {
|
||||
Layout.preferredHeight: app.iconSize
|
||||
Layout.preferredWidth: app.iconSize
|
||||
name: "../images/eye.svg"
|
||||
color: root.hiddenPassword ? keyColor : app.accentColor
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: {
|
||||
root.hiddenPassword = !root.hiddenPassword
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
wrapMode: Text.WordWrap
|
||||
visible: root.signup
|
||||
|
||||
text: root.confirmationMatches ? qsTr("<font color=\"%1\">The passwords match.</font>").arg(app.accentColor) : qsTr("<font color=\"%1\">The passwords </font><font color=\"%2\">do not</font><font color=\"%1\"> match.</font>").arg(app.accentColor).arg("red")
|
||||
font.pixelSize: app.smallFont
|
||||
}
|
||||
}
|
||||
|
||||
@ -104,6 +104,10 @@ Page {
|
||||
id: passwordTextField
|
||||
Layout.fillWidth: true
|
||||
minPasswordLength: 8
|
||||
requireLowerCaseLetter: true
|
||||
requireUpperCaseLetter: true
|
||||
requireNumber: true
|
||||
requireSpecialChar: false
|
||||
signup: engine.jsonRpcClient.initialSetupRequired
|
||||
}
|
||||
}
|
||||
@ -112,7 +116,7 @@ Page {
|
||||
Layout.fillWidth: true
|
||||
Layout.leftMargin: app.margins; Layout.rightMargin: app.margins; Layout.bottomMargin: app.margins
|
||||
text: qsTr("OK")
|
||||
enabled: passwordTextField.isValidPassword
|
||||
enabled: passwordTextField.isValid
|
||||
onClicked: {
|
||||
if (engine.jsonRpcClient.initialSetupRequired) {
|
||||
print("create user")
|
||||
|
||||
@ -440,11 +440,11 @@ Page {
|
||||
visible: pairingPage.setupMethod === "SetupMethodUserAndPassword"
|
||||
}
|
||||
|
||||
TextField {
|
||||
PasswordTextField {
|
||||
id: pinTextField
|
||||
Layout.fillWidth: true
|
||||
visible: pairingPage.setupMethod === "SetupMethodDisplayPin" || pairingPage.setupMethod === "SetupMethodUserAndPassword"
|
||||
echoMode: TextField.Password
|
||||
signup: false
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user