diff --git a/web-src/src/components/ControlSetting.vue b/web-src/src/components/ControlSetting.vue index a6e48903..db84b3c8 100644 --- a/web-src/src/components/ControlSetting.vue +++ b/web-src/src/components/ControlSetting.vue @@ -13,9 +13,9 @@ size="16" /> -

+

-

+
diff --git a/web-src/src/components/ControlUrlField.vue b/web-src/src/components/ControlUrlField.vue index 93d075c7..49824fc0 100644 --- a/web-src/src/components/ControlUrlField.vue +++ b/web-src/src/components/ControlUrlField.vue @@ -1,9 +1,9 @@ @@ -27,11 +27,11 @@ export default { loading: { default: false, type: Boolean }, placeholder: { required: true, type: String } }, - emits: ['url-changed'], + emits: ['input'], data() { return { disabled: true, - url: '' + value: '' } }, mounted() { @@ -43,7 +43,7 @@ export default { validate(event) { const { validity } = event.target this.disabled = validity.patternMismatch || validity.valueMissing - this.$emit('url-changed', this.url, this.disabled) + this.$emit('input', this.value, this.disabled) } } } diff --git a/web-src/src/components/ModalDialogAddRss.vue b/web-src/src/components/ModalDialogAddRss.vue index 49d7e019..05231b38 100644 --- a/web-src/src/components/ModalDialogAddRss.vue +++ b/web-src/src/components/ModalDialogAddRss.vue @@ -11,7 +11,7 @@ :help="$t('dialog.add.rss.help')" :loading="loading" :placeholder="$t('dialog.add.rss.placeholder')" - @url-changed="onUrlChanged" + @input="onUrlChange" /> @@ -67,7 +67,7 @@ export default { cancel() { this.$emit('close') }, - onUrlChanged(url, disabled) { + onUrlChange(url, disabled) { this.url = url this.disabled = disabled } diff --git a/web-src/src/components/ModalDialogAddStream.vue b/web-src/src/components/ModalDialogAddStream.vue index 399a3165..0d225374 100644 --- a/web-src/src/components/ModalDialogAddStream.vue +++ b/web-src/src/components/ModalDialogAddStream.vue @@ -11,7 +11,7 @@ icon="web" :loading="loading" :placeholder="$t('dialog.add.stream.placeholder')" - @url-changed="onUrlChanged" + @input="onUrlChange" /> @@ -73,7 +73,7 @@ export default { cancel() { this.$emit('close') }, - onUrlChanged(url, disabled) { + onUrlChange(url, disabled) { this.url = url this.disabled = disabled }, diff --git a/web-src/src/components/ModalDialogPlaylistSave.vue b/web-src/src/components/ModalDialogPlaylistSave.vue index 1e4846f8..2adbd852 100644 --- a/web-src/src/components/ModalDialogPlaylistSave.vue +++ b/web-src/src/components/ModalDialogPlaylistSave.vue @@ -8,7 +8,7 @@ diff --git a/web-src/src/i18n/de.json b/web-src/src/i18n/de.json index d4a10ede..1133f249 100644 --- a/web-src/src/i18n/de.json +++ b/web-src/src/i18n/de.json @@ -21,7 +21,8 @@ "send": "Senden", "show-more": "Zeige mehr", "shuffle": "Zufallswiedergabe", - "update": "Neu einlesen" + "update": "Neu einlesen", + "verify": "Verifizieren" }, "count": { "albums": "{count} Album|{count} Album|{count} Alben", @@ -268,8 +269,7 @@ "pairing": "Pairing Remote", "speaker-pairing-info": "Wenn der Laufsprecher PIN-basiertes Pairing verlangt, aktiviere ihn hier und gib dann den hier PIN an, der am Lautsprecher angezeigt wird.", "speaker-pairing": "Lautsprecher-Pairing und Geräteverifikation", - "verification-code": "Verifikationscode", - "verify": "Verifizieren" + "verification-code": "Verifikationscode" }, "general": { "audiobooks": "Hörbücher", @@ -295,20 +295,19 @@ }, "services": { "lastfm": { - "grant-access": "Melde Dich mit Deinem Last.fm-Benutzernamen und Passwort an, um Scrobbeln zu aktivieren", + "grant-access": "Melde Dich mit Deinem Last.fm-Benutzernamen und Passwort an, um Scrobbeln zu aktivieren.", "info": "OwnTone wird den Benutzernamen und das Passwort von last.fm nicht speichern, nur den Sitzungs-Schlüssel. Dieser läuft nicht ab.", "title": "Last.fm", "no-support": "OwnTone wurde ohne Unterstützung für Last.fm erstellt." }, "spotify": { + "authorize": "Authorisiere API-Zugriff", + "grant-access": "Zugriff auf die Spotify API gestatten.", "no-support": "OwnTone wurde entweder ohne Unterstützung für Spotify erstellt oder libspotify ist nicht installiert.", - "logged-as": "Angemeldet als ", - "requirements": "Spotify Premium Abo erforderlich. Zugriff auf die Spotify Web-Api ermöglicht scannen der Spotify-Blibliothek. Erforderliche scopes sind: ", - "user": "Zugriff gestattet für ", - "authorize": "Authorisiere Web-API-Zugriff", - "grant-access": "Zugriff auf die Spotify Web-API gestatten", - "reauthorize": "Bitte den Zugriff der Web-API durch setzen folgender Zugriffsrechte für OwnTone: ", - "title": "Spotify" + "reauthorize": "Bitte den Zugriff der API durch setzen folgender Zugriffsrechte für OwnTone: {scopes}.", + "requirements": "Spotify Premium Abo erforderlich. Zugriff auf die Spotify API ermöglicht scannen der Spotify-Blibliothek. Erforderliche scopes sind: {scopes}.", + "title": "Spotify", + "user": "Zugriff gestattet für {user}." }, "password": "Passwort", "username": "Benutzername" diff --git a/web-src/src/i18n/en.json b/web-src/src/i18n/en.json index 3bb6c974..c23f0a16 100644 --- a/web-src/src/i18n/en.json +++ b/web-src/src/i18n/en.json @@ -21,7 +21,8 @@ "send": "Send", "show-more": "Show more", "shuffle": "Shuffle", - "update": "Update" + "update": "Update", + "verify": "Verify" }, "count": { "albums": "{count} album|{count} album|{count} albums", @@ -268,8 +269,7 @@ "pairing": "Remote Pairing", "speaker-pairing-info": "If your speaker requires pairing then activate it below and enter the PIN that it displays.", "speaker-pairing": "Speaker pairing and device verification", - "verification-code": "Verification code", - "verify": "Verify" + "verification-code": "Verification code" }, "general": { "audiobooks": "Audiobooks", @@ -295,20 +295,19 @@ }, "services": { "lastfm": { - "grant-access": "Login with your Last.fm username and password to enable scrobbling", + "grant-access": "Login with your Last.fm username and password to enable scrobbling.", "info": "OwnTone will not store your Last.fm username/password, only the session key. The session key does not expire.", "title": "Last.fm", "no-support": "OwnTone was built without support for Last.fm." }, "spotify": { + "authorize": "Authorize API access", + "grant-access": "Grant access to the Spotify API.", "no-support": "OwnTone was either built without support for Spotify or libspotify is not installed.", - "logged-as": "Logged in as ", - "requirements": "You must have a Spotify premium account. Access to the Spotify Web API enables scanning of your Spotify library. Required scopes are: ", - "user": "Access granted for ", - "authorize": "Authorize Web API access", - "grant-access": "Grant access to the Spotify Web API", - "reauthorize": "Please reauthorize Web API access to grant OwnTone the following additional access rights: ", - "title": "Spotify" + "reauthorize": "Please reauthorize API access to grant OwnTone the following additional access rights: {scopes}.", + "requirements": "You must have a Spotify premium account. Access to the Spotify API enables scanning of your Spotify library. Required scopes are: {scopes}.", + "title": "Spotify", + "user": "Access granted for {user}" }, "password": "Password", "username": "Username" diff --git a/web-src/src/i18n/fr.json b/web-src/src/i18n/fr.json index 07cb4336..29577938 100644 --- a/web-src/src/i18n/fr.json +++ b/web-src/src/i18n/fr.json @@ -21,7 +21,8 @@ "send": "Envoyer", "show-more": "Afficher plus", "shuffle": "Lecture aléatoire", - "update": "Actualiser" + "update": "Actualiser", + "verify": "Vérifier" }, "count": { "albums": "{count} album|{count} album|{count} albums", @@ -268,8 +269,7 @@ "pairing": "Jumelage de télécommande", "speaker-pairing-info": "Si votre enceinte nécessite un jumelage, activez-la ci-dessous et entrez le code PIN qu’elle affiche.", "speaker-pairing": "Jumelage d’enceinte et vérification d’appareil", - "verification-code": "Code de vérification", - "verify": "Vérifier" + "verification-code": "Code de vérification" }, "general": { "audiobooks": "Livres audio", @@ -301,14 +301,13 @@ "no-support": "L’option Last.fm n’est pas présente." }, "spotify": { - "no-support": "L’option Spotify n’est pas présente.", - "logged-as": "Connecté en tant que ", - "requirements": "Vous devez posséder un compte Spotify Premium. L’accès à l’API de Spotify permet l’analyse de votre bibliothèque Spotify. Les champs d’application requis sont les suivants :", - "user": "Accès autorisé pour ", "authorize": "Autoriser l’accès à l’API", - "grant-access": "Accordez l’accès à l’API de Spotify", - "reauthorize": "Veuillez autoriser à nouveau l’accès à l’API pour accorder à OwnTone les droits d’accès supplémentaires suivants :", - "title": "Spotify" + "grant-access": "Accordez l’accès à l’API de Spotify.", + "no-support": "L’option Spotify n’est pas présente.", + "reauthorize": "Veuillez autoriser à nouveau l’accès à l’API pour accorder à OwnTone les droits d’accès supplémentaires suivants : {scopes}.", + "requirements": "Vous devez posséder un compte Spotify Premium. L’accès à l’API de Spotify permet l’analyse de votre bibliothèque Spotify. Les champs d’application requis sont les suivants : {scopes}.", + "title": "Spotify", + "user": "Accès autorisé pour {user}." }, "password": "Mot de passe", "username": "Nom d’utilisateur" diff --git a/web-src/src/i18n/zh-CN.json b/web-src/src/i18n/zh-CN.json index 8096655a..f4e4cc85 100644 --- a/web-src/src/i18n/zh-CN.json +++ b/web-src/src/i18n/zh-CN.json @@ -21,7 +21,8 @@ "send": "发送", "show-more": "显示更多", "shuffle": "随机播放", - "update": "更新" + "update": "更新", + "verify": "验证" }, "count": { "albums": "{count} 张专辑|{count} 张专辑", @@ -268,8 +269,7 @@ "pairing": "遥控配对", "speaker-pairing-info": "如果您的扬声器需要配对,请在下面输入它显示的 PIN以激活", "speaker-pairing": "扬声器配对和设备验证", - "verification-code": "验证码", - "verify": "验证" + "verification-code": "验证码" }, "general": { "audiobooks": "有声读物", @@ -301,14 +301,13 @@ "no-support": "OwnTone的构建没有来自Last.fm的官方支持" }, "spotify": { + "authorize": "授权 API 访问", + "grant-access": "授予对 Spotify API 的访问权限", "no-support": "OwnTone的构建没有来自 Spotify 官方的支持,也未安装 libspotify", - "logged-as": "登录为 ", - "requirements": "您必须拥有 Spotify付费帐户。访问 Spotify Web API 可以扫描您的 Spotify库。所需范围是:", - "user": "授予访问权限", - "authorize": "授权 Web API 访问", - "grant-access": "授予对 Spotify Web API 的访问权限", - "reauthorize": "请重新授权 Web API 访问权限,以授予 OwnTone 以下附加访问权限:", - "title": "Spotify" + "reauthorize": "请重新授权 API 访问权限,以授予 OwnTone 以下附加访问权限:{scopes}", + "requirements": "您必须拥有 Spotify付费帐户。访问 Spotify API 可以扫描您的 Spotify库。所需范围是:{scopes}", + "title": "Spotify", + "user": "授予访问权限 {user}" }, "password": "密码", "username": "用户名" diff --git a/web-src/src/i18n/zh-TW.json b/web-src/src/i18n/zh-TW.json index 971989ad..9618c139 100644 --- a/web-src/src/i18n/zh-TW.json +++ b/web-src/src/i18n/zh-TW.json @@ -21,7 +21,8 @@ "send": "發送", "show-more": "顯示更多", "shuffle": "隨機播放", - "update": "更新" + "update": "更新", + "verify": "驗證" }, "count": { "albums": "{count} 張專輯|{count} 張專輯", @@ -268,8 +269,7 @@ "pairing": "遙控配對", "speaker-pairing-info": "如果您的揚聲器需要配對,請在下面輸入它顯示的 PIN以啓用", "speaker-pairing": "揚聲器配對和設備驗證", - "verification-code": "驗證碼", - "verify": "驗證" + "verification-code": "驗證碼" }, "general": { "audiobooks": "有聲書", @@ -301,14 +301,13 @@ "no-support": "OwnTone並無Last.fm的官方支持" }, "spotify": { + "authorize": "授權 API 訪問", + "grant-access": "授予對 Spotify API 的訪問權限", "no-support": "OwnTone並無 Spotify 官方的支持,也未安裝 libspotify", - "logged-as": "登入為 ", - "requirements": "您必須擁有 Spotify付費帳戶。訪問 Spotify Web API 可以掃描您的 Spotify庫。所需範圍是:", - "user": "授予訪問權限", - "authorize": "授權 Web API 訪問", - "grant-access": "授予對 Spotify Web API 的訪問權限", - "reauthorize": "請重新授權 Web API 訪問權限,以授予 OwnTone 以下附加訪問權限:", - "title": "Spotify" + "reauthorize": "請重新授權 API 訪問權限,以授予 OwnTone 以下附加訪問權限:{scopes}", + "requirements": "您必須擁有 Spotify付費帳戶。訪問 Spotify API 可以掃描您的 Spotify庫。所需範圍是:{scopes}", + "title": "Spotify", + "user": "授予訪問權限 {user}" }, "password": "密碼", "username": "用戶名" diff --git a/web-src/src/pages/PageSettingsRemotesOutputs.vue b/web-src/src/pages/PageSettingsRemotesOutputs.vue index dfb014a6..e94c7558 100644 --- a/web-src/src/pages/PageSettingsRemotesOutputs.vue +++ b/web-src/src/pages/PageSettingsRemotesOutputs.vue @@ -34,9 +34,7 @@ -
-

-

+
@@ -46,7 +44,7 @@ />